public function __actionDelete($pages, $redirect)
 {
     $success = true;
     $deleted_page_ids = array();
     if (!is_array($pages)) {
         $pages = array($pages);
     }
     /**
      * Prior to deleting Pages
      *
      * @delegate PagePreDelete
      * @since Symphony 2.2
      * @param string $context
      * '/blueprints/pages/'
      * @param array $page_ids
      *  An array of Page ID's that are about to be deleted, passed
      *  by reference
      * @param string $redirect
      *  The absolute path that the Developer will be redirected to
      *  after the Pages are deleted
      */
     Symphony::ExtensionManager()->notifyMembers('PagePreDelete', '/blueprints/pages/', array('page_ids' => &$pages, 'redirect' => &$redirect));
     foreach ($pages as $page_id) {
         $page = PageManager::fetchPageByID($page_id);
         if (empty($page)) {
             $success = false;
             $this->pageAlert(__('Page could not be deleted because it does not exist.'), Alert::ERROR);
             break;
         }
         if (PageManager::hasChildPages($page_id)) {
             $this->_hilights[] = $page['id'];
             $success = false;
             $this->pageAlert(__('Page could not be deleted because it has children.'), Alert::ERROR);
             continue;
         }
         if (!PageManager::deletePageFiles($page['path'], $page['handle'])) {
             $this->_hilights[] = $page['id'];
             $success = false;
             $this->pageAlert(__('One or more pages could not be deleted.') . ' ' . __('Please check permissions on %s.', array('<code>/workspace/pages</code>')), Alert::ERROR);
             continue;
         }
         if (PageManager::delete($page_id, false)) {
             $deleted_page_ids[] = $page_id;
         }
     }
     if ($success) {
         /**
          * Fires after all Pages have been deleted
          *
          * @delegate PagePostDelete
          * @since Symphony 2.3
          * @param string $context
          * '/blueprints/pages/'
          * @param array $page_ids
          *  The page ID's that were just deleted
          */
         Symphony::ExtensionManager()->notifyMembers('PagePostDelete', '/blueprints/pages/', array('page_ids' => $deleted_page_ids));
         redirect($redirect);
     }
 }
Exemplo n.º 2
0
 public function delete()
 {
     PageManager::delete($this->id);
 }