Подскажите, пожалуйста, по поиску? MODx

liner2007

Писатель
Регистрация
22 Ноя 2011
Сообщения
0
Реакции
0
По поиску нашлось вот такое решение:
PHP:
<?php
global $modx;
$flt ="";
// Получаем данные из формы
$param_one=mysql_escape_string($_POST['region']);
$param_two=mysql_escape_string($_POST['realty']);
// Фильтруем
$param_one = htmlspecialchars(stripslashes($param_one));
$param_two = htmlspecialchars(stripslashes($param_two));
// Если один из параметров равен "Все" то выставляем его в NULL
if($param_one=="Все"){$param_one=NULL;}
if($param_two=="Все"){$param_two=NULL;}
// Формируем фильтр
$flt_one="tvregion,$param_one,1";
$flt_two="tvrealty,$param_two,1";
// Если одно из значений  пустое, то 
if(empty($param_one) AND $param_two)
{
$flt="$flt_two";
}
// Если одно из значений  пустое, то 
if(empty($param_two) AND $param_one){
$flt="$flt_one";
}
// Если оба значения не пусты, то фильтруем по обоим разделив их "|"
if($param_two AND $param_one){
$flt="$flt_one"."|"."$flt_two";
}
// Если оба значения "Все" то выводим все значения
if($param_two=="Все" AND $param_one=="Все"){
$flt="";
}
// Вызываем снипет Ditto с параметрами
$result=$modx->runSnippet('Ditto', array( 'startID'=>'386,394,401','tpl'=>'short-news','filter'=>$flt,'noResults'=>'Извините, ничего не найдено.'));  
$modx->setPlaceholder('search_rezult',$D); 
// Возварщаем результат
return $result;
?>
Сниппет [!FILTR!] — взято отсюда: _//koba.dp.ua/filtracija_statej_po_dvum_parametram
Чанк и вывод поисковой формы [!FILTR!] [*search_rezult*]
Но есть одна проблема — когда выбираешь пункты «Все» и «Все» — поиск срабатывает, выдает все из папки IDn, но стоит задать четкие параметры, поиск не обрабатывается. Спасибо.
 
Назад
Сверху