/** * Helper function for getting the highest key in the navigation menu. * * Taken from http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_navigationMenu. * * @param array $menuArray * @return int */ function _getMenuKeyMax($menuArray) { $max = array(max(array_keys($menuArray))); foreach ($menuArray as $v) { if (!empty($v['child'])) { $max[] = _getMenuKeyMax($v['child']); } } return max($max); }
function wci_civicrm_navigationMenu(&$params) { $maxKey = _getMenuKeyMax($params); // Find the Help menu $helpID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Navigation', 'Help', 'id', 'name'); $params[$maxKey] = $params[$helpID]; // inserting WCI menu at the place of old help location $params[$helpID] = array('attributes' => array('label' => ts('Widgets and Progress Bars'), 'name' => 'WCI', 'url' => null, 'permission' => 'access CiviReport,access CiviContribute', 'operator' => 'OR', 'separator' => 0, 'parentID' => 0, 'navID' => $maxKey, 'active' => 1), 'child' => array('1' => array('attributes' => array('label' => ts('New Widget'), 'name' => 'new_widget', 'url' => 'civicrm/wci/widget/add', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 1, 'active' => 1)), '2' => array('attributes' => array('label' => ts('Manage Widgets'), 'name' => 'manage_widget', 'url' => 'civicrm/wci/widget?reset=1', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 2, 'active' => 1)), '3' => array('attributes' => array('label' => ts('New Progress Bar'), 'name' => 'new_progress_bar', 'url' => 'civicrm/wci/progress-bar/add', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 3, 'active' => 1)), '4' => array('attributes' => array('label' => ts('Manage Progress Bars'), 'name' => 'manage_progress_bar', 'url' => 'civicrm/wci/progress-bar?reset=1', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 4, 'active' => 1)), '5' => array('attributes' => array('label' => ts('New Embed Code'), 'name' => 'new_embed-code', 'url' => 'civicrm/wci/embed-code/add', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 5, 'active' => 1)), '6' => array('attributes' => array('label' => ts('Manage Embed Code'), 'name' => 'manage-emebed-code', 'url' => 'civicrm/wci/embed-code?reset=1', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 6, 'active' => 1)), '7' => array('attributes' => array('label' => ts('Widget Settings'), 'name' => 'widget-settings', 'url' => 'civicrm/wci/settings?reset=1', 'permission' => 'administer CiviWCI', 'operator' => 'OR', 'separator' => 1, 'parentID' => $maxKey, 'navID' => $maxKey + 7, 'active' => 1)))); }