protected function createTemplate($objPage, $objLayout)
	{
		$this->Template = new FrontendTemplate($objPage->template);
		$this->Template->viewport = '';
		$this->Template->framework = '';

		$arrFramework = StringUtil::deserialize($objLayout->framework);

		// Generate the CSS framework
		if (\is_array($arrFramework) && \in_array('layout.css', $arrFramework))
		{
			$strFramework = '';

			if (\in_array('responsive.css', $arrFramework))
			{
				$this->Template->viewport = '<meta name="viewport" content="width=device-width,initial-scale=1.0">' . "\n";
			}

			// Wrapper
			if ($objLayout->static)
			{
				$arrSize = StringUtil::deserialize($objLayout->width);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$arrMargin = array('left'=>'0 auto 0 0', 'center'=>'0 auto', 'right'=>'0 0 0 auto');
					$strFramework .= sprintf('#wrapper{width:%s;margin:%s}', $arrSize['value'] . $arrSize['unit'], $arrMargin[$objLayout->align]);
				}
			}

			// Header
			if ($objLayout->rows == '2rwh' || $objLayout->rows == '3rw')
			{
				$arrSize = StringUtil::deserialize($objLayout->headerHeight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('#header{height:%s}', $arrSize['value'] . $arrSize['unit']);
				}
			}

			$strContainer = '';

			// Left column
			if ($objLayout->cols == '2cll' || $objLayout->cols == '3cl')
			{
				$arrSize = StringUtil::deserialize($objLayout->widthLeft);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('#left{width:%s;right:%s}', $arrSize['value'] . $arrSize['unit'], $arrSize['value'] . $arrSize['unit']);
					$strContainer .= sprintf('padding-left:%s;', $arrSize['value'] . $arrSize['unit']);
				}
			}

			// Right column
			if ($objLayout->cols == '2clr' || $objLayout->cols == '3cl')
			{
				$arrSize = StringUtil::deserialize($objLayout->widthRight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('#right{width:%s}', $arrSize['value'] . $arrSize['unit']);
					$strContainer .= sprintf('padding-right:%s;', $arrSize['value'] . $arrSize['unit']);
				}
			}

			// Main column
			if ($strContainer != '')
			{
				$strFramework .= sprintf('#container{%s}', substr($strContainer, 0, -1));
			}

			// Footer
			if ($objLayout->rows == '2rwf' || $objLayout->rows == '3rw')
			{
				$arrSize = StringUtil::deserialize($objLayout->footerHeight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('#footer{height:%s}', $arrSize['value'] . $arrSize['unit']);
				}
			}

			// Add the layout specific CSS
			if ($strFramework != '')
			{
				$this->Template->framework = Template::generateInlineStyle($strFramework) . "\n";
			}
		}

		// Overwrite the viewport tag (see #6251)
		if ($objLayout->viewport != '')
		{
			$this->Template->viewport = '<meta name="viewport" content="' . $objLayout->viewport . '">' . "\n";
		}

		$this->Template->mooScripts = '';

		// Make sure TL_JAVASCRIPT exists (see #4890)
		if (isset($GLOBALS['TL_JAVASCRIPT']) && \is_array($GLOBALS['TL_JAVASCRIPT']))
		{
			$arrAppendJs = $GLOBALS['TL_JAVASCRIPT'];
			$GLOBALS['TL_JAVASCRIPT'] = array();
		}
		else
		{
			$arrAppendJs = array();
			$GLOBALS['TL_JAVASCRIPT'] = array();
		}

		$container = System::getContainer();
		$rootDir = $container->getParameter('kernel.project_dir');

		// jQuery scripts
		if ($objLayout->addJQuery)
		{
			if ($objLayout->jSource == 'j_googleapis' || $objLayout->jSource == 'j_fallback')
			{
				try
				{
					/** @var AdapterInterface $cache */
					$cache = $container->get('cache.system');
					$hash = $cache->getItem('contao.jquery_hash');

					if (!$hash->isHit())
					{
						$hash->set('sha256-' . base64_encode(hash_file('sha256', $rootDir . '/assets/jquery/js/jquery.min.js', true)));
						$cache->save($hash);
					}

					$this->Template->mooScripts .= Template::generateScriptTag('https://code.jquery.com/jquery-' . PackageUtil::getNormalizedVersion('contao-components/jquery') . '.min.js', false, false, $hash->get(), 'anonymous') . "\n";

					// Local fallback (thanks to DyaGa)
					if ($objLayout->jSource == 'j_fallback')
					{
						$this->Template->mooScripts .= Template::generateInlineScript('window.jQuery || document.write(\'<script src="' . Controller::addAssetsUrlTo('assets/jquery/js/jquery.min.js') .'">\x3C/script>\')') . "\n";
					}
				}
				catch (\OutOfBoundsException $e)
				{
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/jquery/js/jquery.min.js|static';
				}
			}
			else
			{
				$GLOBALS['TL_JAVASCRIPT'][] = 'assets/jquery/js/jquery.min.js|static';
			}
		}

		// MooTools scripts
		if ($objLayout->addMooTools)
		{
			if ($objLayout->mooSource == 'moo_googleapis' || $objLayout->mooSource == 'moo_fallback')
			{
				try
				{
					$version = PackageUtil::getNormalizedVersion('contao-components/mootools');

					if (version_compare($version, '1.5.1', '>'))
					{
						$this->Template->mooScripts .= Template::generateScriptTag('https://ajax.googleapis.com/ajax/libs/mootools/' . $version . '/mootools.min.js', false, false, null, 'anonymous') . "\n";
					}
					else
					{
						$this->Template->mooScripts .= Template::generateScriptTag('https://ajax.googleapis.com/ajax/libs/mootools/' . $version . '/mootools-yui-compressed.js', false, false, null, 'anonymous') . "\n";
					}

					// Local fallback (thanks to DyaGa)
					if ($objLayout->mooSource == 'moo_fallback')
					{
						$this->Template->mooScripts .= Template::generateInlineScript('window.MooTools || document.write(\'<script src="' . Controller::addAssetsUrlTo('assets/mootools/js/mootools-core.min.js') . '">\x3C/script>\')') . "\n";
					}

					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools-more.min.js|static';
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools-mobile.min.js|static';
				}
				catch (\OutOfBoundsException $e)
				{
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools.min.js|static';
				}
			}
			else
			{
				$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools.min.js|static';
			}
		}

		// Picturefill
		if ($objLayout->picturefill)
		{
			$GLOBALS['TL_JAVASCRIPT'][] = 'assets/respimage/js/respimage.min.js|static';
		}

		// Check whether TL_APPEND_JS exists (see #4890)
		if (!empty($arrAppendJs))
		{
			$GLOBALS['TL_JAVASCRIPT'] = array_merge($GLOBALS['TL_JAVASCRIPT'], $arrAppendJs);
		}

		// Initialize the sections
		$this->Template->header = '';
		$this->Template->left = '';
		$this->Template->main = '';
		$this->Template->right = '';
		$this->Template->footer = '';

		// Initialize the custom layout sections
		$this->Template->sections = array();
		$this->Template->positions = array();

		if ($objLayout->sections != '')
		{
			$arrPositions = array();
			$arrSections = StringUtil::deserialize($objLayout->sections);

			if (!empty($arrSections) && \is_array($arrSections))
			{
				foreach ($arrSections as $v)
				{
					$arrPositions[$v['position']][$v['id']] = $v;
				}
			}

			$this->Template->positions = $arrPositions;
		}

		// Default settings
		$this->Template->layout = $objLayout;
		$this->Template->language = $GLOBALS['TL_LANGUAGE'];
		$this->Template->charset = Config::get('characterSet');
		$this->Template->base = Environment::get('base');
		$this->Template->isRTL = false;
	}
protected function createTemplate($objPage, $objLayout)
	{
		$this->Template = new FrontendTemplate($objPage->template);
		$this->Template->viewport = '';
		$this->Template->framework = '';

		$arrFramework = StringUtil::deserialize($objLayout->framework);

		
		if (\is_array($arrFramework) && \in_array('layout.css', $arrFramework))
		{
			$strFramework = '';

			if (\in_array('responsive.css', $arrFramework))
			{
				$this->Template->viewport = '<meta name="viewport" content="width=device-width,initial-scale=1.0">' . "\n";
			}

			
			if ($objLayout->static)
			{
				$arrSize = StringUtil::deserialize($objLayout->width);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$arrMargin = array('left'=>'0 auto 0 0', 'center'=>'0 auto', 'right'=>'0 0 0 auto');
					$strFramework .= sprintf('
				}
			}

			
			if ($objLayout->rows == '2rwh' || $objLayout->rows == '3rw')
			{
				$arrSize = StringUtil::deserialize($objLayout->headerHeight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('
				}
			}

			$strContainer = '';

			
			if ($objLayout->cols == '2cll' || $objLayout->cols == '3cl')
			{
				$arrSize = StringUtil::deserialize($objLayout->widthLeft);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('
					$strContainer .= sprintf('padding-left:%s;', $arrSize['value'] . $arrSize['unit']);
				}
			}

			
			if ($objLayout->cols == '2clr' || $objLayout->cols == '3cl')
			{
				$arrSize = StringUtil::deserialize($objLayout->widthRight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('
					$strContainer .= sprintf('padding-right:%s;', $arrSize['value'] . $arrSize['unit']);
				}
			}

			
			if ($strContainer != '')
			{
				$strFramework .= sprintf('
			}

			
			if ($objLayout->rows == '2rwf' || $objLayout->rows == '3rw')
			{
				$arrSize = StringUtil::deserialize($objLayout->footerHeight);

				if (isset($arrSize['value']) && $arrSize['value'] != '' && $arrSize['value'] >= 0)
				{
					$strFramework .= sprintf('
				}
			}

			
			if ($strFramework != '')
			{
				$this->Template->framework = Template::generateInlineStyle($strFramework) . "\n";
			}
		}

		
		if ($objLayout->viewport != '')
		{
			$this->Template->viewport = '<meta name="viewport" content="' . $objLayout->viewport . '">' . "\n";
		}

		$this->Template->mooScripts = '';

		
		if (isset($GLOBALS['TL_JAVASCRIPT']) && \is_array($GLOBALS['TL_JAVASCRIPT']))
		{
			$arrAppendJs = $GLOBALS['TL_JAVASCRIPT'];
			$GLOBALS['TL_JAVASCRIPT'] = array();
		}
		else
		{
			$arrAppendJs = array();
			$GLOBALS['TL_JAVASCRIPT'] = array();
		}

		$container = System::getContainer();
		$rootDir = $container->getParameter('kernel.project_dir');

		
		if ($objLayout->addJQuery)
		{
			if ($objLayout->jSource == 'j_googleapis' || $objLayout->jSource == 'j_fallback')
			{
				try
				{
					
					$cache = $container->get('cache.system');
					$hash = $cache->getItem('contao.jquery_hash');

					if (!$hash->isHit())
					{
						$hash->set('sha256-' . base64_encode(hash_file('sha256', $rootDir . '/assets/jquery/js/jquery.min.js', true)));
						$cache->save($hash);
					}

					$this->Template->mooScripts .= Template::generateScriptTag('https:

					
					if ($objLayout->jSource == 'j_fallback')
					{
						$this->Template->mooScripts .= Template::generateInlineScript('window.jQuery || document.write(\'<script src="' . Controller::addAssetsUrlTo('assets/jquery/js/jquery.min.js') .'">\x3C/script>\')') . "\n";
					}
				}
				catch (\OutOfBoundsException $e)
				{
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/jquery/js/jquery.min.js|static';
				}
			}
			else
			{
				$GLOBALS['TL_JAVASCRIPT'][] = 'assets/jquery/js/jquery.min.js|static';
			}
		}

		
		if ($objLayout->addMooTools)
		{
			if ($objLayout->mooSource == 'moo_googleapis' || $objLayout->mooSource == 'moo_fallback')
			{
				try
				{
					$version = PackageUtil::getNormalizedVersion('contao-components/mootools');

					if (version_compare($version, '1.5.1', '>'))
					{
						$this->Template->mooScripts .= Template::generateScriptTag('https:
					}
					else
					{
						$this->Template->mooScripts .= Template::generateScriptTag('https:
					}

					
					if ($objLayout->mooSource == 'moo_fallback')
					{
						$this->Template->mooScripts .= Template::generateInlineScript('window.MooTools || document.write(\'<script src="' . Controller::addAssetsUrlTo('assets/mootools/js/mootools-core.min.js') . '">\x3C/script>\')') . "\n";
					}

					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools-more.min.js|static';
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools-mobile.min.js|static';
				}
				catch (\OutOfBoundsException $e)
				{
					$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools.min.js|static';
				}
			}
			else
			{
				$GLOBALS['TL_JAVASCRIPT'][] = 'assets/mootools/js/mootools.min.js|static';
			}
		}

		
		if ($objLayout->picturefill)
		{
			$GLOBALS['TL_JAVASCRIPT'][] = 'assets/respimage/js/respimage.min.js|static';
		}

		
		if (!empty($arrAppendJs))
		{
			$GLOBALS['TL_JAVASCRIPT'] = array_merge($GLOBALS['TL_JAVASCRIPT'], $arrAppendJs);
		}

		
		$this->Template->header = '';
		$this->Template->left = '';
		$this->Template->main = '';
		$this->Template->right = '';
		$this->Template->footer = '';

		
		$this->Template->sections = array();
		$this->Template->positions = array();

		if ($objLayout->sections != '')
		{
			$arrPositions = array();
			$arrSections = StringUtil::deserialize($objLayout->sections);

			if (!empty($arrSections) && \is_array($arrSections))
			{
				foreach ($arrSections as $v)
				{
					$arrPositions[$v['position']][$v['id']] = $v;
				}
			}

			$this->Template->positions = $arrPositions;
		}

		
		$this->Template->layout = $objLayout;
		$this->Template->language = $GLOBALS['TL_LANGUAGE'];
		$this->Template->charset = Config::get('characterSet');
		$this->Template->base = Environment::get('base');
		$this->Template->isRTL = false;
	}
protected function createTemplate ( $ objPage , $ objLayout ) { $ this -> Template = new FrontendTemplate ( $ objPage -> template ) ; $ this -> Template -> viewport = '' ; $ this -> Template -> framework = '' ; $ arrFramework = StringUtil :: deserialize ( $ objLayout -> framework ) ; // Generate the CSS framework if ( \ is_array ( $ arrFramework ) && \ in_array ( 'layout.css' , $ arrFramework ) ) { $ strFramework = '' ; if ( \ in_array ( 'responsive.css' , $ arrFramework ) ) { $ this -> Template -> viewport = '<meta name="viewport" content="width=device-width,initial-scale=1.0">' . "\n" ; } // Wrapper if ( $ objLayout -> static ) { $ arrSize = StringUtil :: deserialize ( $ objLayout -> width ) ; if ( isset ( $ arrSize [ 'value' ] ) && $ arrSize [ 'value' ] != '' && $ arrSize [ 'value' ] >= 0 ) { $ arrMargin = array ( 'left' => '0 auto 0 0' , 'center' => '0 auto' , 'right' => '0 0 0 auto' ) ; $ strFramework .= sprintf ( '#wrapper{width:%s;margin:%s}' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] , $ arrMargin [ $ objLayout -> align ] ) ; } } // Header if ( $ objLayout -> rows == '2rwh' || $ objLayout -> rows == '3rw' ) { $ arrSize = StringUtil :: deserialize ( $ objLayout -> headerHeight ) ; if ( isset ( $ arrSize [ 'value' ] ) && $ arrSize [ 'value' ] != '' && $ arrSize [ 'value' ] >= 0 ) { $ strFramework .= sprintf ( '#header{height:%s}' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; } } $ strContainer = '' ; // Left column if ( $ objLayout -> cols == '2cll' || $ objLayout -> cols == '3cl' ) { $ arrSize = StringUtil :: deserialize ( $ objLayout -> widthLeft ) ; if ( isset ( $ arrSize [ 'value' ] ) && $ arrSize [ 'value' ] != '' && $ arrSize [ 'value' ] >= 0 ) { $ strFramework .= sprintf ( '#left{width:%s;right:%s}' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; $ strContainer .= sprintf ( 'padding-left:%s;' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; } } // Right column if ( $ objLayout -> cols == '2clr' || $ objLayout -> cols == '3cl' ) { $ arrSize = StringUtil :: deserialize ( $ objLayout -> widthRight ) ; if ( isset ( $ arrSize [ 'value' ] ) && $ arrSize [ 'value' ] != '' && $ arrSize [ 'value' ] >= 0 ) { $ strFramework .= sprintf ( '#right{width:%s}' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; $ strContainer .= sprintf ( 'padding-right:%s;' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; } } // Main column if ( $ strContainer != '' ) { $ strFramework .= sprintf ( '#container{%s}' , substr ( $ strContainer , 0 , - 1 ) ) ; } // Footer if ( $ objLayout -> rows == '2rwf' || $ objLayout -> rows == '3rw' ) { $ arrSize = StringUtil :: deserialize ( $ objLayout -> footerHeight ) ; if ( isset ( $ arrSize [ 'value' ] ) && $ arrSize [ 'value' ] != '' && $ arrSize [ 'value' ] >= 0 ) { $ strFramework .= sprintf ( '#footer{height:%s}' , $ arrSize [ 'value' ] . $ arrSize [ 'unit' ] ) ; } } // Add the layout specific CSS if ( $ strFramework != '' ) { $ this -> Template -> framework = Template :: generateInlineStyle ( $ strFramework ) . "\n" ; } } // Overwrite the viewport tag (see #6251) if ( $ objLayout -> viewport != '' ) { $ this -> Template -> viewport = '<meta name="viewport" content="' . $ objLayout -> viewport . '">' . "\n" ; } $ this -> Template -> mooScripts = '' ; // Make sure TL_JAVASCRIPT exists (see #4890) if ( isset ( $ GLOBALS [ 'TL_JAVASCRIPT' ] ) && \ is_array ( $ GLOBALS [ 'TL_JAVASCRIPT' ] ) ) { $ arrAppendJs = $ GLOBALS [ 'TL_JAVASCRIPT' ] ; $ GLOBALS [ 'TL_JAVASCRIPT' ] = array ( ) ; } else { $ arrAppendJs = array ( ) ; $ GLOBALS [ 'TL_JAVASCRIPT' ] = array ( ) ; } $ container = System :: getContainer ( ) ; $ rootDir = $ container -> getParameter ( 'kernel.project_dir' ) ; // jQuery scripts if ( $ objLayout -> addJQuery ) { if ( $ objLayout -> jSource == 'j_googleapis' || $ objLayout -> jSource == 'j_fallback' ) { try { /** @var AdapterInterface $cache */ $ cache = $ container -> get ( 'cache.system' ) ; $ hash = $ cache -> getItem ( 'contao.jquery_hash' ) ; if ( ! $ hash -> isHit ( ) ) { $ hash -> set ( 'sha256-' . base64_encode ( hash_file ( 'sha256' , $ rootDir . '/assets/jquery/js/jquery.min.js' , true ) ) ) ; $ cache -> save ( $ hash ) ; } $ this -> Template -> mooScripts .= Template :: generateScriptTag ( 'https://code.jquery.com/jquery-' . PackageUtil :: getNormalizedVersion ( 'contao-components/jquery' ) . '.min.js' , false , false , $ hash -> get ( ) , 'anonymous' ) . "\n" ; // Local fallback (thanks to DyaGa) if ( $ objLayout -> jSource == 'j_fallback' ) { $ this -> Template -> mooScripts .= Template :: generateInlineScript ( 'window.jQuery || document.write(\'<script src="' . Controller :: addAssetsUrlTo ( 'assets/jquery/js/jquery.min.js' ) . '">\x3C/script>\')' ) . "\n" ; } } catch ( \ OutOfBoundsException $ e ) { $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/jquery/js/jquery.min.js|static' ; } } else { $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/jquery/js/jquery.min.js|static' ; } } // MooTools scripts if ( $ objLayout -> addMooTools ) { if ( $ objLayout -> mooSource == 'moo_googleapis' || $ objLayout -> mooSource == 'moo_fallback' ) { try { $ version = PackageUtil :: getNormalizedVersion ( 'contao-components/mootools' ) ; if ( version_compare ( $ version , '1.5.1' , '>' ) ) { $ this -> Template -> mooScripts .= Template :: generateScriptTag ( 'https://ajax.googleapis.com/ajax/libs/mootools/' . $ version . '/mootools.min.js' , false , false , null , 'anonymous' ) . "\n" ; } else { $ this -> Template -> mooScripts .= Template :: generateScriptTag ( 'https://ajax.googleapis.com/ajax/libs/mootools/' . $ version . '/mootools-yui-compressed.js' , false , false , null , 'anonymous' ) . "\n" ; } // Local fallback (thanks to DyaGa) if ( $ objLayout -> mooSource == 'moo_fallback' ) { $ this -> Template -> mooScripts .= Template :: generateInlineScript ( 'window.MooTools || document.write(\'<script src="' . Controller :: addAssetsUrlTo ( 'assets/mootools/js/mootools-core.min.js' ) . '">\x3C/script>\')' ) . "\n" ; } $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/mootools/js/mootools-more.min.js|static' ; $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/mootools/js/mootools-mobile.min.js|static' ; } catch ( \ OutOfBoundsException $ e ) { $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/mootools/js/mootools.min.js|static' ; } } else { $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/mootools/js/mootools.min.js|static' ; } } // Picturefill if ( $ objLayout -> picturefill ) { $ GLOBALS [ 'TL_JAVASCRIPT' ] [ ] = 'assets/respimage/js/respimage.min.js|static' ; } // Check whether TL_APPEND_JS exists (see #4890) if ( ! empty ( $ arrAppendJs ) ) { $ GLOBALS [ 'TL_JAVASCRIPT' ] = array_merge ( $ GLOBALS [ 'TL_JAVASCRIPT' ] , $ arrAppendJs ) ; } // Initialize the sections $ this -> Template -> header = '' ; $ this -> Template -> left = '' ; $ this -> Template -> main = '' ; $ this -> Template -> right = '' ; $ this -> Template -> footer = '' ; // Initialize the custom layout sections $ this -> Template -> sections = array ( ) ; $ this -> Template -> positions = array ( ) ; if ( $ objLayout -> sections != '' ) { $ arrPositions = array ( ) ; $ arrSections = StringUtil :: deserialize ( $ objLayout -> sections ) ; if ( ! empty ( $ arrSections ) && \ is_array ( $ arrSections ) ) { foreach ( $ arrSections as $ v ) { $ arrPositions [ $ v [ 'position' ] ] [ $ v [ 'id' ] ] = $ v ; } } $ this -> Template -> positions = $ arrPositions ; } // Default settings $ this -> Template -> layout = $ objLayout ; $ this -> Template -> language = $ GLOBALS [ 'TL_LANGUAGE' ] ; $ this -> Template -> charset = Config :: get ( 'characterSet' ) ; $ this -> Template -> base = Environment :: get ( 'base' ) ; $ this -> Template -> isRTL = false ; }
Create a new template

@param PageModel   $objPage
@param LayoutModel $objLayout
Create a new template