/** * @param ViewElement $viewElement * @param integer $arity * @param array $arguments */ public function evaluate(ViewElementTag $viewElement, $arity, $arguments) { if ($arity != 3) { throw new FunctionCallException('if', 'Expected 3 arguments, ' . $arity . ' received.', $viewElement->getCurrentFile()->getFilename(), $viewElement->getLineNumber()); } return $arguments[0] ? $arguments[1] : $arguments[2]; }
/** * Function's arguments: * string to escape * * @param ViewElement $viewElement * @param integer $arity * @param array $arguments */ public function evaluate(ViewElementTag $viewElement, $arity, $arguments) { if ($arity != 1) { throw new FunctionCallException('htmlentities', 'Expects exactly 1 argument.', $viewElement->getCurrentFile()->getFilename(), $viewElement->getLineNumber()); } $string = $arguments[0]; return htmlentities($string); }
/** * Function's arguments: * timestamp, format [, locale] * * @param ViewElement $viewElement * @param integer $arity * @param array $arguments */ public function evaluate(ViewElementTag $viewElement, $arity, $arguments) { if ($arity <= 1) { throw new FunctionCallException('substr', 'Too few arguments.', $viewElement->getCurrentFile()->getFilename(), $viewElement->getLineNumber()); } $string = $arguments[0]; $start = $arguments[1]; if (3 <= $arity) { $length = $arguments[2]; return substr($string, $start, $length); } else { return substr($string, $start); } }
/** * Returns the file containing the current * expression to evaluate. * * @return File */ public function getViewFile() { return $this->viewElement->getCurrentFile(); }