/** * 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; }
public function removeUser($userid) { $this->user_ids = JXUtility::csvRemove($this->user_ids, $userid); }
/** * 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; }
/** * 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)); }