2

prestashop を使用していますが、a/b テストを実行したいと考えています。これは、トラフィックが 50% を templateA に、50% を templateB にリダイレクトすると同時に、Web サイトの 2 つの異なるテンプレートをテストすることを意味します。

私は自分のフォルダにテーマを設定する必要があります:

-テーマA -テーマB

テストを実行するには、別の URL フォーム themeA を介して themeB にアクセスする必要があります。

したがって、フォルダー「/ config」で、ファイルsetting.inc.phpを次のように変更しました。

if(isset($_GET['ab'])) { define('_THEME_NAME_', 'themeB'); } else{ define('_THEME_NAME_', 'themeA'); }

これで、www.myshop.com/?ab と入力して、themeb にアクセスできます。

私の問題は、リンクをクリックするたびに ?ab パラメータが失われ、テンプレート A に戻ることです。

このコードを使用して問題を解決した別の cms を使用している人を見つけました:

`$this->redirect(array('name')); `

しかし、それを prestashop に適応させる方法と、どこに置くべきかがわかりません。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

0

「テーマチェック」の前にセッションが開始されている場合 ([http://sg3.php.net/manual/en/function.session-start.php][1])、1 つの簡単な回避策として、セッションを使用することが考えられます。

// Page => watermelons.php    
<?php
session_start();

if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
    $_SESSION['ab'] = 'themeB';
    define('_THEME_NAME_', 'themeB');
} else{
    define('_THEME_NAME_', 'themeA');
}

echo _THEME_NAME_;

?>
<br /><a href="coconuts.php">go to coconuts</a>



// Page => coconuts.php    
<?php
session_start();

if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
    $_SESSION['ab'] = 'themeB';
    define('_THEME_NAME_', 'themeB');
} else{
    define('_THEME_NAME_', 'themeA');
}

echo _THEME_NAME_;

?>
<br /><a href="watermelons.php">go to watermelons</a>
于 2012-10-25T09:57:46.310 に答える