X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FBAO%2FNavigation.php;h=85121e374e2754d3748314deae849c28ffa1d7fe;hb=290110efc17b8b7f34b8919daf7ecec9658c535a;hp=35010e51ab23cc1fc9eb3a082355cc5a46228be1;hpb=ec54f3e7dea62e62a1fdbc712a5bf5697ce19b48;p=civicrm-core.git diff --git a/CRM/Core/BAO/Navigation.php b/CRM/Core/BAO/Navigation.php index 35010e51ab..85121e374e 100644 --- a/CRM/Core/BAO/Navigation.php +++ b/CRM/Core/BAO/Navigation.php @@ -250,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"; - - $navigation = CRM_Core_DAO::executeQuery($query); - while ($navigation->fetch()) { - $navigationTree[$navigation->id] = array( + $navigationMenu = new self(); + $navigationMenu->domain_id = $domainID; + $navigationMenu->orderBy('parent_id, weight'); + $navigationMenu->find(); + + 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, ), ); } @@ -529,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) { @@ -605,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'); }