public function insertBreadcrumbsUsingPageIdentifier($page_id, $preserve_last = true)
 {
     if ($page_id == 0) {
         return parent::insertBreadcrumbs(array(Widget::Anchor(__('Pages'), SYMPHONY_URL . '/blueprints/pages/')));
     }
     $pages = PageManager::resolvePage($page_id, 'handle');
     foreach ($pages as &$page) {
         // If we are viewing the Page Editor, the Breadcrumbs should link
         // to the parent's Page Editor.
         if ($this->_context[0] == 'edit') {
             $page = Widget::Anchor(PageManager::fetchTitleFromHandle($page), SYMPHONY_URL . '/blueprints/pages/edit/' . PageManager::fetchIDFromHandle($page) . '/');
             // If the pages index is nested, the Breadcrumb should link to the
             // Pages Index filtered by parent
         } elseif (Symphony::Configuration()->get('pages_table_nest_children', 'symphony') == 'yes') {
             $page = Widget::Anchor(PageManager::fetchTitleFromHandle($page), SYMPHONY_URL . '/blueprints/pages/?parent=' . PageManager::fetchIDFromHandle($page));
             // If there is no nesting on the Pages Index, the breadcrumb is
             // not a link, just plain text
         } else {
             $page = new XMLElement('span', PageManager::fetchTitleFromHandle($page));
         }
     }
     if (!$preserve_last) {
         array_pop($pages);
     }
     parent::insertBreadcrumbs(array_merge(array(Widget::Anchor(__('Pages'), SYMPHONY_URL . '/blueprints/pages/')), $pages));
 }
 public function listAllPages($separator = '/')
 {
     $pages = PageManager::fetch(false, array('id', 'handle', 'title', 'path'));
     foreach ($pages as &$page) {
         $parents = explode('/', $page['path']);
         foreach ($parents as &$parent) {
             $parent = PageManager::fetchTitleFromHandle($parent);
         }
         $parents = implode($separator, $parents);
         $page['title'] = $parents ? $parents . $separator . $page['title'] : $page['title'];
     }
     return $pages;
 }