Парсинг параметров снипета при вызове через Fenom
Добрый день.
Вопрос — ранее когда я вызывал сниппеты в формате
Вызываю сниппет в синтаксисе Fenom
Ну и немного живого кода, может в нем ошибка.
Вот такой вызов вывода товаров
Перед запуском этого сниппета запускаю сниппет
Вопрос — ранее когда я вызывал сниппеты в формате
[[snippet? ¶metr=`text`]]
то вместо параметра можно было вставить плейсхолдер или сниппет, который возвращал строку.Вызываю сниппет в синтаксисе Fenom
{$_modx->runSnippet('snippet',[
'parametr' => 'text'
])}
И теперь вместо значения параметра text не могу использовать сниппет или плейсхолдер. Получаю ошибку на странице. Странно, потому что к полям ресурса достучаться можно через {5 | resource: «pagetitle»} к примеру, а значит параметры все таки парсятся. Вобщем видимо какой-то тонкости я не понимаю.Ну и немного живого кода, может в нем ошибка.
Вот такой вызов вывода товаров
{$_modx->runSnippet('mypdoPage',[
'tpl' => 'oneProduct.tpl'
'element' => 'msProducts',
'limit' => 15,
'sortby' => '',
'sortdir' => 'DESC',
'includeTVs' => 'backImage, rating',
'tplPageWrapper'=>'@INLINE <ul class="pagination">{$prev}{$pages}{$next}</ul>',
'tplPage' => 'oneCrumb.tpl',
'tplPageActive' => 'oneCrumbActive.tpl',
'leftJoin' => '{
"localizator" : {
"class" : "localizatorContent",
"alias" : "localizator",
"on" : "localizator.resource_id = msProduct.id"
}
}',
'select' => '{ "localizator" : "msProduct.*, localizator.*, msProduct.id" }',
'where' => '{ "localizator.key" : "' ~ ('localizator_key' | option) ~ '"}'
])}
Сейчас поле sortby пусто и все работает отлично, если впишу руками какое то поле для сортировки тоже все ок. Но я хочу чтобы значение этого поля получало свои данные из get запроса.Перед запуском этого сниппета запускаю сниппет
{$_modx->runSnippet('sortItName.php')}
А вот его код<?php
$request=$_GET['sortby'];
switch($request) {
case "price":
$modx->setPlaceholder('sort', 'Data.price');
// return("Data.price");
break;
case "rating":
return("rating");
break;
default:
return("{\"menuindex\":\"DESC\"}");
break;
}
Здесь два варианта как возвратить данные. Ранее возвращал просто строку (когда использовал не fenom) а сниппет вызывал как значение параметра. Теперь не работает. Решил попробовать выставлять плейсхолдер, а его уже вызывать как значение параметра. Но оба эти вариант прекрасно выводят нужную мне строку на страницу, но если вызвать их как значение параметра внутри сниппета на Fenom — ошибка{$_modx->getPlaceholder('sort')}
[[+sort]]
Спасибо. Комментарии: 3
{$_modx->runSnippet('mypdoPage',[
'tpl' => 'oneProduct.tpl'
'element' => 'msProducts',
'limit' => 15,
'sortby' => $_modx->runSnippet('sortItName.php'),
...
}
так и делаю изначально.
Ошибка парсинга.
Я начинаю думать что это связано с тем что в последнем обновлении pdoTools Василилй игрался с регулярными выражениями.
Ошибка парсинга.
Я начинаю думать что это связано с тем что в последнем обновлении pdoTools Василилй игрался с регулярными выражениями.
Нет, простите Илья и заочно Василий, я не обратил внимание что Вы вызываете без скобок.
Спасибо, работает.
Спасибо, работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.