/** * @see \Ableron\Core\Template\Plugins\Interfaces\FunctionPluginInterface::execute() */ public function execute(TemplateRenderer $templateRenderer, $tagArguments) { // read arguments $templateFile = isset($tagArguments['templateFile']) ? $tagArguments['templateFile'] : $tagArguments[0]; $variables = isset($tagArguments['variables']) ? $tagArguments['variables'] : array(); $sandboxMode = isset($tagArguments['sandboxMode']) ? $tagArguments['sandboxMode'] : false; // check for argument "templateFile" if (StringUtil::isNullOrEmpty($templateFile)) { throw new SystemException('Missing argument "templateFile" in tag {include}', 0, E_USER_ERROR, __FILE__, __LINE__); } // return output of the rendered template return $templateRenderer->getTemplateHandler()->render(TemplateHelper::getAbsoluteTemplateFilePath($templateFile, $templateRenderer->getCurrentTemplatePath()), $sandboxMode ? $variables : array_merge($templateRenderer->getCurrentVariables(), $variables), true, $templateRenderer); }
/** * Returns the content of the given template file. * * Throws an exception in case the the template file does not exist. * * @param string $templateFile Path of the template to read * @throws \Ableron\Core\Exception\SystemException * @return string */ private function readTemplate($templateFile) { // determine absolute path of the template $finalTemplateFile = TemplateHelper::getAbsoluteTemplateFilePath($templateFile, $this->currentTemplatePath); // check whether the template exists if (!is_file($finalTemplateFile)) { throw new SystemException(sprintf('Template does not exist: %s', $templateFile), 0, E_USER_ERROR, __FILE__, __LINE__); } // set new template path and template name based on final template file $this->currentTemplatePath = pathinfo($finalTemplateFile, PATHINFO_DIRNAME); $this->currentTemplateName = basename($finalTemplateFile); // return the template return file_get_contents($finalTemplateFile); }