我正在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();
}
答案 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
的方式是更多信息标签,我在下面的图片中显示我可以帮助您
step1.you应该在你的模块中安装两个挂钩安装功能
public function install() {
return parent::install() &&
$this->registerHook('displayProductTab')&&
$this->registerHook('displayProductTabContent')
}
第二步:你应该使用它们并返回一些html代码
我想添加一个我使用的新标签
注意:id
是动态的,您可以更改它,但class
是静态的,应该用作selected
。
href
也与内容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') ;
最好的问候。