我每周创建2-3个HTML文件,这些文件将通过FTP上传到Web服务器上的文件夹。这些文件只是纯HTML,包含我当地Bridge Club的结果。
在我继续花时间为.Net创建一个“奇特”解决方案之前,我最好先询问Umbraco是否有内置支持。
基本上我想要一个名为Results的主菜单项,该页面应该有一个辅助菜单,其中包含指向特定文件夹中每个.HTML文件的链接
有什么想法吗?
干杯, 斯蒂芬
答案 0 :(得分:2)
首先,请确保将html文件上传的路径放在web.config中的umbracoReservedPaths
应用设置中。
接下来,我将创建一个XSLT extension(或custom function,返回包含每个HTML文件名的XPathNodeIterator
。该方法需要构建一个类似于:
<files>
<file>/htmlfiles/file1.html</file>
<file>/htmlfiles/file2.html</file>
<file>/htmlfiles/file3.html</file>
</files>
然后在XmlDocument上调用CreateNavigator()
并从XSLT扩展方法返回它。使用Directory.GetFiles获取HTML文件名列表,并将其转换为网络就绪网址,例如/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