Cортировка в CGridView

06/18/2013, автор admin, категории Yii, Новости IT

Как сделать сортировку в Grid на фреймворке Yii? Как запретить сортировку по тем или иным колонкам? Как настроить сортировку таблицы по какому либо полю по умолчанию (или по дефолту)? С этими вопросами сталкиваются как новички так и опытные программисты, вобщем все кому приходилось работать с фреймворком Yii. На все выше перечисленные вопросы вы найдете ответ в этом посте.

На самом деле все делается очень просто, как вы знаете в CGridView передается CActiveDataProvider который определяется прям во вьюхе, либо в модели. В любом случае нам лишь нужно передать необходимый параметр sort.

В своем примере я покажу это на примере таблицы Banners. В методе search зададим список колонок по которым разрешена сортировка, для этого тоже имеется несколько способов:
1. Указать массив названий колонок по которым разрешена сортировка:

$dataProvider = new CActiveDataProvider('Banners', array(
   'sort'=>array('attributes'=>array('id','name')), // названия колонок по которым разрешена сортировка
));

читать далее »

Для подключения CKEditor к YII, я использовал расширения из yiiext. Скачиваем его и распаковываем в каталлог с расширениями. У меня получилось: application.extensions.ckeditor

Теперь создаем в этом каталоге, папку assets и распаковываем туда файлы самого CKEditor, которые скачиваем с официально сайта (я скачал ckeditor 4). Виджет отказался запускаться ссылаясь на некоторые ошибки. Чтобы он заработал открываем файл ECKEditor.php идем на строку 69 и меняем:

private $skin='moono';
на
public $skin='moono'; // тут также можем указать свою тему

Дальше функция setLanguage($value), меняем:

if(isset($this->allowedLanguages[$language]))
    $this->language=$language;
на
if(isset($this->allowedLanguages[$lang]))
    $this->language=$lang;

Теперь виджет можно подключить следующим образом, как стандартный виджет yii.
читать далее »