Guru1970 Posted May 16, 2013 Share Posted May 16, 2013 Bonjour, Je débute avec ce formidable programme qu'est PrestaShop, et j'ai décidé de me mettre à vouloir développer un module pour me faire la main. J'avoue que je galère un peu, j'ai essayé en cherchant des infos de gauche à droite pour construire un module. J'ai quelques notions de PHP mais ne suis pas un expert. Mon but est d'afficher dans un bloc dans la colonne de gauche le contenu d'une table, qui deviendra une sorte de menu personnalisé à la fin. J'ai donc créé et installé la base de mon module et greffé la chose sur la colonne de gauche. Jusqu'à la ça fonctionne. Dans mon fichier PHP j'ai ceci : <?php if (!defined('_PS_VERSION_')) exit; class GuruMenuV extends Module { public function __construct() { $this->name = 'GuruMenuV'; $this->tab = 'Menu Vertical'; $this->version = 1.0; $this->author = '[spam-filter]'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('GuruMenuV'); $this->description = $this->l('Menu vertical'); } public function install() { if (parent::install() == false OR !$this->registerHook('leftColumn')) return false; return true; } public function uninstall() { if (!parent::uninstall()) Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'gurumenuv_menu`'); parent::uninstall(); } public function getMenuList() { $sql = 'SELECT LabelMenu,Position FROM `'._DB_PREFIX_.'gurumenuv_menu` ORDER BY Position'; $result = Db::getInstance()->ExecuteS($sql); if ($result === false) return false; return $result; } public function hookLeftColumn($params) { global $smarty; $this->smarty->assign(array( 'LabelMenu' => GuruMenuV::getMenuList() )); return $this->display(__FILE__, 'gurumenuv.tpl'); } public function hookRightColumn($params) { return $this->hookLeftColumn($params); } } ?> dans mon fichier TPL j'ai ça : <!-- Block gurumenuv --> <div id="gurumenuv_block_left" class="block"> <h4>Menu</h4> <div class="block_content"> <ul> <li><p>Test</p></li> </ul> <ul> {foreach from=$GuruMenuV item=LabelMenu} <li><a href="tst" title="test">{$LabelMenu.name|escape:'htmlall':'UTF-8'}</a></li> {/foreach} </ul> </div> </div> <!-- /Block gurumenuv --> Ma table est composée comme ceci : Idx Position TypeMenu LabelMenu LinkMenu Mon but est d'afficher la liste du contenu du champ "LabelMenu" et je n'y arrive pas, rien ne s'affiche et je suis un peu perdu. Est-ce que qu'une gentille âme pourrait m'aider ? Merci Link to comment Share on other sites More sharing options...
Guru1970 Posted May 17, 2013 Author Share Posted May 17, 2013 un ptit up Link to comment Share on other sites More sharing options...
Whoami Posted May 17, 2013 Share Posted May 17, 2013 Bonjour, Quelle est la version de Prestashop ? Sinon si tous les greffons (et l'environnement) sont bons, je ne vois que ceci : public function hookLeftColumn($params) { ... $smarty->assign(array( // Et non $this->smarty-assign ... } Sinon comme ça, tu peux refactoriser simplement public function getMenuList() { $sql = 'SELECT LabelMenu,Position FROM `'._DB_PREFIX_.'gurumenuv_menu` ORDER BY Position'; $result = Db::getInstance()->ExecuteS($sql); if ($result === false) return false; return $result; } en public function getMenuList() { return Db::getInstance()->ExecuteS(' SELECT LabelMenu,Position FROM `'._DB_PREFIX_.'gurumenuv_menu` ORDER BY Position '); } Bon dev ! Link to comment Share on other sites More sharing options...
Guru1970 Posted May 17, 2013 Author Share Posted May 17, 2013 Bonjour, Merci pour la réponse, j'ai corrigé la chose mais malheureusement j'ai toujours aucune ligne qui s'affiche Je suis en version 1.5.4.1 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