lithium\template\view\Renderer::_init()
Overrides
lithium\core\ObjectDeprecated::_init()
Sets the default output handlers for string template inputs.
The default handlers available are:
url
: Allows generating escaped and routed URLs usingRouter::match()
. Note that all falsey values, which includes an empty array, will result in'/'
being returned. For empty arrays this behavior is slightly different from usingRouter::match()
directly.path
: Generates an asset path.options
: Converts a set of parameters to HTML attributes into a string.title
: Returns the escaped title.value
: Returns an escaped value.scripts
: Returns a markup string of styles from context.styles
: Returns a markup string of scripts from context.head
Returns
voidSource
protected function _init() {
parent::_init();
$req =& $this->_request;
$ctx =& $this->_context;
$classes =& $this->_classes;
$h = $this->_view ? $this->_view->outputFilters['h'] : null;
$this->_handlers += [
'url' => function($url, $ref, array $options = []) use (&$classes, &$req, $h) {
$url = $classes['router']::match($url ?: '', $req, $options);
return $h ? str_replace('&', '&', $h($url)) : $url;
},
'path' => function($path, $ref, array $options = []) use (&$classes, &$req, $h) {
$defaults = ['base' => $req ? $req->env('base') : ''];
$type = 'generic';
if (is_array($ref) && $ref[0] && $ref[1]) {
list($helper, $methodRef) = $ref;
list($class, $method) = explode('::', $methodRef);
$type = $helper->contentMap[$method];
}
$path = $classes['media']::asset($path, $type, $options + $defaults);
return $h ? $h($path) : $path;
},
'options' => 'attributes',
'title' => 'escape',
'value' => 'escape',
'scripts' => function($scripts) use (&$ctx) {
return "\n\t" . join("\n\t", $ctx['scripts']) . "\n";
},
'styles' => function($styles) use (&$ctx) {
return "\n\t" . join("\n\t", $ctx['styles']) . "\n";
},
'head' => function($head) use (&$ctx) {
return "\n\t" . join("\n\t", $ctx['head']) . "\n";
}
];
unset($this->_config['view']);
}