/** * Delete blog entry * * @return void redirect */ protected function _delete() { // Check permission if (!$this->model->access('content')) { throw new Exception(Lang::txt('ALERTNOTAUTH'), 403); } // Incoming $tbl = trim(Request::getVar('tbl', 'activity')); $eid = Request::getInt('eid', 0); // Are we deleting a blog entry? if ($tbl == 'blog') { $objM = new \Components\Projects\Tables\Blog($this->_database); if ($eid && $objM->load($eid)) { // Get associated commenting activities $objC = new \Components\Projects\Tables\Comment($this->_database); $activities = $objC->collectActivities($eid, $tbl); $activities[] = $objM->activityid; // Delete blog entry if ($objM->deletePost()) { $this->_msg = Lang::txt('PLG_PROJECTS_BLOG_ENTRY_DELETED'); // Delete all associated comments $comments = $objC->deleteComments($eid, $tbl); // Delete all associated activities foreach ($activities as $a) { $objAA = $this->model->table('Activity'); $objAA->loadActivity($a, $this->model->get('id')); $objAA->deleteActivity(); } } } } // Are we deleting activity? if ($tbl == 'activity') { $objAA = $this->model->table('Activity'); $objAA->loadActivity($eid, $this->model->get('id')); if ($this->model->access('content') || $objAA->userid == $this->_uid) { // Get associated commenting activities $objC = new \Components\Projects\Tables\Comment($this->_database); $activities = $objC->collectActivities($eid, $tbl); if ($objAA->deleteActivity()) { $this->_msg = Lang::txt('PLG_PROJECTS_BLOG_ENTRY_DELETED'); // Delete all associated comments $comments = $objC->deleteComments($eid, $tbl); // Delete all associated activities foreach ($activities as $a) { $objAA = $this->model->table('Activity'); $objAA->loadActivity($a, $this->model->get('id')); $objAA->deleteActivity(); } } } else { // unauthorized $this->setError(Lang::txt('COM_PROJECTS_ERROR_ACTION_NOT_AUTHORIZED')); } } // Pass error or success message if ($this->getError()) { Notify::message($this->getError(), 'error', 'projects'); } elseif (!empty($this->_msg)) { Notify::message($this->_msg, 'success', 'projects'); } // Redirect App::redirect(Route::url($this->model->link('feed'))); }
/** * Delete item * * @return string */ public function delete() { // Check permission if (!$this->model->access('content')) { throw new Exception(Lang::txt('ALERTNOTAUTH'), 403); return; } // Incoming $todoid = $this->_todoid; $list = Request::getVar('dl', ''); $gobacklist = ''; // Load todo $objTD = new \Components\Projects\Tables\Todo($this->_database); if ($todoid && $objTD->loadTodo($this->model->get('id'), $todoid)) { // Get associated commenting activities $objC = new \Components\Projects\Tables\Comment($this->_database); $activities = $objC->collectActivities($todoid, "todo"); $activities[] = $objTD->activityid; // Store list name (for redirect) $gobacklist = $objTD->color; // Delete todo if (!$objTD->deleteTodo($this->model->get('id'), $todoid)) { $this->setError(Lang::txt('PLG_PROJECTS_TODO_TODO_DELETED_ERROR')); } else { // Delete all associated comments $comments = $objC->deleteComments($todoid, "todo"); // Delete all associated activities foreach ($activities as $a) { $objAA = $this->model->table('Activity'); $objAA->loadActivity($a, $this->model->get('id')); $objAA->deleteActivity(); } $this->_msg = Lang::txt('PLG_PROJECTS_TODO_TODO_DELETED'); } } elseif ($list && $objTD->getListName($this->model->get('id'), $list)) { // Are we deleting a list? $deleteall = Request::getInt('all', 0); if ($deleteall) { // Get all to-do's on list $todos = $objTD->getTodos($this->model->get('id'), $filters = array('todolist' => $list)); if (count($todos) > 0) { foreach ($todos as $todo) { if ($objTD->loadTodo($this->model->get('id'), $todo->id)) { // Get associated commenting activities $objC = new \Components\Projects\Tables\Comment($this->_database); $activities = $objC->collectActivities($todo->id, "todo"); $activities[] = $objTD->activityid; // Delete todo if ($objTD->deleteTodo($this->model->get('id'), $todo->id)) { // Delete all associated comments $comments = $objC->deleteComments($todo->id, "todo"); // Delete all associated activities foreach ($activities as $a) { $objAA = new \Components\Projects\Tables\Activity($this->_database); $objAA->loadActivity($a, $this->model->get('id')); $objAA->deleteActivity(); } } } } } } // Clean-up colored items $objTD->deleteList($this->model->get('id'), $list); $this->_msg = Lang::txt('PLG_PROJECTS_TODO_TODO_LIST_DELETED'); } // Pass error or success message if ($this->getError()) { \Notify::message($this->getError(), 'error', 'projects'); } elseif (!empty($this->_msg)) { \Notify::message($this->_msg, 'success', 'projects'); } // Redirect back to todo list $url = Route::url($this->model->link('todo')); $url .= $gobacklist ? '?list=' . $gobacklist : ''; App::redirect($url); return; }