Umbraco/在 C# 中创建类似 umbraco.Library 的 xslt 扩展
外观
< Umbraco
创建一个新的 xslt 扩展,类似于 C# 中的 umbraco.library。
有时你需要在你的 xslt 中使用更多功能,大多数情况下 umbraco.Library 就足够了。但是,如果这些功能还不够怎么办?
有两种方法可以创建你自己的函数
1. 内联代码。 2. xslt 扩展
我的观点。
内联代码。
内联代码会让我的 xslt 看起来很乱,并且很难复用,但如果你只需要一个函数,它就可以正常工作。关于内联代码的更多信息可以在这里找到 here
xslt 扩展。
另一方面,xslt 扩展看起来更整洁,并且易于重复使用。
一步一步,我将逐步进行
1. 创建一个类库,在我的例子中是“ronnie.library”。
2. 创建你需要的类。在我的例子中是“dateMethods.cs”
3. 创建你需要的函数(请记住,函数必须是公开的和静态的)例如
public static int ugeNummer(DateTime dato) { string res; res = Microsoft.VisualBasic.DateAndTime.DatePart(Microsoft.VisualBasic.DateInterval.WeekOfYear, dato, Microsoft.VisualBasic.FirstDayOfWeek.Monday, Microsoft.VisualBasic.FirstWeekOfYear.System).ToString(); return Int32.Parse(res); }
4. 完成函数创建后,构建并复制 dll 文件(在我的例子中是“ronnie.library.dll”)到 bin 文件夹。
5. 现在你只需要注册你的 xslt 扩展,这在 xsltExtensions.xml 文件中完成(位于 config 文件夹中)。
6. 打开文件并添加以下行。请注意,从 Umbraco 4.5 开始,不再需要 /bin/!
<ext assembly="/bin/ronnie.library" type="ronnie.dateMethods" alias="CoolDateMethods" />
- Assembly
- 在这里输入你放置 dll 文件的位置(不带 .dll 扩展名)
- type
- “.NET_namespace.ClassName” 在这里你需要写命名空间,然后是一个点,以及你要使用的类。
- alias
- 这是你的 xmlns,类似于 umbraco.Library,你可以随意命名。在我的例子中是 CoolDateMethods
7. 最后,但并非最不重要的是,你需要记住在你的 xslt 文档中添加 xmlns;操作方法如下
xmlns:CoolDateMethods ="urn:CoolDateMethods" exclude-result-prefixes="msxml umbraco.library CoolDateMethods
现在你应该可以使用你的新 xslt 扩展了。希望这篇快速又简陋的文章对你有用。
//Ronnie