You are here

jquery_wrt.module in jQuery webks Responsive Table 7

jquery_wrt module.

File

jquery_wrt.module
View source
<?php

/**
 * @file
 * jquery_wrt module.
 */

/**
 * Initialization of jquery_wrt (on each page).
 */
function jquery_wrt_page_build(&$page) {
  $module_path = drupal_get_path('module', 'jquery_wrt');
  $js_settings = _jquery_wrt_get_settings();

  // Only use if not excluded!
  $path = drupal_strtolower(drupal_get_path_alias($_GET['q']));
  if (!drupal_match_path($path, $js_settings['jquery_wrt_path_match_exclude'])) {
    if (($library = libraries_load('jquery.webks-responsive-table')) && !empty($library['loaded'])) {

      // Add Settings
      drupal_add_js(array(
        'jquery_wrt' => $js_settings,
      ), 'setting');

      // Module JS for init as set in config.
      drupal_add_js($module_path . '/jquery_wrt.js', array(
        'scope' => 'footer',
      ));

      // Module CSS as default
      drupal_add_css($module_path . '/jquery_wrt.css');
    }
  }
}

/**
 * Implements hook_requirements().
 */
function jquery_wrt_requirements($phase) {

  // Create an array to hold jQuery webks: Responsive Tables requirements
  $requirements = array();

  // Check requirements during the runtime phase
  if ($phase == 'runtime') {

    // Check if the jQuery webks: Responsive Tables jQuery plugin library is installed
    if (($library = libraries_detect('jquery.webks-responsive-table')) && !empty($library['installed'])) {
      $requirements['jquery.webks-responsive-table'] = array(
        'title' => t('jQuery webks: Responsive Tables jQuery plugin'),
        'value' => t('Installed'),
        'severity' => REQUIREMENT_OK,
      );
    }
    else {
      $requirements['jquery.webks-responsive-table'] = array(
        'title' => t('jQuery webks: Responsive Tables jQuery plugin'),
        'value' => t('Not installed'),
        'description' => $library['error message'],
        'severity' => REQUIREMENT_ERROR,
      );
    }

    // Check if the site is running >= jQuery 1.7
    if (($library = drupal_get_library('system', 'jquery')) && version_compare($library['version'], '1.7', '>=')) {
      $requirements['jquery_wrt_jquery'] = array(
        'title' => t('jQuery webks: Responsive Tables jQuery version'),
        'value' => t('jQuery @version', array(
          '@version' => $library['version'],
        )),
        'severity' => REQUIREMENT_OK,
      );
    }
    else {
      $destination = drupal_get_destination();
      $requirements['jquery_wrt_jquery'] = array(
        'title' => t('jQuery webks: Responsive Tables jQuery version'),
        'value' => t('jQuery @version', array(
          '@version' => $library['version'],
        )),
        'description' => t('jQuery webks: Responsive Tables requires jQuery 1.7 or greater. Configure <a href="@jquery_update">jQuery Update</a>.', array(
          '@jquery_update' => url('admin/config/development/jquery_update', array(
            'query' => $destination,
          )),
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
  }
  return $requirements;
}

/**
 * Implements hook_library().
 */
function jquery_wrt_libraries_info() {
  $libraries = array();
  $libraries['jquery.webks-responsive-table'] = array(
    'name' => 'jquery.webks-responsive-table',
    'vendor url' => 'https://github.com/JPustkuchen/jquery.webks-responsive-table',
    'download url' => 'https://github.com/JPustkuchen/jquery.webks-responsive-table/archive/master.zip',
    'version' => '1.0',
    'files' => array(
      'js' => array(
        'jquery.webks-responsive-table.js' => array(
          'scope' => 'footer',
        ),
      ),
      'css' => array(
        'jquery.webks-responsive-table.css',
      ),
    ),
  );
  return $libraries;
}

/**
 * Implements hook_help().
 */
function jquery_wrt_help($path, $arg) {
  switch ($path) {

    // Main module help for the block module
    case 'admin/help#jquery_wrt':
    case 'admin/config/user-interface/jquery_wrt':
      return '<p>' . t('Adds "jQuery Plugin webks: Responsive Tables" (Project: !project, GitHub: !github) to table views in Drupal. Query "webks Responsive Table" Plugin transforms less mobile compliant default HTML Tables into a flexible responsive (list) format. Furthermore it provides some nice configuration options to optimize it for your custom needs.', array(
        '!github' => l(t('https://github.com/JPustkuchen/jquery.webks-responsive-table'), 'https://github.com/JPustkuchen/jquery.webks-responsive-table'),
        '!project' => l(t('https://github.com/JPustkuchen/jquery.webks-responsive-table'), 'https://github.com/JPustkuchen/jquery.webks-responsive-table'),
      ));
  }
}

/**
 * Implements hook_load_menu().
 */
function jquery_wrt_menu() {
  $items['admin/config/user-interface/jquery_wrt'] = array(
    'title' => 'jQuery webks: Responsive Tables',
    'description' => 'Configure jQuery Plugin webks: Responsive Tables settings.',
    'access arguments' => array(
      'administer site configuration',
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'jquery_wrt_settings_form',
    ),
    'file' => 'jquery_wrt.admin.inc',
  );
  return $items;
}

/**
 * Specifies the commerce_powl AJAX Settings.
 *
 * @return array Array of configuration variables to be made available in
 *         JavaScript.
 */
function _jquery_wrt_get_settings() {
  $module_path = drupal_get_path('module', 'jquery_wrt');
  return array(
    'module_path' => $module_path,
    'jquery_wrt_preserve_classes' => variable_get('jquery_wrt_preserve_classes', TRUE) ? TRUE : FALSE,
    'jquery_wrt_dynamic' => variable_get('jquery_wrt_dynamic', TRUE) ? TRUE : FALSE,
    'jquery_wrt_showswitch' => variable_get('jquery_wrt_showswitch', TRUE) ? TRUE : FALSE,
    'jquery_wrt_breakpoint' => check_plain(variable_get('jquery_wrt_breakpoint', 960)),
    'jquery_wrt_subselector' => check_plain(variable_get('jquery_wrt_subselector', ':not(.sticky-header):not(.field-multiple-table):not(:has(tr.draggable)):not(.files)')),
    'jquery_wrt_header_selector' => check_plain(variable_get('jquery_wrt_header_selector', 'thead td, thead th')),
    'jquery_wrt_row_selector' => check_plain(variable_get('jquery_wrt_row_selector', 'tbody tr')),
    'jquery_wrt_responsive_row_element' => filter_xss(variable_get('jquery_wrt_responsive_row_element', '<dl></dl>')),
    'jquery_wrt_row_responsive_column_title_element' => filter_xss(variable_get('jquery_wrt_row_responsive_column_title_element', '<dt></dt>')),
    'jquery_wrt_row_responsive_column_value_element' => filter_xss(variable_get('jquery_wrt_row_responsive_column_value_element', '<dd></dd>')),
    'jquery_wrt_update_on_resize' => variable_get('jquery_wrt_update_on_resize', TRUE) ? TRUE : FALSE,
    'jquery_wrt_path_match_exclude' => variable_get('jquery_wrt_path_match_exclude', ''),
  );
}

Functions

Namesort descending Description
jquery_wrt_help Implements hook_help().
jquery_wrt_libraries_info Implements hook_library().
jquery_wrt_menu Implements hook_load_menu().
jquery_wrt_page_build Initialization of jquery_wrt (on each page).
jquery_wrt_requirements Implements hook_requirements().
_jquery_wrt_get_settings Specifies the commerce_powl AJAX Settings.