用重氮与notheme添加类body标签(Add class to body tag using d

2019-09-20 06:38发布

我使用显示文档的内容以重叠plone/document?ajax_load=True&ajax_include_head=True作为的src iframe中。

在开发模式追加&diazo.off=1的伎俩。 生产服务器这个可悲的是不起作用的,所以我说的ajax_load参数作为中建议plone.app.theming的文档

我裹在我所有的指令<rules if-not="$ajax_load">元素,以确保不会应用它们(见下面的代码)

现在我需要具有一定的阶级,以纪念的iFrame网页的正文应用不同的样式(例如,没有背景色为覆盖身体)

提出了一个解决方案几乎类似的问题 ,如果你使用的是主题与具有类属性上工作的主体元素不只是工作。

有没有办法来添加一个类的内容,而无需一个主题(使用)? 还是我必须为主题,以提供一个空的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" />
    ...

Answer 1:

显然没有主题进行操作,任何规则引用主题不与一起工作<notheme/> 但是,您可以<drop><replace>的内容(我有一个如何实现的想法<before><after>的内容,但其难以实现。也许在重氮。将来的版本),但是可以达到同样的事情使用XSLT少量:

<replace content="/html/body/@class">
    <xsl:attribute name="class"><xsl:value-of select="."/> newclass</xsl:attribute>
</replace>


Answer 2:

如果你正在使用plone.app.jquerytools您的叠加,那么你可以传递类参数:

$('a.myPopover').prepOverlay({
    subtype: 'iframe',
    cssclass: 'my-popover'
});

在我们的一些运用项目plone.app.tiles的,我们使用一个特定的主题模板的覆盖,这是去除了所有不必要的部分,并减少为单个包装的div和使用它,像这样的瓷砖编辑观点:

<theme href="minimal.html" if-path="@@edit-tile" />


文章来源: Add class to body tag using diazo with notheme
标签: plone diazo