2012-12-12 66 views
3

如何在以下情况下使用Diazo正确填充原始页面中的内容以获取特定标签属性?如何使用Diazo将元素的子元素复制到其他元素的特定属性

一种新的网站骨架有几个meta标签是这样的:

<meta name="Author" content="author" /> 

XPATH为笔者在Plone默认的欢迎页面:

//span[@class='documentAuthor']/a 

XPATH在新的主题作者meta标签骨架:

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

所以我想填充content =“author”就像content =“Admin”fr在原始页面上。

+0

只是要清楚:你生成的HTML应该创建一个meta标签,以找到在Plone的内容每个相应的作者? – romanofski

+0

我会满足于只有一个初学者... – user918176

回答

0

到目前为止,我已经找到了最好的解决办法是:

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

恕我直言,这是最好的解决方案,它的缺点:例如它总是选择第一个匹配项,或者如果不匹配,则创建带有空白内容属性的元标记。 – romanofski

+0

它不会工作。作者与内容有关,收集来自不同作者,搜索页面,登录页面的内容会发生什么......您将在每个地方都有作者。 – toutpt

1

你不应该试图使这项工作。

这是关于商业事情和主题不应该尝试做这种事情。 这取决于页面。你将有很多例外 *搜索页面 *收集 *登录页面 *网站地图

在所有论文的网页它不会使SENS有一个作者元。

所以你应该通过创建一个插件并开发'viewlets'来实现你的目标。

更多的viewlet:http://developer.plone.org/views/viewlets.html

+0

我一直在想这个,你是不正确的。元标记用于辅助搜索引擎和其他应用程序。如果你有通用页面(即集合,登录页面),他们可能会在定制后遇到问题或者一些内容(ish)材料。如果没有元信息指向例如“mycorp.com intranet team”,则无法正确查询该信息。或者,您可以将元字段留空 - 两者都是简单的条件规则。 – user918176

+0

问题是:这些异常是可以预料的,并且比开发Viewlet更容易处理。另外,只有一个作者可能更喜欢,因为内容制作ui指的是拥有主要创作者的逻辑。无论如何,你应该为每个页面提供一些东西,而异常可以通过一个简单的额外规则来处理。 – user918176

+0

我认为toutpt试图说的是,你不应该把这个功能放在主题中,因为它实际上是业务逻辑,并且与演示无关,这实际上是一个公平点。 – romanofski

相关问题