예제 #1
0
파일: topics.php 프로젝트: rich20/Kunena
	function unsubscribe() {
		$app = JFactory::getApplication ();
		if (! JRequest::checkToken ()) {
			$app->enqueueMessage ( JText::_ ( 'COM_KUNENA_ERROR_TOKEN' ), 'error' );
			$this->redirectBack ();
		}

		$topics = KunenaForumTopicHelper::getTopics(array_keys(JRequest::getVar('topics', array ( 0 ), 'post', 'array')));
		if ( KunenaForumTopicHelper::subscribe(array_keys($topics), 0) ) {
			$app->enqueueMessage ( JText::_('COM_KUNENA_USER_UNSUBSCRIBE_YES') );
		} else {
			$app->enqueueMessage ( JText::_('COM_KUNENA_POST_NO_UNSUBSCRIBED_TOPIC') );
		}
		$this->redirectBack ();
	}
 /**
  * Delete all users subscriptions
  *
  * @param moscomprofilerUser $user
  * @param string             $prefix
  */
 function _unsubAll($user, $forum)
 {
     global $_CB_database;
     if ($forum->prefix != 'kunena' || $forum->prefix == 'kunena' && !class_exists('KunenaForum')) {
         $query = 'DELETE FROM ' . $_CB_database->NameQuote('#__' . $forum->prefix . '_subscriptions') . "\n WHERE " . $_CB_database->NameQuote('userid') . " = " . (int) $user->id;
         $_CB_database->setQuery($query);
         if (!$_CB_database->query()) {
             trigger_error('CBForum-unsubAll SQL error' . $_CB_database->stderr(true), E_USER_WARNING);
         }
     } elseif (class_exists('KunenaForumTopicHelper')) {
         $threads = array_keys(array_pop(KunenaForumTopicHelper::getLatestTopics(false, 0, 0, array('user' => (int) $user->id, 'subscribed' => true))));
         if ($threads) {
             KunenaForumTopicHelper::subscribe($threads, 0, (int) $user->id);
         }
     }
 }
예제 #3
0
 function unsubscribe()
 {
     if (!JSession::checkToken('post')) {
         $this->app->enqueueMessage(JText::_('COM_KUNENA_ERROR_TOKEN'), 'error');
         $this->setRedirectBack();
         return;
     }
     $ids = array_keys(JRequest::getVar('topics', array(), 'post', 'array'));
     // Array of integer keys
     JArrayHelper::toInteger($ids);
     $topics = KunenaForumTopicHelper::getTopics($ids);
     if (KunenaForumTopicHelper::subscribe(array_keys($topics), 0)) {
         $this->app->enqueueMessage(JText::_('COM_KUNENA_USER_UNSUBSCRIBE_YES'));
     } else {
         $this->app->enqueueMessage(JText::_('COM_KUNENA_POST_NO_UNSUBSCRIBED_TOPIC'));
     }
     $this->setRedirectBack();
 }
예제 #4
0
 /**
  * Un-subscribe from a topic
  *
  * @param  string|int   $postid  Forum Post id
  * @param  UserTable    $user    Viewed at User
  * @param  PluginTable  $plugin  Current Plugin
  * @return boolean               Result
  */
 public static function unSubscribe($postid, $user, $plugin)
 {
     if (!class_exists('KunenaForumTopicHelper')) {
         return false;
     }
     if ($postid == 'all') {
         $topics = KunenaForumTopicHelper::getLatestTopics(false, 0, 0, array('user' => (int) $user->id, 'subscribed' => true));
         $ids = array_keys(array_pop($topics));
     } else {
         $ids = array((int) $postid);
     }
     if (!$ids || !KunenaForumTopicHelper::subscribe($ids, 0, (int) $user->id)) {
         return false;
     }
     return true;
 }