/** * Includes subtemplate. * @param mixed included file name or template * @param array parameters * @param Nette\Templating\ITemplate current template * @return Nette\Templating\Template */ public static function includeTemplate($destination, array $params, Nette\Templating\ITemplate $template) { if ($destination instanceof Nette\Templating\ITemplate) { $tpl = $destination; } elseif ($destination == NULL) { // intentionally == throw new Nette\InvalidArgumentException("Template file name was not specified."); } elseif ($template instanceof Nette\Templating\IFileTemplate) { if (substr($destination, 0, 1) !== '/' && substr($destination, 1, 1) !== ':') { $destination = dirname($template->getFile()) . '/' . $destination; } $tpl = clone $template; $tpl->setFile($destination); } else { throw new Nette\NotSupportedException('Macro {include "filename"} is supported only with Nette\\Templating\\IFileTemplate.'); } $tpl->setParameters($params); // interface? return $tpl; }
macroExpr(MacroNode$node,PhpWriter$writer){return$writer->write(($node->name==='?'?'':'echo ').'%modify(%node.args)');}static function includeTemplate($destination,array$params,Nette\Templating\ITemplate$template){if($destination instanceof Nette\Templating\ITemplate){$tpl=$destination;}elseif($destination==NULL){throw new Nette\InvalidArgumentException("Template file name was not specified.");}elseif($template instanceof Nette\Templating\IFileTemplate){if(substr($destination,0,1)!=='/'&&substr($destination,1,1)!==':'){$destination=dirname($template->getFile()).'/'.$destination;}$tpl=clone$template;$tpl->setFile($destination);}else{throw new Nette\NotSupportedException('Macro {include "filename"} is supported only with Nette\Templating\IFileTemplate.');}$tpl->setParameters($params);return$tpl;}static