You are here

function themekey_validator_wildcard in ThemeKey 6.3

Same name and namespace in other branches
  1. 6.4 themekey_validators.inc \themekey_validator_wildcard()
  2. 6.2 themekey_validators.inc \themekey_validator_wildcard()
  3. 7.3 themekey_validators.inc \themekey_validator_wildcard()
  4. 7 themekey_validators.inc \themekey_validator_wildcard()
  5. 7.2 themekey_validators.inc \themekey_validator_wildcard()

Validates a Theme Switching Rule. Allowed Operators: any Allowed wildcards: any string without whitespace and not starting with "#" or "%"

Parameters

$rule: A Theme Switching Rule as associative array:

  • property: ThemeKey property as string (p.e. "drupal:path")
  • wildcard: optional string, only used if property is "drupal:path:wildcard"
  • operator: ThemeKey operator as string ("=", "!", "<". "<=", ">", ">=", "~")
  • value: ThemeKey property value as string

Return value

An associative array of errors:

  • property: translated error message as string describing a problem with the property
  • wildcard: translated error message as string describing a problem with the wildcard
  • operator: translated error message as string describing a problem with the operator
  • value: translated error message as string describing a problem with the value

If no errors detected the array is empty.

1 string reference to 'themekey_validator_wildcard'
themekey_system_themekey_properties in modules/themekey.system.inc
Implements hook_themekey_properties().

File

./themekey_validators.inc, line 510
Provides set of validators which can be used to validate ThemeKey Theme Switching Rules.

Code

function themekey_validator_wildcard($rule) {
  $errors = themekey_validator_no_whitespace($rule);
  if (preg_match("/^[#%]/", $rule['wildcard'])) {
    $errors['wildcard'] = t('Wildcard must not start with type identifier "#" or "%" at this point');
  }
  elseif (preg_match("/\\s/", $rule['wildcard'])) {
    $errors['wildcard'] = t('Wildcard must not contain any "whitespace" characters');
  }
  return $errors;
}