You are here

function nice_menus_library in Nice Menus 7.2

Same name and namespace in other branches
  1. 7.3 nice_menus.module \nice_menus_library()

Implements hook_library().

File

./nice_menus.module, line 83
Module to enable CSS dropdown and flyout menus.

Code

function nice_menus_library() {
  $module_path = drupal_get_path('module', 'nice_menus');

  // Jquery bgiframe.
  $libraries['jquery.bgiframe'] = array(
    'title' => 'bgiframe',
    'website' => 'http://docs.jquery.com/Plugins/bgiframe',
    'version' => '2.1',
    'js' => array(
      $module_path . '/js/jquery.bgiframe.js' => array(),
    ),
  );

  // Jquery hoverIntent.
  $libraries['jquery.hoverIntent'] = array(
    'title' => 'hoverIntent',
    'website' => 'http://cherne.net/brian/resources/jquery.hoverIntent.html',
    'version' => '0.5',
    'js' => array(
      $module_path . '/js/jquery.hoverIntent.js' => array(),
    ),
  );

  // Superfish.
  $libraries['superfish'] = array(
    'title' => 'Superfish',
    'website' => 'http://users.tpg.com.au/j_birch/plugins/superfish/',
    'version' => '1.4.8',
    'js' => array(
      $module_path . '/js/superfish.js' => array(),
    ),
    'dependencies' => array(
      array(
        'nice_menus',
        'jquery.bgiframe',
      ),
      array(
        'nice_menus',
        'jquery.hoverIntent',
      ),
    ),
  );

  // Nicemenus.
  $libraries['nice_menus'] = array(
    'title' => 'Nice Menus',
    'website' => 'http://drupal.org/project/nice_menus',
    'version' => '1.0',
    'js' => array(
      // Add the Superfish options variables.
      $module_path . '/js/nice_menus.js' => array(),
    ),
    'dependencies' => array(
      array(
        'nice_menus',
        'superfish',
      ),
    ),
  );

  // Add the javascript according to configuration settings.
  $libraries['nice_menus']['js'][] = array(
    'type' => 'setting',
    'data' => array(
      'nice_menus_options' => array(
        'delay' => variable_get('nice_menus_sf_delay', 800),
        'speed' => variable_get('nice_menus_sf_speed', 'slow'),
      ),
    ),
  );
  $jquery = drupal_get_library('system', 'jquery');
  if (version_compare($jquery['version'], '1.7', '>=')) {
    $plugins = array(
      'jquery.hoverIntent' => array(
        'js' => 'jquery.hoverIntent.js',
        'version_pattern' => '@hoverIntent\\s+(r[0-9]+)@i',
      ),
      'jquery.bgiframe' => array(
        'js' => 'jquery.bgiframe.js',
        'version_pattern' => '@version\\s+([0-9a-zA-Z\\.-]+)@i',
      ),
      'superfish' => array(
        'js' => 'superfish.js',
        'version_pattern' => '@Superfish\\s(v[0-9\\.-]+)@i',
      ),
    );

    // config libraries directory.
    $searchdir = array(
      'libraries/',
      conf_path() . '/libraries/',
      'profiles/' . drupal_get_profile() . '/libraries/',
      'sites/all/libraries/',
    );
    foreach ($plugins as $plugin => $file_info) {
      $libraries_file = NULL;

      // check libraries module.
      if (module_exists('libraries') && libraries_get_path($plugin) != '') {
        $library_directory = libraries_get_path($plugin);
        if (is_file(DRUPAL_ROOT . '/' . $library_directory . $plugin . '/' . $file_info['js'])) {
          $libraries_file = $library_directory . $plugin . '/' . $file_info['js'];
        }
      }

      // scan dir.
      if ($libraries_file === NULL) {
        foreach ($searchdir as $libraries_dir) {
          if (is_file(DRUPAL_ROOT . '/' . $libraries_dir . $plugin . '/' . $file_info['js'])) {
            $libraries_file = $libraries_dir . $plugin . '/' . $file_info['js'];
            break;
          }
        }
      }

      // add to libraries.
      if ($libraries_file !== NULL) {
        $libraries[$plugin]['version'] = nice_menus_get_version($libraries_file, array(
          'pattern' => $file_info['version_pattern'],
        ));
        $libraries[$plugin]['js'] = array(
          $libraries_file => array(),
        );
      }
    }
  }
  return $libraries;
}