2016-01-19 90 views
1

我在Prestashop 1.6中創建了一個新模塊,它在信息框的產品頁面上顯示了一些數據。我在模塊的安裝方法中創建了一個新鉤子:$this->registerHook('combinationDescription')並創建了hookDisplayCombinationDescription函數,用於分配一些smarty變量並使用tpl文件顯示它們。 安裝我的模塊後,鉤子被註冊到數據庫中,因此它可用。 手動我可以將代碼插入到product.tpl文件中,就像:{hook h="hookDisplayCombinationDescription"},我認爲它可以正常工作,但是我希望在安裝模塊時自動完成此步驟。我怎樣才能做到這一點? 我的猜測是從模塊的安裝方法編輯product.tpl文件,但對我來說這有點髒。還有其他一些好方法可以做到嗎?如何在prestashop的產品頁面中插入模塊

+0

如果你想「自動添加」,你需要選擇一個現有的HOOKS,併爲其準備... :-)例如: 'displayProductButtons',真的只是希望主題開發人員聰明,不要刪除默認鉤子:-) –

回答

0

如果你做了一個自定義的hook你需要的地方手動插入其執行:爲.tpl或進入overrided ProductController.php(如果它是一個行動掛鉤)。 Prestashop不能自動執行它,因爲它不知道你想在哪裏執行它。

但是,您可以使用默認的Prestashop 1.6掛鉤使模塊安裝後您的代碼部分被掛鉤並準備就緒。對於產品頁面是這些:

displayLeftColumnProduct 
displayRightColumnProduct 
displayProductTab 
displayProductTabContent 
displayFooterProduct 
displayProductButtons 
displayProductPriceBlock 
actionProductOutOfStock 

您可以使用這些掛鉤之一,您的內容與css位置(或javascript - 到頁面的任何部分)。

Product page hooks.

+0

在我的情況下,現在我必須在產品信息框中顯示內容(價格,標題,社交按鈕等。 )被顯示)。這部分沒有掛鉤。我怎樣才能把我的鉤子放在那裏? – Ervin

1

如果你做任何自定義掛鉤,那麼你必須使其可執行first.Prestashop不能爲產品頁面上顯示的一些數據執行自定義掛鉤automatically.But您可以使用預定義的Prestashop hooks.Some是以下

displayProductButtons 
displayProductTab 

要使用這些掛鉤,首先你必須在註冊鉤安裝功能一樣

 public function install() 
     { 
      if (!parent::install() || !$this->registerHook('displayProductButtons')){ 

      } 
     } 

的d在同一文件中,你必須做出這樣

 public function hookDisplayProductButtons($params) 
     { 


     } 

功能現在該功能可以在指定您的TPL文件,你要訪問一些Smarty的變量或節目喜歡

public function hookDisplayProductButtons($params) 
     { 
      $this->smarty->assign(array(
        'product_name' => 'abc' 
       )); 
     } 

現在您可以訪問的tpl文件

0

如果您想添加新的自定義掛鉤並在您的特定模塊處於活動或安裝狀態時執行它們。

請按照下列步驟操作:

  1. 要執行你的行動任何你添加新的自定義hook代碼。
  2. 然後,您可以在安裝模塊時將新的自定義掛接條目插入到數據庫中。
  3. 現在,您的鉤子將根據您的需要執行。
  4. 在卸載模塊時刪除與數據庫相同的鉤子條目,以便卸載模塊後無法執行掛鉤。

我不確定,是否有其他解決方案可以滿足您在prestashop中的需求?

相關問題