Beispiel #1
0
 /**
  * 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;
     }
 }
Beispiel #2
0
 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']);
 }