function hansel_switch_node_age_compare in Hansel breadcrumbs 7
Same name and namespace in other branches
- 8 hansel.switches.inc \hansel_switch_node_age_compare()
 
Callback for "node age" switch to compare a given value.
Parameters
array $arguments:
string $value:
Return value
boolean
1 string reference to 'hansel_switch_node_age_compare'
- hansel_hansel_switch_types in ./
hansel.module  - Implements hook_hansel_switch_types().
 
File
- ./
hansel.switches.inc, line 124  - Hansel switches
 
Code
function hansel_switch_node_age_compare($arguments, $value) {
  if (drupal_strtolower(hansel_arg(0)) == 'node' && is_numeric(hansel_arg(1))) {
    if ($node = node_load(hansel_arg(1))) {
      $unit = empty($arguments['unit']) ? 86400 : $arguments['unit'];
      $age = (REQUEST_TIME - $node->created) / $unit;
      // Check for ranges (e.g. "0-100" or "0.5-1").
      if (preg_match('/^([0-9\\.]+)\\-([0-9\\.]+)$/si', $value, $match)) {
        $min = (double) $match[1];
        $max = (double) $match[2];
        return $age >= $min && $age < $max;
      }
      elseif (preg_match('/^(\\<|\\>|\\<\\=|\\>\\=) *([0-9\\.]+)$/si', $value, $match)) {
        $operator = $match[1];
        $check_value = (double) $match[2];
        switch ($operator) {
          case '<':
            return $age < $check_value;
          case '>':
            return $age > $check_value;
          case '<=':
            return $age <= $check_value;
          case '>=':
            return $age >= $check_value;
        }
      }
    }
  }
  return FALSE;
}