Plone 如何复制元素';将子元素添加到其他元素';带重氮的特殊属性

Plone 如何复制元素';将子元素添加到其他元素';带重氮的特殊属性,plone,diazo,xdv,Plone,Diazo,Xdv,在下面的例子中,如何通过使用重氮来正确填充从原始页面获取内容的特定标记属性 新站点的框架有几个元标记,如下所示: <meta name="Author" content="author" /> 新主题框架中作者元标记的XPATH: /html/head/meta[@name='Author'] 因此,我希望将content=“author”填充为原始页面中的content=“Admin”。到目前为止,我找到的最佳解决方案是: <replace theme="/html/he

在下面的例子中,如何通过使用重氮来正确填充从原始页面获取内容的特定标记属性

新站点的框架有几个元标记,如下所示:

<meta name="Author" content="author" />
新主题框架中作者元标记的XPATH:

/html/head/meta[@name='Author']

因此,我希望将content=“author”填充为原始页面中的content=“Admin”。

到目前为止,我找到的最佳解决方案是:

<replace theme="/html/head/meta[@name='Author']">
 <xsl:variable name="auth" select="//span[@class='documentAuthor']/a" />
 <meta name="Author" content="{$auth}" />
</replace>

您不应该试图让这项工作正常进行

这是关于商业的事情,我们不应该尝试做这种事情。 这取决于页面。你会有很多例外 *搜索页面 *收藏 *登录页面 *网站地图

在所有的论文页面上,有作者是没有意义的

因此,您应该通过创建插件和开发“Viewlet”来实现您的目标


关于viewlet的更多信息:

需要澄清的是:您生成的HTML应该为它在plone内容中找到的每个对应作者创建一个元标记?我只满足于一个作者作为初学者…这是它的回退的最佳解决方案:例如,它总是选择第一个匹配项,或者如果它需要,则创建一个具有空内容属性的元标记不匹配。它不起作用。作者与内容有关,从不同作者、搜索页面、登录页面收集内容会发生什么情况。。。你到处都有作者。我一直在思考这个问题,你是错的。meta标签用于辅助搜索引擎和其他应用程序。如果您有通用页面(即集合、登录页面),则在自定义之后,这些页面可能会出现问题,或者还会出现一些内容(ish)材料。如果没有指向例如“mycorp.com intranet team”的元信息,您就无法正确查询这些信息。或者,您可以将meta字段留空—这两个都是简单的条件规则。要点是:这些异常是可以预料的,并且比开发viewlet容易得多。此外,只有一个作者可能更可取,因为内容生产ui指的是拥有主要创建者的逻辑。在任何情况下,您都应该为每个页面提供一些内容,异常可以通过一个简单的额外规则来处理。我认为toutpt试图说的是,您不应该将此功能放在主题中,因为它实际上是业务逻辑,与表示无关,这实际上是一个公平的观点。它不是业务逻辑。页面已经有作者信息,或者没有。基于此,您可以复制信息或将其从结果页面中删除。实际上并不涉及任何“业务逻辑”。如果这是业务逻辑,那么rules.xml中的所有内容都是业务逻辑,您不应该使用它,而应该使用viewlet来破解所有内容。
<replace theme="/html/head/meta[@name='Author']">
 <xsl:variable name="auth" select="//span[@class='documentAuthor']/a" />
 <meta name="Author" content="{$auth}" />
</replace>