/** <code>{% extends %}</code> tag. */ public function handleTExtends(TemplateCompilerEx $compiler, TemplateNodeEx $node, &$tag, array &$args) { $compiler->raiseIf(isset($compiler->metadata['parentTemplate']) && !empty($compiler->metadata['parentTemplate']), $node, 'This template already has a parent specified', TemplateError::E_INVALID_SYNTAX); $dsn = mb_substr($args[0], 1, -1); TemplateUtils::checkIORestriction($compiler, 'restrictExtendIO', $dsn, $compiler->metadata['usedIO'], $node); $compiler->metadata['parentTemplate'] = $dsn; // no block-level code generated return ''; }