2016-09-19 8 views
0

私はblocklayeredモジュールでprestashopを使用する際に問題があります。私の店のデフォルト言語はフランス語(id_lang = 1)です。prestashop blocklayered reloadContent()が間違った言語を返します

エラーになる手順は次のとおりです。 英語(id_lang = 4)に切り替えて製品リストページに移動します。すべての製品は英語で書かれていますが、問題はありません。 次に、ブロックレイヤーフィルタを使用しようとするたびに、返されるすべての結果が英語の代わりにフランス語で書き込まれます。

ヘッダーとproduct-list.tplにvar_dumpsを追加して、$ cookie-> id_langの値を確認しました。彼らは両方とも4(英語)に設定されています。 blocklayeredを使用した後、私はまだヘッダーに4のid_langを持っていますが、product-listにあるものはフランス語のid_langである1に設定されています。

PS版:1.6.1.0

Blocklayeredバージョン:2.1.3

答えて

0

次の関数呼び出し/modules/blocklayered/blocklayered.phpでreloadContent()関数:

ajaxCallを() in /modules/blocklayered/blocklayered.php

この関数は、現在の言語IDを取得するために$ cookie-> id_langを使用しています。この変数の値をデバッグしてみてください。

また、$ this-> context-> language-> idに置き換えると、問題が解決する場合があります。

+0

私はすべてのコードを実行しようとしましたが、なぜツール:: switchLanguage()関数が呼び出されているのかわかりません。 コードは 'Tools :: getValue( 'id_lang')'(この場合は '$ _GET ['id_lang']')を使用しています。 – BobbyGhetto

関連する問題