====== Modules ====== ===== fichiers ===== ====admin==== ^vue|admin/view/template/module/nom_module.tpl| ^controleur|admin/controller/module/nom_module.php| ^fichier de langue|admin/language/french/module/nom_module.php| ^ |admin/language/english/module/nom_module.php| ====catalog==== ^vue|catalog/controller/module/nom_module.php| ^vue|catalog/view/module/nom_module.tpl| ^fichier de langue (opt.)|catalog/language/french/module/nom_module.php| ^ |catalog/language/english/module/nom_module.php| =====modèles basiques===== ====admin==== ===controleur=== language->load('module/basic_module'); /* nom module à modifier */ /* 2.2. assignements du titre du module d'après le fichier de langage */ $this->document->setTitle($this->language->get('heading_title')); /* 2.3. chargement du modèle de sauvegarde des données utilisé par les modules */ $this->load->model('setting/setting'); /* 2.4. si envoie de données et bonne validation de celles-ci */ if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { /* 2.4.1. sauvegarde des données */ $this->model_setting_setting->editSetting('basic_module', $this->request->post); /* nom module à modifier */ /* 2.4.2. assignement du message de succès $success */ $this->session->data['success'] = $this->language->get('text_success'); /* 2.4.3. redirection vers la liste des modules */ $this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); } /* 2.5. assignement de variables générales */ /* 2.5.1 langage */ $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_enabled'] = $this->language->get('text_enabled'); $this->data['text_disabled'] = $this->language->get('text_disabled'); /* 2.5.2. positions */ $this->data['text_content_top'] = $this->language->get('text_content_top'); $this->data['text_content_bottom'] = $this->language->get('text_content_bottom'); $this->data['text_column_left'] = $this->language->get('text_column_left'); $this->data['text_column_right'] = $this->language->get('text_column_right'); /* 2.5.3. layouts */ $this->data['entry_layout'] = $this->language->get('entry_layout'); $this->data['entry_position'] = $this->language->get('entry_position'); $this->data['entry_status'] = $this->language->get('entry_status'); $this->data['entry_sort_order'] = $this->language->get('entry_sort_order'); /* 2.5.4. boutons */ $this->data['button_save'] = $this->language->get('button_save'); $this->data['button_cancel'] = $this->language->get('button_cancel'); $this->data['button_add_module'] = $this->language->get('button_add_module'); $this->data['button_remove'] = $this->language->get('button_remove'); /* 2.5.5. spécifiques au module */ $this->data['entry_text_field'] = $this->language->get('entry_text_field'); /* 2.6. assignement de la variable d'avertissement $warning */ if (isset($this->error['warning'])) { $this->data['error_warning'] = $this->error['warning']; } else { $this->data['error_warning'] = ''; } /* 2.7. assignement de la variable de code erreur $error_code */ if (isset($this->error['code'])) { $this->data['error_code'] = $this->error['code']; } else { $this->data['error_code'] = ''; } /* 2.8. assignement de la variable $breadcrumbs et construction */ $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_module'), 'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'), 'separator' => ' :: ' ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('module/basic_module', 'token=' . $this->session->data['token'], 'SSL'), /* nom module à modifier */ 'separator' => ' :: ' ); /* 2.9. assignement des URL */ /* 2.9.1. URL pour validation */ $this->data['action'] = $this->url->link('module/basic_module', 'token=' . $this->session->data['token'], 'SSL'); /* nom module à modifier */ /* 2.9.2. URL pour annulation */ $this->data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'); /* 2.10. assignation des champs du formulaire depuis POST ou à défaut depuis BDD */ if (isset($this->request->post['basic_module_text_field'])) { /* nom module à modifier */ $this->data['basic_module_text_field'] = $this->request->post['basic_module_text_field']; /* nom module à modifier */ } else { $this->data['basic_module_text_field'] = $this->config->get('basic_module_text_field'); /* nom module à modifier */ } /* 2.11. assignation des champs de paramétrage du module tels que layout, position, status & order, depuis POST ou à défaut depuis BDD */ $this->data['modules'] = array(); if (isset($this->request->post['basic_module_module'])) { /* nom module à modifier */ $this->data['modules'] = $this->request->post['basic_module_module']; /* nom module à modifier */ } elseif ($this->config->get('basic_module_module')) { /* nom module à modifier */ $this->data['modules'] = $this->config->get('basic_module_module'); /* nom module à modifier */ } /* 2.12. chargement du modèle design/layout */ $this->load->model('design/layout'); /* 2.13. assignement de la variable $layouts listants les layouts disponibles */ $this->data['layouts'] = $this->model_design_layout->getLayouts(); /* 2.14. chargement du template */ $this->template = 'module/basic_module.tpl'; /* nom module à modifier */ /* 2.15. ajout de modules enfant (header/footer) */ $this->children = array( 'common/header', 'common/footer' ); /* 2.16. rendu du module */ $this->response->setOutput($this->render()); } /* 3. fonction de validation */ protected function validate() { /* 3.1. vérification des permissions */ if (!$this->user->hasPermission('modify', 'module/basic_module')) { /* nom module à modifier */ $this->error['warning'] = $this->language->get('error_permission'); } /* 3.2. vérification si les champs sont bien renseignés et assignation du code erreur le cas échéant */ if (!$this->request->post['basic_module_text_field']) { /* nom module à modifier */ // ligne 43 du tpl $this->error['text_field'] = $this->language->get('error_text_field'); } /* 3.3. retour booléen (false si erreur) */ if (!$this->error) { return true; } else { return false; } } } ?> ===vue===

*
===fichiers de langue=== ====catalog==== ===controleur=== language->load('module/basic_module'); // nom module à modifier // récupération des éléments de langue $this->data['element'] = $this->language->get('element'); */ /* récupération de la valeur enregistrée */ $this->data['value'] = html_entity_decode($this->config->get('basic_module_text_field')); /* nom module à modifier */ /* chemin de la vue */ $this->template = $this->config->get('config_template') . '/template/module/basic_module.tpl'; /* nom module à modifier */ /* rendu */ $this->render(); // renders the output } } ?> ===vue===

===fichiers de langue (optionnels)===