Exemple #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')));
 }