$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,
),
);
}
}
}
+ if (!empty($value['attributes']['icon'])) {
+ $menuIcon = sprintf('<span class="%s"></span> ', $value['attributes']['icon']);
+ $name = $menuIcon . $name;
+ }
+
if ($makeLink) {
$url = CRM_Utils_System::evalUrl($url);
if ($target) {
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');
}