AjaxSnippet в pdoResources

Создал список новостей с помощью pdoResources. По задумке в каждой новости, есть кнопка — «Подробнее». И с помощью аякса, подгружается вся новость и остальные нужные данные.
Попытался реализовать это с помощью 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>

Как сделать, чтобы подгружалась только нужная новость в списке?
Павел
13 июня 2015, 11:13
modx.pro
9
2 095
+2

Комментарии: 5

Павел
13 июня 2015, 15:47
1
0
Нашел решение)

В сниппете нужно изменить
$(document).on("click", ".as_trigger", function(e) {
на:
$(document).on("click", ".as_trigger'.$key.'", function(e) {

и соответственно, класс в шаблоне:
as_trigger[[+key]]

PS: Кстати работает и без указания id="[[+key]]", а вот класс as_trigger вставлять нужно было обязательно
    Андрей
    19 декабря 2015, 23:28
    0
    Павел, а не могли бы привести полный код Вашей реализации. Мне понадобилось тоже самое, но не могу реализовать.
      Павел
      26 декабря 2015, 13:40
      2
      +2
      Проверил только что для последней версии, все работает

      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>
        Андрей
        26 декабря 2015, 15:55
        0
        Ага, спасибо. А сниппет more можете привести?
          Павел
          30 декабря 2015, 13:55
          0
          more
          <?php
          $output='';
          if($id>0) {
          	$resource = $modx->getObject('modResource', $id);
          	$output = $resource->get('content');
          	}
          return $output;
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5