protected function registryFunctions($view, DiInterface $di, $userFunctions = [])
{
$options = ['is_safe' => ['html']];
$functions = [new \Twig_SimpleFunction('content', function () use($view) {
return $view->getContent();
}, $options), new \Twig_SimpleFunction('partial', function ($partialPath) use($view) {
return $view->partial($partialPath);
}, $options), new \Twig_SimpleFunction('linkTo', function ($parameters, $text = null) {
return \Phalcon\Tag::linkTo($parameters, $text);
}, $options), new \Twig_SimpleFunction('textField', function ($parameters) {
return \Phalcon\Tag::textField($parameters);
}, $options), new \Twig_SimpleFunction('passwordField', function ($parameters) {
return \Phalcon\Tag::passwordField($parameters);
}, $options), new \Twig_SimpleFunction('hiddenField', function ($parameters) {
return \Phalcon\Tag::hiddenField($parameters);
}, $options), new \Twig_SimpleFunction('fileField', function ($parameters) {
return \Phalcon\Tag::fileField($parameters);
}, $options), new \Twig_SimpleFunction('checkField', function ($parameters) {
return \Phalcon\Tag::checkField($parameters);
}, $options), new \Twig_SimpleFunction('radioField', function ($parameters) {
return \Phalcon\Tag::radioField($parameters);
}, $options), new \Twig_SimpleFunction('submitButton', function ($parameters) {
return \Phalcon\Tag::submitButton($parameters);
}, $options), new \Twig_SimpleFunction('selectStatic', function ($parameters, $data = []) {
return \Phalcon\Tag::selectStatic($parameters, $data);
}, $options), new \Twig_SimpleFunction('select', function ($parameters, $data = []) {
return \Phalcon\Tag::select($parameters, $data);
}, $options), new \Twig_SimpleFunction('textArea', function ($parameters) {
return \Phalcon\Tag::textArea($parameters);
}, $options), new \Twig_SimpleFunction('form', function ($parameters = []) {
return \Phalcon\Tag::form($parameters);
}, $options), new \Twig_SimpleFunction('endForm', function () {
return \Phalcon\Tag::endForm();
}, $options), new \Twig_SimpleFunction('getTitle', function () {
return \Phalcon\Tag::getTitle();
}, $options), new \Twig_SimpleFunction('stylesheetLink', function ($parameters = null, $local = true) {
return \Phalcon\Tag::stylesheetLink($parameters, $local);
}, $options), new \Twig_SimpleFunction('javascriptInclude', function ($parameters = null, $local = true) {
return \Phalcon\Tag::javascriptInclude($parameters, $local);
}, $options), new \Twig_SimpleFunction('image', function ($parameters) {
return \Phalcon\Tag::image($parameters);
}, $options), new \Twig_SimpleFunction('friendlyTitle', function ($text, $separator = null, $lowercase = true) {
return \Phalcon\Tag::friendlyTitle($text, $separator, $lowercase);
}, $options), new \Twig_SimpleFunction('getDocType', function () {
return \Phalcon\Tag::getDocType();
}, $options), new \Twig_SimpleFunction('getSecurityToken', function () use($di) {
return $di->get("security")->getToken();
}, $options), new \Twig_SimpleFunction('getSecurityTokenKey', function () use($di) {
return $di->get("security")->getTokenKey();
}, $options), new \Twig_SimpleFunction('url', function ($route) use($di) {
return $di->get("url")->get($route);
}, $options)];
if (!empty($userFunctions)) {
$functions = array_merge($functions, $userFunctions);
}
foreach ($functions as $function) {
$this->twig->addFunction($function);
}
}