/** * @return null|Pages_Model_Pages * @throws Zend_Controller_Action_Exception * */ public function pageModule() { $pageModulePath = $this->getRequest()->getModuleName(); $page = $this->_pagesMapper->findByPath($pageModulePath, new Pages_Model_Pages()); if (is_null($page)) { throw new Zend_Controller_Action_Exception("Раздел '" . $pageModulePath . "' не добален в таблицу 'Pages'", 404); } return $page; }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $pagesMapper = new Pages_Model_Mapper_Pages(); $page = $pagesMapper->findByPath($request->getModuleName(), new Pages_Model_Pages()); $r = new Zend_Controller_Action_Helper_Redirector(); $layout = Zend_Layout::getMvcInstance(); if (is_null($page)) { return; } if ($page->getDeleted() === '1') { if (!Zend_Auth::getInstance()->hasIdentity()) { $layout->setLayout('layout_error'); throw new Zend_Controller_Action_Exception("Страница не найдена", 404); } $r->gotoRouteAndExit(array('module' => 'admin', 'controller' => 'pages', 'action' => 'index'), 'adminEdit', true); } if ($page->getActive() === '0') { if (!Zend_Auth::getInstance()->hasIdentity()) { $layout->setLayout('layout_error'); throw new Zend_Controller_Action_Exception("Раздел временно не доступен", 500); } } }
function getPageArticles() { $frontController = Zend_Controller_Front::getInstance(); $request = $frontController->getRequest(); $moduleName = $request->getModuleName(); $actionName = $request->getActionName(); //Zend_Debug::dump($request->getParams()); $this->view->moduleName = $moduleName; $this->view->actionName = $actionName; $pagesMapper = new Pages_Model_Mapper_Pages(); $page = $pagesMapper->findByPath($moduleName, new Pages_Model_Pages()); if (!$page) { return null; } $this->view->sectionName = $page->getTitle(); $this->view->sectionId = $page->getId(); $mediaModelMapper = new Media_Model_Mapper_Media(); $selectMedia = $mediaModelMapper->getDbTable()->select(); $selectMedia->where('active != ?', 0)->where('deleted != ?', 1)->where('section_site_id = ?', $page->getId())->order('timestamp DESC'); $mediaItems = $mediaModelMapper->fetchAll($selectMedia); if (!empty($mediaItems)) { if (count($mediaItems) > $this->getCountItemOnPage()) { $mediaPages = array_chunk($mediaItems, $this->getCountItemOnPage()); $currentPage = 0; if ($request->getParam('page') && $request->getParam('page') > 0) { $currentPage = $request->getParam('page') - 1; } if ($request->getParam('page') && $request->getParam('page') > count($mediaPages)) { $currentPage = count($mediaPages) - 1; } $mediaItems = $mediaPages[$currentPage]; $this->view->countPage = count($mediaPages); $this->view->currentPage = $currentPage + 1; } } return $mediaItems; }
/** * @param null $pageModulePath * @return null|Pages_Model_Pages * */ public function getPageModule($pageModulePath = null) { if (is_null($pageModulePath)) { $pageModulePath = strtolower($this->getNameModule()); } $pagesMapper = new Pages_Model_Mapper_Pages(); $page = $pagesMapper->findByPath($pageModulePath, new Pages_Model_Pages()); return $page; }