Sitecore XSLHelper.fld Метод не работает должным образом
У меня проблемы с методом XSLHelper.fld. У меня есть очень простой XSLT-файл, который я пытаюсь получить доступ к дополнительным значениям, которые находятся внутри моего элемента изображения Sitecore.
Пример кода:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sc="http://www.sitecore.net/sc"
xmlns:dot="http://www.sitecore.net/dot"
exclude-result-prefixes="dot sc">
<!-- output directives -->
<xsl:output method="html" indent="no" encoding="UTF-8" />
<!-- parameters -->
<xsl:param name="lang" select="'en'"/>
<xsl:param name="id" select="''"/>
<xsl:param name="sc_item"/>
<xsl:param name="sc_currentitem"/>
<!-- variables -->
<!-- Uncomment one of the following lines if you need a "home" variable in you code -->
<!--<xsl:variable name="home" select="sc:item('/sitecore/content/home',.)" />-->
<!--<xsl:variable name="home" select="/*/item[@key='content']/item[@key='home']" />-->
<!--<xsl:variable name="home" select="$sc_currentitem/ancestor-or-self::item[@template='site root']" />-->
<!-- entry point -->
<xsl:template match="*">
<xsl:apply-templates select="$sc_item" mode="main"/>
</xsl:template>
<!--==============================================================-->
<!-- main -->
<!--==============================================================-->
<xsl:template match="*" mode="main">
TEST BACKGROUND IMAGE
<br/>
ALT: <br/>
<xsl:value-of select="sc:fld('background',.,'alt')"/>
<br/>
SRC: <br/>
<xsl:value-of select="sc:fld('background',.,'src')"/>
<br/>
Field SRC: <br/>
<xsl:value-of select="sc:field('background',.,'src')"/>
</xsl:template>
</xsl:stylesheet>
Когда я тестирую следующий код, результаты странные, как видно из следующего скриншота:
Вы можете ясно видеть, что поле alt имеет значение, а поле src пустое. Так что я определенно имею доступ к своему элементу изображения Sitecore, но не могу получить доступ к полю src.....
Может кто-нибудь пролить свет на то, почему поле src пустое?
С Уважением,
Comic Coder
1 ответ
Как я уже говорил в вашем другом вопросе, в исходном значении полей изображения больше нет атрибута src. Атрибут alt существует, если вы измените альтернативный текст в свойствах поля изображения, или он обратится к альт-тексту элемента изображения в библиотеке мультимедиа.
Метод sc:field использует средство визуализации поля для вывода полного <img>
тег. Предполагается, что третий параметр этого метода предназначен для дополнительных параметров, таких как ширина и высота, или для дополнительных атрибутов. Он должен быть отформатирован как строка запроса (например, width=150&height=100
). Вероятно, это просто игнорирование src
значение, которое вы передаете, потому что оно недействительно.