generateInlineStyle() public static method

Generate the markup for inline CSS code
public static generateInlineStyle ( string $script ) : string
$script string The CSS code
return string The markup string
Ejemplo n.º 1
0
 /**
  * Create a new template
  *
  * @param \PageModel   $objPage
  * @param \LayoutModel $objLayout
  */
 protected function createTemplate($objPage, $objLayout)
 {
     /** @var \FrontendTemplate|object $objTemplate */
     $objTemplate = new \FrontendTemplate($objPage->template);
     $this->Template = $objTemplate;
     $this->Template->viewport = '';
     $this->Template->framework = '';
     $arrFramework = 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 = 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 = 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 = 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 = 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 = 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();
     }
     $arrPackages = \System::getContainer()->getParameter('kernel.packages');
     // jQuery scripts
     if ($objLayout->addJQuery) {
         if ($objLayout->jSource == 'j_googleapis' || $objLayout->jSource == 'j_fallback') {
             if (($strVersion = $arrPackages['contao-components/jquery']) !== null) {
                 $this->Template->mooScripts .= \Template::generateScriptTag('//code.jquery.com/jquery-' . $strVersion . '.min.js') . "\n";
                 // Local fallback (thanks to DyaGa)
                 if ($objLayout->jSource == 'j_fallback') {
                     $this->Template->mooScripts .= \Template::generateInlineScript('window.jQuery || document.write(\'<script src="' . TL_ASSETS_URL . 'assets/jquery/js/jquery.min.js">\\x3C/script>\')') . "\n";
                 }
             } else {
                 $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') {
             if (($strVersion = $arrPackages['contao-components/mootools']) !== null) {
                 $this->Template->mooScripts .= \Template::generateScriptTag('//ajax.googleapis.com/ajax/libs/mootools/' . $strVersion . '/mootools-yui-compressed.js') . "\n";
                 // Local fallback (thanks to DyaGa)
                 if ($objLayout->mooSource == 'moo_fallback') {
                     $this->Template->mooScripts .= \Template::generateInlineScript('window.MooTools || document.write(\'<script src="' . TL_ASSETS_URL . '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';
             } else {
                 $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->sPosition = $objLayout->sPosition;
     // 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->disableCron = \Config::get('disableCron');
     $this->Template->cronTimeout = $this->getCronTimeout();
     $this->Template->isRTL = false;
 }