You are here

function themekey_validator_date in ThemeKey 6.4

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

Validates a Theme Switching Rule. Allowed Operators: any Allowed values:

  • valid regular expression if operator is "~"
  • a valid date like "2009-12-24" if operator is "=" or "!"
  • fragment of a date which contains at least the year as four digits for different operators

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_date'
themekey_node_themekey_properties in modules/themekey.node.inc
Implements hook_themekey_properties().

File

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

Code

function themekey_validator_date($rule) {
  $errors = array();
  switch ($rule['operator']) {
    case '=':
    case '!':
      if (!preg_match("/^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}\$/", $rule['value'])) {
        $errors['value'] = t('Not a valid date string. Format should look like "2009-12-24"');
      }
      break;
    case '~':
    case '!~':
      $errors = themekey_validator_regex($rule);
      break;
    case '*':
    case '!*':
      if (!preg_match("/^[\\d\\-]+\$/", $rule['value'])) {
        $errors['value'] = t("Value isn't suitable for checks against dates formatted like \"2009-12-24\"");
      }
      break;
    default:
      if (!preg_match("/^[0-9]{4}[0-9\\-]*\$/", $rule['value'])) {
        $errors['value'] = t("Value isn't suitable for checks against dates formatted like \"2009-12-24\"");
      }
  }
  return $errors;
}