Разделы

  
 

Фильтрация по TV Ditto

Подскажите, пожалуйста, сделала поиск по TV параметрам как указано в статье modx.ru/blog/409/, поиск работает, если задать конкретные параметры, но не обрабатывается, если выбрать поля «Любое», т.е. по умолчанию. Пишет, что ничего не найдено. MODx Evo. Перечитала кучу топиков на форумах на эту тему, ничего не выходит.

Вызов:
[!Ditto? &tpl=`news` &depth=5` &startID=`399,398,400,396,395,411,401,404,403,402` &filter=`tvregion,@EVAL return $_POST['region'];,1||tvrealty,@EVAL return $_POST['realty'];,1`&noResults=`Ничего не найдено`!]


Форма:
<form action=" [~20~]" method="post">
    <span class="search-any-white">Region</span> 
 <select name="region" class="search-select">
      <option value="Any" selected>Any</option>
      <option value="Bangkok">Bangkok</option>
      <option value="Pattaya">Pattaya</option>
      <option value="Phuket">Phuket</option>
      <option value="Samui">Samui</option>
      <option value="Chiang Mai">Chiang Mai</option>
      <option value="Khon Kaen">Khon Kaen</option>
      <option value="Hat Yai">Hat Yai</option>
    </select> 
    <span class="search-any-white">Property</span> 
    <select name="realty" class="search-select">
      <option value="Any" selected>Any</option>
      <option value="House">House</option>
      <option value="Condo/Apartment">Condo/Apartment</option>
      <option value="Villa">Villa</option>
      <option value="Land">Land</option>
      <option value="Business">Business</option>
      <option value="Shop House">Shop House</option>
       <option value="Office">Office</option>
    </select> 
<select name="rent-sale" class="search-select3">
      <option value="Any" selected="selected">Any</option>
      <option>Sale</option>
      <option>Rent</option>
    </select> 

<input id="tve_search" name="search" value="Search" class="btn" type="submit">

</form>


Проблема при выборе Any. Спасибо за помощь!

EVO. Ajax фильтр Ditto

Кто может подсказать, как организовать ajax фильтрацию в каталоге на Ditto?

Конечный результат должен быть наподобие этого:
www.trendsbrands.ru/catalog/woman/

Фильтр по результатам запроса GET

Есть документы с tv параметрами, которые имеют по несколько значений

id=100 tvparam1=a1,a2,a3 tvparam2=b1,b2,b3
id=101 tvparam1=a1,a4,a5 tvparam2=b1,b4,b5
id=102 tvparam1=a1,a4,a6 tvparam2=b3,b5,b6

есть форма

<select name="tvparam1"> 
<option value="a1">a1</option> 
<option value="a2">a2</option> 
<option value="a3">a3</option> 
<option value="a4">a4</option> 
<option value="a5">a5</option> 
<option value="a6">a6</option> 
</select>

<select name="tvparam2"> 
<option value="b1">b1</option> 
<option value="b2">a2</option> 
<option value="b3">b3</option> 
<option value="b4">b4</option> 
<option value="b5">b5</option> 
<option value="b6">b6</option> 
</select>

есть обработчик get запроса [!filter!] который преобразует строку
www.sitename.ru?tvparam1=a1&tvparam2=b6
в
tvparam1,a1,12|tvparam2,b6,12|

<?php
foreach ($_GET as $k=>$v){
if ($k == 'q') continue; // пропускаем этот параметр
echo $k.','.$v.',12|';
}
?>

вызывается этот сниппет в Модифицированном Ditto 2.1.0 (http://modx-shopkeeper.ru/forum/viewtopic.php?id=266&login=1) вот так
[!Ditto? &filter=`[!filter!]`!]
на выходе 
[!Ditto? &filter=`tvparam1,a1,12|tvparam2,b6,12|`!]

некэшируемый вызов сниппета в некэшируемом вызове сниппета не работает!
поэтому создаем runSnippet

<?php
$flt='';
foreach ($_GET as $k=>$v){
if ($k == 'q') continue;
$flt=$all.$k.','.$v.',12|';
}
echo $modx->runSnippet('Ditto', array('filter' => $flt));
?>

теперь вроде должно все работать, но не хочет.
Вернее если есть хотя бы одно совпадение, то документ выводится (срабатывает правило «ИЛИ»), а мне надо чтоб работало правило «И»
В чем проблема, не понимаю (

Пожалуйста помогите решить эту задачу.

[EVO] Ditto+filter+ GET запрос

не могу разобраться с фильтрацией… подскажите пожалста в чём ошибка:

вызов ditto:
[[Ditto? &tpl=`ditto_news` &summarize=`10` &sortBy=`createdon` &dateFormat=`%d.%m.%Y` &startID=`7` &filter=`typenews,@EVAL return $_GET['type'];,2` ]]

ссылка: www.*****.ru/news.html?type=0 или 1

результат нулевой

если вызов ditto
[[Ditto? &tpl=`ditto_news` &summarize=`10` &sortBy=`createdon` &dateFormat=`%d.%m.%Y` &startID=`7` &filter=`typenews,1 (или 0),2` ]]

всё замечательно

и ещё попутно если переход просто www.*****.ru/news.html то фильтр не нужен.

[РЕШЕНО] Ditto фильтрация без учета регистра букв

В Ditto 2.1 для &filter есть
*Mode* *Meaning*
7 — Text not in field value
8 — Text in field value
9 — case insenstive version of #7
10 — case insenstive version of #8
11 — checks leading character of the field
режим 9 все равно учитывает регистр букв.
Как можно сделать фильтрацию без учета регистра?

Решение
Для починки (если кодировка UTF-8) надо откорректировать код filter.class.inc.php:
case 9 : // case insenstive version of #7 - exclude records that do not contain the text of the criterion
mb_internal_encoding("UTF-8");
if (strpos(mb_strtolower($value[$this->array_key]), mb_strtolower($this->filterValue))===FALSE)
$unset = 0;
break;


Добавить
mb_internal_encoding("UTF-8");
и заменить
strtolower
на
mb_strtolower
  • 0
  • 2 февраля 2012, 12:54
  • w3d
  • 5

Поиск/Фильтр в Revo

Друзья, помогите. Я уже писал тут вчера о своей проблеме, но к сожалению мое незнание php не дало мне возможности воспользоваться данной мне подсказкой. В общем, мне нужно сделать поиск из архива журналов по 2м параметрам: номер и год. Выбираешь номер, год, жмешь 'найти' и вываливается содержание одного номера. Вот картинка поиска:



Я полазил тут, почитал про подобные вопросы, но так ничего не получилось. Делал как тут: modx.ru/blog/409, делал как тут: community.modx-cms.ru/blog/solutions/1410.html. Но так ничего и не получилось. Скажите, пожалуйста, что я вообще должен сделать, какая очередность действий? Я создал 2 tv с типом ввода listbox, делаю форму поиска, и вывожу результат через getResource с фильтром. Нужно ли мне писать дополнительный сниппет?
  • 0
  • 7 января 2012, 02:17
  • kushnir
  • 5

[REVO] getResources - фильтрация не работает



Нужно отфильтровать, выводить в карусель фотографий специалиста или нет.


( Читать дальше )
  • 0
  • 7 декабря 2011, 01:32
  • Elena
  • 2

Проблема с передачей TV-параметра через POST

Возможно вопрос не совсем по modx, а больше по PHP, но может подскажете, как можно реализовать данную задачу.

Необходимо сделать последовательную фильтрацию статей.
Статьи выводятся через Ditto. Параметры передаются методом POST.


( Читать дальше )

Нужен фильтр для ресурсов на лицевой стороне сайта, для Revo

Под фильтром я имею ввиду форму, состоящую из выпадающих списков при выборе параметров из этих списков будет соответственно меняться отображение содержания на сайте.

Пример:

Список 1 — Категория ресурсов
Список 2 — TV (местоположение) [строка]
Список 3 — TV (действие) [строка]
и т.д.

Как сделать фильтр (поиск) по TV

Недавно встала задача  сделать поиск или фильтр по TV параметрам
нужно было сделать фильтр по району, по сторнам, по цене и по статусу т.е. по 4 парметрам.


Сделал вроде все как говоилось по этой ссылке — modx.ru/blog/409/
т.е. создал все нужные мне TV параметры, и вообще у меня 8 таких паметров, но отфильтровывать нужно только по четырем.


т.е как я делал tv параметры, зашел в админке Элементы > Управление элементами > Параметры (TV) > Новый параметр (TV)
делал я чтоб TV паметр отражался списком т.е примерно вот так


и получилось у меня таких TV паметров восемь и выглядели они у меня вот так


после этого создал новый документ с таким кодом вызова снипета ditto
[!Ditto? &tpl=`job` &startID=`3` &filter=`tvraion,@EVAL return $_POST['raion'];,1|tvside,@EVAL return $_POST['side'];,1|tvstatus,@EVAL return $_POST['status'];,1` &noResults=`Извините, недвижимости по Вашему запросу не найдено.`!] 


после этого сделал форму но пока только для фильтрации районов следующего содержания
<form action="index.php?id=3" method="post"> 
Город:
<select name="raion">
<option value="all">-Все районы-</option>
<option value="1">Центральный</option>
<option value="2">Ленинский</option>
<option value="3">Дзержинский</option>
<option value="4">Промышленый</option>
</select><br /> 
<input name="Submit" type="submit" value="Просмотр" /> 
</form> 


И нечего не получилось, т.е. на странице вообще ничего не выводится в области контента, подскажите пожалуйста что не так сделал или может другое решение можно какое-то сделать чтоб можно было делать фильтрацию вывода?

Уже который день бьюсь не как сделать не могу!

пожалуйста, подскажите!
может кто в теме!
  • 0
  • 24 апреля 2011, 07:56
  • ramzez
  • 6