Plone 使用diazo和notheme将类添加到body标记
我正在使用Plone 使用diazo和notheme将类添加到body标记,plone,diazo,Plone,Diazo,我正在使用 plone/document?ajax\u load=True&ajax\u include\u head=True作为iframe的src 在开发模式中,追加&diazo.off=1完成了这项任务。 遗憾的是,在生产服务器上,这不起作用,所以我添加了 ajax\u加载参数,如 我将所有指令包装在元素中,以确保它们未被应用(请参见下面的代码) 现在,我需要用特定的类标记iframed页面的主体,以应用不同的样式(例如,覆盖中的主体没有背景色) 建议的解决方案只有在使用主题和具有类属性
plone/document?ajax\u load=True&ajax\u include\u head=True
作为iframe的src
在开发模式中,追加&diazo.off=1
完成了这项任务。
遗憾的是,在生产服务器上,这不起作用,所以我添加了
ajax\u加载参数,如
我将所有指令包装在
元素中,以确保它们未被应用(请参见下面的代码)
现在,我需要用特定的类标记iframed页面的主体,以应用不同的样式(例如,覆盖中的主体没有背景色)
建议的解决方案只有在使用主题和具有类属性的body元素时才起作用
有没有一种方法可以在没有主题的情况下向内容中添加类(使用)?
或者我必须提供一个空的html文档(index2.html)作为主题,并应用大量规则在css/js等上复制两次
<rules if="$ajax_load">
<!-- theme href="index.html" /-->
<notheme />
<!-- only works when using a theme -->
<before theme-children="/html/body"><xsl:attribute name="class"><xsl:value-of select="/html/body/@class"/> my class</xsl:attribute></before>
<!-- thought this could to the trick but does not work at all -->
<xsl:template match="html/body">
<xsl:attribute name="class"> foo</xsl:attribute>
</xsl:template>
</rules>
<rules if-not="$ajax_load">
<theme href="index.html" />
<replace content="/html/head/title" theme="/html/head/title" />
...
我的班级
福
...
如果您对覆盖图使用plone.app.jquerytools,则可以传递一个类参数:
$('a.myPopover').prepOverlay({
subtype: 'iframe',
cssclass: 'my-popover'
});
在我们使用plone.app.tiles的一些项目中,我们为覆盖层使用了一个特定的主题模板,该模板去掉了所有不必要的部分,并简化为一个包装div,并将其用于tile edit视图,如下所示:
<theme href="minimal.html" if-path="@@edit-tile" />
显然,如果没有可操作的主题,任何引用主题的规则都不能与
一起使用。但是,您可以使用
和
内容(我对如何实现
和
内容有一些想法,但很难实现。可能在将来的Diazo版本中)。但是,您可以使用少量xslt实现同样的功能:
<replace content="/html/body/@class">
<xsl:attribute name="class"><xsl:value-of select="."/> newclass</xsl:attribute>
</replace>
新阶级
谢谢克里斯托夫。css类应用于保存覆盖的div,因此它无助于在iframe覆盖中设置主体的样式。感谢laurence的澄清。我不知道你提出的解决方案前后都需要一个主题(diazo及其文档隐藏了这些实现细节),但实际上内容体的css类没有被复制。结果body元素上的唯一类是newclass。请尝试使用
而不是
。