Фильтрация по TV в Tickets
Делаю форму для фильтрации тикетов по TV:
Возможно, горожу велосипед и есть нормальное готовое решение?
&where=`{"tvname":"[[!snippet]]"}`
Сниппет:<?php
$tvname = $_POST['tvname'];
return $tvname;
Когда значение TV приходит непустым, то фильтрация работает. Когда пусто, то результатов нет — это логично. Но как сделать, чтобы «если значение TV пустое, то не делать фильтрацию по этой TV»?Возможно, горожу велосипед и есть нормальное готовое решение?
Комментарии: 1
Если используется fenom, то можно так
Если fenom не используется, то можно создать сниппет обертку и в нем уже проверять есть ли в POST tvname или нет, принцип тот же
Сам сниппет
Вызывать на странице так
{set $snippetParams = [
'param_1' => 'param_value' // и т.д. все параметры вызова сниппета
]}
{set $tvname = $.post['tvname']}
{if $tvname?}
{$snippetParams['where'] = '{"tvname":"'~$tvname~'"}'}
{/if}
{$_modx->runSnippet('snippetName', $snippetParams)}
Если fenom не используется, то можно создать сниппет обертку и в нем уже проверять есть ли в POST tvname или нет, принцип тот же
Сам сниппет
$snippetParams = $scriptProperties;
if (!empty($_POST['tvname'])) {
$snippetParams['where'] = '{"tvname":"'.$_POST['tvname'].'"}';
}
return $modx->runSnippet($element, $snippetParams);
Вызывать на странице так
[[!имя_созданного_сниппета?
&element=`имя_вызываемого_сниппета` //tickets или что-то другое
¶m_1=`param_value` // и т.д. все параметры вызова сниппета без where
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.