TSVshopLastViews

Здесь выкладываются готовые решения, плагины, модули, сниппеты, аддоны, связанные с TSVshop.
ekcreate
Сообщения: 76
Зарегистрирован: 04 мар 2016, 12:08

TSVshopLastViews

Сообщение ekcreate » 29 мар 2016, 08:02

Добрый день, вы недавно анонсировали TSVshopLastViews
вроде понял как получать id просмотренных товаров
не могли бы вы немного поподробнее описать как его использовать например с ditto или DocLister?

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: TSVshopLastViews

Сообщение admin » 30 мар 2016, 15:39

Да, конечно. Сразу скажу, что вышло обновление сниппета для будущей версии модуля TSVshop 5.4.1, которое до выхода этой версии можно сказать здесь: https://github.com/Serg28/tsvshop/blob/master/install/assets/snippets/TSVshopLastViews.tpl

Приводу здесь описание именно под эту новую версию сниппета.

Документация к сниппету лежит здесь: http://tsvshop.xyz/dokumentacziya/dlya-veb-masterov/snippetyi1/snippet-tsvshoplastviews.html

Разницы нет, с Ditto или DocLister использовать.

Режим вывода просмотренных документов

Для вывода просмотренных товаров в виде списка документов через запятую делается так:

Код: Выделить всё

[!TSVshopLastViews? &templateID=`3,10` &mode=`ids`!]

где &templateID - список ИД шаблонов страницы, к которым применять историю.
&mode=`ids` - (или пусто) режим вывода в виде ИД документов через запятую.

Бывает, что история просмотренных документов выводится в карточке товара (т.е. эту страницу тоже нужно учесть в историю), то &templateID обязателен. Если же история выводится на страницу, которую учитывать не нужно, &templateID указывать не обязательно.

В результате сниппет выведет список просмотренных документов в виде 10,100,5,8 (у которых ИД шаблона соответствует &templateID).
Этот вызов можно вставить в вызов Ditto или DocLister в параметр &documents приблизительно так:

Код: Выделить всё

[[DocLister? &documents=`[!TSVshopLastViews? &mode=`ids`!]`]]


Если вам не хочется делать вот такой вложенный вызов, можно сделать иначе. У TSVshopLastViews есть параметр &toPH. Сначала делаете вызов TSVshopLastViews с параметром &toPH=`1` и результат сниппета будет выводиться в плейсхолдер [+id.output+]. И сразу после этого вызов Ditto или DocLister, указав параметр &documents=`[+id.output+]`. Вот пример:

Код: Выделить всё

[!TSVshopLastViews? &mode=`ids` &toPH=`1`!]
[[DocLister? &documents=`[+id.output+]`]]


И DocLister выведет все просмотренные документы.
Вместо id нужно ставить то, что у вас указано в параметре &id. Напр., если в сниппете TSVshopLastViews указано &id=`news`, то вышеуказанный плейсхолдер будут выглядеть так: [+news.output+]. Если id не указан, то и в плейсхолдере не нужно указывать id, напр., [ +output+ ]

Режим вывода в сформированный по шаблону HTML

Если вы не хотите использовать DocLister или Ditto, можно вывести историю без их помощи. Достаточно в значении параметра &mode указать html, и сниппет выведет документы в окончательно сформированном виде.

Код: Выделить всё

[!TSVshopLastViews? &templateID=`3,10` &mode=`html`!]


Шаблоны (чанки) можно задавать с помощью
* &tpl = имя чанка с контейнером, куда выводится наименования ресурсов
* &itemTpl = имя чанка, выводящего каждое наименование ресурса

По умолчанию шаблон &tpl имеет вид:

Код: Выделить всё

<div class="recent">
             [+count_recent+]
             <ul>[+lines+]</ul>
          </div>

Плейсхолдеры для этого шаблона:
[+id.count_recent+] - выводит кол-во просмотренных ресурсов
[+id.lines+] - вывод сформированного списка просмотренных товаров
[+id.unset+] - ссылка на сброс истории просмотра

Вместо id нужно ставить то, что у вас указано в параметре &id. Напр., если в сниппете указано &id=`news`, то вышеуказанные плейсхолдеры будут выглядеть так: [+news.count_recent+], [+news.lines+] и т.д. Если id не указан, то и в плейсхолдерах не нужно указывать id, напр., [ +count_recent+ ], [ +lines+ ] и т.д.

Шаблон &itemTpl вот такой:

Код: Выделить всё

<li><a target="_blank" href="[~[+itemId+]~]">[+itemPageTitle+]</a></li>

Плейсхолдеры для шаблона &itemTpl
[+itemId+] - ИД ресурса
[+itemPageTitle+] - название ресурса pagetitle

Режим записи страницы в историю без вывода результата

Если нужно записать страницу в историю просмотра, но ничего не выводить в ней, то достаточно сделать так:

Код: Выделить всё

[!TSVshopLastViews? &templateID=`3,10` &mode=`save`!]



Обратите внимание!

Вызов сниппета TSVshopLastViews нужно делать на всех страницах, которые нужно учитывать в историю просмотра, а также там, где нужно выводить эту историю. Страница, где нет вызова сниппета, не будет учитываться в историю. Если на ней не нужно выводить историю, а только учесть ее, нужно указать в вызове сниппет параметр &mode=`save`.


Вернуться в «Готовые решения»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость