Пример #1
0
 public function indexAction()
 {
     // создаем модель
     $devices = new Application_Model_DbTable_Devices();
     //если идет запрос сортировки
     if ($this->getRequest()->getParam('sort')) {
         $sort = $this->getRequest()->getParam('sort');
     } else {
         $sort = $this->_helper->navigation->sortby();
     }
     //если идет запрос количества записей на странице
     if ($this->getRequest()->isPost('select_limit')) {
         $select_limit = $this->getRequest()->getPost('select_limit');
         $page = 1;
     } else {
         $select_limit = $this->_helper->navigation->selectlimit();
         //если идет запрос страницы
         if ($this->getRequest()->getParam('page')) {
             $page = $this->getRequest()->getParam('page');
         } else {
             $page = $this->_helper->navigation->page();
         }
     }
     //если идет запрос типа
     if ($this->getRequest()->isPost('select_type')) {
         $select_type = $this->getRequest()->getPost('select_type');
     } elseif ($this->getRequest()->getParam('select_type')) {
         $select_type = $this->getRequest()->getParam('select_type');
     } else {
         $select_type = $this->_helper->navigation->selecttype();
     }
     //обработка параметров поиска
     if ($this->getRequest()->isPost('search_catalog')) {
         $search = $this->getRequest()->getPost('search_catalog');
     } elseif ($this->getRequest()->getParam('search_catalog')) {
         $search = $this->getRequest()->getParam('search_catalog');
     }
     if ($search != '') {
         $data_array = $devices->fetchAll($devices->searchDevice($search));
     } elseif ($select_type != 'all') {
         $data_array = $devices->fetchAll($devices->select()->where("type = '{$select_type}'"));
     } else {
         $data_array = $devices->fetchAll();
     }
     //вывод навигации
     $this->_helper->navigation->initNav($sort, $select_limit, $select_type, $page, $data_array);
     $this->_helper->navigation->setView($this->view);
     $count = $select_limit;
     $offset = $page * $select_limit - $select_limit;
     //формируем запрос
     //запрос поиска
     if ($search != '') {
         $select = $devices->searchDevice($search)->order($sort)->limit($count, $offset);
         $this->view->search_param = "/search_catalog/{$search}";
         //запрос конкретного типа
     } elseif ($select_type != 'all') {
         $select = $devices->select()->where("type = '{$select_type}'")->order($sort)->limit($count, $offset);
         //запрос типа 'все'
     } else {
         $select = $devices->select()->order($sort)->limit($count, $offset);
     }
     $type = new Application_Model_DbTable_Setup();
     $type->setTableName('type');
     $this->view->types = $type->getValues();
     $this->view->devices = $devices->fetchAll($select);
     // var_dump($this->view->devices); die;
     $this->view->search = $search;
 }