Ejemplo n.º 1
0
 public function fillCaches()
 {
     /** @var CM_Asset_Javascript_Abstract[] $assetList */
     $assetList = array();
     $debug = CM_Bootloader::getInstance()->isDebug();
     $siteList = CM_Site_Abstract::getAll();
     $languageList = new CM_Paging_Language_Enabled();
     foreach ($siteList as $site) {
         $render = new CM_Frontend_Render(new CM_Frontend_Environment($site));
         $assetList[] = new CM_Asset_Javascript_Internal($site, $debug);
         $assetList[] = new CM_Asset_Javascript_Library($site, $debug);
         $assetList[] = new CM_Asset_Javascript_Vendor_BeforeBody($site, $debug);
         $assetList[] = new CM_Asset_Javascript_Vendor_AfterBody($site, $debug);
         $assetList[] = new CM_Asset_Css_Vendor($render, $debug);
         $assetList[] = new CM_Asset_Css_Library($render, $debug);
         /** @var CM_Model_Language $language */
         foreach ($languageList as $language) {
             $assetList[] = new CM_Asset_Javascript_Translations($site, $debug, $language);
         }
     }
     /** @var CM_Model_Language $language */
     foreach ($languageList as $language) {
         $language->getTranslations()->getItemsRaw();
         $language->getTranslations(true)->getItemsRaw();
     }
     foreach ($assetList as $asset) {
         $asset->get();
     }
     CM_Bootloader::getInstance()->getModules();
 }
Ejemplo n.º 2
0
 protected function _initialize()
 {
     $valuesSet = array();
     foreach (CM_Site_Abstract::getAll() as $site) {
         $valuesSet[$site->getType()] = $site->getHost();
     }
     $this->_params->set('values', $valuesSet);
     $this->_params->set('labelsInValues', true);
     parent::_initialize();
 }
Ejemplo n.º 3
0
 /**
  * @param CM_Site_Abstract[]|null $siteList
  */
 public function __construct(array $siteList = null)
 {
     if (null === $siteList) {
         $siteList = CM_Site_Abstract::getAll();
     }
     usort($siteList, function (CM_Site_Abstract $site1, CM_Site_Abstract $site2) {
         $length1 = mb_strlen($site1->getUrl());
         $length2 = mb_strlen($site2->getUrl());
         if ($length1 == $length2) {
             return 0;
         }
         return $length1 > $length2 ? -1 : 1;
     });
     $this->_siteList = $siteList;
 }
Ejemplo n.º 4
0
 public function generateFavicon()
 {
     $faviconConfigList = $this->_getFaviconConfigList();
     $this->_getStreamOutput()->writeln('Generating favicons');
     $themeDirStructList = Functional\map(CM_Site_Abstract::getAll(), function (CM_Site_Abstract $site) {
         $render = new CM_Frontend_Render(new CM_Frontend_Environment($site));
         return ['render' => $render, 'themeDir' => new CM_File($render->getThemeDir(true))];
     });
     $themeDirStructList = Functional\unique($themeDirStructList, function (array $themeDirStruct) {
         /** @var CM_File $themeDir */
         $themeDir = $themeDirStruct['themeDir'];
         return $themeDir->getPath();
     });
     //filter site aliases
     foreach ($themeDirStructList as $themeDirStruct) {
         /** @var CM_Frontend_Render $render */
         $render = $themeDirStruct['render'];
         /** @var CM_File $themeDir */
         $themeDir = $themeDirStruct['themeDir'];
         $svgFile = $themeDir->joinPath('resource', 'img', self::FAVICON_SVG_FILENAME);
         if ($svgFile->exists()) {
             foreach ($faviconConfigList as $outputFilename => $config) {
                 $backgroundWidth = (int) $config['width'];
                 $backgroundHeight = (int) $config['height'];
                 $backgroundColor = false === $config['transparent'] ? $render->getLessVariable(self::FAVICON_BACKGROUND_LESS_VARIABLE) : 'transparent';
                 $background = new Imagick();
                 $background->newPseudoImage($backgroundWidth, $backgroundHeight, 'canvas:' . $backgroundColor);
                 $backgroundImage = new CM_Image_Image($background);
                 $iconSize = (int) (min($backgroundWidth, $backgroundHeight) * (double) $config['iconSize']);
                 $iconImage = CM_Image_Image::createFromSVGWithSize($svgFile->read(), $iconSize, $iconSize);
                 $backgroundImage->compositeImage($iconImage, ($backgroundWidth - $iconSize) / 2, ($backgroundHeight - $iconSize) / 2);
                 $backgroundImage->setFormat(CM_Image_Image::FORMAT_PNG);
                 $targetFile = $themeDir->joinPath('resource', 'img', 'meta', $outputFilename);
                 $targetFile->ensureParentDirectory();
                 $targetFile->write($backgroundImage->getBlob());
                 $this->_getStreamOutput()->writeln('Generated ' . $targetFile->getPath());
             }
         }
     }
 }
Ejemplo n.º 5
0
 public function fillCaches()
 {
     /** @var CM_Asset_Javascript_Abstract[] $assetList */
     $assetList = array();
     $languageList = new CM_Paging_Language_Enabled();
     foreach (CM_Site_Abstract::getAll() as $site) {
         $assetList[] = new CM_Asset_Javascript_Internal($site);
         $assetList[] = new CM_Asset_Javascript_Library($site);
         $assetList[] = new CM_Asset_Javascript_VendorAfterBody($site);
         $assetList[] = new CM_Asset_Javascript_VendorBeforeBody($site);
         foreach ($languageList as $language) {
             $render = new CM_Frontend_Render(new CM_Frontend_Environment($site, null, $language));
             $assetList[] = new CM_Asset_Css_Vendor($render);
             $assetList[] = new CM_Asset_Css_Library($render);
         }
     }
     foreach ($languageList as $language) {
         $assetList[] = new CM_Asset_Javascript_Translations($language);
     }
     foreach ($assetList as $asset) {
         $asset->get(true);
     }
     CM_Bootloader::getInstance()->getModules();
 }
Ejemplo n.º 6
0
 public function testGetAll()
 {
     $site = $this->getMockSite('CM_Site_Abstract', 12345);
     CM_Config::get()->CM_Site_Abstract->types = array(12345 => get_class($site));
     $this->assertEquals(array($site), CM_Site_Abstract::getAll());
 }