我的网站上有静态CMS页面,例如Privay Policy,Mony Back Gurantee等。我已将这些链接放在网页的页脚,这些页面将以标准布局打开,包括页眉,页脚和侧边栏。
我想将这些链接作为图标放在我的产品页面上,但我不想在新窗口中打开它们。我更喜欢fancybox / thickbox,但我只希望显示页面内容而不显示页眉,页脚,侧边栏等。简而言之,我想从仅在产品页面上的链接为这些CMS页面设置空模板。
任何人都可以告诉我,实现这一目标的最佳途径是什么?
答案 0 :(得分:1)
您可以使用后端“编辑CMS”页面上的“设计”标签来“覆盖”要使用的模板,您可以从下拉列表中选择“布局”以仅应用于该页面。添加新布局有两种方法,一种是构建自己的模块,为模块的布局xml定义一个类似的东西
<new_layout translate="label" module="page">
<label>My New Layout</label>
<block type="page/html" name="root" output="toHtml" template="page/new-layout.phtml">
</new_layout>
另一个选项只是将它添加到模板布局文件的page.xml中(然后是你想在模板文件夹中使用的new-layout.phtml)这可能是一个过度杀戮,只需编辑一个块来自页面到页面,但它是“最简单”的方式。
所有这些代码都是未经测试并从内存中编写的,但应该非常接近您的需要。
艾伦
答案 1 :(得分:0)
这仅适用于cms页面
转到mage / page / helper / layout.php 修改: -
public function applyHandle($pageLayout){
$pageLayout = $this->_getConfig()->getPageLayout($pageLayout);
if(isset('emptylayout')) {
$pageLayout->setCode('empty');
$pageLayout->setTemplate('page/empty.phtml'); // this will work
$pageLayout->setLayoutHandle('empty');
}
.
.
.
}
// jquery code
jQuery('.f-left li a').click(function(e){
e.preventDefault();
var url=jQuery(this).attr('href')+'?emptylayout';
var data= '<iframe width="100%" height="550" frameborder="0" src="'+url+'"></iframe>';
jQuery('#mask').html(data);
jQuery.fancybox({
'href': '#mask',
'afterClose': function() {
jQuery('#mask').html('');
},
});
});