You are here

tb_megamenu.admin.inc in The Better Mega Menu 7

File

tb_megamenu.admin.inc
View source
<?php

define('FONT_AWESOME_44', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css');
include_once drupal_get_path('module', 'tb_megamenu') . '/tb_megamenu.functions.inc';
function tb_megamenu_admin_settings($form) {
  $menus = tb_megamenu_get_megamenus();
  foreach ($menus as $menu) {
    if (drupal_valid_path('admin/structure/menu/manage/' . $menu->menu_name)) {
      $form[$menu->menu_name]['#tb_megamenu'] = $menu;
      $form[$menu->menu_name]['menu_name'] = array(
        '#markup' => $menu->menu_name,
      );
      $form[$menu->menu_name]['title'] = array(
        '#markup' => $menu->title,
      );
      $form[$menu->menu_name]['config_megamenu'] = array(
        '#type' => 'link',
        '#title' => t('Config'),
        '#href' => "admin/structure/tb-megamenu/{$menu->menu_name}",
      );
      $form[$menu->menu_name]['config_links'] = array(
        '#type' => 'link',
        '#title' => t('Edit links'),
        '#href' => "admin/structure/menu/manage/{$menu->menu_name}",
      );
    }
  }
  return $form;
}
function theme_tb_megamenu_admin_settings($variables) {
  $form = $variables['form'];
  $rows = array();
  foreach (element_children($form) as $key) {
    if (isset($form[$key]['#tb_megamenu'])) {
      $menu =& $form[$key];
      $menu['enabled']['#parents'] = array(
        $key,
        'enabled',
      );
      $menu['enabled']['#name'] = $key . "[enabled]";
      $row = array();
      $row[] = drupal_render($menu['menu_name']);
      $row[] = drupal_render($menu['title']);
      $row[] = drupal_render($menu['config_megamenu']);
      $row[] = drupal_render($menu['config_links']);
      $rows[] = $row;
    }
  }
  $header = array(
    t('Menu Name'),
    t('Menu Title'),
  );
  $header[] = array(
    'data' => t('Operations'),
    'colspan' => 2,
  );
  return theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'empty' => t('No MegaMenu block available. <a href="@link">Add MegaMenu Block</a>.', array(
      '@link' => url('admin/config/user-interface/tb_megamenu/add'),
    )),
    'attributes' => array(
      'id' => 'tb_megamenu',
    ),
  )) . drupal_render_children($form);
}
function tb_megamenu_configure_form($form, &$form_state, $menu_names = array()) {
  $lib_fontawesome = tb_megamenu_check_library('fontawesome', 'fontawesome');
  if (module_exists('fontawesome') && $lib_fontawesome) {
    tb_megamenu_add_css($lib_fontawesome['css']);
  }
  else {
    drupal_add_css(FONT_AWESOME_44, array(
      'type' => 'external',
    ));
  }
  $lib_chosen = tb_megamenu_check_library('chosen', 'chosen');
  $lib_chosen_existed = module_exists('chosen') && $lib_chosen;
  if ($lib_chosen_existed) {
    if (!empty($lib_chosen['css'])) {
      tb_megamenu_add_css($lib_chosen['css']);
    }
    if (!empty($lib_chosen['js'])) {
      drupal_add_js($lib_chosen['js']);
    }
  }
  tb_megamenu_add_css(drupal_get_path('module', 'tb_megamenu') . '/css/bootstrap.css');
  tb_megamenu_add_css(drupal_get_path('module', 'tb_megamenu') . '/css/base.css');
  tb_megamenu_add_css(drupal_get_path('module', 'tb_megamenu') . '/css/admin.css');
  tb_megamenu_add_css(drupal_get_path('module', 'tb_megamenu') . '/css/backend.css');
  drupal_add_js('
    (function ($) {
      Drupal.TBMegaMenu = Drupal.TBMegaMenu || {};
      Drupal.TBMegaMenu.ajax_link = "' . (variable_get('clean_url', 0) ? '' : '?q=') . '";
    })(jQuery);
  ', 'inline');
  drupal_add_js(drupal_get_path('module', 'tb_megamenu') . '/js/tb-megamenu-backend.js');
  drupal_add_js(drupal_get_path('module', 'tb_megamenu') . '/js/tb-megamenu-object.js');
  if (!empty($menu_names)) {
    $form['tb_megamenu'] = array(
      '#markup' => theme('tb_megamenu_backend', array(
        'menu_name' => $menu_names[0],
      )),
    );
  }
  return $form;
}