Фильтр Списка страниц

Любая помощь по установке/настройке/модификации concrete5

Фильтр Списка страниц

Сообщение sergio11ofpp » 27 ноя 2013, 14:00 ,  »  Сообщение:#1

Добрый День,
У меня имеется Аттрибут число для страницы,

И мне нужно фильтровать Список страниц Где Число меньше

Код: Выделить всё
$pl->filterByAttribute('number', '$_POST['number']',  $comparison = '<');


То есть хочу показать все страницы где Аттрибут Число меньше введённого числа но не работает

Код: Выделить всё
$pl->filterByAttribute('number', '%'.$_POST['number'].'%', 'LIKE');


Только так. Но так мне даст страницы где число именно "50" если ввели 50

Нельзя фильтровать промежуток чисел?
sergio11ofpp
 
Сообщения: 53
Зарегистрирован: 05 июл 2013, 12:00

Re: Фильтр Списка страниц

Сообщение Count_Raven » 27 ноя 2013, 14:11 ,  »  Сообщение:#2

Вам не кажется, что вы с кавычками напутали?

Код: Выделить всё
$pl->filterByAttribute('number', $_POST['number'],  $comparison = '<');


А еще валидацию $_POST надо сначала сделать, чтобы туда гадости не попали случайным или злонамеренным образом.
Хоть вот так, если совсем просто:

Код: Выделить всё
$pl->filterByAttribute('number', intval($_POST['number']),  $comparison = '<');
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Фильтр Списка страниц

Сообщение sergio11ofpp » 28 ноя 2013, 18:27 ,  »  Сообщение:#3

Не ну POST понятно я обычно так Loader::db()->escape($POST['value']);

А на счёт ковычек х3 вроде норм))
sergio11ofpp
 
Сообщения: 53
Зарегистрирован: 05 июл 2013, 12:00

Re: Фильтр Списка страниц

Сообщение sergio11ofpp » 28 ноя 2013, 18:29 ,  »  Сообщение:#4

Ой сейчас только заметил нет это только тут так извините в Коде у меня нормально!
sergio11ofpp
 
Сообщения: 53
Зарегистрирован: 05 июл 2013, 12:00

Re: Фильтр Списка страниц

Сообщение Count_Raven » 28 ноя 2013, 19:11 ,  »  Сообщение:#5

sergio11ofpp писал(а):Не ну POST понятно я обычно так Loader::db()->escape($POST['value']);

А на счёт ковычек х3 вроде норм))


Вы каждый раз делаете Loader::db() ?

Лучше делать так:

$db = Loader::db();

$db->bla-bla-bla();
$db->bla-bla-bla();
$db->bla-bla-bla();

Либо вообще в конструкторе объекта создать экземпляр типа:
$this->db = Loader::db();
а потом внутри класса повсюду его использовать.

В контроллерах блоков объявлять это не обязательно, там можно просто обращаться к $this->db так как он уже существует.

Для проверки и чистки входных данных есть validation helper и text helper. При помощи их можно удостовериться что это именно число (и т.д. и т.п.) и обеззаразить строку от какашек.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Фильтр Списка страниц

Сообщение Count_Raven » 28 ноя 2013, 19:33 ,  »  Сообщение:#6

еще есть magic-функции, т.е. можно просто написать filterByNumber

В данном случае к функции filterBy добавляется handler атрибута.
Т.е. если у нас атрибут имеет handler к примеру "my_super_attribute", то функция будет называться filterByMySuperAttribute
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Фильтр Списка страниц

Сообщение Count_Raven » 28 ноя 2013, 19:37 ,  »  Сообщение:#7

А еще, зачем вы указываете comparison в данном контексте?
Просто напишите знак:
Код: Выделить всё
$pl->filterByAttribute('number', intval($_POST['number']), '<');
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Фильтр Списка страниц

Сообщение Count_Raven » 28 ноя 2013, 19:41 ,  »  Сообщение:#8

Должно работать, если не работает, то нужно отладку произвести, сделать вывод всех данных, посмотреть где не так.
В конце концов можете сделать вывод сгенерированного SQL-запроса в модели page_list или в database_item_list.
Еще поставьте xdebug (если не уже), чтобы проще было отладкой заниматься.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant


Вернуться в Помощь по concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron