Есть несколько способов сделать это.
Если сайты используют разные шаблоны, но один и тот же макрос (метод 0):
Добавьте параметр в макрос (в разделе для разработчиков), затем обновите код соответствующим образом.
Шаблон:
<umbraco:Macro Alias="MyMacro" runat="server" MyParam="Hello, world" />
XSLT:
<xsl:value-of select="/macro/MyParam" />
Если сайты используют одинаковый шаблон и макрос (метод 1):
Вы можете использовать библиотеку umbraco для получения имени хоста и выполнения другого кода на основе этого. Создайте узел в разделе контента для каждого из различных сайтов и загрузите туда баннеры, а затем укажите их в XSLT через соответствующие им идентификаторы узлов
XSLT:
<!-- this gets the domain name -->
<xsl:variable name="domainName">
<xsl:value-of select="umbraco.library:RequestServerVariables('HTTP_HOST')" />
</xsl:variable>
<!-- determine which banner to show -->
<xsl:choose>
<xsl:when test="$domainName = 'www.websiteone.com'">
<!-- get the node for website one -->
<xsl:variable name="websiteOneHeaderNodeId" select="1001" />
<xsl:variable name="websiteOneHeaderNode" select="umbraco.library:GetXmlNodeById($websiteOneHeaderNodeId)" />
<!-- display the banner for website one -->
<img src="{$websiteOneHeaderNode/banner}" />
</xsl:when>
<xsl:when test="$domainName = 'www.websitetwo.com'">
<!-- get the node for website two -->
<xsl:variable name="websiteTwoHeaderNodeId" select="1002" />
<xsl:variable name="websiteTwoHeaderNode" select="umbraco.library:GetXmlNodeById($websiteTwoHeaderNodeId)" />
<!-- display the banner for website two -->
<img src="{$websiteTwoHeaderNode/banner}" />
</xsl:when>
<xsl:otherwise>
<!-- display the default banner -->
<img src="/media/1001/defaultBanner.jpg" />
</xsl:otherwise>
</xsl:choose>
Если сайты используют один и тот же шаблон и макрос (метод 2):
Этот способ немного чище и использует то, для чего подходит Umbraco. Я бы порекомендовал добавить свойство к типу документа, который представляет корневой узел каждого из сайтов. Допустим, псевдоним этого типа документа равен Site
, а псевдоним свойства - bannerUrl
. Затем вы можете загрузить свой баннер на каждый узел содержимого Site
и затем получить к нему доступ в XSLT. В зависимости от того, какую страницу пользователь просматривает в данный момент, даже подстраницы с различными типами документов (и при условии, что в нем есть ваш макрос), следующий XSLT найдет соответствующий bannerUrl
в зависимости от того, под каким Site
узлом он находится.
XSLT:
<xsl:value-of select="$currentPage/ancestor-or-self::Site/bannerUrl" />