Yii2 простой модуль фильтра с чекбоксами
Yii2 простой модуль фильтра с чекбоксами
В целях изучения yii2 сделал для себя модуль - фильтр с чекбоксами, вот такой:
http://www.youtube.com/watch?v=Vah2j5WzXIs
Основной функционал я закончил, баги, которые нашёл - пофиксил, посему выложу сюда - может кому пригодится.
https://github.com/sanex3339/Yii2-Check ... ter-Module
В README.ru.md инструкция (и видео) по установке и использованию.
Так же, не откажусь от помощи - английский README.MD у меня переведен гугл транслейтом, может быть кто-то сможет поправить ошибки в файле?
http://www.youtube.com/watch?v=Vah2j5WzXIs
Основной функционал я закончил, баги, которые нашёл - пофиксил, посему выложу сюда - может кому пригодится.
https://github.com/sanex3339/Yii2-Check ... ter-Module
В README.ru.md инструкция (и видео) по установке и использованию.
Так же, не откажусь от помощи - английский README.MD у меня переведен гугл транслейтом, может быть кто-то сможет поправить ошибки в файле?
Re: Yii2 простой модуль фильтра с чекбоксами
Обновил версию, теперь модуль не нужно прописывать в конфигурационном файле.
Так же добавил видео с процессом установки и настройки модуля на чистое yii2 basic приложение.
Все ещё нуждаюсь в помощи в переводе английского readme.md!
Так же добавил видео с процессом установки и настройки модуля на чистое yii2 basic приложение.
Все ещё нуждаюсь в помощи в переводе английского readme.md!
Re: Yii2 простой модуль фильтра с чекбоксами
без него идет ошибка:
при попытке вызове метода модуля
Я это сделал так, после вчерашней темы http://www.yiiframework.ru/forum/viewto ... 19&t=22760
Я так понимаю, в бутстрап файле, сначала устанавливается модуль через setModule, потом подключается 1 раз через getModule, а через getInstance вызываются инстансы модуля.
Код: Выделить всё
`Call to a member function setParams() on null`
Код: Выделить всё
$filter = SimpleFilter::getInstance();
$filter->setParams();
Я так понимаю, в бутстрап файле, сначала устанавливается модуль через setModule, потом подключается 1 раз через getModule, а через getInstance вызываются инстансы модуля.
Re: Yii2 простой модуль фильтра с чекбоксами
Хорошая штука. Подробное описание и даже видео.
ЗЫ Выкладывай еще и код того приложения с видео. Чего уж
ЗЫ Выкладывай еще и код того приложения с видео. Чего уж
Re: Yii2 простой модуль фильтра с чекбоксами
Кстати да, спасибо за совет.
Английский в readme сильно плохой? Понятное дело, что там ошибка на ошибке, но суть понятна?
Английский в readme сильно плохой? Понятное дело, что там ошибка на ошибке, но суть понятна?
Re: Yii2 простой модуль фильтра с чекбоксами
Добавил возможность возвращать кешированные данные и для dataProvider'а и для обычной query.
Duration пока фиксированный - 600 секунд, потом сделаю возможность самому задавать длительность.
Duration пока фиксированный - 600 секунд, потом сделаю возможность самому задавать длительность.
Re: Yii2 простой модуль фильтра с чекбоксами
Здравствуйте,
Меня интересует один вопрос по setFilter. Есть ли возможность нескольких отборов значений из одного и того же поля.
Пример, у меня есть таблица с полями product_id и property_value_id. Вашим модулем идет отбор по полю property_value_id.
Код:
Получилось вывести все группы категорий, но Аякс отбор происходит только при использовании последней группы чекбоксов. Все предыдущие забиваются в Url, но выводятся только после обновления страницы. Т.е. аякс не срабатывает.
Подскажите, пожалуйста, как мне можно решить эту проблему?
Меня интересует один вопрос по setFilter. Есть ли возможность нескольких отборов значений из одного и того же поля.
Пример, у меня есть таблица с полями product_id и property_value_id. Вашим модулем идет отбор по полю property_value_id.
Код:
Код: Выделить всё
<? foreach($propertyGroup as $group)
{
$values = PropertyValue::find()->where(['property_id' => $group->id])->all();
$valueArray = ArrayHelper::map($values, 'id', 'id');
$arr[$group->id] =
[
'property' => 'property_value_id',
'caption' => $group->title,
'values' => $valueArray,
'class' => 'vertical',
];
} ?>
<?= $filter->setFilter($arr) ?>
Подскажите, пожалуйста, как мне можно решить эту проблему?
Re: Yii2 простой модуль фильтра с чекбоксами
Нескольких групп чекбоксов с одинаковым `property` быть не может. Ща поковыряюсь в коде, мб что придумаю.
Re: Yii2 простой модуль фильтра с чекбоксами
Буду с нетерпением ждать результат...)
Спасибо
Спасибо
Re: Yii2 простой модуль фильтра с чекбоксами
UPD: разумеется вылез баг, завтра посмотрю че к чему, пока не обновляйтесь.
Последний раз редактировалось sanex3339 2015.03.22, 14:17, всего редактировалось 1 раз.
Re: Yii2 простой модуль фильтра с чекбоксами
Value все уникальные, по-этому с этим проблем возникнуть не должно.
Re: Yii2 простой модуль фильтра с чекбоксами
https://github.com/sanex3339/Yii2-Simpl ... /tag/0.8.2Апдейтнул версию - проверяйте. Тестировал не очень много, но должно работать.
Один нюанс - если в двух группах с одинаковым property будут два или более чекбокса с одинаковыми value, и если один из них отметить галкой, то после перезагрузки страницы отмечены галкой будут оба чекбокса.
Если не понятно - если в двух группах c property 'color' будут 2 чекбокса с одинаковыми значениями, к примеру, 'red', если мы отметим 1 чекбокс галкой, перезагрузим страницу - отмечены галкой будут оба.
Так, вроде баг починил.
UPD: пофиксил ещё один баг, когда в конфиге Yii2 стоит `showScriptName = false`, то в GET-параметрах ссылок добавлялся один левый параметр. Ссылку обновил.
Последний раз редактировалось sanex3339 2015.03.22, 15:19, всего редактировалось 1 раз.
Re: Yii2 простой модуль фильтра с чекбоксами
UPD: пофиксил ещё один баг, когда в конфиге Yii2 стоит `showScriptName = false`, то в GET-параметрах ссылок добавлялся один левый параметр с именем экшена. Ссылку обновил.
https://github.com/sanex3339/Yii2-Simpl ... /tag/0.8.2
https://github.com/sanex3339/Yii2-Simpl ... /tag/0.8.2
Re: Yii2 простой модуль фильтра с чекбоксами
Обновил версию
Обратите внимание, параметр 'ajax' сменился на 'useAjax'
Самое главное, в ajax вьюхе данные теперь доступны не в переменной $sanexFilterData, а в $simpleFilterData
Что добавил:
- можно указать длительность кеширования в секундах, задав значение парамтера 'useCache' => 3600, к примеру.
- частичная поддержка ie9. в этом браузере ajax обновление отключено, ie8 не работает, т.к. в yii2 используется jquery 2
- данные в сессии теперь шифрованные
- рефакторинг кода (ещё не закончен)
Обратите внимание, параметр 'ajax' сменился на 'useAjax'
Самое главное, в ajax вьюхе данные теперь доступны не в переменной $sanexFilterData, а в $simpleFilterData
Что добавил:
- можно указать длительность кеширования в секундах, задав значение парамтера 'useCache' => 3600, к примеру.
- частичная поддержка ie9. в этом браузере ajax обновление отключено, ie8 не работает, т.к. в yii2 используется jquery 2
- данные в сессии теперь шифрованные
- рефакторинг кода (ещё не закончен)