alexandrieb Posted August 18, 2016 Share Posted August 18, 2016 (edited) Bonjour, j'ai créé un module. Via le panneau module, je peux entrer dans la configuration du module. Je crée une tabulation qui se place bien mais lorsque je clique dessus, "controlleur manquant"... J'aimerais qu'elle ouvre directement la page de configuration car je n'ai pas de controller. Le peu que je dois faire, ce fait directement via le fichier monmodule.php Est-ce possible? Voici comme j'ai fait le tab... private function installTab($tabClass, $tabName, $idTabParent) { $languages = Language::getLanguages(false); for ($index = 0; $index < count($languages); $index++) { $language = $languages[$index]; $tabName[$language['id_lang']] = 'Catalog PDF Export'; } @copy(_PS_MODULE_DIR_.$this->name.'/logo.gif', _PS_IMG_DIR_.'t/'.$tabClass.'.gif'); $tab = new Tab(); $tab->name = $tabName; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTabParent; //Tab $tab->id_parent = (int)Tab::getIdFromClassName('AdminCatalog'); $tab->position = Tab::getNewLastPosition($tab->id_parent); foreach (Language::getLanguages(false) as $lang) $tab->name[(int)$lang['id_lang']] = 'Test'; if(!$tab->save()) return false; return true; } Merci pour vos pistes... Edited August 18, 2016 by alexandrieb (see edit history) Link to comment Share on other sites More sharing options...
Rapishiny Posted August 18, 2016 Share Posted August 18, 2016 Bonjour, Si le but est simplement d'accéder plus rapidement à la configuration du module pourquoi ne pas directement rajouter la page dans l'accès rapide? Link to comment Share on other sites More sharing options...
Eolia Posted August 18, 2016 Share Posted August 18, 2016 Votre question n'a pas de sens, c'est comme si vous disiez "je veux utiliser le train mais sans les rails"... Donc soit vous faites les choses correctement et vous utilisez un contrôleur, soit effectivement vous utilisez l'accès rapide. Link to comment Share on other sites More sharing options...
alexandrieb Posted August 18, 2016 Author Share Posted August 18, 2016 Et si je veux utiliser un controller, je dois simplement mettre mes méthodes et le displayForm dans le controller? Dsl c'est la premiere fois que je crée un module Merci pour votre aide Link to comment Share on other sites More sharing options...
Eolia Posted August 18, 2016 Share Posted August 18, 2016 Non.. <?php class AdminMonModuleController extends AdminController { private $moduleName = 'monmodule'; public $bootstrap = false ; public $_html = ''; public function __construct() { if (Shop::isFeatureActive()) Shop::setContext(Shop::CONTEXT_SHOP); parent::__construct(); } public function initContent() { $this->show_toolbar = false; $this->display = 'view'; parent::initContent(); } public function renderView() { return parent::renderView().$this->setForm(); } public function setForm() { $module = Module::getInstanceByName($this->moduleName); return $module->getContent(); } } 1 Link to comment Share on other sites More sharing options...
alexandrieb Posted August 18, 2016 Author Share Posted August 18, 2016 (edited) Merci pour ton aide Donc j'ai fait comme tu as dit et voici mon code pour créer le tab Dans install() if(!parent::install() || !$this->installTab('AdminMonMonduleController', array(), 1)) { return false;} return true; Et voici la fonction installtab() private function installTab($tabClass, $tabName, $idTabParent) { $languages = Language::getLanguages(false); for ($index = 0; $index < count($languages); $index++) { $language = $languages[$index]; $tabName[$language['id_lang']] = 'Test'; } @copy(_PS_MODULE_DIR_.$this->name.'/logo.gif', _PS_IMG_DIR_.'t/'.$tabClass.'.gif'); $tab = new Tab(); $tab->name = $tabName; $tab->class_name = $tabClass; $tab->module = $this->name; $tab->id_parent = $idTabParent; //Tab $tab->id_parent = (int)Tab::getIdFromClassName('AdminCatalog'); $tab->position = Tab::getNewLastPosition($tab->id_parent); foreach (Language::getLanguages(false) as $lang) $tab->name[(int)$lang['id_lang']] = 'Test'; if(!$tab->save()) return false; return true; } Mon fichier est bien dans le dossier controllers/admin/AdminMonModuleController.php Et quand je clique sur le lien dans le menu admin, il me dit que le controller est introuvable Merci pour tout Edited August 18, 2016 by alexandrieb (see edit history) Link to comment Share on other sites More sharing options...
alexandrieb Posted August 18, 2016 Author Share Posted August 18, 2016 J'ai réussi Un grand merci Link to comment Share on other sites More sharing options...
Eolia Posted August 18, 2016 Share Posted August 18, 2016 Ah ? la meilleure réponse est la tienne ? Curieux.... 1 Link to comment Share on other sites More sharing options...
alexandrieb Posted August 18, 2016 Author Share Posted August 18, 2016 dsl je voulais mettre "Résolu" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now