Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Шаблон отображения списка категорий (магазин "Современный")

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3069
Последний ответ 03 Июля 2012, 15:22:23
от manadsgn
Шаблон для вывода новостей с 3 разными блоками

Автор koroganРаздел Шаблоны TPL

Ответов: 3
Просмотров: 3312
Последний ответ 01 Октября 2011, 03:05:48
от admin
Добавление атрибута ALT в шаблон catalog-thumbnail

Автор KTIРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 6188
Последний ответ 17 Октября 2012, 10:36:32
от admin
Шаблон вывода редактирования типа данных

Автор crazygeorgioРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2414
Последний ответ 29 Мая 2013, 21:28:33
от crazygeorgio
Перенаправление зарегистрированного пользователя на другой шаблон

Автор NOIRMANРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 2388
Последний ответ 01 Апреля 2014, 14:19:18
от ilyar

0 Пользователей и 1 Гость просматривают эту тему.

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Почему не отрабатывает шаблон?
« : 05 Марта 2017, 15:16:07 »
Добрый день. Пытаюсь вывести самодельный слайдер.

http://domainname.ru/udata://content/bannerSlider/791

выводит следующее

<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="content" method="bannerSlider" generation-time="0.004760">
<items>
<item id="792" link="/dostavka_i_oplata/" image="/images/cms/banners/dostavka.jpg"/>
</items>
</udata>

В шаблоне пишу:
<xsl:apply-templates select="document(concat('udata://content/bannerSlider/',791,'/'))" mode="bannerSlider" />

В подключаемом файле slider.xls прописано:
    <xsl:template match="result[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">
        <div class="carousel">
            <xsl:apply-templates select="//items/item" mode="bannerSlide"/>
            <a class="left carousel-control" id="big_prev"></a>
            <a class="right carousel-control" id="big_next"></a>
        </div>
    </xsl:template>
   
    <xsl:template match="item" mode="bannerSlide">
        <div class="carousel-inner">
            <div class="item from_tan">
                <a href="{@link}" umi:field-name="name" umi:field-type="string" umi:empty="&empty-name;" umi:url-attribute="href">
                    <img src="{@image}" height="453" width="940" href="#" />
                </a>
            </div>
        </div>
    </xsl:template>

Да и даже если после
<xsl:apply-templates select="document(concat('udata://content/bannerSlider/',791,'/'))" mode="bannerSlider" />

сразу пишу
<xsl:template match="result[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">11111111</xsl:template>
то все равно ничего не выводится. Что я делаю не так, поясните.

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Почему не отрабатывает шаблон?
« Ответ #1 : 05 Марта 2017, 15:33:37 »
http://domainname.ru/udata://content/bannerSlider/791 выводит udata а не result

А вы у себя проверяете
 <xsl:template match="result[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">

Надо как минимум проверять
 <xsl:template match="udata[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">

А еще лучше проверять просто
 <xsl:template match="udata" mode="bannerSlider">

Ибо если вы переназовёте свою функцию или отправите её в другой модуль - ваш функционал отключится. А в случае проверки на udata без доп свойств - нет.
Мой блог http://umicms.me

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re: Почему не отрабатывает шаблон?
« Ответ #2 : 05 Марта 2017, 15:50:59 »
http://domainname.ru/udata://content/bannerSlider/791 выводит udata а не result

А вы у себя проверяете
 <xsl:template match="result[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">

Надо как минимум проверять
 <xsl:template match="udata[@module = 'content'][@method = 'bannerSlider']" mode="bannerSlider">

А еще лучше проверять просто
 <xsl:template match="udata" mode="bannerSlider">

Ибо если вы переназовёте свою функцию или отправите её в другой модуль - ваш функционал отключится. А в случае проверки на udata без доп свойств - нет.

Спасибо Вам большое, все получилось. Все такие xslt выше моего понимания. Это какая-то ерунда, а не язык.

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Почему не отрабатывает шаблон?
« Ответ #3 : 05 Марта 2017, 15:55:44 »
Ибо это не язык - это правила. Вы пишите правила как обрабатывать данные. Ничего другого XSLT не делает. И тут нет никакой магии.

Нужно немного отойти от процедурных пониманий языка программирования и тогда все встанет на свои места. Безусловно, это другой, более высокий уровень квалификации и не каждый его осваивает.
Мой блог http://umicms.me

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re: Почему не отрабатывает шаблон?
« Ответ #4 : 05 Марта 2017, 16:13:24 »
Ибо это не язык - это правила. Вы пишите правила как обрабатывать данные. Ничего другого XSLT не делает. И тут нет никакой магии.

Нужно немного отойти от процедурных пониманий языка программирования и тогда все встанет на свои места. Безусловно, это другой, более высокий уровень квалификации и не каждый его осваивает.
Мне кажется это не вопрос уровня квалификации. Это вообще какая-то отдельная кухня. Что-то вроде css и jquery. Теплое и мягкое.
Т.е. для меня нет проблемы написать, какой-то свой класс на php, к примеру. Сейчас я, например, хочу изучить java и пока смотрю курс лекций. Проблем с пониманием услышанного у меня нет.

Но вот этот xslt у меня вызывает какое-то раздражение. Какой-то черный ящик, честное слово. Никогда не знаешь что где кто подключил, какие правила перекроют то, что ты пытаешься писать, полное непонимание, как все это отлаживать и отслеживать. У меня сейчас пришел сайт. Тот, кто его верстал налепил какое-то нагромождение  конструкций <xsl:if /> которыми разрулил подгрузку разным шаблонов. разбираться в этой вермишели - сущее мучение.