Jump to content

problème pour afficher le contenu d'une dans un bloc


Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...