AjaxSnippet в pdoResources
Создал список новостей с помощью pdoResources. По задумке в каждой новости, есть кнопка — «Подробнее». И с помощью аякса, подгружается вся новость и остальные нужные данные.
Попытался реализовать это с помощью AjaxSnippet. Одна проблема — при клике по кнопке «Подробнее» открывается информация во всех новостях.
В шаблоне pdoresources вызов:
Шаблон more_button.tpl
Как сделать, чтобы подгружалась только нужная новость в списке?
Попытался реализовать это с помощью AjaxSnippet. Одна проблема — при клике по кнопке «Подробнее» открывается информация во всех новостях.
В шаблоне pdoresources вызов:
<div class="clearfix" id="more[[+idx]]"> [[AjaxSnippet?
&snippet=`more`
&input=`[[+introtext]]`
&as_mode=`onclick`
&as_target=`#more[[+idx]]`
&wrapper=`more_button.tpl`
]] </div>
Шаблон more_button.tpl
<span id="[[+key]]" class="more blue left as_trigger">Подробнее V</span>
Как сделать, чтобы подгружалась только нужная новость в списке?
Комментарии: 5
Нашел решение)
В сниппете нужно изменить
и соответственно, класс в шаблоне:
PS: Кстати работает и без указания id="[[+key]]", а вот класс as_trigger вставлять нужно было обязательно
В сниппете нужно изменить
$(document).on("click", ".as_trigger", function(e) {
на:$(document).on("click", ".as_trigger'.$key.'", function(e) {
и соответственно, класс в шаблоне:
as_trigger[[+key]]
PS: Кстати работает и без указания id="[[+key]]", а вот класс as_trigger вставлять нужно было обязательно
Павел, а не могли бы привести полный код Вашей реализации. Мне понадобилось тоже самое, но не могу реализовать.
Проверил только что для последней версии, все работает
1) В сниппете AjaxSnippet нужно изменить
2)Вывод списка:
3)list_news.tpl — Чанк с шаблоном для pdoResources
4)more_button.tpl — Шаблон для кнопки подробнее
1) В сниппете AjaxSnippet нужно изменить
$(document).on("click", ".as_trigger", function(e) {
на:$(document).on("click", ".as_trigger'.$key.'", function(e) {
2)Вывод списка:
[[!pdoPage?
&parents=`1,2`
&depth=`0`
&tpl=`list_news.tpl`
&includeTVs=`image`
&limit=`10`
&hideContainers=`1`
]]
<div class="cleaner"></div>
[[!+page.nav]]
3)list_news.tpl — Чанк с шаблоном для pdoResources
<div class="news">
<span id="more[[+idx]]"><p>[[+introtext]]</p></span>
<div class="about">
[[!AjaxSnippet?
&snippet=`more`
&id=`[[+id]]`
&input=`[[+introtext]]`
&as_mode=`onclick`
&as_target=`#more[[+idx]]`
&wrapper=`more_button.tpl`
]]</div>
</div>
4)more_button.tpl — Шаблон для кнопки подробнее
<a href="[[+uri]]" class=" as_trigger[[+key]]">Подробнее >></a>
Ага, спасибо. А сниппет more можете привести?
more
<?php
$output='';
if($id>0) {
$resource = $modx->getObject('modResource', $id);
$output = $resource->get('content');
}
return $output;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.