function hook_themekey_properties in ThemeKey 7.3
Same name and namespace in other branches
- 7 docs/themekey.api.php \hook_themekey_properties()
 - 7.2 docs/themekey.api.php \hook_themekey_properties()
 
By Implementing hook_themekey_properties() it's possible to add new properties to ThemeKey.
Two assign a value to a property during a page request you have three possibilities: 1. Provide a mapping function from one property to another and tell ThemeKey about it using this hook. 2. Implement hook_themekey_global(). 3. Implement hook_themekey_paths().
There's an example implementation of this hook,
Return value
An array of ThemeKey properties and mapping functions: array of ThemeKey property attributes: key: namespace:property value: array( description => Readable name of property (required) validator => Callback function to validate a rule starting with that property (optional) TODO: describe validator arguments and return value file => File that provides the validator function (optional) path => Alternative path relative to dupal's doc root to load the file (optional) static => true/false, static properties don't occur in properties drop down and have fixed operator and value (optional) page cache => Level of page caching support:
Default is THEMEKEY_PAGECACHE_UNSUPPORTED (optional) ) array of mapping functions key: none (indexed) value: array( src => Source property path (required) dst => Destination property path (required) callback => Mapping callback (required) file => File that provides the callback function (optional) path => Alternative path relative to dupal's doc root to load the file (optional) )
See also
themekey_example_themekey_properties()
23 functions implement hook_themekey_properties()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- themekey_blog_themekey_properties in modules/
themekey.blog.inc  - Implements hook_themekey_properties().
 - themekey_book_themekey_properties in modules/
themekey.book.inc  - Implements hook_themekey_properties().
 - themekey_browscap_themekey_properties in modules/
themekey.browscap.inc  - Implements hook_themekey_properties().
 - themekey_comment_themekey_properties in modules/
themekey.comment.inc  - Implements hook_themekey_properties().
 - themekey_compat_themekey_properties in ./
themekey_compat.module  - Implements hook_themekey_properties().
 
2 invocations of hook_themekey_properties()
- themekey_load_function in ./
themekey_base.inc  - Magic loading of validation and callback functions.
 - themekey_rebuild in ./
themekey_build.inc  - Rebuilds all ThemeKey-related Drupal variables by calling the hooks:
 
File
- docs/
themekey.api.php, line 50  - ThemeKey API documentation
 
Code
function hook_themekey_properties() {
  // Attributes of properties
  $attributes = array();
  $attributes['example:number_one'] = array(
    'description' => t('Example: always returns "1"'),
    'validator' => 'themekey_example_validator_number_one',
    'file' => 'themekey_example_validators.inc',
    'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
  );
  $attributes['example:global_one'] = array(
    'description' => t('Example: always returns "1"'),
    'validator' => 'themekey_example_validator_number_one',
    'file' => 'themekey_example_validators.inc',
    'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
  );
  $attributes['example:path_number'] = array(
    'description' => t('Example: always returns "1"'),
    'validator' => 'themekey_validator_ctype_digit',
    'page cache' => THEMEKEY_PAGECACHE_SUPPORTED,
  );
  // Mapping functions
  $maps = array();
  $maps[] = array(
    'src' => 'system:dummy',
    'dst' => 'example:number_one',
    'callback' => 'themekey_example_dummy2number_one',
    'file' => 'themekey_example_mappers.inc',
  );
  return array(
    'attributes' => $attributes,
    'maps' => $maps,
  );
}