/** * Output the template into the browser * Will also assign the labels and all user-defined constants. * If you want custom-headers, you should set them yourself, otherwise the content-type and charset will be set * * @param string $template The path of the template to use. * @param bool $customHeaders Deprecated variable. * @param bool $parseCustom Parse custom template. */ public function display($template, $customHeaders = false, $parseCustom = false) { // do custom stuff if ($parseCustom) { new TemplateCustom($this); } // parse constants $this->parseConstants(); // check debug $this->parseDebug(); // parse the label $this->parseLabels(); // parse date/time formats $this->parseDateTimeFormats(); // parse vars $this->parseVars(); // get template path $template = Theme::getPath($template); /* * Code below is exactly the same as from our parent (SpoonTemplate::display), except * for the compiler being used. We want our own compiler extension here. */ // redefine $template = (string) $template; // validate name if (trim($template) == '' || !is_file($template)) { throw new \SpoonTemplateException('Please provide an existing template.'); } // compiled name $compileName = $this->getCompileName((string) $template); // compiled if needed if ($this->forceCompile || !is_file($this->compileDirectory . '/' . $compileName)) { // create compiler $compiler = new TemplateCompiler((string) $template, $this->variables); // set some options $compiler->setCacheDirectory($this->cacheDirectory); $compiler->setCompileDirectory($this->compileDirectory); $compiler->setForceCompile($this->forceCompile); $compiler->setForms($this->forms); // compile & save $compiler->parseToFile(); } // load template require $this->compileDirectory . '/' . $compileName; }