Example #1
0
 /**
  * Render the CSS version of the... CSS!
  *
  * @return string
  */
 public function renderCss()
 {
     XenForo_Template_Abstract::setLanguageId(0);
     $bbCodeCache = $this->_params['bbCodeCache'];
     $templateParams = array('displayStyles' => array(), 'smilieSprites' => $this->_params['smilieSprites'], 'xenOptions' => XenForo_Application::get('options')->getOptions(), 'customBbCodes' => !empty($bbCodeCache['bbCodes']) ? $bbCodeCache['bbCodes'] : array(), 'dir' => $this->_params['dir'], 'pageIsRtl' => $this->_params['dir'] == 'RTL');
     $templates = array();
     foreach ($this->_params['css'] as $cssTemplate) {
         if (strpos($cssTemplate, 'public:') === 0) {
             $templates[$cssTemplate] = new XenForo_Template_Public(substr($cssTemplate, strlen('public:')), $templateParams);
         } else {
             $templates[$cssTemplate] = $this->createTemplateObject($cssTemplate, $templateParams);
         }
     }
     if (XenForo_Application::isRegistered('adminStyleModifiedDate')) {
         $modifyDate = XenForo_Application::get('adminStyleModifiedDate');
     } else {
         $modifyDate = XenForo_Application::$time;
     }
     $this->_response->setHeader('Expires', 'Wed, 01 Jan 2020 00:00:00 GMT', true);
     $this->_response->setHeader('Last-Modified', gmdate('D, d M Y H:i:s', $modifyDate) . ' GMT', true);
     $this->_response->setHeader('Cache-Control', 'private', true);
     $css = XenForo_CssOutput::renderCssFromObjects($templates, true);
     $css = XenForo_CssOutput::prepareCssForOutput($css, $this->_params['dir'], false);
     return $css;
 }
Example #2
0
 /**
  * Render the CSS version of the... CSS!
  *
  * @return string
  */
 public function renderCss()
 {
     $params = $this->_params;
     $styleModel = XenForo_Model::create('XenForo_Model_Style');
     $styleModel->setAdminStyles(true);
     $styles = XenForo_Application::isRegistered('adminStyles') ? XenForo_Application::get('adminStyles') : $styleModel->getAllStyles();
     $styleId = $params['styleId'];
     if (!empty($styleId) && isset($styles[$styleId])) {
         $style = $styles[$styleId];
     } else {
         $style = reset($styles);
     }
     $adminStyleProperties = XenForo_Application::get('adminStyleProperties');
     $properties = unserialize($style['properties']);
     $properties = is_array($properties) ? $properties : array();
     if (empty($properties)) {
         $properties = $adminStyleProperties;
     } else {
         $tmpAdminStyleProperties = array();
         if (!isset($properties['contentWidth']) && isset($tmpAdminStyleProperties['contentWidth'])) {
             $properties['contentWidth'] = $tmpAdminStyleProperties['contentWidth'];
         }
         if (!isset($properties['formWidth']) && isset($tmpAdminStyleProperties['formWidth'])) {
             $properties['formWidth'] = $tmpAdminStyleProperties['formWidth'];
         }
         if (!isset($properties['nonResponsiveMinWidth']) && isset($tmpAdminStyleProperties['nonResponsiveMinWidth'])) {
             $properties['nonResponsiveMinWidth'] = $tmpAdminStyleProperties['nonResponsiveMinWidth'];
         }
     }
     $styleId = $style['style_id'];
     $styleModifiedDate = $style['last_modified_date'];
     $defaultProperties = XenForo_Application::get('defaultStyleProperties');
     XenForo_Template_Helper_Core::setStyleProperties(XenForo_Application::mapMerge($defaultProperties, $properties));
     Brivium_AdminStyleSystem_Template_Admin::setStyleId($style['style_id']);
     XenForo_Template_Abstract::setLanguageId(0);
     $bbCodeCache = !empty($params['bbCodeCache']) ? $params['bbCodeCache'] : array();
     $templateParams = array('displayStyles' => array(), 'smilieSprites' => !empty($params['smilieSprites']) ? $params['smilieSprites'] : array(), 'xenOptions' => XenForo_Application::get('options')->getOptions(), 'customBbCodes' => !empty($bbCodeCache['bbCodes']) ? $bbCodeCache['bbCodes'] : array(), 'dir' => $this->_params['dir'], 'pageIsRtl' => $this->_params['dir'] == 'RTL');
     $templates = array();
     foreach ($this->_params['css'] as $cssTemplate) {
         if (strpos($cssTemplate, 'public:') === 0) {
             $templates[$cssTemplate] = new XenForo_Template_Public(substr($cssTemplate, strlen('public:')), $templateParams);
         } else {
             $templates[$cssTemplate] = new Brivium_AdminStyleSystem_Template_Admin($cssTemplate, $templateParams);
         }
     }
     if (XenForo_Application::isRegistered('adminStyleModifiedDate')) {
         $modifyDate = XenForo_Application::get('adminStyleModifiedDate');
     } else {
         $modifyDate = XenForo_Application::$time;
     }
     $this->_response->setHeader('Expires', 'Wed, 01 Jan 2020 00:00:00 GMT', true);
     $this->_response->setHeader('Last-Modified', gmdate('D, d M Y H:i:s', $modifyDate) . ' GMT', true);
     $this->_response->setHeader('Cache-Control', 'private', true);
     $css = XenForo_CssOutput::renderCssFromObjects($templates, true);
     $css = XenForo_CssOutput::prepareCssForOutput($css, $this->_params['dir'], false);
     return $css;
 }
Example #3
0
 public static function generateCss(array $widgetPageOptions, array $widgets, $layoutTree)
 {
     if (!is_callable(array($layoutTree, 'getOption'))) {
         // layout tree is not a layout object? What?!
         return '';
     }
     $cssClasses = $layoutTree->getOption('cssClasses');
     $css = array();
     $cssMedia = array();
     $hasSidebar = false;
     foreach ($widgets as $widget) {
         if ($widget['position'] === 'sidebar') {
             $hasSidebar = true;
         }
     }
     foreach ($cssClasses['cols'] as $cssClassCol) {
         if (!empty($cssClassCol['width'])) {
             $css[] = sprintf('.%s { width: %dpx; }', $cssClassCol['name'], $cssClassCol['width']);
         }
         if (!empty($widgetPageOptions['column_gap'])) {
             $css[] = sprintf('.%s > .margin { margin-right: %dpx; }', $cssClassCol['name'], $widgetPageOptions['column_gap']);
         }
         if (!empty($cssClassCol['width'])) {
             self::generateCssMedia(0, $cssClassCol['width'], $hasSidebar, $cssMedia, array(sprintf('.%s { width: 100%%; }', $cssClassCol['name']), sprintf('.%s > .margin { margin-right: 0; }', $cssClassCol['name'])));
             foreach ($cssClasses['xOfY'] as $cssClassXOfY) {
                 if ($cssClassXOfY['cssClassLayoutCols'] == $cssClassCol['name']) {
                     self::generateCssMedia($cssClassCol['width'], 0, $hasSidebar, $cssMedia, array(sprintf('.%s > .%s { width: %f%%; }', $cssClassCol['name'], $cssClassXOfY['name'], $cssClassXOfY['widthPercent'])));
                 } elseif ($cssClassCol['width'] < $cssClassXOfY['cssClassLayoutColsWidth']) {
                     self::generateCssMedia($cssClassCol['width'], $cssClassXOfY['cssClassLayoutColsWidth'], $hasSidebar, $cssMedia, array(sprintf('.%s > .%s.%s { width: 100%%; }', $cssClassXOfY['cssClassLayoutCols'], $cssClassCol['name'], $cssClassXOfY['name']), sprintf('.%s > .%s.%s > .margin { margin-right: 0; }', $cssClassXOfY['cssClassLayoutCols'], $cssClassCol['name'], $cssClassXOfY['name'])));
                 }
             }
         }
     }
     foreach ($cssClasses['rows'] as $cssClassRow) {
         if (!empty($widgetPageOptions['row_gap'])) {
             $css[] = sprintf('.%s { margin-bottom: %dpx; }', $cssClassRow['name'], $widgetPageOptions['row_gap']);
         }
     }
     if (!empty($widgetPageOptions['break_container'])) {
         $css[] = XenForo_CssOutput::translateCssRules('.mainContent { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }');
         $sectionMainMarginTop = XenForo_Template_Helper_Core::styleProperty('sectionMain.margin-top');
         if (!empty($sectionMainMarginTop)) {
             $css[] = sprintf('#WidgetPageContent { margin-top: -%s; }', $sectionMainMarginTop);
         }
     }
     foreach ($cssMedia as $mediaStatement => $cssMediaRules) {
         $css[] = sprintf("@media %s\n{\n%s\n}", $mediaStatement, implode("\n", $cssMediaRules));
     }
     asort($css);
     return implode("\n", $css);
 }
Example #4
0
 /**
  * Render the CSS version of the... CSS!
  *
  * @return string
  */
 public function renderCss()
 {
     XenForo_Template_Abstract::setLanguageId(0);
     $templates = array();
     foreach ($this->_params['css'] as $cssTemplate) {
         if (strpos($cssTemplate, 'public:') === 0) {
             $templates[$cssTemplate] = new XenForo_Template_Public(substr($cssTemplate, strlen('public:')));
         } else {
             $templates[$cssTemplate] = $this->createTemplateObject($cssTemplate);
         }
     }
     if (XenForo_Application::isRegistered('adminStyleModifiedDate')) {
         $modifyDate = XenForo_Application::get('adminStyleModifiedDate');
     } else {
         $modifyDate = XenForo_Application::$time;
     }
     $this->_response->setHeader('Expires', 'Wed, 01 Jan 2020 00:00:00 GMT', true);
     $this->_response->setHeader('Last-Modified', gmdate('D, d M Y H:i:s', $modifyDate) . ' GMT', true);
     $this->_response->setHeader('Cache-Control', 'private', true);
     return XenForo_CssOutput::renderCssFromObjects($templates, true);
 }
Example #5
0
<?php

$startTime = microtime(true);
$fileDir = dirname(__FILE__);
require $fileDir . '/library/XenForo/Autoloader.php';
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);
XenForo_CssOutput::run();