lithium\template\view\Renderer::_init()

protected method

Sets the default output handlers for string template inputs.

The default handlers available are:

  • url: Allows generating escaped and routed URLs using Router::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 using Router::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

void

Source

	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']);
	}