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