Как подключить pagebar в админку 2.1.2
Вообщем вывожу данные из БД с помощью grids — всё делаю на примере компонента Контент, pagebar появляется но при нажатии нечего не происходить, может есть какие нибудь секреты которые я пропустил?)
Я себе подключал pagebar в админке на своём компоненте. Столкнулся с такими "секретами" при которых тоже не работало. Выяснил, что основное дело в опциях grid Я нашёл их столькоможет есть какие нибудь секреты которые я пропустил?
'is_auto_init' => true, 'is_sortable' => true, 'is_filter' => true, 'is_pagination' => true, 'is_draggable' => false, 'is_selectable' => false, 'order_by' => 'id', 'order_to' => 'asc', 'show_id' => true );
и соответственно в функциях обработки grid
должно быть что-то такое
$filter_str = $inCore->request->get('filter'); if ($filter_str){ $iforms_model->applyGridFilter($grid, $filter); } $total = $iforms_model->getFormsCount();
вот что у меня:
файл \system\controllers\statusi\backend\actions\statusi_ajax.php
class actionStatusiStatusiAjax extends cmsAction { public function run($id) { if (!$this->request->isAjax()) {cmsCore::error404();} $grid = $this->loadDataGrid('statusi'); $model = cmsCore::getModel('statusi'); $model->select('i.id, i.text'); $model->OrderBy('i.id', 'DESC'); $items = $model->getStatusi((int)$id); $filter_str = $inCore->request->get('filter'); if ($filter_str){ $model->applyGridFilter($grid, $filter); } $total = $model->getStatusiCount((int)$id); cmsTemplate::getInstance()->renderGridRowsJSON($grid, $items, $total, $pages); $this->halt(); } }
Вот Options из файла system\controllers\statusi\backend\grids\grid_statusi.php
'is_auto_init' => true, 'is_sortable' => true, 'is_filter' => true, 'is_pagination' => true, 'is_draggable' => false, 'is_selectable' => false, 'order_by' => 'id', 'order_to' => 'asc', 'show_id' => true );
— всё правильно.Только теперь на странице статусы т.е. в gird нечего не отображается
вот мой кусок кода из такого же файла —
class actionIformsFormsAjax extends cmsAction { public function run(){ if (!$this->request->isAjax()) { cmsCore::error404(); } $inCore = cmsCore::getInstance(); $grid = $this->loadDataGrid('forms'); $inCore->getController('iforms'); $iforms_model = $inCore->getModel('iforms'); $iforms_model->setPerPage(iforms::perpage); $filter_str = $inCore->request->get('filter'); if ($filter_str){ $iforms_model->applyGridFilter($grid, $filter); } $total = $iforms_model->getFormsCount(); $fields = $iforms_model->getForms(); cmsTemplate::getInstance()->renderGridRowsJSON($grid, $fields, $total, $pages); $this->halt(); } }
она подтягивается сама отсюда — \system\core\model.php — строка 1350откуда взялся функция applyGridFilter() и надо ли ее создать в модели?
а по вашему коду, не понял зачем вы делаете выборку
$model->select('i.id, i.text'); $model->OrderBy('i.id', 'DESC');
И желательно переменную
$items = $model->getStatusi((int)$id);
Проблема решена!!!