Prestashop模块挂钩到产品页面

时间:2013-05-18 07:04:05

标签: php hook prestashop

我正在prestashop中开发一个模块。该模块已连接到左列和右列,其工作正常。现在我想在产品页脚页面中显示模块输出。那么有人可以告诉我如何将我的模块挂钩到产品详细信息页面?任何帮助和建议都会非常明显。

我的leftColumn和rightColumn代码就像这样

 function hookLeftColumn()
  {
    $defaultLanguage = (int)(Configuration::get('PS_LANG_DEFAULT'));
    global $cookie, $smarty;
    $value=array();
    $result="SELECT status,app_id from "._DB_PREFIX_."storeblocks";
    $value=Db::getInstance()->ExecuteS($result);
    $smarty->assign('array',$value);
    $smarty->assign('default',$defaultLanguage);
    return $this->display(__FILE__, 'stores.tpl');
  }

  function hookRightColumn()
  {
    return $this->hookLeftColumn();
  }

2 个答案:

答案 0 :(得分:4)

对于产品页面,PS中有几个可用的挂钩。

您可以使用 displayLeftColumnProduct 挂钩,它挂钩产品图像正下方的模块。您也可以使用右侧部分的 displayRightColumnProduct

另一组挂钩是 displayProductTab displayProductTabContent ,它们用于产品页面上的标签。

如果这些挂钩对您没有帮助,那么您可以通过其他几种方式获得结果。您可以将模块挂钩到任何更适合您需要的挂钩,然后使用css position和lft,top等将挂钩移动到所需的位置。

如果这不是一个选择,那么您需要创建自己的钩子,然后在产品页面上使用该钩子。请阅读此内容以创建自己的钩子

http://www.programmingtunes.com/creating-new-prestashop-hook/

另外,有关PS中钩子的完整列表,请阅读PS docs中的这篇文章

http://doc.prestashop.com/display/PS15/Hooks+in+PrestaShop+1.5

如果您还需要任何其他详细信息,请与我们联系。

谢谢

答案 1 :(得分:3)

注意:这个答案是关于prestashop 1.5的,你也可以将它用于prestashop 1.6。

如果您关于product details page的方式是更多信息标签,我在下面的图片中显示我可以帮助您

detail hook

step1.you应该在你的模块中安装两个挂钩安装功能

   public function install() { 
    return   parent::install() &&
              $this->registerHook('displayProductTab')&&
               $this->registerHook('displayProductTabContent')
                 }

第二步:你应该使用它们并返回一些html代码 我想添加一个我使用的新标签 注意:id是动态的,您可以更改它,但class是静态的,应该用作selectedhref也与内容ID相关联(您在步骤3中看到)

   public function hookDisplayProductTab($params) {
      return '<li>
              <a id="myid" class="selected"  
               href="#linked">mytab</a>
                </li>'
               }

第3步:如果你想点击mytab,这就显示了你添加其他功能的内容。 注意:上一个函数的href =“#linked”链接到id =“linked”。

   public function hookDisplayProductTabContent($params){

      return <div id="linked" class="rte">
              <div class="product-overview-full">
               my contents
                </div>
                 </div>
              }

高级:在你的.tpl中写你的html或smarty并返回主题weth this code

       return $this->display(__FILE__, 'mytpl.tpl') ;
最好的问候。