Esempio n. 1
0
 /**
  * Ajax join
  */
 public function unfollow()
 {
     $my = JXFactory::getUser();
     $group = JTable::getInstance('Group', 'StreamTable');
     $group->load(JRequest::getVar('group_id'));
     $group->followers = JXUtility::csvRemove($group->followers, $my->id);
     $group->store();
     // Store user cache
     $groupList = $my->getParam('groups_follow');
     $groupList = JXUtility::csvRemove($groupList, $group->id);
     $my->setParam('groups_follow', $groupList);
     $my->save();
     $data = array();
     $data['redirect'] = JRoute::_('index.php?option=com_stream&view=groups&task=show&group_id=' . $group->id, FALSE);
     header('Content-Type: text/json');
     echo json_encode($data);
     exit;
 }
Esempio n. 2
0
 public function removeUser($userid)
 {
     $this->user_ids = JXUtility::csvRemove($this->user_ids, $userid);
 }
Esempio n. 3
0
 /**
  * Delete a message
  */
 public function delete()
 {
     $my = JXFactory::getUser();
     $message_id = JRequest::getVar('message_id');
     $stream = JTable::getInstance('Stream', 'StreamTable');
     $stream->load($message_id);
     if (!$my->authorise('stream.message.delete', $stream)) {
         // No reason this code would ever get here!
         exit;
     }
     // Remove trending tags data
     $tagsTrend = new StreamTag();
     $rawData = json_decode($stream->raw);
     $rawData->tags = isset($rawData->tags) ? $rawData->tags : '';
     $tagsArray = explode(',', trim($rawData->tags, ','));
     foreach ($tagsArray as $tag) {
         // trim hashes
         $tag = trim($tag, '#');
         // remove trending data
         $tagsTrend->updateTrending($tag, $stream->group_id, false);
     }
     $stream->delete();
     // Delete related comments
     StreamComment::deleteComments($message_id);
     // Unattach all files
     $user = JXFactory::getUser($stream->user_id);
     $links = StreamMessage::getLinks($stream->message);
     if (!empty($links)) {
         $userLinks = $user->getParam('links');
         foreach ($links as $row) {
             $link = JTable::getInstance('Link', 'StreamTable');
             $link->load(array('link' => $row));
             $link->removeUser($user->id);
             $link->store();
             $userLinks = JXUtility::csvRemove($userLinks, $link->id);
         }
         $user->setParam('links', $userLinks);
         $user->save();
     }
     // @todo: delete attachments
     // Upgrade group stats if necessary
     if (JRequest::getVar('group_id')) {
         $group = JTable::getInstance('Group', 'StreamTable');
         $group->load(JRequest::getVar('group_id'));
         $group->setParam('message_count', $streamModel->countStream(array('group_id' => $group->id)));
         $group->setParam($stream->type . '_count', $streamModel->countStream(array('group_id' => $group->id, 'type' => $stream->type)));
         $group->store();
     }
     $data = array();
     $data['id'] = $message_id;
     header('Content-Type: text/json');
     echo json_encode($data);
     exit;
 }
Esempio n. 4
0
 /**
  * link the given task to current message.
  */
 public function detachTodo($message)
 {
     $todoList = $this->data->getParam('todo');
     $this->data->setParam('todo', JXUtility::csvRemove($todoList, $message->id));
 }