Extends
lithium\core\Object
Evaluates a step condition to determine if the step should be executed.
Parameters
- array $step The array of instructions that define a rendering step.
- array $params The parameters associated with this rendering operation, as passed to `render()` (filtered from the `$options` parameter).
- array $data The associative array of template variables passed to `render()`.
- array $options The `$options` parameter, as passed to `render()`.
Returns
boolean Returns `true` if the step should be executed, or `false` if the step should be skipped. If the step array has a `'conditions'` key which is a string, it checks to see if the rendering options (`$options`) contain a key of the same name, and if that key evaluates to `true`. If `'conditions'` is a closure, that closure is executed with the rendering parameters (`$params`, `$data`, and `$options`), and the result is determined by the return value of the closure. If a step definition has no `'conditions'` key, it is always executed.Source
protected function _conditions(array $step, array $params, array $data, array $options) {
if (!$conditions = $step['conditions']) {
return true;
}
if (is_callable($conditions) && !$conditions($params, $data, $options)) {
return false;
}
if (is_string($conditions) && !(isset($options[$conditions]) && $options[$conditions])) {
return false;
}
return true;
}