/** * Implementation of hook civicrm_navigationMenu * * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_navigationMenu */ function myemma_civicrm_navigationMenu(&$params) { $item = array('name' => ts('My emma accounts'), 'url' => CRM_Utils_System::url('civicrm/a', '#/my-emma-accounts', true), 'permission' => 'administer CiviCRM'); _myemma_civix_insert_navigation_menu($params, 'Administer', $item); }
/** * Inserts a navigation menu item at a given place in the hierarchy. * * @param array $menu - menu hierarchy * @param string $path - path where insertion should happen (ie. Administer/System Settings) * @param array $item - menu you need to insert (parent/child attributes will be filled for you) */ function _myemma_civix_insert_navigation_menu(&$menu, $path, $item) { // If we are done going down the path, insert menu if (empty($path)) { $menu[] = array('attributes' => array_merge(array('label' => CRM_Utils_Array::value('name', $item), 'active' => 1), $item)); return TRUE; } else { // Find an recurse into the next level down $found = false; $path = explode('/', $path); $first = array_shift($path); foreach ($menu as $key => &$entry) { if ($entry['attributes']['name'] == $first) { if (!$entry['child']) { $entry['child'] = array(); } $found = _myemma_civix_insert_navigation_menu($entry['child'], implode('/', $path), $item, $key); } } return $found; } }