Esempio n. 1
0
 function delete($id)
 {
     $upload = $this->findById($id);
     if (!$upload) {
         return $this->cakeError('object_not_found');
     }
     // Delete DB record first
     if (parent::delete($upload[$this->name]['id'])) {
         $path = Configure::read('Wildflower.uploadDirectory') . DS . $upload[$this->name]['name'];
         $this->_deleteFiles($path);
         return true;
     }
     return false;
 }
Esempio n. 2
0
 /**
  * Before save callback
  *
  * @return bool Success
  */
 function beforeSave()
 {
     parent::beforeSave();
     // Construct the absolute page URL
     if (isset($this->data[$this->name]['slug'])) {
         $level = 0;
         if ($this->id === intval(Configure::read('AppSettings.home_page_id'))) {
             // Home page has the URL of root
             $this->data[$this->name]['url'] = '/';
         } else {
             if (!isset($this->data[$this->name]['parent_id']) or !is_numeric($this->data[$this->name]['parent_id'])) {
                 // Page has no parent
                 $this->data[$this->name]['url'] = "/{$this->data[$this->name]['slug']}";
             } else {
                 $parentPage = $this->findById($this->data[$this->name]['parent_id'], array('lft', 'rght', 'slug'));
                 $ancestors = $this->findPath($parentPage[$this->name]['lft'], $parentPage[$this->name]['rght'], array('slug'));
                 if (empty($ancestors)) {
                     $ancestors = array($parentPage);
                 } else {
                     $ancestors[] = $parentPage;
                 }
                 $level = count($ancestors);
                 $url = "/{$this->data[$this->name]['slug']}";
                 if (!empty($ancestors)) {
                     $slugs = Set::extract($ancestors, '{n}.' . $this->name . '.slug');
                     $url = '/' . join('/', $slugs) . $url;
                 }
                 $this->data[$this->name]['url'] = $url;
             }
         }
         // Page level in the hierarchy cache
         // @TODO never used, maybe remove?
         $this->data[$this->name]['level'] = $level;
     }
     // Publish?
     if (isset($this->data[$this->name]['publish'])) {
         $this->data[$this->name]['draft'] = 0;
         unset($this->data[$this->name]['publish']);
     }
     return true;
 }