0

A/B テストを (GG Analytics を介して) セットアップするために、複製したテーマを使用してテストの代替バージョンを実行するために、現在のテーマを (組織の目的で) 複製することを計画しました。私は使用しますPrestashop 1.4.9.2

私がすでに行ったこと、および動作すること:


これを関数/classes/FrontController.php内の に追加しました(オーバーライドする必要があることはわかっていますが、ポイントではありません;))displayHeader()

if(isset($_GET['alternate']))
{
    $cookie->alternate = "1";
    $cookie->write();
} 

で置換/config/settings.inc.php:

define('_THEME_NAME_', 'my_usual_theme');

if(isset($_GET['alternate']) || $cookie->alternate == "1")
{
    define('_THEME_NAME_', 'my_alternate_theme');       
}
else
{
    define('_THEME_NAME_', 'my_usual_theme');
} 

このようにして、最後に " " を含む Prestahop URL を?alternateロードすると、代替テーマがロードされます。罰金。

問題: で Cookie の値を確認できないsettings.inc.phpため、リンクをクリックするとデフォルトのテーマが読み込まれます。

質問: このファイルの Cookie を確認する手がかりはありますか? それともconfig.inc.phpsettings.inc.phpまたは、セットアップを上書きして、別のファイルでテーマ名を「再定義」しますか?

プロセスを検証するために別の 1 つのファイルで Cookie をチェックしたところ、問題なく動作したことに注意してください。私も古典的なsetcookie方法を使用しようとしましたが、読み取り/確認ができる場合、この方法では書き込めません...そして、得られない理由で、SmartyでのPHPアクティベーションは機能しません(setcookie直接しようとしました)ただし、単純なエコーでもエラー 500)。

ありがとう。

4

1 に答える 1

1

グローバル変数define('_THEME_NAME_', 'prestashop');を使える場所に移動するのが一番簡単だと思います。$cookie

よろしく

于 2013-01-14T14:00:08.307 に答える