/** * Sets {@link $number_of_tags} * * @param integer $num */ function set_number_of_tags($num = false) { if ($num === false || !is_numeric($num)) { require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/core/ArticlesTags.class.php'; $atl = new ArticlesTags_list(); $atl->search(array('search_article_id' => $this->id), '', '', 0, 0, false); $atl->_query->add_group_by('at.article_id'); $this->number_of_tags = $atl->get_total_count(); } elseif (is_numeric($num)) { $this->number_of_tags = $num; } else { $this->number_of_tags = false; } return true; }
/** * 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; }