UMI.CMS — добавление выбора опций в шаблон xsl — пустая страница?

Добрый день, вопрос по UMI.CMS.

Подскажите, пожалуйста, при добавлении вывода доп. опций в шаблон товара, выходит просто белая страница. Добавляю в object-view.xsl код, отвечающий за вывод дополнительных параметров товара как размер, цвет, количество, выходит пустая страница, сам код параметров из файла popup-add-options.xsl.

Основная задача состоит в том, чтобы вывести список параметров товара не в выпадающем окне при нажатии на кнопку Добавить в корзину, а на самой странице подробного описания товара с фото. Где после выбора, например, размера, покупатель добавляет товар в корзину.

Работаю с UMI впервые, документацию изучаю, но вот с этим вопросом возникли сложности. Дело в том, что доп. параметры выводятся в модальном окне, пытаюсь вставить код в шаблон и здесь все начинается :). Ставлю примерные варианты типа - работает без ошибок, беру код для вывода опциональных параметров:

<xsl:template match="/">
    <form class="options" action="/emarket/basket/put/element/{udata/page/@id}/">
      <xsl:apply-templates select="//group[@name = 'catalog_option_props']/property" />
      <input type="submit" class="button" value="Добавить"/>
    </form>
  </xsl:template>

  <xsl:template match="property">
    <table>
      <thead>
        <tr>
          <th colspan="3" align="left">
            <xsl:value-of select="concat(title, ':')" />
          </th>
        </tr>
      </thead>
      <tbody>
        <xsl:apply-templates select="value/option" />
      </tbody>
    </table>
  </xsl:template>

  <xsl:template match="option">
    <tr class="param_{object/@id}">
      <td style="width:20px;">
        <input type="radio" name="options[{../../@name}]" value="{object/@id}" id="{generate-id()}">
          <xsl:if test="position() = 1">
            <xsl:attribute name="checked">
              <xsl:text>checked</xsl:text>
            </xsl:attribute>
          </xsl:if>
        </input>
      </td>
      <td>
        <label for="{generate-id()}">
          <xsl:value-of select="object/@name" />
        </label>
      </td>
      <td align="right">
        <label for="{generate-id()}">
          <p class="price"><span class="sum"><xsl:value-of select="@float" /> </span><span class="suffix">p</span></p>

          <div class="add_amount">
            <img class="minus" src="/templates/public/images/minus_amount.png"/>
            <input id="amount_{@id}" class="amount" type="text" name="amount" value="1" maxlength="3"/>
            <img class="plus" src="/templates/public/images/plus_amoun.png" />
          </div>
        </label>
      </td>
    </tr>
  </xsl:template>


Большое спасибо за подсказки!
  • Вопрос задан
  • 908 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ilyarsoftware
Причина пустая страницы при работе с XSLT-шаблонизатором может говорить о наличии в шаблоне ошибки. Включите режим отображения ошибок (config.ini):

[debug]
enabled = "1"
show-backtrace = "1"


Вместо пустой страницы, будут отображаться сообщения вида:

Warning: DOMDocument::load(): Specification mandate value for attribute checked in /umi/xsltTpls/default.xsl


Из этого сообщения буде стразу понятно где проблема.

Еще может быть полезен шаблон debug.xsl:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <!-- debug tools -->
  <xsl:template match="*" mode="debug">
    <textarea>
      <xsl:copy-of select="*"/>
    </textarea>
  </xsl:template>

</xsl:stylesheet>


Его надо подключить в ваши шаблоны <xsl:include href="debug.xsl"/> и использовать в любом xsl:apply-templates добавляя mode="debug" например так:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="property">
    <xsl:apply-templates select="value/option" mode="debug" />
  </xsl:template>

</xsl:stylesheet>


В результате будет видно содержание XML-дерева для которой применяется шаблон, это может быть полезным для правильного построения XPath используемый select или match шаблонов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы