Example #1
0
 /**
  * Store changes to this entry
  *
  * @param     boolean $check Perform data validation check?
  * @return    boolean False if error, True on success
  */
 public function store($check = true)
 {
     // Get the entry before changes were made
     $old = new self($this->get('id'));
     // Store entry
     if (!parent::store($check)) {
         return false;
     }
     // If the section is marked as "deleted" and it wasn't already marked as such
     if ($this->get('state') == self::APP_STATE_DELETED && $old->get('state') != self::APP_STATE_DELETED) {
         // Collect a list of category IDs
         $cats = array();
         foreach ($this->categories('list', array('state' => -1)) as $category) {
             $cats[] = $category->get('id');
         }
         if (count($cats) > 0) {
             // Set all the threads/posts in all the categories to "deleted"
             $post = new Tables\Post($this->_db);
             if (!$post->setStateByCategory($cats, self::APP_STATE_DELETED)) {
                 $this->setError($post->getError());
             }
             // Set all the categories to "deleted"
             $cModel = new Tables\Category($this->_db);
             if (!$cModel->setStateBySection($this->get('id'), self::APP_STATE_DELETED)) {
                 $this->setError($cModel->getError());
             }
         }
     }
     return true;
 }