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; }