我正在使用CakePHP 1.3。在app/views/layouts/default.ctp
中,我使用的是:
<?php echo $content_for_layout;?>
根据Ahsanul Bari和Anupom Syam的CakePHP应用程序开发,
“此行主要负责放置控制器渲染的视图布局中的内容。我们必须包含此内容以告诉Cake在哪里放置操作特定的控制器呈现的视图。“
我试图弄清楚如何修改$content_for_layout
的内容。但是我想那不是我应该修改以修改布局的那种变量。我要完成的工作是修改$content_for_layout
或创建新的布局以自定义A / B测试实验的某些元素。您能帮助我更好地了解如何操作$content_for_layout
吗?谢谢。
UPDATE 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元素无法正常工作等。我想做的是修改$content_for_layout
对<div id="split-test-homepage-content-redesign">
的作用。我正在考虑的一种选择是使用JavaScript,以便在jQuery(document).ready(function($) {
部分中可以做实验,以便如果变量包含特定的布尔值,则显示一个版本或另一个版本。像这样的东西:
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
做些什么?谢谢。
复制内容肯定是自找麻烦。我使用了一种更好的方法来操作CSS类和id,而无需重复内容。