Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MERGE List view breadcrumbs

  • Loading branch information...
commit e5000dd3308026993159bfae461af82d0de5faf3 1 parent ca853d7
@chillu chillu authored
Showing with 32 additions and 0 deletions.
  1. +32 −0 code/controllers/CMSPagesController.php
View
32 code/controllers/CMSPagesController.php
@@ -26,4 +26,36 @@ public function currentPageID() {
public function isCurrentPage(DataObject $record) {
return false;
}
+
+ public function Breadcrumbs($unlinked = false) {
+ $items = parent::Breadcrumbs($unlinked);
+
+ //special case for building the breadcrumbs when calling the listchildren Pages ListView action
+ if($parentID = $this->request->getVar('ParentID')) {
+ $page = DataObject::get_by_id('SiteTree', $parentID);
+
+ //build a reversed list of the parent tree
+ $pages = array();
+ while($page) {
+ array_unshift($pages, $page); //add to start of array so that array is in reverse order
+ $page = $page->Parent;
+ }
+
+ //turns the title and link of the breadcrumbs into template-friendly variables
+ $params = array_filter(array(
+ 'view' => $this->request->getVar('view'),
+ 'q' => $this->request->getVar('q')
+ ));
+ foreach($pages as $page) {
+ $params['ParentID'] = $page->ID;
+ $item = new StdClass();
+ $item->Title = $page->Title;
+ $item->Link = Controller::join_links($this->Link(), '?' . http_build_query($params));
+ $items->push(new ArrayData($item));
+ }
+ }
+
+ return $items;
+
+ }
}
Please sign in to comment.
Something went wrong with that request. Please try again.