В MODX 2.3.x изменена логика фильтра вывода toPlaceholder

Возможно, это незначительное изменение, но у некоторых разработчиков может что-то поломаться, как у меня)

Так вот, раньше такой код

[[!snippet:toPlaceholder=`placeholder`]]
[[+placeholder]]

выводил

result
result

То есть, модификатор toPlaceholder не только устанавливал нужный плейсхолдер, но и выводил результат. В официальной документации даже осталось пояснение по этому ПОВОДУ:

Puts the input value into the passed placeholder. Does not prevent the output of the TV value, so add [[*someTV:toPlaceholder=`placeholder`:notempty=``]] if you don't want to output the value of the TV itself.

В версии 2.3.0 и старше добавлена строчка, очищающая $output при использовании этого модификатора, так что теперь код

[[!snippet:toPlaceholder=`placeholder`]]

сам по себе не выводит НИЧЕГО. Будьте внимательны и проверьте, не сломалось ли у вас ничего после обновления.

Чтобы исправить, достаточно добавить вызов нужного плейсхолдера сразу после кода с использованием такого модификатора.

UPD. Кстати, это коснулось не только модификатора toPlaceholder, но и некоторых других: cssToHead, htmlToHead, htmlToBottom, jsToHead, jsToBottom
Илья Уткин
26 августа 2014, 07:59
modx.pro
3
2 468
+5

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

Дмитрий Кондаков
26 августа 2014, 12:20
+1
Спасибо, я даже не знал что такой модификатор существует))
    Алексей Карташов
    26 августа 2014, 16:41
    0
    Раньше, чтобы засунуть результат сниппета в плейсхолдер, без вывода результатов в месте вызова сниппета, приходилось писать вот так:
    [[!snippet:toPlaceholder=`placeholder`:notempty=``]]
    <div class="some-html">...</div>
    [[+placeholder]]
    <div class="some-html">...</div>
    [[+placeholder]]
    , т.е. надо было добавлять :notempty=``. Результат:
    <!-- здесь выведено ничего не будет -->
    <div class="some-html">...</div>
    result
    <div class="some-html">...</div>
    result
    Такое иногда бывает нужно. Так что на версиях 2.2.* имейте в виду такой способ :-)

    А по теме — Илья, спасибо! Буду знать на будущее — когда всё-таки решусь на обновление)
    Ибо пока 2.2.15 стабильна, смысла переходить на 2.3 мало — постоянно появляются новые топики, что где-то что-то отваливается и работает не так, как задумано.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2