Использование тегов MODX внутри @INLINE-чанков pdoTools

Многие знают, что в pdoTools в качестве шаблона вывода можно указывать @INLINE-код, чтобы не создавать лишних сущностей.
[[!pdoResources?
    &tpl=`@INLINE <li>[[+pagetitle]]</li>`
]]

Некоторые знают, что в таких конструкциях нельзя вызывать сниппеты, не работают фильтры ввода-вывода. А в документации про это даже картинка саркастическая есть.

Хочу раскрыть небольшую тайну, как можно это ограничение иногда обойти… Подробности под катом :-Р

Итак, секрет: pdoTools конвертирует двойные фигурные скобки в квадратные. А значит, такой код будет работать как миленький:
[[pdoResources?
    &tpl=`@INLINE <h3><a href="[[+uri]]">[[+pagetitle]]</a> - {{!year}}</h3>
          <p>{{+content:striptags:ellipsis}}</p>`
    &includeContent=`1`
  ]]

Единственное — вложенные обратные кавычки все портят, поэтому фильтры вывода и сниппеты могут вызываться только без параметров.
Илья Уткин
09 декабря 2014, 10:04
modx.pro
15
10 006
+8

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

Григорий Коленько
11 декабря 2014, 02:53
0
This is magic! >:D
    Виталий Киреев
    11 декабря 2014, 07:41
    0
    В принципе, если все параметры вложенных сниппетов запихать в набор параметров и вызывать с ним, получится добавить все, что угодно?
    Только блог для тикета по идее должен быть «Готовые решения».
      Илья Уткин
      11 декабря 2014, 11:05
      0
      Да, наборы параметров, думаю, — это выход.
      Василий Наумкин
      21 декабря 2014, 09:12
      0
      Единственное — вложенные обратные кавычки все портят, поэтому фильтры вывода и сниппеты могут вызываться только без параметров.
      Вообще-то нет.

      У меня всё работает и со вложенными ковычками, только что проверил на последних версиях MODX и pdoTools.
        Илья Уткин
        21 декабря 2014, 14:59
        0
        То есть, вот так все нормально выводит?
        [[pdoResources?
            &tpl=`@INLINE <h3><a href="[[+uri]]">{{+pagetitle:ellipsis=`50`}}</a></h3>
        ]]
        UPD. Даже подсветка синтаксиса споткнулась))
          Василий Наумкин
          21 декабря 2014, 15:10
          0
          Потому что у тебя там ковычки в конце не хватает. А так да, всё работает:
          [[!pdoResources?
          	&parents=`0`
          	&tpl=`@INLINE <p><a href="{{+uri}}">{{+pagetitle:ellipsis=`5`}}</p>`
          ]]
        Андрей
        Андрей
        27 декабря 2014, 01:13
        0
        Здорово! Теперь лишних чанков хоть можно не плодить из-за одного модификатора MODX.
          Алексей
          27 декабря 2014, 07:29
          0
          при таком вызове скорее всего нужно забыть про fastMode?
            Василий Наумкин
            27 декабря 2014, 07:50
            0
            Если ты используешь сложные теги с модификаторами — конечно. Если же нет, то fastMode будет работать как обычно, независимо от типа чанка.
            Роман
            03 сентября 2017, 12:29
            1
            0
            А вот такое уже выводить не хочет. Есть варианты обойти?
            {{+tv.image:phpthumbon=`w=75`}}
              Илья Уткин
              03 сентября 2017, 12:35
              2
              +1
              {$_pls['tv.image'] | phpthumbon : "w=75"}
                Роман
                03 сентября 2017, 15:31
                0
                Спасибо!
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              12