X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FBAO%2FNavigation.php;h=85121e374e2754d3748314deae849c28ffa1d7fe;hb=290110efc17b8b7f34b8919daf7ecec9658c535a;hp=f450ef8d9b3d3735c6a17aaa2e0bc0e0c07020ca;hpb=a1c77a65764fb8c6b5af88096357eebb3873493f;p=civicrm-core.git diff --git a/CRM/Core/BAO/Navigation.php b/CRM/Core/BAO/Navigation.php index f450ef8d9b..85121e374e 100644 --- a/CRM/Core/BAO/Navigation.php +++ b/CRM/Core/BAO/Navigation.php @@ -57,27 +57,6 @@ class CRM_Core_BAO_Navigation extends CRM_Core_DAO_Navigation { return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_Navigation', $id, 'is_active', $is_active); } - /** - * Get existing / build navigation for CiviCRM Admin Menu. - * - * @return array - * associated array - */ - public static function getMenus() { - $menus = array(); - - $menu = new CRM_Core_DAO_Menu(); - $menu->domain_id = CRM_Core_Config::domainID(); - $menu->find(); - - while ($menu->fetch()) { - if ($menu->title) { - $menus[$menu->path] = $menu->title; - } - } - return $menus; - } - /** * Add/update navigation record. * @@ -271,26 +250,24 @@ FROM civicrm_navigation WHERE domain_id = $domainID {$whereClause} ORDER BY pare $domainID = CRM_Core_Config::domainID(); $navigationTree = array(); - // get the list of menus - $query = " -SELECT id, label, url, permission, permission_operator, has_separator, parent_id, is_active, name -FROM civicrm_navigation -WHERE domain_id = $domainID -ORDER BY parent_id, weight"; + $navigationMenu = new self(); + $navigationMenu->domain_id = $domainID; + $navigationMenu->orderBy('parent_id, weight'); + $navigationMenu->find(); - $navigation = CRM_Core_DAO::executeQuery($query); - while ($navigation->fetch()) { - $navigationTree[$navigation->id] = array( + while ($navigationMenu->fetch()) { + $navigationTree[$navigationMenu->id] = array( 'attributes' => array( - 'label' => $navigation->label, - 'name' => $navigation->name, - 'url' => $navigation->url, - 'permission' => $navigation->permission, - 'operator' => $navigation->permission_operator, - 'separator' => $navigation->has_separator, - 'parentID' => $navigation->parent_id, - 'navID' => $navigation->id, - 'active' => $navigation->is_active, + 'label' => $navigationMenu->label, + 'name' => $navigationMenu->name, + 'url' => $navigationMenu->url, + 'icon' => $navigationMenu->icon, + 'permission' => $navigationMenu->permission, + 'operator' => $navigationMenu->permission_operator, + 'separator' => $navigationMenu->has_separator, + 'parentID' => $navigationMenu->parent_id, + 'navID' => $navigationMenu->id, + 'active' => $navigationMenu->is_active, ), ); } @@ -550,6 +527,11 @@ ORDER BY parent_id, weight"; } } + if (!empty($value['attributes']['icon'])) { + $menuIcon = sprintf(' ', $value['attributes']['icon']); + $name = $menuIcon . $name; + } + if ($makeLink) { $url = CRM_Utils_System::evalUrl($url); if ($target) { @@ -626,7 +608,8 @@ ORDER BY parent_id, weight"; public static function resetNavigation($contactID = NULL) { $newKey = CRM_Utils_String::createRandom(self::CACHE_KEY_STRLEN, CRM_Utils_String::ALPHANUMERIC); if (!$contactID) { - $query = "UPDATE civicrm_setting SET value = '$newKey' WHERE name='navigation' AND contact_id IS NOT NULL"; + $ser = serialize($newKey); + $query = "UPDATE civicrm_setting SET value = '$ser' WHERE name='navigation' AND contact_id IS NOT NULL"; CRM_Core_DAO::executeQuery($query); CRM_Core_BAO_Cache::deleteGroup('navigation'); }