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));
 }
 /**
  *
  * Method called by Symphony in order to build the
  * @param $param_pool
  * @return XMLElement
  */
 public function grab(&$param_pool)
 {
     // get the current page id
     $current_page_id = (int) $this->_env['param']['current-page-id'];
     // prepare output
     $result = new XMLElement($this->dsParamROOTELEMENT);
     // if multilangual extensions are enabled
     if ($this->isMultiLangual) {
         // current language
         $lang = LanguageRedirect::instance()->getLanguageCode();
     }
     // get current page title including all parents
     $titles = PageManager::resolvePage($current_page_id, isset($lang) ? 'page_lhandles_t_' . $lang : 'title');
     // get current page path including all parents
     $handles = PageManager::resolvePage($current_page_id, isset($lang) ? 'page_lhandles_h_' . $lang : 'handle');
     // generate the output
     foreach ($titles as $key => $title) {
         $path = implode('/', array_slice($handles, 0, $key + 1));
         $result->appendChild(new XMLElement('page', $title, array('path' => $path)));
     }
     // return xml result set
     return $result;
 }
Example #3
0
 /**
  * Given the `$page_id`, return the complete path to the
  * current page.
  *
  * @deprecated This function will be removed in Symphony 2.4. Use
  * `PageManager::resolvePagePath` instead.
  * @param mixed $page_id
  * The ID of the Page that currently being viewed, or the handle of the
  * current Page
  * @return string
  *  The complete path to the current Page including any parent
  *  Pages, ie. /articles/read
  */
 public function resolvePagePath($page_id)
 {
     return PageManager::resolvePage($page_id, 'handle');
 }
 /**
  * Given the `$page_id`, return the complete path to the
  * current page. Each part of the Page's path will be
  * separated by '/'.
  *
  * @param mixed $page_id
  *  The ID of the Page that currently being viewed, or the handle of the
  *  current Page
  * @return string
  *  The complete path to the current Page including any parent
  *  Pages, ie. /articles/read
  */
 public static function resolvePagePath($page_id)
 {
     $path = PageManager::resolvePage($page_id, 'handle');
     return implode('/', $path);
 }