跳转到内容

Umbraco/在 C# 中创建类似 umbraco.Library 的 xslt 扩展

来自维基教科书,开放世界中的开放书籍

创建一个新的 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

华夏公益教科书