我在Prestashop上有一个模块,可以在1.6版和1.7版上使用。
在1.6版中,我设法在bacok办公室的产品表上显示了一个附加字段。我希望对1.7版执行相同的操作,但暂时没有成功...
我尝试使用displayAdminProductsMainStepLeftColumnMiddle钩子
我的模块控制器:
public function displayAdminProductsMainStepLeftColumnMiddle($params) {
$product = new Product($params['id_product']);
$this->context->smarty->assign(array(
'id_product_jshop' => $product->id_product_jshop
)
);
return $this->display(__FILE__, '/views/templates/1.7/admin/jshop.tpl');
挂钩的记录
$this->registerHook('displayAdminProductsMainStepLeftColumnMiddle');
和我的观点:
<div class="m-b-1 m-t-1">
<h2>{l s='Custom Attribute from module' mod='jshopimport'}</h2>
<fieldset class="form-group">
<div class="col-lg-12 col-xl-4">
<label class="form-control-label">{l s='ID JSHOP' mod='jshopimport'}</label>
<input type="text" name="id_product_jshop" class="form-control" {if $id_product_jshop && $id_product_jshop != ''}value="{$id_product_jshop}"{/if}/>
</div>
</fieldset>
<div class="clearfix"></div>
</div>
您知道哪里出了问题吗?
答案 0 :(得分:0)
该函数必须以“ hook”和
开头public function hookDisplayAdminProductsMainStepLeftColumnMiddle($params)
然后您无需钩子即可注册
$this->registerHook('displayAdminProductsMainStepLeftColumnMiddle');
答案 1 :(得分:0)
有关信息,我发现了我的错误。
在完成安装功能之前:
$this->registerHook('displayAdminProductsMainStepLeftColumnMiddle'));
return parent::install();
使用此解决方案,该钩子也未注册!!
最佳实践是:
if (!parent::install()
|| !$this->registerHook('displayAdminProductsExtra')
|| !$this->registerHook('displayAdminProductsMainStepLeftColumnMiddle')) {
return false;
}
重要的是先做
parent::install()