我正在使用Couch CMS,并且我将标题背景设置为可编辑区域,然后当我从管理页面更改图像时,新图像仅出现在主页中,尽管在其他页面中我使用此
<?php echo file_get_contents("header.php"); ?>
index.php中的代码:
<?php require_once('admin/cms.php'); ?>
<cms:template title = 'English Home Page'>
<cms:editable name='header' type='image' />
</cms:template>
<?php echo file_get_contents("header.php"); ?>
<?php COUCH::invoke(); ?>
header.php中的代码
<?php require_once( 'admin/cms.php' ); ?>
.site-header {
background-image: url("<cms:show header />");
background-repeat: no-repeat;
background-position: center;
background-attachment: notdefined;
background-clip: padding-box;
background-size: cover;
background-origin: padding-box;
}
<?php COUCH::invoke(); ?>
为什么当我在除索引之外的其他页面中获取标题页内容时图像不会改变?
答案 0 :(得分:0)
我认为您需要将Couch CMS的cms:editable
附加到常规的html标记对。
像这样:
<div class="header-bg" style="background-image: url('<cms:show header />');"></div>
您只需将style="background-image: url("<cms:show header />");"
附加到主标头容器。
e.g。
<cms:editable name='header' type='image' style='style="background-image: url("<cms:show header />");'/>
在主样式文件中指定其余的CSS。
答案 1 :(得分:0)
您实际上不需要使用&#39;标题&#39;作为一个成熟的模板(因为我不认为它应该通过浏览器使用其URL直接访问)。 相反,它应该被转换为一个片段&#39;然后可以包含在其他模板中。
为此,请创建一个名为&#39; header.html&#39;的文本文件。使用以下内容,然后将此文件放在&#39;摘要中。您的Couch安装文件夹(在您的情况下似乎已重命名为&#39; admin&#39;)。请注意,摘要中不需要<?php require_once('admin/cms.php'); ?>
或<?php COUCH::invoke(); ?>
。
.site-header {
background-image: url("<cms:get_custom_field 'header' masterpage='index.php' />");
background-repeat: no-repeat;
background-position: center;
background-attachment: notdefined;
background-clip: padding-box;
background-size: cover;
background-origin: padding-box;
}
接下来,在您希望包含标题的所有模板中,使用以下语句
<cms:embed 'header.html' />
因此,例如,您的index.php模板现在将变为此 -
<?php require_once('admin/cms.php'); ?>
<cms:template title = 'English Home Page'>
<cms:editable name='header' type='image' />
</cms:template>
<cms:embed 'header.html' />
<?php COUCH::invoke(); ?
希望这有帮助。