[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 abstract class PhrictionController extends PhabricatorController { 4 5 public function buildSideNavView($for_app = false) { 6 $user = $this->getRequest()->getUser(); 7 8 $nav = new AphrontSideNavFilterView(); 9 $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 10 11 if ($for_app) { 12 $nav->addFilter('create', pht('New Document')); 13 $nav->addFilter('/phriction/', pht('Index')); 14 } 15 16 id(new PhrictionSearchEngine()) 17 ->setViewer($user) 18 ->addNavigationItems($nav->getMenu()); 19 20 $nav->selectFilter(null); 21 22 return $nav; 23 } 24 25 public function buildApplicationMenu() { 26 return $this->buildSideNavView(true)->getMenu(); 27 } 28 29 public function buildApplicationCrumbs() { 30 $crumbs = parent::buildApplicationCrumbs(); 31 32 if (get_class($this) != 'PhrictionListController') { 33 $crumbs->addAction( 34 id(new PHUIListItemView()) 35 ->setName(pht('Index')) 36 ->setHref('/phriction/') 37 ->setIcon('fa-home')); 38 } 39 40 $crumbs->addAction( 41 id(new PHUIListItemView()) 42 ->setName(pht('New Document')) 43 ->setHref('/phriction/new/?slug='.$this->getDocumentSlug()) 44 ->setWorkflow(true) 45 ->setIcon('fa-plus-square')); 46 47 return $crumbs; 48 } 49 50 public function renderBreadcrumbs($slug) { 51 $ancestor_handles = array(); 52 $ancestral_slugs = PhabricatorSlug::getAncestry($slug); 53 $ancestral_slugs[] = $slug; 54 if ($ancestral_slugs) { 55 $empty_slugs = array_fill_keys($ancestral_slugs, null); 56 $ancestors = id(new PhrictionDocumentQuery()) 57 ->setViewer($this->getRequest()->getUser()) 58 ->withSlugs($ancestral_slugs) 59 ->execute(); 60 $ancestors = mpull($ancestors, null, 'getSlug'); 61 62 $ancestor_phids = mpull($ancestors, 'getPHID'); 63 $handles = array(); 64 if ($ancestor_phids) { 65 $handles = $this->loadViewerHandles($ancestor_phids); 66 } 67 68 $ancestor_handles = array(); 69 foreach ($ancestral_slugs as $slug) { 70 if (isset($ancestors[$slug])) { 71 $ancestor_handles[] = $handles[$ancestors[$slug]->getPHID()]; 72 } else { 73 $handle = new PhabricatorObjectHandle(); 74 $handle->setName(PhabricatorSlug::getDefaultTitle($slug)); 75 $handle->setURI(PhrictionDocument::getSlugURI($slug)); 76 $ancestor_handles[] = $handle; 77 } 78 } 79 } 80 81 $breadcrumbs = array(); 82 foreach ($ancestor_handles as $ancestor_handle) { 83 $breadcrumbs[] = id(new PhabricatorCrumbView()) 84 ->setName($ancestor_handle->getName()) 85 ->setHref($ancestor_handle->getUri()); 86 } 87 return $breadcrumbs; 88 } 89 90 protected function getDocumentSlug() { 91 return ''; 92 } 93 94 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |