$ish = Loader::helper('concrete/interface'); $canAdd = false; if ($ih->integer($_REQUEST['cID'])) { $c = Page::getByID($_REQUEST['cID']); if (is_object($c) && !$c->isError()) { $cp = new Permissions($c); if ($dh->inDashboard($c)) { if ($cp->canViewPage()) { $canAdd = true; } } } } $ish->clearInterfaceItemsCache(); if ($canAdd) { $u = new User(); $r = new stdClass(); if (Loader::helper('validation/token')->validate('access_quick_nav', $_REQUEST['token'])) { $qn = ConcreteDashboardMenu::getMine(); if ($qn->contains($c)) { $qn->remove($c); $task = 'add'; } else { $qn->add($c); $task = 'remove'; } $u->saveConfig('QUICK_NAV_BOOKMARKS', serialize($qn)); print $dh->getDashboardAndSearchMenus(); exit; } }
public function getDashboardAndSearchMenus() { if (isset($_SESSION['dashboardMenus'][Localization::activeLocale()])) { return $_SESSION['dashboardMenus'][Localization::activeLocale()]; } $d = ConcreteDashboardMenu::getMine(); $items = $d->getItems(); ob_start(); ?> <div id="ccm-intelligent-search-results"> <?php $page = Page::getByPath('/dashboard'); $children = $page->getCollectionChildrenArray(true); $packagepages = array(); $corepages = array(); foreach ($children as $ch) { $page = Page::getByID($ch); $pageP = new Permissions($page); if ($pageP->canRead()) { if (!$page->getAttribute("exclude_nav")) { if ($page->getPackageID() > 0) { $packagepages[] = $page; } else { $corepages[] = $page; } } } else { continue; } if ($page->getAttribute('exclude_search_index')) { continue; } if ($page->getCollectionPath() == '/dashboard/system') { $ch2 = $page->getCollectionChildrenArray(); } else { $ch2 = $page->getCollectionChildrenArray(true); } ?> <div class="ccm-intelligent-search-results-module ccm-intelligent-search-results-module-onsite"> <h1><?php echo t($page->getCollectionName()); ?> </h1> <ul class="ccm-intelligent-search-results-list"> <?php if (count($ch2) == 0) { ?> <li><a href="<?php echo Loader::helper('navigation')->getLinkTocollection($page, false, true); ?> "><?php echo t($page->getCollectionName()); ?> </a><span><?php echo t($page->getCollectionName()); ?> <?php echo t($page->getAttribute('meta_keywords')); ?> </span></li> <?php } ?> <?php if ($page->getCollectionPath() == '/dashboard/system') { ?> <li><a href="<?php echo Loader::helper('navigation')->getLinkTocollection($page, false, true); ?> "><?php echo t('View All'); ?> </a><span><?php echo t($page->getCollectionName()); ?> <?php echo t($page->getAttribute('meta_keywords')); ?> </span></li> <?php } foreach ($ch2 as $chi) { $subpage = Page::getByID($chi); $subpageP = new Permissions($subpage); if (!$subpageP->canRead()) { continue; } if ($subpage->getAttribute('exclude_search_index')) { continue; } ?> <li><a href="<?php echo Loader::helper('navigation')->getLinkTocollection($subpage, false, true); ?> "><?php echo t($subpage->getCollectionName()); ?> </a><span><?php if ($page->getCollectionPath() != '/dashboard/system') { echo t($page->getCollectionName()); ?> <?php echo t($page->getAttribute('meta_keywords')); ?> <?php } echo t($subpage->getCollectionName()); ?> <?php echo t($subpage->getAttribute('meta_keywords')); ?> </span></li> <?php } ?> </ul> </div> <?php } $custHome = Page::getByPath('/dashboard/home'); $custHomeP = new Permissions($custHome); if ($custHomeP->canRead()) { ?> <div class="ccm-intelligent-search-results-module ccm-intelligent-search-results-module-onsite"> <h1><?php echo t('Dashboard Home'); ?> </h1> <ul class="ccm-intelligent-search-results-list"> <li><a href="<?php echo View::url('/dashboard/home'); ?> "><?php echo t('Customize'); ?> <span><?php echo t('Customize Dashboard Home'); ?> </span></a></li> </ul> </div> <?php } ?> <div class="ccm-intelligent-search-results-module ccm-intelligent-search-results-module-loading"> <h1><?php echo t('Your Site'); ?> </h1> <ul class="ccm-intelligent-search-results-list" id="ccm-intelligent-search-results-list-your-site"> </ul> </div> <?php if (ENABLE_INTELLIGENT_SEARCH_HELP) { ?> <div class="ccm-intelligent-search-results-module ccm-intelligent-search-results-module-offsite ccm-intelligent-search-results-module-loading"> <h1><?php echo t('Help'); ?> </h1> <ul class="ccm-intelligent-search-results-list" id="ccm-intelligent-search-results-list-help"> </ul> </div> <?php } ?> <?php if (ENABLE_INTELLIGENT_SEARCH_MARKETPLACE) { ?> <div class="ccm-intelligent-search-results-module ccm-intelligent-search-results-module-offsite ccm-intelligent-search-results-module-loading"> <h1><?php echo t('Add-Ons'); ?> </h1> <ul class="ccm-intelligent-search-results-list" id="ccm-intelligent-search-results-list-marketplace"> </ul> </div> <?php } ?> </div> <div id="ccm-dashboard-overlay"> <div id="ccm-dashboard-overlay-core"> <div class="ccm-dashboard-overlay-inner" id="ccm-dashboard-overlay-main"> <!--recent--> <?php $currentHeader = false; $x = 0; $itemsChanged = false; foreach ($items as $path) { $p = Page::getByPath($path, 'ACTIVE'); // If page is not found etc, remove it from items if ($p->isError()) { $d->remove($p); $itemsChanged = true; continue; } $pc = new Permissions($p); if ($pc->canViewPage()) { $name = t($p->getCollectionName()); $parent = Page::getByID($p->getCollectionParentID(), 'ACTIVE'); if ($parent->getCollectionPath() == '/dashboard') { $parent = $p; $name = t('Home'); } if ($currentHeader != $parent->getCollectionID()) { ?> <?php if ($currentHeader != false) { ?> </ul> </div> <?php $x++; ?> <?php if ($x % 4 == 0) { ?> <div class="clearfix" style="padding-bottom: 0px"></div> <?php } ?> <?php } ?> <div class="ccm-dashboard-overlay-module"> <h1><?php echo t($parent->getCollectionName()); ?> </h1> <ul> <?php $currentHeader = $parent->getCollectionID(); ?> <?php } ?> <li><a href="<?php echo Loader::helper('navigation')->getLinkToCollection($p, false, true); ?> "><?php echo $name; ?> </a></li> <?php } ?> <?php } ?> <?php if ($itemsChanged) { $u = new User(); $u->saveConfig('QUICK_NAV_BOOKMARKS', serialize($d)); } ?> <?php if ($currentHeader != false) { ?> </ul> </div> <?php } ?> </div> </div> <div id="ccm-dashboard-overlay-misc" class="ccm-dashboard-overlay-misc-rounded"> <div class="ccm-dashboard-overlay-inner"> <?php // Before we throw in a UL, we check permissions, etc. to see if any of the LI items need to be shown. $systemNews = Page::getByPath('/dashboard/news'); $systemNewsP = new Permissions($systemNews); $canAccessNews = $systemNewsP->canRead(); $systemSettings = Page::getByPath('/dashboard/system'); $systemSettingsP = new Permissions($systemSettings); $canAccessSystem = $systemSettingsP->canRead(); $tpa = new TaskPermission(); $canAccessExtend = $tpa->canInstallPackages(); $systemExtend = Page::getByPath('/dashboard/extend'); $systemExtendP = new Permissions($systemExtend); $canViewExtend = $systemExtendP->canRead(); // If any need to be shown then we proceed... if ($canAccessNews || $canAccessSystem || $canAccessExtend && $canViewExtend) { ?> <ul> <?php if ($canAccessNews) { ?> <li><a href="<?php echo View::url('/dashboard/news'); ?> "><strong><?php echo t('News'); ?> </strong></a> – <?php echo t('Learn about your site and concrete5.'); ?> </li> <?php } ?> <?php if ($canAccessSystem) { ?> <li><a href="<?php echo View::url('/dashboard/system'); ?> "><strong><?php echo t('System & Settings'); ?> </strong></a> – <?php echo t('Secure and setup your site.'); ?> </li> <?php } ?> <?php if ($canAccessExtend && $canViewExtend) { ?> <li><a href="<?php echo View::url('/dashboard/extend'); ?> "><strong><?php echo t("Extend concrete5"); ?> </strong></a> – <?php if (ENABLE_MARKETPLACE_SUPPORT) { ?> <?php echo sprintf(t('<a href="%s">Install</a>, <a href="%s">update</a> or download more <a href="%s">themes</a> and <a href="%s">add-ons</a>.'), View::url('/dashboard/extend/install'), View::url('/dashboard/extend/update'), View::url('/dashboard/extend/themes'), View::url('/dashboard/extend/add-ons')); ?> <?php } else { ?> <?php echo sprintf(t('<a href="%s">Install</a> or <a href="%s">update</a> packages.'), View::url('/dashboard/extend/install'), View::url('/dashboard/extend/update')); ?> <?php } ?> </li> <?php } ?> </ul> <?php } ?> </div> </div> <div id="ccm-dashboard-overlay-footer"> <div class="ccm-dashboard-overlay-inner"> <a href="<?php echo View::url('/dashboard'); ?> "><?php echo t('View Full Dashboard'); ?> <i class="icon-arrow-right"></i></a> </div> </div> </div> <?php $html = ob_get_contents(); ob_end_clean(); return str_replace(array("\n", "\r", "\t"), "", $html); }