Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Umbraco在xslt中的发布日期_C#_Sql_Xslt_Umbraco - Fatal编程技术网

C# Umbraco在xslt中的发布日期

C# Umbraco在xslt中的发布日期,c#,sql,xslt,umbraco,C#,Sql,Xslt,Umbraco,许多人指出,Umbraco仅将节点createDate和updateDate存储在Umbraco.config中(当您想对Umbraco内容的xslt转换进行编码时) 但我需要能够在xslt转换中显示发布日期 现在,在计算出Umbraco数据库中的cmsContentVersion.VersionDate是节点发布日期,cmdDocument.updateDate是最后更新的日期之后,我可以创建一个触发器,每当发布日期更改时,该触发器都会更改updateDate以匹配发布日期,并使用以下xsl:

许多人指出,Umbraco仅将节点createDate和updateDate存储在Umbraco.config中(当您想对Umbraco内容的xslt转换进行编码时)

但我需要能够在xslt转换中显示发布日期

现在,在计算出Umbraco数据库中的cmsContentVersion.VersionDate是节点发布日期,cmdDocument.updateDate是最后更新的日期之后,我可以创建一个触发器,每当发布日期更改时,该触发器都会更改updateDate以匹配发布日期,并使用以下xsl:

<xsl:value-of select="umbraco.library:FormatDateTime(@updateDate, 'd MMM yyyy hh:mm')"/>

。。。但是如何在xslt中翻译这个C?将xslt重写为ascx宏不是一个选项。

您可以使用xslt扩展。请参见本教程(http://www.nibble.be/?p=60),但我在这里改编了它

  • 将该.NET代码放在程序集中名为Extensions的类中,该程序集将生成并复制到umbraco安装的bin文件夹中。例如,我们将把它放在MyProject.dll中
  • 打开/config/xsltExtensions.config文件
  • 将以下行添加到配置中:

    <ext assembly=”\bin\MyProject” type=”MyProject.Extensions” alias=”MyExtensions”></ext> 
    
    
    
  • 在xslt中,添加对扩展的引用并排除前缀:

    <xsl:stylesheet 
      version=”1.0″ 
      xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” 
      xmlns:msxml=”urn:schemas-microsoft-com:xslt”
      xmlns:umbraco.library=”urn:umbraco.library”
      xmlns:BlogLibrary=”urn:MyExtensions”
      exclude-result-prefixes=”msxml umbraco.library MyExtensions”>
    
    
    
  • 您现在应该能够像使用任何umbraco.library方法一样使用该方法,例如:

     <xsl:value-of select="MyExtensions:ReleaseDate($myNodeId)" />
    
    
    

  • 希望这能有所帮助。

    非常感谢,这适用于发布日期,并公开了一系列其他可能有用的属性。请注意,通过使用文档API,您将在每次获得发布日期时访问数据库,这将影响性能。有关更多详细信息,请参阅。
     <xsl:value-of select="MyExtensions:ReleaseDate($myNodeId)" />