2016-11-02 3 views
0

私はカスタムPrestashopモジュールを開発しています。要件は簡単です:ショッピングプロセスの特定のセクションにJavaScriptコードの定義済みブロックを追加します。それらは以下のとおりです。Prestashopモジュールを使用して特定のページにJavascriptコードを追加

  • ホームページ
  • 製品ページ
  • 製品は購入コードが各ページに固有のものになります

を完了

  • カートに追加しました。

    私は既にモジュール開発の基本を読みましたが、この特定の機能に関するドキュメントは見つかりませんでした。

    バックオフィスの管理者からインストール可能で設定可能な動作中のモジュールが既にあります。私はフッタを拡張し、現在提供されているページをチェックする必要があると仮定していますが、これを行う方法はわかりません。

  • 答えて

    6

    それは見た目よりもより簡単です:)、あなたはどのページであなたは、あなたのdisplayHeader方法でいくつかのif追加されているチェックする必要があります。

    public function displayHeader($params){ 
        /* some code */ 
    
        // check if we are in homepage 
        if($this->context->controller->php_self == 'index'){ 
         $this->context->controller->addJS('path-to-index-js'); 
        } 
    
        // check if we are in product page 
        if($this->context->controller->php_self == 'product'){ 
         $this->context->controller->addJS('path-to-product-js'); 
        } 
    
        // and so on for all other pages 
        /* ... */ 
    
        /* some code */ 
    } 
    
    1

    はまたJSのグローバル変数があり

    page_name 
    
    -2

    PrestaShopのすべてのページには、page_name smarty変数の一意の値があります。

    この変数の値は、任意のコントローラで、次のコードをフェッチすることができます

    :あなたはフック(すなわちhookHeader)を追加して、追加したいページごとにそのフックに条件を追加することができます

    $this->context->smarty->tpl_vars['page_name']->value 
    

    スクリプト。

    関連する問題