You are here

function om_maximenu_load in OM Maximenu 7

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

Load all OM Maximenu blocks

This will process the main menu and floating blocks

2 calls to om_maximenu_load()
om_maximenu_preprocess_page in ./om_maximenu.module
Override or insert om variables into the templates.
om_maximenu_process_html in ./om_maximenu.module
Override or insert om variables into the templates.

File

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

Code

function om_maximenu_load() {
  global $_om_maximenu_variable;
  $maximenu = $_om_maximenu_variable;
  $out = array();
  if (!empty($maximenu)) {
    foreach ($maximenu as $menu_key => $menu_content) {

      // update change from tabbed to style
      $menu_content['style'] = isset($menu_content['tabbed']) ? $menu_content['tabbed'] : $menu_content['style'];
      $visibility_values = isset($menu_content['menu_visibility']) ? $menu_content['menu_visibility'] : array(
        'visibility' => 0,
        'pages' => '',
      );
      $visibility = om_maximenu_menu_visibility($visibility_values);

      // render for non-block only
      if ($visibility && $menu_content['output'] != 'block') {
        if (!isset($menu_content['style']) || empty($menu_content['style'])) {
          om_maximenu_asset_loader($menu_content);
        }
        elseif (isset($menu_content['style']) && $menu_content['style'] != 'modal') {
          om_maximenu_asset_loader($menu_content);
        }
        $out[$menu_key]['content'] = om_maximenu_links_render($maximenu[$menu_key], $menu_key);
      }

      // for modal
      if ($visibility) {

        //$out[$menu_key]['title'] = $menu_content['title'];
        $out[$menu_key]['output'] = $menu_content['output'];

        // when to render modal content
        if (isset($menu_content['style']) && $menu_content['style'] == 'modal' && (isset($menu_content['block_options']['region']) && !empty($menu_content['block_options']['region']))) {

          // if it's output is block and visible in region
          $render_modal_content = 1;
        }
        elseif (isset($menu_content['style']) && $menu_content['style'] == 'modal' && ($menu_content['output'] == 'float' || $menu_content['output'] == 'main_menu')) {

          // if the output is either float or main menu
          $render_modal_content = 1;
        }
        elseif ($menu_content['output'] == 'block' && empty($menu_content['block_options']['region']) && (isset($menu_content['modal_content']) && $menu_content['modal_content'] == 1)) {

          // force render modal content even if it's not visible in any region
          $render_modal_content = 1;
        }
        else {

          // or do not render modal content
          $render_modal_content = 0;
        }
        if ($render_modal_content) {
          om_maximenu_asset_loader($menu_content);
          $maximenu_name = om_string_name($menu_content['title']);
          if (empty($out[$menu_key]['modal_windows'])) {
            $out[$menu_key]['modal_windows'] = theme('om_maximenu_modal_content', array(
              'links' => $menu_content,
              'maximenu_name' => $maximenu_name,
            ));
          }
          else {
            $out[$menu_key]['modal_windows'] .= theme('om_maximenu_modal_content', array(
              'links' => $menu_content,
              'maximenu_name' => $maximenu_name,
            ));
          }
        }
      }
    }
  }
  return $out;
}