protected function _init()
{
parent::_init();
$req =& $this->_request;
$ctx =& $this->_context;
$classes =& $this->_classes;
$h = $this->_view ? $this->_view->outputFilters['h'] : null;
$this->_handlers += array('url' => function ($url, $ref, array $options = array()) use(&$classes, &$req, $h) {
$url = $classes['router']::match($url ?: '', $req, $options);
return $h ? str_replace('&', '&', $h($url)) : $url;
}, 'path' => function ($path, $ref, array $options = array()) use(&$classes, &$req, $h) {
$defaults = array('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']);
}