【发布时间】:2011-06-21 14:15:21
【问题描述】:
各种 Umbraco references 指出 Umbraco 仅将节点 createDate 和 updateDate 存储在 umbraco.config 中(当您想要编写 Umbraco 内容的 xslt 转换时)。
但我需要能够在 xslt 转换中显示发布日期。
现在在 Umbraco 数据库中计算出 cmsContentVersion.VersionDate 是节点发布日期并且 cmdDocument.updateDate 是最后更新日期之后,我可以创建一个触发器,每当发布日期发生变化时,我可以创建一个触发器来更改更新日期以匹配发布日期,并且使用以下 xsl:
<xsl:value-of select="umbraco.library:FormatDateTime(@updateDate, 'd MMM yyyy hh:mm')"/>
但理想情况下,我不想更改核心 Umbraco 表定义。
我发现this reference 建议扩展节点文档以在 C# 中公开发布日期,使用:
public static string ReleaseDate(int nodeId) {
Document d = new Document(nodeId);
return d.ReleaseDate.ToString();
}
...但是如何在 xslt 中翻译 C#?将 xslt 重写为 ascx 宏不是一种选择。
【问题讨论】:
-
请注意,通过使用文档 API,您每次获得发布日期时都会访问数据库,这会影响性能。有关详细信息,请参阅Difference between a node and a document。