Yii Framework, настройка и стилизация виджета постраничного навигатора CLinkPager

На первый взгляд разделение документа на страницы может показаться довольно сложной задачей. Но так как эта задача довольно часто стоит перед разработчиками сайтов, создатели Yii Framework позаботились о том, что бы максимально упростить эту задачу для разработчиков.

Во второй части статьи речь пойдет о Yii CLinkPager, который позволяет нам максимально просто настроить вывод блока постраничного навигатора.

И так перейдем к примеру настройки вывода постраничного навигатора и описанию его свойств.

Пример кода
В контроллере:

    <?php
 
    class PostController extends Controller {
 
        //Ваш код...
 
        function actionIndex() {
            $criteria = new CDbCriteria();
            $count = Post::model()->count($criteria);
            $pagination = new CPagination($count);
            $pagination->applyLimit($criteria);
            $model = Post::model()->findAll($criteria);
            $this->render('index', array(
                'model' => $model,
                'pagination' => $pagination
            ));
        }
 
        //Ваш код...
 
    }
 
    ?>

Шаблон view:

    <?php
 
        //Ваш код ...
 
        $this->widget('CLinkPager', array(
            'internalPageCssClass' => '',
            'pages' => $paginator, //$paginator определен в контроллере
            'id' => '',
            'header' => '',
            'selectedPageCssClass' => 'active',
            'hiddenPageCssClass' => 'disabled',
            'nextPageLabel' => '»',         // »
            'prevPageLabel' => '«',         // «
            'lastPageLabel' => '»»',  // »»
            'firstPageLabel' => '««', // ««
            'htmlOptions' => array('class' => 'pagination'),
        ));
 
        //Ваш код ...
 
    ?>

Свойства и настройки для CLinkPager:

СвойствоТипПо умолчаниюОписание
internalPageCssClassstringpageCSS класс для кнопок постраничного навигатора
firstPageCssClassstringfirstCSS класс для первой кнопки постраничного навигатора
firstPageLabelstring« FirstМетка (текст) для первой кнопки
lastPageCssClassstringlastCSS класс для последней кнопки постраничного навигатора
lastPageLabelstringLast »Метка (текст) для последней кнопки постраничного навигатора
hiddenPageCssClassstringhiddenCSS класс для скрытых кнопок постраничного навигатора
headerstringGo to page:Текст перед кнопками постраничного навигатора
footerstring Текст после кнопок постраничного навигатора
idstring id контейнера постраничного навигатора
maxButtonCountinteger10Максимальное количество кнопок страниц, которые будут отображены в постраничном навигаторе
nextPageCssClassstringnextCSS класс для кнопки «Следующая страница»
nextPageLabelstringNext >Метка (текст) для кнопки «Следующая страница»
previousPageCssClassstringpreviousCSS класс для кнопки «Предыдущая страница»
prevPageLabelstring< PreviousМетка (текст) для кнопки «Предыдущая страница»
selectedPageCssClassstringselectedCSS класс для текущей (выделенной) кнопки
htmlOptionsarray HTML атрибуты для контейнера постраничного навигатора
currentPageinteger0Базовый индекс постраничного навигатора текущей страницы
pagesCPagination Информация о нумерации страниц для постраничного навигатора
cssFilemixed путь к CSS файлу для виджета (пример: Yii::app()→theme→baseUrl . '/css/file.css',)