Результаты одного сниппета в параметрах другого
С ModX только начинаю работать, поэтому есть некоторые непонятности…
Хочу в шаблоне последовательны вызвать 2 сниппета и в один из которых передать результаты другого. А конкретно:
[[!DetectUserRegion]]
[[getResources? &parents=`[[*id]]` &includeContent=`1` &where=`{«pagetitle:LIKE»:"[[!+DetectedRegion]]"}` &debug=`1`]]
Последовательность эта в ModX Revo не работает. Расследование мое показало, что в getResources попадает
$where = '{«pagetitle:LIKE»:"[[!+DetectedRegion]]"}'
Т.е. подстановка плейсхолдера в процессе вызова второго сниппета не происходит (как я подозреваю, плейсхолдеры подставляются в самом конце, при выводе страницы в броузер).
Главный вопрос, можно ли как-нибудь передать параметр во второй сниппет не вызывая его через runSnippet()?
Хочу в шаблоне последовательны вызвать 2 сниппета и в один из которых передать результаты другого. А конкретно:
[[!DetectUserRegion]]
[[getResources? &parents=`[[*id]]` &includeContent=`1` &where=`{«pagetitle:LIKE»:"[[!+DetectedRegion]]"}` &debug=`1`]]
Последовательность эта в ModX Revo не работает. Расследование мое показало, что в getResources попадает
$where = '{«pagetitle:LIKE»:"[[!+DetectedRegion]]"}'
Т.е. подстановка плейсхолдера в процессе вызова второго сниппета не происходит (как я подозреваю, плейсхолдеры подставляются в самом конце, при выводе страницы в броузер).
Главный вопрос, можно ли как-нибудь передать параметр во второй сниппет не вызывая его через runSnippet()?
Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Да и кавычки у вас разные в условии
Еще попробуйте оба сниппета вызывать некешированными
Передать в сниппет не плейсхолдер, а результат другого сниппета напрямую я тоже пробовал — не получается.
Создал специальный сниппет:
<?php
$fl = fopen('/var/tmp/new','w');
fwrite($fl, $param);
fclose($fl);
И передаю туда
? ¶m=`[[!DetectUserRegion]]`
в результате в файл записывается именно [[!DetectUserRegion]], а не результат выполнения.
P.S. В оригинале с кавычками все Ok. Это они при посте поменялись.
Должно быть так:
Ну и в сниппете DetectUserRegion, конечно, должно быть:
Еще не подскажите, случайно, где можно прочитать про порядок подстановки чанков, сниппетов и т.д.? Обыскал рунет, но толком ничего не нашел… :(
СергейВызываю вот так — все работает — почему? Судя из вышеприведенных постов, не должно работать…
сниппет sortPrice:
Вот и работает, хоть и говонокод.
СергейКак максимум, потом подобный стиль приводит к такому (сегодня только в другом месте спрашивали)
Хотя всё это можно засунуть в один свой сниппет, из которого потом выдать
И я это еще не самое страшное, что бывает. Когда смотришь чужой проект и пытаешься вникнуть, что происходит в подобном вызове — голова дымится.
То, что система позволяет что-то делать, не говорит о том, что делать так — хорошо и правильно. Но вообще, лично мне пофиг, удачи в разработке сайтов.
СергейПопутно — а что это за правило — ?
СергейВ шаблоне категории:
Сниппет DetectGet:
СергейСергей