Forums / National / Russian / Тех. поддержка / Как добавить в list.tpl фильтр на подобие как в usres.tpl?

psyvek
#1 2009-11-16 22:32
Подскажите пожалуйста, как сделать фильтр для list.tpl? Используются экстра поля (пример: вид лицензии) и нужно выводить отфильтрованный список по аналогии со страницей пользователей (страна, группа...), только это будет лицензия, дата...

Еще вопрос, как сделать сортировку по рейтингу или по комментариям?

Добавлено 25 Минут спустя:

Нашел как это в седе было http://my.site/list.php?c=cat&s=date&w=desc&o=extra-field&p=значение
в котонти не сработало.
Люди подскажите, как это делается, очень нужно.
This post was edited by psyvek (2009-11-17 04:15, 14 years ago)
Sergey
#2 2009-11-17 04:15
для поля page_extra1
http://my.site/list.php?c=cat&s=date&w=desc&o=extra1&p=значение

смотрим текст list.inc.php строка 112
WHERE page_cat='$c' AND (page_state=0 OR page_state=2) AND page_$o='$p'
то есть к page_ добавляется значение по ключу o т.е. extra1 что даст в сумме page_extra1
www.cotonti.mobi
psyvek
#3 2009-11-17 04:37
А как можно вывести несколько значений в одной категории?

http://my.site/list.php?c=cat&s=date&w=desc&o=extra1&p=значение1+значение2
Sergey
#4 2009-11-17 05:07
Для этого значения необходимо разделить запятыми: т.е.

http://my.site/list.php?c=cat&s=date&w=desc&o=extra1&p=значение1,значение2
Далее правим оператор вот так приблизительно
WHERE page_cat='$c' AND (page_state=0 OR page_state=2) AND FIND_IN_SET(page_$o,'$p')
тут такое дело функция FIND_IN_SET разложит $p на массив и сравнит по совпадению с page_$o вроде, что-то так
Да это надо в двух местах и на строке 107 -там считают число для паджинации и в 112 для выборке
www.cotonti.mobi
psyvek
#5 2009-11-17 06:08
Cпасибо огромное.
Последний вопрос, а как вывести значения из двух экстра полей?
http://my.site/list.php?c=cat&s=date&w=desc&o= extra1&p=значение1 что то тут extra2&p=значение1,значение2
Sergey
#6 2009-11-17 06:31
начнем с ввода
$o = sed_import('o','G','ALP',16);
$p = sed_import('p','G','ALP',16);
фильтр ALP не берет запятых, надо вот так
$o = sed_import('o','G','ALP',16);
$p = sed_import('p','G','TXT');
далее добавляем чтение еще одной группы
$o = sed_import('o','G','ALP',16);
$p = sed_import('p','G','TXT');
$o2 = sed_import('o2','G','ALP',16);
$p2 = sed_import('p2','G','TXT');
теперь корректируем запрос, делаем вставку
$sql = sed_sql_query("SELECT COUNT(*) FROM $db_pages
WHERE page_cat='$c' AND (page_state='0' OR page_state='2') AND FIND_IN_SET(page_$o,'$p')"
.((!empty($o2) && !empty($p2))?" AND FIND_IN_SET(page_$o2,'$p2')":"")
);
и нечто подобное в 112 оператор
запрос будет
http://my.site/list.php?c=cat&s=date&w=desc&o= extra1&p=значение1,значение2&o2=extra2&p2=значение1,значение2
Я так собственно обозначил общую схему
www.cotonti.mobi