protected function compile()
	{
		// User agent class (see #3074 and #6277)
		$this->ua = Environment::get('agent')->class;

		if (Config::get('fullscreen'))
		{
			$this->ua .= ' fullscreen';
		}

		// Style sheets
		if (!empty($GLOBALS['TL_CSS']) && \is_array($GLOBALS['TL_CSS']))
		{
			$strStyleSheets = '';
			$objCombiner = new Combiner();

			foreach (array_unique($GLOBALS['TL_CSS']) as $stylesheet)
			{
				$options = StringUtil::resolveFlaggedUrl($stylesheet);

				if ($options->static)
				{
					$objCombiner->add($stylesheet, $options->mtime, $options->media);
				}
				else
				{
					$strStyleSheets .= Template::generateStyleTag($this->addStaticUrlTo($stylesheet), $options->media, $options->mtime);
				}
			}

			if ($objCombiner->hasEntries())
			{
				$strStyleSheets = Template::generateStyleTag($objCombiner->getCombinedFile(), 'all') . $strStyleSheets;
			}

			$this->stylesheets .= $strStyleSheets;
		}

		// JavaScripts
		if (!empty($GLOBALS['TL_JAVASCRIPT']) && \is_array($GLOBALS['TL_JAVASCRIPT']))
		{
			$objCombiner = new Combiner();
			$objCombinerAsync = new Combiner();
			$strJavaScripts = '';

			foreach (array_unique($GLOBALS['TL_JAVASCRIPT']) as $javascript)
			{
				$options = StringUtil::resolveFlaggedUrl($javascript);

				if ($options->static)
				{
					$options->async ? $objCombinerAsync->add($javascript, $options->mtime) : $objCombiner->add($javascript, $options->mtime);
				}
				else
				{
					$strJavaScripts .= Template::generateScriptTag($this->addStaticUrlTo($javascript), $options->async, $options->mtime);
				}
			}

			if ($objCombiner->hasEntries())
			{
				$strJavaScripts = Template::generateScriptTag($objCombiner->getCombinedFile()) . $strJavaScripts;
			}

			if ($objCombinerAsync->hasEntries())
			{
				$strJavaScripts = Template::generateScriptTag($objCombinerAsync->getCombinedFile(), true) . $strJavaScripts;
			}

			$this->javascripts .= $strJavaScripts;
		}

		// MooTools scripts (added at the page bottom)
		if (!empty($GLOBALS['TL_MOOTOOLS']) && \is_array($GLOBALS['TL_MOOTOOLS']))
		{
			$strMootools = '';

			foreach (array_unique($GLOBALS['TL_MOOTOOLS']) as $script)
			{
				$strMootools .= $script;
			}

			$this->mootools .= $strMootools;
		}

		$strBuffer = $this->parse();
		$strBuffer = static::replaceOldBePaths($strBuffer);

		// HOOK: add custom output filter
		if (isset($GLOBALS['TL_HOOKS']['outputBackendTemplate']) && \is_array($GLOBALS['TL_HOOKS']['outputBackendTemplate']))
		{
			foreach ($GLOBALS['TL_HOOKS']['outputBackendTemplate'] as $callback)
			{
				$this->import($callback[0]);
				$strBuffer = $this->{$callback[0]}->{$callback[1]}($strBuffer, $this->strTemplate);
			}
		}

		$this->strBuffer = $strBuffer;

		parent::compile();
	}
protected function compile()
	{
		
		$this->ua = Environment::get('agent')->class;

		if (Config::get('fullscreen'))
		{
			$this->ua .= ' fullscreen';
		}

		
		if (!empty($GLOBALS['TL_CSS']) && \is_array($GLOBALS['TL_CSS']))
		{
			$strStyleSheets = '';
			$objCombiner = new Combiner();

			foreach (array_unique($GLOBALS['TL_CSS']) as $stylesheet)
			{
				$options = StringUtil::resolveFlaggedUrl($stylesheet);

				if ($options->static)
				{
					$objCombiner->add($stylesheet, $options->mtime, $options->media);
				}
				else
				{
					$strStyleSheets .= Template::generateStyleTag($this->addStaticUrlTo($stylesheet), $options->media, $options->mtime);
				}
			}

			if ($objCombiner->hasEntries())
			{
				$strStyleSheets = Template::generateStyleTag($objCombiner->getCombinedFile(), 'all') . $strStyleSheets;
			}

			$this->stylesheets .= $strStyleSheets;
		}

		
		if (!empty($GLOBALS['TL_JAVASCRIPT']) && \is_array($GLOBALS['TL_JAVASCRIPT']))
		{
			$objCombiner = new Combiner();
			$objCombinerAsync = new Combiner();
			$strJavaScripts = '';

			foreach (array_unique($GLOBALS['TL_JAVASCRIPT']) as $javascript)
			{
				$options = StringUtil::resolveFlaggedUrl($javascript);

				if ($options->static)
				{
					$options->async ? $objCombinerAsync->add($javascript, $options->mtime) : $objCombiner->add($javascript, $options->mtime);
				}
				else
				{
					$strJavaScripts .= Template::generateScriptTag($this->addStaticUrlTo($javascript), $options->async, $options->mtime);
				}
			}

			if ($objCombiner->hasEntries())
			{
				$strJavaScripts = Template::generateScriptTag($objCombiner->getCombinedFile()) . $strJavaScripts;
			}

			if ($objCombinerAsync->hasEntries())
			{
				$strJavaScripts = Template::generateScriptTag($objCombinerAsync->getCombinedFile(), true) . $strJavaScripts;
			}

			$this->javascripts .= $strJavaScripts;
		}

		
		if (!empty($GLOBALS['TL_MOOTOOLS']) && \is_array($GLOBALS['TL_MOOTOOLS']))
		{
			$strMootools = '';

			foreach (array_unique($GLOBALS['TL_MOOTOOLS']) as $script)
			{
				$strMootools .= $script;
			}

			$this->mootools .= $strMootools;
		}

		$strBuffer = $this->parse();
		$strBuffer = static::replaceOldBePaths($strBuffer);

		
		if (isset($GLOBALS['TL_HOOKS']['outputBackendTemplate']) && \is_array($GLOBALS['TL_HOOKS']['outputBackendTemplate']))
		{
			foreach ($GLOBALS['TL_HOOKS']['outputBackendTemplate'] as $callback)
			{
				$this->import($callback[0]);
				$strBuffer = $this->{$callback[0]}->{$callback[1]}($strBuffer, $this->strTemplate);
			}
		}

		$this->strBuffer = $strBuffer;

		parent::compile();
	}
protected function compile ( ) { // User agent class (see #3074 and #6277) $ this -> ua = Environment :: get ( 'agent' ) -> class ; if ( Config :: get ( 'fullscreen' ) ) { $ this -> ua .= ' fullscreen' ; } // Style sheets if ( ! empty ( $ GLOBALS [ 'TL_CSS' ] ) && \ is_array ( $ GLOBALS [ 'TL_CSS' ] ) ) { $ strStyleSheets = '' ; $ objCombiner = new Combiner ( ) ; foreach ( array_unique ( $ GLOBALS [ 'TL_CSS' ] ) as $ stylesheet ) { $ options = StringUtil :: resolveFlaggedUrl ( $ stylesheet ) ; if ( $ options -> static ) { $ objCombiner -> add ( $ stylesheet , $ options -> mtime , $ options -> media ) ; } else { $ strStyleSheets .= Template :: generateStyleTag ( $ this -> addStaticUrlTo ( $ stylesheet ) , $ options -> media , $ options -> mtime ) ; } } if ( $ objCombiner -> hasEntries ( ) ) { $ strStyleSheets = Template :: generateStyleTag ( $ objCombiner -> getCombinedFile ( ) , 'all' ) . $ strStyleSheets ; } $ this -> stylesheets .= $ strStyleSheets ; } // JavaScripts if ( ! empty ( $ GLOBALS [ 'TL_JAVASCRIPT' ] ) && \ is_array ( $ GLOBALS [ 'TL_JAVASCRIPT' ] ) ) { $ objCombiner = new Combiner ( ) ; $ objCombinerAsync = new Combiner ( ) ; $ strJavaScripts = '' ; foreach ( array_unique ( $ GLOBALS [ 'TL_JAVASCRIPT' ] ) as $ javascript ) { $ options = StringUtil :: resolveFlaggedUrl ( $ javascript ) ; if ( $ options -> static ) { $ options -> async ? $ objCombinerAsync -> add ( $ javascript , $ options -> mtime ) : $ objCombiner -> add ( $ javascript , $ options -> mtime ) ; } else { $ strJavaScripts .= Template :: generateScriptTag ( $ this -> addStaticUrlTo ( $ javascript ) , $ options -> async , $ options -> mtime ) ; } } if ( $ objCombiner -> hasEntries ( ) ) { $ strJavaScripts = Template :: generateScriptTag ( $ objCombiner -> getCombinedFile ( ) ) . $ strJavaScripts ; } if ( $ objCombinerAsync -> hasEntries ( ) ) { $ strJavaScripts = Template :: generateScriptTag ( $ objCombinerAsync -> getCombinedFile ( ) , true ) . $ strJavaScripts ; } $ this -> javascripts .= $ strJavaScripts ; } // MooTools scripts (added at the page bottom) if ( ! empty ( $ GLOBALS [ 'TL_MOOTOOLS' ] ) && \ is_array ( $ GLOBALS [ 'TL_MOOTOOLS' ] ) ) { $ strMootools = '' ; foreach ( array_unique ( $ GLOBALS [ 'TL_MOOTOOLS' ] ) as $ script ) { $ strMootools .= $ script ; } $ this -> mootools .= $ strMootools ; } $ strBuffer = $ this -> parse ( ) ; $ strBuffer = static :: replaceOldBePaths ( $ strBuffer ) ; // HOOK: add custom output filter if ( isset ( $ GLOBALS [ 'TL_HOOKS' ] [ 'outputBackendTemplate' ] ) && \ is_array ( $ GLOBALS [ 'TL_HOOKS' ] [ 'outputBackendTemplate' ] ) ) { foreach ( $ GLOBALS [ 'TL_HOOKS' ] [ 'outputBackendTemplate' ] as $ callback ) { $ this -> import ( $ callback [ 0 ] ) ; $ strBuffer = $ this -> { $ callback [ 0 ] } -> { $ callback [ 1 ] } ( $ strBuffer , $ this -> strTemplate ) ; } } $ this -> strBuffer = $ strBuffer ; parent :: compile ( ) ; }
Compile the template

@internal Do not call this method in your code. It will be made private in Contao 5.0.
Compile the template