Позвольте мне добавить еще один ответ с полным примером одного из моих расширений.Класс Embed.cs:
using System.Web;
using umbraco.BusinessLogic;
namespace Omega.XsltExtensions
{
public class Embed
{
public static void LogEmbed(int nodeId)
{
Log.Add(LogTypes.Open, new User(0), nodeId, "Embedded pano, referer: " + HttpContext.Current.Request.UrlReferrer);
}
}
}
Он создается как Omega.XsltExtensions.dll и копируется в каталог / bin Умбрако.
В моем xsltExtensions.config я добавил:
<ext assembly="/bin/Omega.XsltExtensions" type="Omega.XsltExtensions.Embed" alias="Ext.Embed" />
Пустой XSLT-файл, использующий это расширение, выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<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:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
xmlns:Ext.Embed="urn:Ext.Embed"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets Ext.Embed ">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:value-of select="Ext.Embed:LogEmbed($currentPage/@id)"/>
</xsl:template>
</xsl:stylesheet>
Надеемся, что вы можете заметить любые упущения в своей версии при сравнении с этой.