2016-05-05 10 views
0

Prestashop 1.6サイトでは、body要素(フロントエンド)に動的クラスを追加する必要があります。Prestashop 1.6 - body要素に動的クラスを追加する方法

クラスは 'group- [group-name-id]'でなければなりません。ここで、group-name-idは訪問者のグループ名です。 Presashopで

既定のグループは、次のとおりです。

'1' - 'ビジター'

'2' - 'ユーザーレビュー'

3 '' - '貸衣装'

これを行う方法はありますか?

それはPS 1.4のためであることから、私はこれを見つけたが、それは古いようだ:https://www.prestashop.com/forums/topic/179593-adding-category-class-id-to-product-page-body/

enter image description here

UPDATE:

私はほとんどそれのおかげで(すぐ下の答えを@TheDrotてもらいます)。

唯一の問題は[0]です。私はこのエラーが発生します: "解析エラー:構文エラー、予期しない '['、expecting ')' /home/temporal-4/www/override/classes/controller/FrontController.php on line 36"

'[0]'を削除すると動作しますが、クラスでは「グループ配列」を取得します。 class = "group-1 group-2 group-3"のような配列のすべての値を出力する必要があります。

答えて

1

あなたが '/オーバーライド/クラス/コントローラのようにフォルダ内のファイルFrontController.phpを作成FrontControllerCoreクラスをオーバーライドする必要があると「テーマ/ your_themeにこのコードで

class FrontController extends FrontControllerCore { 
    public function init() 
    { 
     parent::init(); 
     $this->context->smarty->assign('group_id', $this->context->customer->getGroups()[0]; // user can exist in multiple groups, so for this example im just grabbing first group id 
    } 
} 

そして、オープンheader.tplファイルを置きます/」とボディクラスであなただけのキャッシュフォルダからclass_index.phpを削除し、ページをリロードしてください、基 - 表示された場合は、本体のクラス

group-{$group_id} 

にコードを追加します。

+0

ファイル 'FrontController.php'にはすでにこのコードがあります:http://pastebin.com/raw/bm9yY3TTあなたのコードをどこに挿入すればいいですか?ありがとう。 – chefnelone

+0

配列のどこに置いても問題ありません。あなたは、 'group_id' => $ this-> context-> customer-> getGroups()[0]を配列に追加するだけです。 – TheDrot

+0

私はそれをやった。私はここにコードをコピーして貼り付けました:http://pastebin.com/raw/ZuCUdpyQあなたは配列の最後の位置でそれを見ることができます。しかし、今私は私のサイトで500 ERRORのempyページを取得します。 – chefnelone

関連する問題