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