/** * Delete tag * * @param integer $tag_id * @return boolean true on success or false on fail */ function delete_tag($tag_id, $all_matching = 0) { if (!$this->check_token()) { return false; } if (!vivvo_hooks_manager::call('tag_delete', array(&$tag_id))) { return vivvo_hooks_manager::get_status(); } if ($tag_id <= 100) { $this->set_error_code(2421); // system tag can't be deleted. return false; } $sm = vivvo_lite_site::get_instance(); $user = $sm->user; if ($sm->user && $sm->user->can('ARTICLE_TAG')) { if ($sm->user->is_admin() || $sm->user->is('EDITOR')) { $tag_list = new Tags_list(); if ($all_matching) { $params = Tags_list::get_search_params_from_url($sm); $tag_list->search($params['search_options'], '', 'ascending', 0, 0); if ($tag_list->sql_delete_list($this->_post_master, null, true)) { admin_log($user->get_username(), 'Deleted tags like ' . $params['search_options']); return true; } } else { $tag_list->get_tags_by_ids($tag_id, false); if ($tag_list->sql_delete_list($this->_post_master)) { admin_log($user->get_username(), 'Deleted tag #' . $tag_id); return true; } } $this->set_error_code(2404); return false; } else { $this->set_error_code(2405); return false; } } else { $this->set_error_code(2406); return false; } }
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']); }