UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: sam от 10 Февраля 2017, 18:24:01

Название: Быстрый просмотр товара
Отправлено: sam от 10 Февраля 2017, 18:24:01
Здравствуйте! Хочу сделать быстрый просмотр товаров в разделах и на главной странице. Суть - ссылка "Быстрый просмотр", при нажатии на неё popup, а внутри карточка товара (шаблон из ~/catalog/object-view.xsl), и всё это без ajax. Есть понимание, что надо создать div, скрыть его через css, и через javascript сделать так, чтобы при нажатии этот скрытый div с карточкой товара открылся. Как на практике это реализовать, не знаю?! Может кто поможет?
Название: Re: Быстрый просмотр товара
Отправлено: aghigay от 10 Февраля 2017, 22:36:08
если подключать fancybox то очень просто:
делается ссылка
<a href="#qqq">ссылка на открытие окна</a>
и делается див
<div style="display:none">
<div id="qqq">это содержимое откроется внутри всплывающего окна при нажатии на ссылку</div>
</div>
С остальными всплывашками примерно так же.
Название: Re: Быстрый просмотр товара
Отправлено: sam от 11 Февраля 2017, 12:40:35
Спасибо! Попробую реализовать. Если что, ещё напишу.
Название: Re: Быстрый просмотр товара
Отправлено: sam от 13 Февраля 2017, 10:55:34
Воспользовался Вашим советом, и реализовал аналогичное, но пока без fancybox (отображается div-блок при наведении курсора). Вывожу в этом блоке описание товара (вывожу в ~/modules/catalog/common.xsl, а описание берется из ~/modules/catalog/object-view.xsl). Делаю так:
<div class="quick-view">
Здесь div class="catalog" с названием товара/фото/ценой/наличием/кнопкой купить и т.д. // директива и файл ~/modules/catalog/common.xsl
<div class="quick-view-block">
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:value-of select="$item//property[@name = '&property-description;']/value" disable-output-escaping="yes" />
</div>
</div>

Как вы поняли, этот код вызывает описание:
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:value-of select="$item//property[@name = '&property-description;']/value" disable-output-escaping="yes" />

Аналогичным образом я хочу вывести краткие характеристики товара, вывожу, но получается просто текстом, а не в оформленном виде через css:
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:value-of select="$item//group[@name = '&group-parameter;']" mode="table_short" />

Возникает вопрос - как вывести краткие характеристики товара в оформленном виде (см. вложение), а не просто сплошным текстом?
Название: Re: Быстрый просмотр товара
Отправлено: aghigay от 01 Марта 2017, 12:57:46
xsl:value-of выводит только текстовое содержимое тегов. В вашем случае вам этого недостаточно - нужно писать шаблон для обработки каждого элемента из группы свойств
Название: Re: Быстрый просмотр товара
Отправлено: sam от 02 Марта 2017, 21:37:07
"table_short" из /catalog/object-view.xsl продублировал в /catalog/common.xsl, тоже не помогло. Там расписано, какое свойство показать в кратких характеристиках. Может можно как-то не дублировать это, и вызвать в  /catalog/common.xsl, примерно так, как вызывается какой-то шаблон из контента?
Название: Re: Быстрый просмотр товара
Отправлено: aghigay от 02 Марта 2017, 22:01:50
Возможно можно как-то не дублировать что-то из файла А в файл Б и вызывать это в каком-то месте, но угадать это по звездам у меня сегодня не выходит. Скорее всего потребуется показать что и куда вы дублируете.

Правда после этого, скорее всего, потребуется объяснить зачем вы это делаете. А вот на это у вас видимо объяснений не будет...

Ваше решение сводится к изучению структур и правил работы в XSLT, а не к копированию из одного файла в другой. Но вы все так же пользуетесь методом научного тыка.
Название: Re: Быстрый просмотр товара
Отправлено: sam от 02 Марта 2017, 22:32:15
Цитировать
...потребуется объяснить зачем вы это делаете. А вот на это у вас видимо объяснений не будет...
Всё очень просто - хочу вызвать краткую информацию о товаре в /catalog/common.xsl

А как, может по возможности admin ответит. Спасибо.

Название: Re: Быстрый просмотр товара
Отправлено: sam от 03 Марта 2017, 15:19:46
Получил я то, что хотел (см. вложение), правда css под это ещё надо сделать, но в целом то, что нужно. Вызов в ~/modules/catalog/common.xsl сделал так:
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:apply-templates select="$item//group[@name = '&group-parameter;']" mode="table_short" />
Темплейт "table_short" берётся из ~/modules/catalog/object-view.xsl. Доделывать это всё ещё надо, думаю, сделаю.

За помощь и подсказки благодарю admin (http://umihelp.ru/forum/index.php?action=profile;u=1 (http://umihelp.ru/forum/index.php?action=profile;u=1)) и aghigay (http://umihelp.ru/forum/index.php?action=profile;u=37628)!
Название: Re: Быстрый просмотр товара
Отправлено: aghigay от 04 Марта 2017, 01:09:53
:-)