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