Prestashop 1.7 Hook管理产品未显示

时间:2018-11-19 16:46:49

标签: hook prestashop-1.7

我在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>

您知道哪里出了问题吗?

2 个答案:

答案 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()