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