我有2-3 HTML文件每周创建,将通过FTP上传到web服务器上的文件夹。这些文件只是普通的HTML,有我当地的桥牌俱乐部的结果。
在我花时间在.Net中为此创建一个“奇特”的解决方案之前,我最好先问问Umbraco中是否有对此的内置支持。
基本上,我希望有一个名为Results的主菜单项,该页面应该有一个二级菜单,其中包含指向特定文件夹中每个.HTML文件的链接
有什么想法吗?
干杯,斯特凡
发布于 2011-09-01 01:38:53
首先,确保将html文件上传到的路径放在web.config中的umbracoReservedPaths应用程序设置中。
接下来,我将创建一个XSLT extension (或custom function,它返回一个包含每个超文本标记语言文件名的XPathNodeIterator。该方法将需要构建如下所示的XmlDocument:
<files>
<file>/htmlfiles/file1.html</file>
<file>/htmlfiles/file2.html</file>
<file>/htmlfiles/file3.html</file>
</files>然后在XmlDocument上调用CreateNavigator()并从XSLT扩展方法返回它。使用Directory.GetFiles获取超文本标记语言文件名列表,并将其转换为可用于web的网址,如/htmlfiles/file1.html。
然后用一个简单的XSLT宏显示所有结果,该宏在for-each中迭代XSLT扩展的结果。它看起来像这样:
<xsl:for-each select="customExtensions:GetFiles()//file">
<a>
<xsl:attribute name="href">
<xsl:value-of select="." />
</xsl:attribute>
<xsl:text>File #</xsl:text>
<xsl:value-of select="position()" />
</a>
</xsl:for-each>这将生成如下列表
File #1
File #2
File #3它们都链接到xml中各自的值。
扩展方法的一个很好的例子是here
https://stackoverflow.com/questions/7255491
复制相似问题