function tag_url_handler(&$sm, $url_array) { $um =& $sm->get_url_manager(); $params = array('url_module' => 'tag'); if (VIVVO_MODULES_TAGS == 1) { array_shift($url_array); $last_chunk = end($url_array); $url_count = count($_url_array); if (preg_match('/index\\.(\\d+)?.*' . $um->list['output_type'] . '?/i', $last_chunk, $filename)) { if (!empty($filename[1])) { $params['pg'] = $filename[1]; } array_pop($url_array); $last_chunk = end($url_array); } if ($last_chunk) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tag_list = new Tags_list($sm); $tag = $tag_list->get_tag_by_sefriendly(urldecode($last_chunk)); if ($tag) { $params['search_tag_id'] = $tag->id; } else { go_404(); } } else { // show tags main page $params['show_tags'] = 1; } return $params; } else { go_404(); } }
function topic_content_handler(&$sm) { $template = $sm->get_template(); $header = $sm->get_header_manager(); $um = $sm->get_url_manager(); if (!$um->isset_param('search_tid')) { go_404(); } require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/TagsGroups.class.php'; $tags_groups_list = new TagsGroups_list($sm); $tags_group = $tags_groups_list->get_group_by_id($um->get_param('search_tid')); if (!$tags_group) { go_404(); } $tag = false; if ($um->isset_param('search_lid')) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tags_list = new Tags_list($sm); $tag = $tags_list->get_tag_by_id($um->get_param('search_lid')); if (!$tag) { go_404(); } $tag->set_group_url($tags_group->get_href()); $tag->set_group_name($tags_group->get_name()); } $template->assign('topic', $tags_group); $template->assign('tag', $tag); $template->assign('label', $tag); // @deprecated if ($um->isset_param('pg')) { $template->assign('pg', $um->get_param('pg')); } if ($tag) { $dir = 'label/'; $file = $tags_group->get_tag_template(); } else { $dir = 'topic/'; $file = $tags_group->get_template(); } $base = VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR; if (!is_file($tpl = $base . $dir . $file)) { $tpl = $base . $dir . 'default.tpl'; } $template->set_template_file($tpl); }
/** * Tags list (tags in topic, search results) */ public function _tag_list() { $sm = vivvo_lite_site::get_instance(); $um = $sm->get_url_manager(); $list_template = $this->load_template($this->_template_root . 'tag_list.xml'); $params = Tags_list::get_search_params_from_url($sm); $params['search_advanced_mode'] = 1; if ($um->isset_param('topic_id')) { $topic = TagsGroups_list::factory()->get_group_by_id($um->get_param('topic_id')); $params['search_topic_id'] = $topic->get_id(); $list_template->assign('topic', $topic); } $list_template->assign('tag_list_params', $params); $search_sort_by = $params['search_sort_by'] . '.' . $params['search_order']; $list_template->assign('search_sort_by', $search_sort_by); $list_template->assign('search_limit', $params['search_limit']); return $list_template; }
/** * Returns list of all tags applied to this article * * @return array */ public function get_tag_links() { if ($this->tag_links === false) { $this->tag_links = array(); class_exists('TagsGroups') or (require VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/TagsGroups.class.php'); class_exists('Tags') or (require VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'); $this->topics = TagsGroups_list::factory()->get_groups_by_article_id($this->id, 1); $tag_list = Tags_list::factory(); foreach ($this->topics as $topic) { $topic->set_article_tags($tags = $tag_list->get_tags_by_article_topic($this, $topic, true)); $this->tag_links = array_merge($this->tag_links, $tags); } } return $this->tag_links; }
/** * Gets tags from this group * * @return array */ public function get_tags() { if (!is_array($this->tags)) { require_once dirname(__FILE__) . '/Tags.class.php'; $tags_list = new Tags_list(); $this->tags = $tags_list->get_tags_by_group_id($this->id); if (!is_array($this->tags)) { $this->tags = array(); } } return $this->tags; }
/** * Add tag to tag group * * @param int $tag_id * @param int $group_id */ public function add_tag_to_group($tag_id, $group_id, $article_id = 0) { if (!vivvo_hooks_manager::call('tag_addTagToGroup', array(&$tag_id, &$group_id, &$article_id))) { return vivvo_hooks_manager::get_status(); } $user = vivvo_lite_site::get_instance()->user; if ($user && $user->can('MANAGE_TAGS')) { $tag_group_list = new TagsGroups_list(); $tag_group = $tag_group_list->get_group_by_id($group_id); $tag_list = new Tags_list(); $tag = $tag_list->get_tag_by_id($tag_id); if ($tag_group && $tag) { $tg_list = new TagsToTagsGroups_list(); if (!$tg_list->get_rel($tag_id, $group_id)) { $tag_group_rel = new TagsToTagsGroups(); $tag_group_rel->set_tag_id($tag_id); $tag_group_rel->set_tags_group_id($group_id); $this->_post_master->set_data_object($tag_group_rel); if (!$this->_post_master->sql_insert()) { $this->set_error_code(2415); return false; } } if ($article_id > 0) { $tg_list = new ArticlesTags_list(); if (!$tg_list->search(array('search_tag_id' => $tag_id, 'search_tags_group_id' => $group_id, 'search_article_id' => $article_id))) { $tag_link = new ArticlesTags(); $tag_link->set_article_id($article_id); $tag_link->set_tag_id($tag_id); $tag_link->set_tags_group_id($group_id); $tag_link->set_user_id($user->get_id()); $this->_post_master->set_data_object($tag_link); if (!$this->_post_master->sql_insert()) { $this->set_error_code(2415); return false; } } } return true; } $this->set_error_code(2415); return false; } $this->set_error_code(2410); return false; }
function web_statistics() { $content_template = $this->load_template($this->_template_root . 'web_statistics.xml'); $sm = vivvo_lite_site::get_instance(); $db =& $sm->get_db(); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Categories.class.php'; $cat_list = new Categories_list(); $content_template->assign('website_categories', strval($cat_list->get_count())); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tag_list = new Tags_list(); $content_template->assign('website_tags', strval($tag_list->get_count())); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Articles.class.php'; $articles_list = new Articles_list(); $content_template->assign('website_articles', strval($articles_list->get_count())); $content_template->assign('website_articles_active', strval($articles_list->get_count(array('search_status' => 1)))); $res = $db->query('SELECT sum(times_read) as times_view FROM ' . VIVVO_DB_PREFIX . 'articles_stats'); if (!PEAR::isError($res)) { if ($row = $res->fetchRow(MDB2_FETCHMODE_ASSOC)) { $times_view = $row['times_view']; } } $content_template->assign('website_articles_view', intval($times_view)); require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Comments.class.php'; $comments_list = new Comments_list(); $content_template->assign('website_comments', strval($comments_list->get_count())); $user_mng = $sm->get_user_manager(); $user_list = $user_mng->get_user_list(); $content_template->assign('system_staff', strval($user_list->get_count(array('search_user_type' => 'staff')))); return $content_template->get_output(); }
function generate_output($params) { $this->set_template($params); if (!empty($params['search_advanced_mode'])) { class_exists('Tags') or (require VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'); $list = new Tags_list(); $list->search_from_params($params); $this->_template->assign('tags_list', $list->list); $this->_template->assign('tag_list', $list->list); $this->_template->assign('tags', $list); } else { $params['search_limit'] = intval($params['search_limit']); if ($params['search_limit'] == 0) { $params['search_limit'] = 20; } if (!isset($params['offset'])) { $params['offset'] = 0; } if (!isset($params['search_sort_by'])) { $params['search_sort_by'] = ''; } if (!isset($params['search_order'])) { $params['search_order'] = ''; } $um = vivvo_lite_site::get_instance()->get_url_manager(); if (isset($params['search_article_id'])) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/ArticlesTags.class.php'; $articles_tags_list = new ArticlesTags_list(null, $params['fields']); if (!empty($params['search_user_id'])) { $articles_tags_list->get_by_article_user($params['search_article_id'], $params['search_user_id']); } elseif (isset($params['search_topic_id'])) { $articles_tags_list->get_articles_tags_by_topic_id($params['search_article_id'], $params['search_topic_id']); } else { $articles_tags_list->get_articles_tags_by_article($params['search_article_id']); } $this->_template->assign('tag_list', $articles_tags_list->list); $this->_template->assign('tags', $articles_tags_list); } else { if (isset($params['search_starting_with']) && !empty($params['search_starting_with'])) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tag_list = new Tags_list(); $tag_list->search(array('search_starting_with' => $params['search_starting_with']), $params['search_sort_by'], $params['search_order'], $params['search_limit'], $params['offset']); $this->_template->assign('tag_list', $tag_list->list); $this->_template->assign('tags', $tag_list); } else { if (!empty($params['search_sort_by'])) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tag_list = new Tags_list(); $tag_list->search(array(), $params['search_sort_by'], $params['search_order'], $params['search_limit'], $params['offset']); $this->_template->assign('tag_list', $tag_list->list); $this->_template->assign('tags', $tag_list); } else { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/Tags.class.php'; $tag_list = new Tags_list(); $tag_list->get_rated_tags($params['search_limit'], isset($params['search_topic_id']) ? $params['search_topic_id'] : 0, isset($params['search_category_id']) ? $params['search_category_id'] : -1); $tag_list->set_fontsize(); $this->_template->assign('tag_list', $tag_list->list); $this->_template->assign('tags', $tag_list); } } } } if (isset($params['title'])) { $this->_template->assign('title', $params['title']); } $this->_template->assign('box_id', $params['box_id']); }