如何在 CakePHP 1.3 中修改 $content_for_layout
How to modify $content_for_layout in CakePHP 1.3
我正在使用 CakePHP 1.3。在 app/views/layouts/default.ctp
我正在使用这个:
<?php echo $content_for_layout;?>
根据 Ahsanul Bari 和 Anupom Syam 的 CakePHP 应用程序开发,
"This line is mainly responsible for placing controller-rendered view
contents inside the layout. We must include this to tell Cake where to
place the action-specific controller-rendered views."
我正在想办法修改$content_for_layout
的内容。但我想这不是我应该修改以修改布局的那种变量。我想要完成的是修改 $content_for_layout
或创建一个新布局来为 A/B 测试实验自定义一些元素。你能帮我更好地理解如何操纵 $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 我 hiding/showing 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 而不会复制内容。
我正在使用 CakePHP 1.3。在 app/views/layouts/default.ctp
我正在使用这个:
<?php echo $content_for_layout;?>
根据 Ahsanul Bari 和 Anupom Syam 的 CakePHP 应用程序开发,
"This line is mainly responsible for placing controller-rendered view contents inside the layout. We must include this to tell Cake where to place the action-specific controller-rendered views."
我正在想办法修改$content_for_layout
的内容。但我想这不是我应该修改以修改布局的那种变量。我想要完成的是修改 $content_for_layout
或创建一个新布局来为 A/B 测试实验自定义一些元素。你能帮我更好地理解如何操纵 $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 我 hiding/showing 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 而不会复制内容。