/** * @param \Latte\MacroNode $node * @param \Latte\PhpWriter $writer * @return string */ public function macroIncludeBlock(MacroNode $node, PhpWriter $writer) { $node->args = $this->pathResolver->expandPath($node->args, 'Resources/templates'); $node->tokenizer = new MacroTokens($node->args); $writer = new PhpWriter($node->tokenizer); return $this->blockMacros->macroIncludeBlock($node, $writer); }
public function filter(MacroNode $node, PhpWriter $writer) { $files = array(); while ($file = $node->tokenizer->fetchWord()) { $files[] = $this->wwwDir . '/' . ($this->pathResolver ? $this->pathResolver->expandResource($file) : $file); } if (!count($files)) { throw new CompileException('Missing file name in {js}'); } eval('$args = ' . $writer->formatArray() . ';'); return '$_control[\'js\']->render(\'' . join('\', \'', $files) . '\', array(\'config\' => ' . var_export($args, true) . '));'; }