Передача значения в сниппет

188
28 сентября 2021, 13:20

sgController(DocLister) — в шаблоне элемента вызываю самописный сниппет с параметром

[[library_prev? &v='[+introtext+]']]

сам код сниппета

<?php
$replText = $v;
echo mb_strimwidth("$replText", 0, 10, "...");

Но в результате получаю пустоту либо просто вывод introtext если писать

echo $v;

Почему значение не приравнивается к строке или что-то есть ещё?

Вызыв сниппета:

[[sgController? 
    &sgOrderBy=`sg_id DESC`
    &thumbSnippet=`phpthumb &thumbOptions=w=200&h=350&zc=1`
    &tpl=`@CODE: <div class="col-4"> <h3>[+pagetitle+]</h3> [+images+] <p>[[library_prev? &v='[+introtext+]']]</p> </div>`
    &sgOuterTpl=`@CODE:[+wrapper+]`
    &sgRowTpl=`@CODE:<img src="[+thumb.sg_image+]" class="img-thumbnail" alt="[+e.sg_title+]" title="[+e.sg_description+]">`
    &sgDisplay=`1`
]]
Answer 1

Сниппет library_prev вызывается, в вашем случае, со значением аргумента равным [+introtext+], т.к. интерполяция значений плейсхлдеров (и специальных тегов текущего документа), в генерируемой странице, происходит на более позднем этапе.

Ваш сниппет будет возвращать результат - строку со значением [+introtex, которую вы и будете видеть в результатах работы DocLister.

Вам нужно, внутри вашего сниппета, получать значение плейсхолдера introtext c использованием MODx API.

Ваш сниппет я бы переписал так:

<?php
$replText = $modx->getPlaceholder($v);
return mb_strimwidth($replText, 0, 10, "...");

И вызывал бы так: [[library_prev? &v='introtext']]

READ ALSO
не выполняется скрипт через exec

не выполняется скрипт через exec

у меня есть скрипт (aphp) в котором параллельно запускается другой (b

102
Получения всех методов класс

Получения всех методов класс

Получаю через Reflection все публичные методы определенного классаНо он вытягивает методы и из классов наследников, как мне сделать что бы получал...

88
Отладка работы CMS (Apache)

Отладка работы CMS (Apache)

В общем у меня такая проблема: Мне нужно развернуть сервер (LAMP) с CMS

108
электронная подписть php с#

электронная подписть php с#

У меня есть сервер на php и клиент на c# ( unity )На сервере( рhp ), нужно зашифровать строку с помощью приватного ключа так, чтобы на клиенте( c# ) можно...

101