Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Поиск по каталогу (поиск товаров/объектов)

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

Ответов: 14
Просмотров: 8582
Последний ответ 26 Января 2015, 12:07:22
от Axiomateria
Изменение количества товара в списке товаров и карточке товара

Автор bepluyРаздел JS и AJAX

Ответов: 2
Просмотров: 2802
Последний ответ 14 Ноября 2015, 13:52:43
от bepluy
Импортировать "Опционные свойтва" товаров в UMIDump из CML 2.0. Хэлп!

Автор Alex_nosРаздел Custom макросы

Ответов: 3
Просмотров: 4633
Последний ответ 09 Февраля 2012, 13:08:00
от admin
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

Автор bosyaРаздел Custom макросы

Ответов: 3
Просмотров: 5500
Последний ответ 18 Мая 2012, 11:08:37
от web-industry
вывод рекомендованных товаров не через выбор из списка (XSLT)

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

Ответов: 22
Просмотров: 13684
Последний ответ 21 Мая 2012, 13:27:35
от shoto

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

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Добрый день. Как мне получить результат рендера только самого блока товаров с ИТОГО в корзине. Т.е. /emarket/basket/ видимо.

Вообщем мне нужно сделать обновление позиций в корзине в случае соблюдения неких условий. Никак не могу понять, как это сделать. При попытке получить через parseTemplate возвращается массив. А мне нужен готовый отрендеренный html код.
« Последнее редактирование: 26 Декабря 2016, 12:47:53 от arbuzzz »

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Видимо вы пытаетесь рендерить udata://emarket/basket/ ?

Тогда рекомендую воспользоваться механизмом transform.

Выглядит это так: http://site.ru/udata/emarket/basket/?transform=/ajax.xsl

При этом ajax.xsl - это шаблон, отвечающий за xslt-преобразование каких-то данных (в вашем случае emarket/basket) в html

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

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Видимо вы пытаетесь рендерить udata://emarket/basket/ ?

Тогда рекомендую воспользоваться механизмом transform.

Выглядит это так: http://site.ru/udata/emarket/basket/?transform=/ajax.xsl

При этом ajax.xsl - это шаблон, отвечающий за xslt-преобразование каких-то данных (в вашем случае emarket/basket) в html

Ну и потом можно результат этого преобразования записать в какое-нибудь место, например в тег.

Я в качестве параметра дал шаблон корзины - ?transform=/modules/emarket/cart.xsl

В ответ получаю ошибку:
<![CDATA[ Failed to open udata:// stream ]]>

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Ну так:
1. шаблон должен существовать
2. шаблон должен обрабатывать данные без ошибок

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

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Ну так:
1. шаблон должен существовать
2. шаблон должен обрабатывать данные без ошибок

Судя по всему вы берете стандартный шаблон, этот шаблон имеет зависимости от других шаблонов и из-за этого есть миллион ошибок.
Если не сложно, не могли бы показать действующий пример или где про это в документации есть. Что-то не я не до конца понимаю, как это должно работать.

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Берете файлик default.xsl в /templates/ШАБЛОН/xslt/default.xsl

Делаете его копию - ajax.xsl

В нем удаляете все variable, param, include

Вместо них вписываете
<xsl:template match="/">
11111
</xsl:template>

Вызываете скрипт через http://site.ru/udata/emarket/basket/?transform=/ajax.xsl

Наслаждаетесь 11111 на экране
Мой блог http://umicms.me

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Берете файлик default.xsl в /templates/ШАБЛОН/xslt/default.xsl

Делаете его копию - ajax.xsl

В нем удаляете все variable, param, include

Вместо них вписываете
<xsl:template match="/">
11111
</xsl:template>

Вызываете скрипт через http://site.ru/udata/emarket/basket/?transform=/ajax.xsl

Наслаждаетесь 11111 на экране

Спасибо за разъяснения. C 1111 получилось. Но при переносе в ajax шаблон текущего шаблона корзины со всякими амперсендами и переменными, без которых ну никак не получается нормально вывести корзины. А если они указаны в шаблоне, то перестают отрабатывать блоки (подвал или блок позиции заказа) где есть спецсимволы. Этот можно можно как-то обойти?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Да, для спецсимволов нужно подключить <!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">
Ну а для всего остального нужно смотреть по факту что именно требуется.
Мой блог http://umicms.me

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Да, для спецсимволов нужно подключить <!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">
Ну а для всего остального нужно смотреть по факту что именно требуется.
Это у меня подключено. Блоки, как я понял, перестают отрабатывать, если встречаются амперсенды и собаки (@). Вообще можно просто проверить подав на вход из того же demodizzy стандартный cart.xsl взяв оттуда только нужны блоки.


*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Пока сам справился. Там оказывается переменная подвисла, которая обычно тянется из базового шаблона. С $user-type. Не заметил сразу.

*

umidev

  • *
  • 8
  • +0/-0
    • Просмотр профиля
Берете файлик default.xsl в /templates/ШАБЛОН/xslt/default.xsl

Делаете его копию - ajax.xsl

В нем удаляете все variable, param, include

Вместо них вписываете
<xsl:template match="/">
11111
</xsl:template>

Вызываете скрипт через http://site.ru/udata/emarket/basket/?transform=/ajax.xsl

Наслаждаетесь 11111 на экране

я извиняюсь, а как подобное сделать с php шаблонизатором?