В системе управления контентом modx есть свои плюсы и минусы. Например, использования php-кода возможно только через сниппеты. В чанках только html-код. Кому-то это не очень удобно, некоторые считают такой подход идеальным решением, чтобы не путаться в коде. Вот и у меня возникла задача вывести в чанке определенные данные, обработанные перед этим php-кодом.
Как создать свой сниппет modx
Прямо в чанке, как я уже писал, php-код вызвать нельзя. Поэтому создаем сниппет. Для этого зайдите в админку modx, и нажмите Создать новый сниппет (на «плюс» или правой кнопкой мыши).
Дальше напишите php-код.
Как получить дополнительные поля tv modx в сниппете
Я находил несколько решений в интернете. Некоторые советовали получать сначала ИД документа, потом вызывать дополнительные поля, тоже по ИД. Но самый удачливым решением для меня был следующий код:
1 | $url = $modx->resource->getTVValue('urlfromtv'); |
который при вызове чанка/сниппета автоматически передавал данные этого доп.поля документа в переменную. Тут не нужно было получать ИД страницы, а значение доп.поля можно получить по его имени (urlfromtv). Весь мой код выглядел примерно вот так:
1 2 3 4 | <?php $url = $modx->resource->getTVValue('urlfromtv'); $link2=explode("/", $url); print_r(" (проверить на <a href='http://bdseo.ru/monitor/".$link2[2]."' target='_blank'>AllHyipMon</a>)"); |
Я получал данные в переменную url, дальше разделял через explode строку в переменной link2 и выводил данные (в примере, домен сайта) link2[2] (третий элемент в массиве после разделителя explode).
Вызов сниппета в чанке modx
После этого не забудьте вызвать в чанке сниппет. Делается это просто:
1 | [[!allhyipmon?]] |
У меня данные выводились на страницы через отдельный шаблон. Если Вам нужно на одной странице просто вывести сниппет, то вызывайте сразу сниппет.
Интересно было почитать