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(); }
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(); }
/** * @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; }
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()); } } } }
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(); }
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()); }