You are here

function om_maximenu_init in OM Maximenu 6

Same name and namespace in other branches
  1. 8 inc/om_maximenu.render.inc \om_maximenu_init()
  2. 7 inc/om_maximenu.render.inc \om_maximenu_init()

Implementation of hook_init().

File

inc/om_maximenu.render.inc, line 16
OM Maximenu Render

Code

function om_maximenu_init() {
  global $_om_maximenu_variable;
  global $_om_maximenu_block_classes;
  global $_om_maximenu_visible_blocks;
  $_om_maximenu_visible_blocks = om_maximenu_blocks_visibility();
  drupal_add_css(OM_MAXIMENU_PATH . '/css/om_maximenu.css');
  drupal_add_js(OM_MAXIMENU_PATH . '/js/om_maximenu.js');

  // add om tools custom block classes
  if (module_exists('om_tools')) {
    $om_tools_values = variable_get('om_tools', '');
    $om_blocks = isset($om_tools_values['block']) ? $om_tools_values['block'] : array();
    if (!empty($om_blocks) && $om_blocks['block_classes_switch'] == 1) {
      $_om_maximenu_block_classes = array();
      foreach ($om_blocks as $block_key => $block_class) {
        $block = explode('___', $block_key);
        if (isset($block[1])) {

          // filters switch/reset
          $module = $block[1];
          $delta = $block[2];
          $_om_maximenu_block_classes[$module][$delta] = $block_class;
        }
      }
    }
  }

  // all menus settings
  $_om_maximenu_variable = variable_get('om_maximenu', array());
  $maximenu = $_om_maximenu_variable;
  if (!empty($maximenu)) {
    foreach ($maximenu as $menu_key => $menu_content) {
      $visibility_values = isset($menu_content['menu_visibility']) ? $menu_content['menu_visibility'] : array(
        'visibility' => 0,
        'pages' => '',
      );
      $visibility = om_maximenu_menu_visibility($visibility_values);
      if ($menu_content['output'] == 'block' && !isset($menu_content['modal_content'])) {

        // effects won't load if disabled blocks
        $status = !empty($menu_content['block_options']['region']) ? 1 : 0;
      }
      elseif (isset($menu_content['modal_content']) && $menu_content['modal_content'] == 1) {
        $status = 1;

        // forced include for modal
      }
      else {
        $status = 1;

        // all non-blocks
      }
      if ($visibility && $status) {

        // update change from tabbed to style
        $menu_content['style'] = isset($menu_content['tabbed']) ? $menu_content['tabbed'] : $menu_content['style'];
        $action = isset($menu_content['action']) ? $menu_content['action'] : 'hover';
        $active = isset($menu_content['active']) ? $menu_content['active'] : 0;
        $longmenu = isset($menu_content['longmenu']) ? $menu_content['longmenu'] : FALSE;
        $displace = isset($menu_content['displace']) ? $menu_content['displace'] : 0;
        $delay = isset($menu_content['delay']) ? $menu_content['delay'] : 1000;
        $fadeout = isset($menu_content['fadeout']) ? $menu_content['fadeout'] : 1;
        $skin = isset($menu_content['skin']) ? $menu_content['skin'] : 'bubble';
        $animated_bg = isset($menu_content['animated_bg']) ? 1 : 0;
        $animated_link = isset($menu_content['animated_link']) ? 1 : 0;
        $jiggle = isset($menu_content['jiggle']) ? 1 : 0;
        $scroll = isset($menu_content['scroll']) ? 1 : 0;
        $style = isset($menu_content['style']) ? $menu_content['style'] : '';
        $dock = isset($menu_content['float_options']['dock']) ? 1 : 0;
        $maximenu_name = om_string_name($menu_content['title']);

        // add action per OM Maximenu
        om_maximenu_action($action, $maximenu_name, $displace, $style, $delay, $fadeout);

        // add css per OM Maximenu
        drupal_add_css(OM_MAXIMENU_PATH . '/skin/' . $skin . '/' . $skin . '.css');

        // add 'active-trail' to menu li when submenus are active
        if ($active) {
          om_maximenu_active_js($maximenu_name, $animated_bg, $style);
        }

        // scroll long menu if it won't fit the container
        if ($longmenu) {
          om_maximenu_longmenu_js($maximenu_name, $longmenu);
        }

        // animated bg effect
        if ($animated_bg) {
          om_maximenu_bg_slider($maximenu_name);
        }

        // animated link effect
        if ($animated_link) {
          om_maximenu_link_slider($maximenu_name);
        }

        // animated link jiggle
        if ($jiggle) {
          om_maximenu_jiggle($maximenu_name);
        }

        // scrolling float
        if ($scroll) {
          om_maximenu_scroll($maximenu_name);
        }

        // jquery fisheye dock effect
        if ($dock) {
          om_maximenu_dock($maximenu_name);
        }
      }
    }
  }
}