0

我是 prestashop 模块开发的新手。目前我已经开发了一个模块。它在后端工作正常(如更新和删除插入的值)。但是当我尝试从前端检查模块的功能时,它没有显示。我安装模块的代码如下所示

 public function install()
  {
    if(!parent::install())
      return false;
    if (!$this->registerHook('leftColumn'))
      return false;
    if (!$this->registerHook('header'))
      return false;
    if (!$this->registerHook('rightColumn'))
      return false;
      return true;
   }

钩子的代码是这样的

 public function hookHome($params)
  {
    global $cookie, $smarty;
    $value=array();
    .....................
    ............
    return $this->display(__FILE__, 'filename.tpl');
  }

我尝试了很多方法来在页面的左列和右列中显示模块,但它没有显示在那里。

但是当我尝试从admin->modules->positions->transplant a module->hook into->displayHome (Homepage content). 它适用于主页内容。但我也想在左右栏中显示它们。我尝试使用实时编辑,但该模块根本没有显示在左右列中。那么有人可以告诉我这里有什么问题吗?任何帮助和建议都将是非常可观的。谢谢。

4

2 回答 2

1

当你在你的模块中注册一个钩子时,你必须定义一个在钩子被触发时调用的方法。在您的情况下,您必须定义以下方法:

public function hookLeftColumn($params)
{
    // Do your stuff on left column
}

public function hookRightColumn($params)
{
    // Do your stuff on right column
}

public function hookHeader($params)
{
    // Do your stuff in the header
}
于 2013-05-13T14:29:19.600 回答
0

对于每个注册的钩子,您必须创建一个非静态公共方法,以“hook”关键字开头,后跟要使用的钩子的名称(以“display”或“action”开头)。

<?php
public function hookDisplayLeftColumn($params)
{
    // Your code.
    return $this->display(__FILE__, 'filename.tpl');
}

public function hookDisplayRightColumn($params)
{
    // Your code.
    return $this->display(__FILE__, 'filename.tpl');
}

public function hookActionOtherHook($params)
{
    // Your code.
   }

祝你好运!

于 2021-05-14T08:10:28.523 回答