public function updateAction()
 {
     Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
     // Создание индекса
     $index = Zend_Search_Lucene::create(APPLICATION_ROOT . '/data/my-index');
     $mediaMapper = new Media_Model_Mapper_Media();
     $select = $mediaMapper->getDbTable()->select();
     $select->where('deleted != ?', 1)->where('active != ?', 0)->where('category_id IN(?)', array(2, 3, 4))->order('timestamp DESC');
     $mediaItems = $mediaMapper->fetchAll($select);
     if (!empty($mediaItems)) {
         foreach ($mediaItems as $mediaItem) {
             $doc = new Zend_Search_Lucene_Document();
             // Сохранение Name документа для того, чтобы идентифицировать его
             // в результатах поиска
             $doc->addField(Zend_Search_Lucene_Field::Text('title', strtolower($mediaItem->getName()), 'UTF-8'));
             // Сохранение URL документа для того, чтобы идентифицировать его
             // в результатах поиска
             $doc->addField(Zend_Search_Lucene_Field::Text('url', '/media/' . $mediaItem->getFullPath(), 'UTF-8'));
             // Сохранение Description документа для того, чтобы идентифицировать его
             // в результатах поиска
             // $doc->addField(Zend_Search_Lucene_Field::Text('description', strtolower($mediaItem->getSContent()),'UTF-8'));
             // Индексирование keyWords содержимого документа
             $doc->addField(Zend_Search_Lucene_Field::UnStored('keyword', strtolower($mediaItem->getMetaKeywords()), 'UTF-8'));
             // Индексирование содержимого документа
             $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', strtolower($mediaItem->getContent()), 'UTF-8'));
             // Добавление документа в индекс
             $index->addDocument($doc);
         }
     }
 }
 public function viewAction()
 {
     $request = $this->getRequest();
     $mediaPathItem = $request->getParam('fullPath');
     $mediaMapper = new Media_Model_Mapper_Media();
     $mediaItem = $mediaMapper->findByFullPath($mediaPathItem, new Media_Model_Media());
     if (is_null($mediaItem)) {
         throw new Zend_Controller_Action_Exception("Страница не найдена", 404);
     }
     if (!is_null($this->getRequest()->getParam('json')) && Zend_Auth::getInstance()->hasIdentity()) {
         $this->forward('json', 'media', 'admin', array('id' => $mediaItem->getId()));
         return;
     }
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $this->_request->setParams(array('dataItem' => array('controller' => 'media', 'id' => $mediaItem->getId(), 'active' => $mediaItem->getActive(), 'deleted' => $mediaItem->getDeleted())));
     }
     $mediaCategoryMapper = new Media_Model_Mapper_MediaCategories();
     $currentCategory = $mediaCategoryMapper->find($mediaItem->getCategoryId(), new Media_Model_MediaCategories());
     if ($mediaItem->getDeleted() != '0') {
         if (!Zend_Auth::getInstance()->hasIdentity() && $mediaItem->getDeleted() != '0') {
             throw new Zend_Controller_Action_Exception("Страница не найдена", 404);
         }
         $this->_redirector->gotoRouteAndExit(array('module' => 'admin', 'controller' => 'media-categories', 'action' => 'list', 'id' => $currentCategory->getId()), 'adminEdit', true);
     }
     $this->view->assign(array('currentCategory' => $currentCategory, 'adminPath' => 'media/edit/' . $mediaItem->getId()));
     $meta_description = $mediaItem->getMetaDescription() != '' ? $mediaItem->getMetaDescription() : $mediaItem->getName() . '. ' . $currentCategory->getName() . '. Альфа-Гидро.';
     $meta_keywords = $mediaItem->getMetaKeywords() != '' ? $mediaItem->getMetaKeywords() : $mediaItem->getName() . ', ' . $currentCategory->getName() . ', пресса';
     $this->view->assign(array('mediaItem' => $mediaItem, 'meta_description' => $meta_description, 'meta_keywords' => $meta_keywords));
     if ($mediaItem->getActive() != '1' && !Zend_Auth::getInstance()->hasIdentity()) {
         $this->view->assign(array('title' => $mediaItem->getName()));
         throw new Zend_Controller_Action_Exception("Страница временно не доступна", 403);
     }
 }
 function getBlockNews()
 {
     $mediaMapper = new Media_Model_Mapper_Media();
     $select = $mediaMapper->getDbTable()->select();
     //News
     $select->where('deleted != ?', 1)->where('active != ?', 0)->where('category_id = ?', 2)->order('timestamp DESC')->limit(1, 0);
     $newsItem = $mediaMapper->fetchAll($select);
     if (!empty($newsItem)) {
         $this->view->assign('newsItem', array_shift($newsItem));
     }
 }
 public function indexAction()
 {
     $indexName = 'media-index';
     $module = 'media';
     $index = Zend_Search_Lucene::create(APPLICATION_ROOT . '/data/' . $indexName);
     $moduleMapperName = ucfirst($module) . '_Model_Mapper_' . ucfirst($module);
     $moduleMapper = new $moduleMapperName();
     $moduleMapper = new Media_Model_Mapper_Media();
     $indexModule = $moduleMapper->addSearchIndex();
     var_dump($indexModule->count());
     $form = new Admin_Form_CreateSearchIndex();
     $this->view->form = $form;
 }
 public function articlesAction()
 {
     $title = 'Справочный материал';
     $this->view->title = $title;
     $this->view->renderPage = '/components/_articles.phtml';
     $this->view->meta_title = $title . '. ' . $this->pageModule()->getTitle() . '.';
     if ($this->_request->getParam('path')) {
         $this->view->renderPage = '/components/_view_module_article.phtml';
         $mediaModelMapper = new Media_Model_Mapper_Media();
         $mediaItem = $mediaModelMapper->findBy('path', $this->_request->getParam('path'));
         if (is_null($mediaItem)) {
             throw new Zend_Controller_Action_Exception("Страница не найдена", 404);
         }
         $this->view->title = $mediaItem->getName();
         $this->view->mediaItem = $mediaItem;
         $this->view->meta_title = $title . '. Справочный материал. ' . $this->pageModule()->getTitle() . '.';
     }
 }
 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;
 }
 public function sectionAction()
 {
     $jsonData = $this->_request->getParams();
     if ($this->_request->getParam('itemId')) {
         $item = $this->_modelMapper->find($this->_request->getParam('itemId'), $this->_model);
         if ($item) {
             $pagesMapper = new Pages_Model_Mapper_Pages();
             $page = $pagesMapper->find($this->_request->getParam('sectionId'), new Pages_Model_Pages());
             $sectionId = $page ? $page->getId() : 0;
             $item->setSectionSiteId($sectionId);
             $this->_modelMapper->save($item);
             $jsonData['message'] = 'Ok';
         }
         $this->_helper->json->sendJson($jsonData);
         return;
     }
     if ($this->_request->getParam('id')) {
         $this->forward('index', null, null, array('filter' => 'section_site_id', 'val' => $this->_request->getParam('id')));
     }
 }
 public function generateMediaFullPathAction()
 {
     $mediaMapper = new Media_Model_Mapper_Media();
     $freePathProducts = $mediaMapper->fetchFreeRowColumn('full_path');
     foreach ($freePathProducts as $media) {
         $media->fullPath = $mediaMapper->generateFullPath($media->id);
         $mapper = new Media_Model_Mapper_Media();
         $mapper->save($media);
     }
     return $this->view->entries = $mediaMapper->fetchFreeRowColumn('full_path');
 }