AjaxSnippet и HitsPage (REVO)
Здравствуйте. Вопрос вот в чем:
На странице в боковой колонке был реализован вызов getResources для отображения списка самых просматриваемых тем. Решил выводить через AjaxSnippet, но после выполнения сниппета не отрабатывает {%hp-[[+id]]%}. Вернее не отрабатывает сниппет HPCount, так как пользователю выводится {%hp-123%}. Вероятно нет инициализации HPCount вызываемом в футере. Может кто посоветует как выйти из этой ситуации?
На странице в боковой колонке был реализован вызов getResources для отображения списка самых просматриваемых тем. Решил выводить через AjaxSnippet, но после выполнения сниппета не отрабатывает {%hp-[[+id]]%}. Вернее не отрабатывает сниппет HPCount, так как пользователю выводится {%hp-123%}. Вероятно нет инициализации HPCount вызываемом в футере. Может кто посоветует как выйти из этой ситуации?
[[AjaxSnippet?
&snippet=`getResources`
&parents=`.....`
&tpl=`rating-lst`
&showHidden=`0`
&includeTVs=`LikeDislike`
&tvPrefix=``
&sortbyTVType=`integer`
&sortbyTV=`LikeDislike`
&limit=`5`
&as_mode=`onload`
]]чанк rating-lst.... Просмотров: {%hp-[[+id]]%} ..... Комментарии: 42
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
А вызывать такНе проверял. Может нужно пилить. Только я не знаю, AjaxSnippet отработает плейсхолдер или нет, нужно пробовать.
Можно все сделать в одном сниппете. Если есть желание, то сам.
Что тут можно сделать? Отредактировать плагин (а лучше скопировать под своим именем, чтоб при обновлении не затерлось) и внести перед строчкой в плагине AjaxSnippet'а
вот этот код
Решение, конечно, не очень красивое, но должно работать.
а в чем проблема?
и ничего не нужно менять…
Интересно, почему авторы HitsPage не предложили такое простое решение.
то есть
Такую портянку написали… Было бы из за чего…
Я уж молчу про продвинутую технику:
Мне еще учиться и учиться.
Очень трудно написать плагин-обертку, который сначала вызовет HitsPage, а потом вернет ответ от get(pdo)Resources?
Вызов:
Сниппет MySnippetWrapper:
HitsPage я в глаза не видел, но по идее он должен выставить плейсхолдеры которые уже отработают в чанках pdoResources. Таким образом можно готовить информацию на вывод как угодно в своем сниппете.
Я себе в шпаргалку записал твой код. Пригодится. :)
То есть, вручную заменяем нужный плейсхолдер числом от HitsPage.
Если он должен выводить своё число для каждого ресурса — почему его нельзя вызвать прямо в чанке pdoResources?!
Народ так все галереи ресурсов, например, выводит на одной странице — просто вызывают в чанке
Я уж молчу про join таблицы HitsPage к ресурсу, чтобы вообще лишний раз сниппет не гонять.
Число просмотров пишется в таблицу ресурсов в поле properties.
П.С. Вот у ребят как описано hitspage
А вот плагин.
Нафига нужен плейхолдер и плагин, если сниппет отдаёт готовое число?! Вызываешь сниппет в чанке — он выводит число и оно возвращается в оформлении pdoResources.
А судя по этому комменту вообще нифига не нужно, потому что число хранится в поле ресурса, доступному по плейсхолдеру
Просто указываешь этот плейсхолдер в чанке pdoResources для документа и там будет значение.
В конце концов, вызовите pdoResources вообще без чанков и он распечатает весь ресурс — будет видно, откуда что брать.
Я тоже не понимаю для чего ребята из Artdevue это сделали (я ссылку на руководство давал в предыдущем комменте). Я тоже считаю, что проще было бы указать Но автор этого топика написал, что в ajax так не работает. Хотя должен по логике.
При обычном выводе через pdoResources данные уходят в кеш и не обновляются. Через AjaxSnippet отрабатывает корректно.
P.S. А если указать с восклицательным знаком, то кэшироваться не должно