Ejemplo n.º 1
0
 public function addAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $type = strtolower($request->getPost('type'));
         switch ($type) {
             case 'ajax':
                 $this->disableLayout();
                 $this->setNoRender();
                 $tagText = trim($request->getPost('tag_text'));
                 $tagText = $this->view->STRING->escape($tagText);
                 //$tagText = Gio_Core_String::stripTags($tagText, array('.'));
                 $response = array('status' => 'RESULT_NOT_OK', 'tag_text' => null, 'tag_id' => null);
                 $json = new Services_JSON();
                 if ($tagText) {
                     if (Modules_Tag_Services_Tag::checkExist($tagText)) {
                         $response['status'] = 'RESULT_EXIST';
                     } else {
                         $tag = array('tag_text' => $tagText, 'slug' => Gio_Core_String::removeSign($tagText, '-', true), 'created_date' => date('Y-m-d H:i:s'));
                         $tagId = Modules_Tag_Services_Tag::add($tag);
                         $response['status'] = 'RESULT_OK';
                         $response['tag_text'] = $tagText;
                         $response['tag_id'] = $tagId;
                     }
                 }
                 $this->getResponse()->setBody($json->encodeUnsafe($response));
                 return;
                 break;
             default:
                 $tagData = $request->getPost('tag');
                 $tagData = Modules_Tag_Services_Tag::validate($tagData);
                 if (isset($tagData['messages_error']) && $tagData['messages_error']) {
                     $this->view->errorMessages = $tagData['messages'];
                     $this->view->tagData = $tagData;
                     return;
                 }
                 if (Modules_Tag_Services_Tag::checkExist($tagData['tag_text'])) {
                     $this->view->tagData = $tagData;
                     $this->view->existMessage = true;
                     return;
                 }
                 $tag = array('tag_text' => $this->view->STRING->escape($tagData['tag_text']), 'slug' => $tagData['slug'], 'created_date' => date('Y-m-d H:i:s'));
                 $tagId = Modules_Tag_Services_Tag::add($tag);
                 Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('tag_actions_add_success'));
                 $this->redirect($this->view->url('tag_tag_add'));
                 break;
         }
     }
 }
Ejemplo n.º 2
0
    public function count($condition = array())
    {
        /**
         * Language is index column 
         */
        $sql = 'SELECT COUNT(a.language) as num_articles FROM ' . $this->_conn->_tablePrefix . 'news_article AS a
				WHERE a.language = "' . $this->_conn->escape($this->getLang()) . '"';
        if (isset($condition['category_id']) && $condition['category_id']) {
            $sql .= ' AND a.article_id IN (SELECT article_id FROM ' . $this->_conn->_tablePrefix . 'news_article_category_assoc AS acs 
										WHERE acs.category_id = "' . $this->_conn->escape($condition['category_id']) . '")';
        }
        if (isset($condition['status']) && $condition['status']) {
            $sql .= ' AND a.status = "' . $this->_conn->escape($condition['status']) . '"';
        }
        if (isset($condition['keyword']) && $condition['keyword']) {
            $sql .= ' AND (a.title LIKE "%' . $this->_conn->escape($condition['keyword']) . '%"';
            //$sql .= ' 	OR a.description LIKE "%' . $this->_conn->escape($condition['keyword']) . '%"';
            //$sql .= ' 	OR a.content LIKE "%' . $this->_conn->escape($condition['keyword']) . '%"';
            $keywordNoSign = Gio_Core_String::removeSign($condition['keyword'], '-', true);
            //$sql .= ' 	OR a.slug LIKE "%' . $this->_conn->escape($keywordNoSign) . '%"';
            $sql .= ')';
        }
        if (isset($condition['article_id']) && $condition['article_id']) {
            $sql .= ' AND a.article_id = "' . $this->_conn->escape($condition['article_id']) . '"';
        }
        if (isset($condition['article_hot'])) {
            $sql .= ' AND a.article_hot = ' . (int) $condition['article_hot'];
        }
        if (isset($condition['article_sticky']) && $condition['article_sticky'] == 1) {
            $sql .= ' AND a.article_sticky = 1';
        }
        if (isset($condition['article_photo']) && $condition['article_photo'] == 1) {
            $sql .= ' AND a.article_photo = 1';
        }
        if (isset($condition['created_date_from']) && $condition['created_date_from']) {
            $sql .= ' AND a.created_date >= "' . $this->_conn->escape($condition['created_date_from']) . '"';
        }
        if (isset($condition['created_date_to']) && $condition['created_date_to']) {
            $sql .= ' AND a.created_date <= "' . $this->_conn->escape($condition['created_date_to']) . '"';
        }
        if (isset($condition['web_id']) && $condition['web_id']) {
            $sql .= ' AND a.web_id = "' . $this->_conn->escape($condition['web_id']) . '"';
        }
        if (isset($condition['user_id']) && $condition['user_id']) {
            $sql .= ' AND a.user_id = "' . $this->_conn->escape($condition['user_id']) . '"';
        }
        $rs = $this->_conn->query($sql);
        $row = $this->_conn->fetchAll($rs);
        /**
         * Free result 
         */
        $this->_conn->freeResult($rs);
        return $row['num_articles'];
    }
Ejemplo n.º 3
0
    public function tintuconline($linkId)
    {
        ini_set("memory_limit", "256M");
        $conn = Gio_Db_Connection::getConnection();
        if ($linkId) {
            $ext = $linkId == -1 ? null : ' AND cron_id = ' . (int) $linkId;
            $sql = 'SELECT * FROM ' . $conn->_tablePrefix . 'news_cron WHERE website_name="tintuconline" 
						AND is_locked = 0 AND status = "active"' . $ext;
        } else {
            $numCategories = isset($this->_configs['auto_update_num_category']) ? $this->_configs['auto_update_num_category'] : 5;
            $sql = 'SELECT * FROM ' . $conn->_tablePrefix . 'news_cron
					WHERE status = "active" AND TIMESTAMPDIFF(SECOND, last_update, "' . date('Y-m-d H:i:s') . '") > frequency
						AND website_name = "tintuconline" AND is_locked = 0 
					ORDER BY priority
					LIMIT ' . (int) $numCategories;
        }
        $rsSql = $conn->query($sql);
        $addArticles = array();
        $addCategories = array();
        $articleDao = new Modules_News_Models_Mysql_Article();
        $articleDao->setConnection($conn);
        while ($row = $conn->fetchAll($rsSql)) {
            /**
             * Check time
             */
            $rssData = simplexml_load_file($row['source']);
            $articles = $rssData->channel->item;
            $categories = explode('-', $row['category_ids']);
            foreach ($articles as $index => $item) {
                $title = trim($item->title);
                $title = Gio_Core_String::stripCdata($title);
                $description = Gio_Core_String::stripCdata($item->description);
                $description = strip_tags($description);
                $link = Gio_Core_String::stripCdata($item->link);
                $link = trim($link);
                $date = Gio_Core_String::stripCdata($item->pubDate);
                $date = trim($date);
                /**
                 * Check article exists
                 */
                $existsArticle = $articleDao->getBySlug(Gio_Core_String::removeSign(trim($title), '-', true));
                if (null == $existsArticle) {
                    $article = array('title' => $title, 'slug' => Gio_Core_String::removeSign($title, '-', true), 'description' => $description, 'created_date' => date('Y-m-d H:i:s', strtotime($date)), 'link_source' => $link, 'image_url' => null, 'category_ids' => $row['category_ids'], 'website' => 'tintuconline', 'article_photo' => 0, 'article_video' => 0);
                    $addArticles[] = $article;
                    $addCategories[] = $categories;
                }
            }
            /**
             * Update time for cron
             */
            $sql = 'UPDATE ' . $conn->_tablePrefix . 'news_cron SET last_update = "' . date('Y-m-d H:i:s') . '"
						WHERE cron_id = ' . $conn->escape($row['cron_id']);
            $rsUpdate = $conn->query($sql);
            $conn->freeResult($rsUpdate);
        }
        $conn->freeResult($rsSql);
        /**
         * Add articles, Add Categories
         */
        if ($addArticles && $addCategories) {
            $this->addArticles[] = $addArticles;
            $this->addCategories[] = $addCategories;
        }
    }
Ejemplo n.º 4
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);
 }