Beispiel #1
0
 /**
  * Action - optimize
  * optimize the search index
  *
  * Access to the action is possible in the following paths:
  * - /search/optimize
  * @return void
  */
 public function optimizeAction()
 {
     $result = TRUE;
     $err_msg = '';
     $json = array();
     //-------------------
     try {
         // Задержка условная
         sleep(3);
         $indexFullpath = Default_Model_DbTable_BlogPost::getIndexFullpath();
         // Откроем поисковый индекс
         $index = Zend_Search_Lucene::open($indexFullpath);
         // Оптимизация индекса
         $index->optimize();
         $message = array('<em>' . $this->Translate("Оптимизация поискового индекса") . '!</em>', $this->Translate("Оптимизация поискового индекса завершилась успешно") . '.');
         if ($this->_isAjaxRequest) {
             $json['class_message'] = 'information';
             $json['messages'] = $message;
             $json['$result'] = $result;
         }
     } catch (Exception $ex) {
         $err_msg = $ex->getMessage();
         $message = array('<em>' . $this->Translate("Ошибка оптимизации поискового индекса") . '!</em>', $err_msg);
         if ($this->_isAjaxRequest) {
             $json['class_message'] = 'warning';
             $json['messages'] = $message;
             $json['$result'] = $result;
         } else {
             $logger = Zend_Registry::get('Zend_Log');
             $logger->warn('Error optimizing search index: ' . $ex->getMessage());
             $result = FALSE;
         }
     }
     if ($this->_isAjaxRequest) {
         $this->sendJson($json);
     } else {
         $this->view->result = $result;
         if ($result) {
             $this->view->class_message = 'information';
         } else {
             $this->view->err_msg = $err_msg;
             $this->view->class_message = 'warning';
         }
         $this->view->message = $message;
         $this->_breadcrumbs->addStep($this->Translate('Оптимизация поискового индекса'));
     }
 }