themekey.purl.inc in ThemeKey 7.3
Same filename and directory in other branches
@author Markus Kalkbrenner | bio.logis GmbH
File
modules/themekey.purl.incView source
<?php
/**
 * @file
 *
 *
 * @see themekey.module
 *
 * @author Markus Kalkbrenner | bio.logis GmbH
 *   @see http://drupal.org/user/124705
 */
/**
 * Implements hook_themekey_properties().
 *
 * Provides additional properties for the ThemeKey module:
 * - purl:active_provider
 *
 * @return
 *   array of themekey properties
 */
function themekey_purl_themekey_properties() {
  // Attributes for properties
  $attributes = array();
  // Support for PURL Providers
  $attributes['purl:active_provider'] = array(
    'description' => t('Purl: Active Provider - The active provider that triggered the current id.'),
    //'validator' => 'themekey_validator_purl_providers',
    // TODO page cache support depends on the purl processors executed
    'page cache' => THEMEKEY_PAGECACHE_UNSUPPORTED,
  );
  // Support for PURL modifiers
  $attributes['purl:active_modifier'] = array(
    'description' => t('Purl: Active Modifier - The active modifier for the triggered provider'),
    //'validator' => 'themekey_validator_purl_modifiers',
    // TODO page cache support depend on the purl processors executed
    'page cache' => THEMEKEY_PAGECACHE_UNSUPPORTED,
  );
  // Mapping functions
  $maps = array();
  // Map for PURL Provider
  $maps[] = array(
    'src' => 'system:dummy',
    'dst' => 'purl:active_provider',
    'callback' => 'themekey_purl_dummy2active_provider',
  );
  // Map for PURL Modifier
  $maps[] = array(
    'src' => 'system:dummy',
    'dst' => 'purl:active_modifier',
    'callback' => 'themekey_purl_dummy2active_modifier',
  );
  return array(
    'attributes' => $attributes,
    'maps' => $maps,
  );
}
/**
 * ThemeKey mapping function to set a
 * ThemeKey property's value (destination)
 * with the aid of another ThemeKey property (source).
 *
 * src: system:dummy
 * dst: purl:active_provider
 *
 * @return
 *   string
 *   or NULL if no value could be mapped
 */
function themekey_purl_dummy2active_provider() {
  // @see http://drupal.org/node/1529892
  purl_init();
  $active_providers = array();
  foreach (purl_active()
    ->get() as $method => $items) {
    if (is_array($items)) {
      foreach ($items as $item) {
        $active_providers[] = $item->provider;
      }
    }
  }
  if (!empty($active_providers)) {
    return $active_providers;
  }
  return NULL;
}
/**
 * ThemeKey mapping function to set a
 * ThemeKey property's value (destination)
 * with the aid of another ThemeKey property (source).
 *
 * src: system:dummy
 * dst: purl:active_modifier
 *
 * @return
 *   string
 *   or NULL if no value could be mapped
 */
function themekey_purl_dummy2active_modifier() {
  // @see http://drupal.org/node/1529892
  purl_init();
  $active_modifiers = array();
  foreach (purl_active()
    ->get() as $method => $items) {
    if (is_array($items)) {
      foreach ($items as $item) {
        if (isset($item->id)) {
          $active_modifiers[] = $item->id;
        }
      }
    }
  }
  if (!empty($active_modifiers)) {
    return $active_modifiers;
  }
  return NULL;
}Functions
| 
            Name | 
                  Description | 
|---|---|
| themekey_purl_dummy2active_modifier | ThemeKey mapping function to set a ThemeKey property's value (destination) with the aid of another ThemeKey property (source). | 
| themekey_purl_dummy2active_provider | ThemeKey mapping function to set a ThemeKey property's value (destination) with the aid of another ThemeKey property (source). | 
| themekey_purl_themekey_properties | Implements hook_themekey_properties(). |