Example #1
0
 public function run()
 {
     $targets = Modules_Core_Services_Target::getTargets();
     if ($targets) {
         foreach ($targets as $target) {
             /**
              * Determine the hook class
              */
             $hookClass = null == $target['hook_module'] || '' == $target['hook_module'] ? 'Hooks_' . ucfirst($target['hook_name']) . '_Hook' : 'Modules_' . ucfirst(strtolower($target['hook_module'])) . '_Hooks_' . ucfirst($target['hook_name']) . '_Hook';
             /**
              * Create new hook instance and register it
              */
             if (class_exists($hookClass) && ($hook = new $hookClass()) instanceof Gio_Core_Hook) {
                 Gio_Core_Hook_Registry::getInstance()->register($target['target_name'], array($hook, $target['hook_type']));
             }
         }
     }
 }
Example #2
0
 public static function getLinks($lang = null)
 {
     if (null == $lang) {
         $lang = Gio_Core_Config_Xml::getConfig('web')->language;
     }
     $view = Gio_Core_View::getInstance();
     $router = Gio_Core_Route::getInstance();
     $results = array();
     $links = array();
     /**
      * Add the homepage link
      */
     $links['core_index_index'][] = array('href' => $view->url('core_index_index', array('language' => $lang)));
     $links = Gio_Core_Hook_Registry::getInstance()->executeFilter('Core_LinkProvider', $links, array($lang));
     foreach ($links as $routeName => $value) {
         /**
          * Get route description
          */
         $defaults = $router->getRoute($routeName);
         $description = isset($defaults['langKey']) ? $view->TRANSLATOR->translator($defaults['langKey'], $defaults['module'], $lang) : $routeName;
         $results[$routeName] = array('description' => $description, 'links' => $value);
     }
     return $results;
 }
Example #3
0
 public function detailsAction()
 {
     $request = $this->getRequest();
     $articleId = $request->getParam('article_id');
     $article = Modules_News_Services_Article::getById($articleId, true);
     if (null == $article) {
         Modules_Core_Services_Exception::error('ROUTE_NOT_FOUND');
     }
     /**
      * Format content
      */
     $article['content'] = Gio_Core_Hook_Registry::getInstance()->executeFilter('News_Article_Details_FormatContent', $article['content'], array($article['web_id']));
     $this->view->article = $article;
     $string = new Gio_Core_String();
     $this->view->metaKeyword = $string->escape($article['title']) . ' ' . Gio_Core_String::removeSign($article['title'], ' ');
     $description = strip_tags($article['description']);
     $description = trim($description);
     $descriptionRemoveSign = Gio_Core_String::removeSign($description, '');
     $this->view->metaDescription = $string->escape($description) . '' . $descriptionRemoveSign;
     /**
      * Increase article views
      */
     Modules_News_Services_Article::increaseViews($article);
 }
Example #4
0
 /**
  * @return void
  */
 private function __construct()
 {
     self::$_hooks = array();
 }
Example #5
0
 public static function update($article, $categories = array())
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_News_Models_Mysql_Article();
     $dao->setConnection($conn);
     $dao->update($article);
     /**
      * Update translation relation
      */
     $json = new Services_JSON();
     $source = self::getSource($article);
     $translation = array('item_id' => $article['article_id'], 'item_class' => get_parent_class($dao), 'source_item_id' => !isset($source['article_id']) || $source['article_id'] == '' ? $article['article_id'] : $source['article_id'], 'language' => $article['language'], 'source_language' => !isset($source['language']) || '' == $source['language'] ? null : $source['language']);
     if ($source != null) {
         Modules_Core_Services_Translation::update($translation);
     } else {
         Modules_Core_Services_Translation::add($translation);
     }
     /**
      * Add to categories
      */
     if (is_array($categories) && !empty($categories)) {
         if (!in_array($article['category_id'], $categories)) {
             $categories[] = $article['category_id'];
         }
     } else {
         $categories[] = $article['category_id'];
     }
     $dao->addToCategories($article['article_id'], $categories);
     /**
      * Execute hooks
      */
     Gio_Core_Hook_Registry::getInstance()->executeAction('News_Article_Edit_Success', $article['article_id']);
 }