我想更改标准的页面顶部元素,以便我可以设置样式。
<h1 class="documentFirstHeading">My Heading</h1>
是Plone在每个页面上放置此元素的方式。我想添加一行,以便该行显示:
<h1 class="documentFirstHeading"><span>My Heading</span></h1>
很明显,这个代码是由宏生成的 - 但我不知道如何 修改宏以添加我的span标签。有人能指点我吗 适当的Plone文件修改?这会设置一个通用的CSS图像 更换技术,和其他Plone网站经常使用它,正如我所见 在其他Plone网站上,span标记我需要它们的确切位置。
TIA为您提供专业知识!
答案 0 :(得分:2)
它并不重要(动作几乎相同),但我假设您正在创建主题包。我还假设您使用Plone 4.0或更新版本。行动是:
在第20行(不同Plone版本的行号可能不同),您将找到所需的块:
标题
要获取h1中的范围,请将上面代码段中的 tal:replace 替换为 tal:content 。
您可能需要重新启动Plone网站才能看到您的更改。检查你的h1 - 它应该包含你需要的范围。
重要提示!上面的操作将为您提供没有特定模板的每个通用视图,覆盖。对于这些情况,您需要自定义这些特定模板。
答案 1 :(得分:1)
我不是100%肯定(编辑欢迎:-D),我也不确定你想要什么,但我认为你需要自定义页面视图模板。
在Plone 3.x中,模板是/ portal_skins / plone_content / document_view模板,您可能想要更改
<h1 class="documentFirstHeading">
<metal:field use-macro="python:here.widget('title', mode='view')">
Title
</metal:field>
</h1>
到
<h1 class="documentFirstHeading">
<span>
<metal:field use-macro="python:here.widget('title', mode='view')">
Title
</metal:field>
</span>
</h1>
在Plone 4和4.1中,密钥模板是portal_skins / plone_kss / kss_generic_macros。寻找:
<span metal:define-slot="inside"
tal:replace="context/Title">title</span>
并将“替换”更改为“内容”。
答案 2 :(得分:0)
感谢spliter,我现在已经完成了Section页面的样式。正如他所提到的,这些更改还会影响所有没有特定模板覆盖的通用视图。我猜这些是详细信息视图之类的东西,当点击某个特定文章下的特定文章时会出现这种情况。
所以,虽然我的章节页面按预期显示,但当我点击文章时,会发生以下情况:
如果我将span标记之间的文本设置为display:none,则该行为根本不会反映在详细信息页面中,因为跨度未应用于详细信息页面上的h1标记内。
但是,由于我在剖面页面上为h1元素设置了特定的背景图像,因此背景图像显示在详细页面h1上。
如何覆盖详细信息页面的行为? - 也就是说,我不希望在详细页面h1元素上显示背景图像。我需要能够分别在Section和Detail页面上解决h1元素。
对不起我在这里缺乏经验,但是习惯Plone工作的方式似乎是耗费时间的,至少对我而言。
答案 3 :(得分:-1)
如果你想知道我是怎么做到的,我首先看了一下main_template.pt文件并看到:
<metal:title define-slot="content-title">
<metal:comment tal:content="nothing">
If you write a custom title always use
<h1 class="documentFirstHeading"></h1> for it
</metal:comment>
<h1 metal:use-macro="context/kss_generic_macros/macros/generic_title_view">
Generic KSS Title. Is rendered with class="documentFirstHeading".
</h1>
</metal:title>
从那里我只是在皮肤上寻找kss,希望这就是你想要的。