Я использую торт PHP 1.3. В app/views/layouts/default.ctp
я использую это:
<?php echo $content_for_layout;?>
Согласно Cake PHP Разработка приложений, Ahsanul Bari и Anupom Syam,
"Эта линия в основном отвечает за размещение содержимого представлений, отображаемых контроллером, внутри макета. Мы должны включить это, чтобы сообщить Cake, где размещать специфичные для действия c представления, отображаемые контроллером. "
Я пытался выяснить, как изменить содержимое $content_for_layout
. Но я думаю, что это не та переменная, которую я должен изменить, чтобы изменить макет. sh Я пытаюсь либо изменить $content_for_layout
, либо создать новый макет, чтобы настроить некоторые элементы для эксперимента А / Б тестирования. Не могли бы вы помочь мне лучше понять, как манипулировать $content_for_layout
? Спасибо.
ОБНОВЛЕНИЕ 1:
Я настраиваю эксперимент A / B-тестирования. У меня это есть в app/views/layouts/default.ctp
:
<body>
..........
<div id="split-test-homepage-content-original">
..........
<?php echo $content_for_layout;?>
..........
</div>
<div id="split-test-homepage-content-redesign">
..........
<?php echo $content_for_layout;?>
..........
</div/>
</body>
С CSS Я прячу / показываю либо split-test-homepage-content-original
, либо split-test-homepage-content-redesign
в зависимости от версии, которую будет отображать сплит-тест. Но у меня проблемы, потому что $content_for_layout
отображается дважды. Хотя визуально люди видят только одну версию, но за кулисами страница $content_for_layout
загружается дважды на одной странице. Это вызывает у меня всевозможные проблемы, такие как дубликаты форм, элементы JavaScript, работающие неправильно из-за дублированных переменных и т. Д. c. Я хочу изменить то, что $content_for_layout
делает для <div id="split-test-homepage-content-redesign">
. Один вариант, который я рассматриваю, - это использовать JavaScript, чтобы в разделе jQuery(document).ready(function($) {
я мог что-то сделать в эксперименте, чтобы, если переменная содержала заданное логическое значение c, я показывал одну или другую версию. Примерно так:
if(javascriptvariable==true){
, затем используйте следующее HTML для представления:
<div id="split-test-homepage-content-original">
..........
<?php echo $content_for_layout;?>
..........
</div>
, иначе Javascript позаботится о том, чтобы не отображалось выше, но это :
<div id="split-test-homepage-content-redesign">
..........
<?php echo $content_for_layout;?>
..........
</div/>
Имеет ли смысл подход JavaScript для вас или я должен что-то предпринять для создания новых макетов или изменения того, что делает $content_for_layout
? Спасибо.