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 に答える