You are here

themekey.views.inc in ThemeKey 7.3

Same filename and directory in other branches
  1. 7 modules/themekey.views.inc
  2. 7.2 modules/themekey.views.inc

Provides some views properties

File

modules/themekey.views.inc
View source
<?php

/**
 * @file
 * Provides some views properties
 */

/**
 * Implements hook_themekey_properties().
 *
 * Provides additional properties for module ThemeKey:
 * - views:vid
 * - views:machine_name
 * - views:human_name
 *
 * @return
 *   array of themekey properties and mapping functions
 */
function themekey_views_themekey_properties() {

  // Attributes of properties
  $attributes = array();
  if (module_exists('views')) {
    $attributes['views:vid'] = array(
      'description' => t('Views: VID - The vid of a view (vid)'),
      'validator' => 'themekey_validator_ctype_digit',
      'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
    );
    $attributes['views:machine_name'] = array(
      'description' => t('Views: Machine Name - The machine name of a view'),
      'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
    );
    $attributes['views:human_name'] = array(
      'description' => t('Views: Human Name - The (human readable) name of a view'),
      'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
    );

    // Mapping functions
    $maps = array();
    $maps[] = array(
      'src' => 'drupal:get_q',
      'dst' => 'views:vid',
      'callback' => 'themekey_views_getq2vid',
    );
    $maps[] = array(
      'src' => 'drupal:get_q',
      'dst' => 'views:machine_name',
      'callback' => 'themekey_views_getq2machine_name',
    );
    $maps[] = array(
      'src' => 'drupal:get_q',
      'dst' => 'views:human_name',
      'callback' => 'themekey_views_getq2human_name',
    );
    $return = array(
      'attributes' => $attributes,
      'maps' => $maps,
    );
  }
  return $return;
}

/**
 * ThemeKey mapping function to set a
 * ThemeKey property's value (destination)
 * with the aid of another ThemeKey property (source).
 *
 * src: drupal:get_q
 * dst: views:vid
 *
 * @param $get_q
 *   a drupal path
 *
 * @return
 *   int
 *   or NULL if no value could be mapped
 */
function themekey_views_getq2vid($get_q) {
  return themekey_views_get_simple_property_by_getq($get_q, 'vid');
}

/**
 * ThemeKey mapping function to set a
 * ThemeKey property's value (destination)
 * with the aid of another ThemeKey property (source).
 *
 * src: drupal:get_q
 * dst: views:machine_name
 *
 * @param $get_q
 *   a drupal path
 *
 * @return
 *   string
 *   or NULL if no value could be mapped
 */
function themekey_views_getq2machine_name($get_q) {
  return themekey_views_get_simple_property_by_getq($get_q, 'name');
}

/**
 * ThemeKey mapping function to set a
 * ThemeKey property's value (destination)
 * with the aid of another ThemeKey property (source).
 *
 * src: drupal:get_q
 * dst: views:human_name
 *
 * @param $get_q
 *   a drupal path
 *
 * @return
 *   string
 *   or NULL if no value could be mapped
 */
function themekey_views_getq2human_name($get_q) {
  return themekey_views_get_simple_property_by_getq($get_q, 'human_name');
}

/**
 * Helper function to to get the value of a simple view property by
 * the view's drupal path
 *
 * @param $get_q
 *   a drupal path
 * @param $property
 *   name of a "simple" view property
 *
 * @return
 *   string
 *   or NULL if no value could be mapped
 */
function themekey_views_get_simple_property_by_getq($get_q, $property) {
  static $all_views = NULL;
  if (is_null($all_views)) {
    $all_views = views_get_all_views();
  }
  if (!empty($all_views)) {
    foreach ($all_views as $views_name => $view) {

      // IF VIEW HAS A PATH WHICH IS EQUAL
      if ($view
        ->get_url() == $get_q) {
        return $view->{$property};
      }
    }
  }
  return NULL;
}

Functions

Namesort descending Description
themekey_views_getq2human_name ThemeKey mapping function to set a ThemeKey property's value (destination) with the aid of another ThemeKey property (source).
themekey_views_getq2machine_name ThemeKey mapping function to set a ThemeKey property's value (destination) with the aid of another ThemeKey property (source).
themekey_views_getq2vid ThemeKey mapping function to set a ThemeKey property's value (destination) with the aid of another ThemeKey property (source).
themekey_views_get_simple_property_by_getq Helper function to to get the value of a simple view property by the view's drupal path
themekey_views_themekey_properties Implements hook_themekey_properties().