%PDF- %PDF-
Direktori : /home/lightco1/www/feiss.com.au/libraries/nextend2/nextend/library/libraries/assets/ |
Current File : /home/lightco1/www/feiss.com.au/libraries/nextend2/nextend/library/libraries/assets/manager.php |
<?php /** * Class N2AssetsManager * */ class N2AssetsManager { /** * @var N2AssetsCss */ public static $css; private static $cssStack = array(); /** * @var N2AssetsLess */ public static $less; private static $lessStack = array(); /** * @var N2AssetsJs */ public static $js; private static $jsStack = array(); /** * @var N2AssetsGoogleFonts */ public static $googleFonts; private static $googleFontsStack = array(); public static $cacheAll = true; public static $cachedGroups = array(); public static function getInstance() { static $instance = null; if (null === $instance) { $instance = new N2AssetsManager(); self::createStack(); } return $instance; } public static function createStack() { self::$css = new N2AssetsCss(); array_unshift(self::$cssStack, self::$css); self::$less = new N2AssetsLess(); array_unshift(self::$lessStack, self::$less); self::$js = new N2AssetsJs(); array_unshift(self::$jsStack, self::$js); self::$googleFonts = new N2AssetsGoogleFonts(); array_unshift(self::$googleFontsStack, self::$googleFonts); } public static function removeStack() { if (count(self::$cssStack) > 0) { /** * @var $previousCSS N2AssetsCss * @var $previousLESS N2AssetsLess * @var $previousJS N2AssetsJs * @var $previousGoogleFons N2AssetsGoogleFonts */ $previousCSS = array_shift(self::$cssStack); self::$css = self::$cssStack[0]; $previousLESS = array_shift(self::$lessStack); self::$less = self::$lessStack[0]; $previousJS = array_shift(self::$jsStack); self::$js = self::$jsStack[0]; $previousGoogleFons = array_shift(self::$googleFontsStack); self::$googleFonts = self::$googleFontsStack[0]; return array( 'css' => $previousCSS->serialize(), 'less' => $previousLESS->serialize(), 'js' => $previousJS->serialize(), 'googleFonts' => $previousGoogleFons->serialize() ); } else { echo "Too much remove stack on the asset manager..."; n2_exit(true); } } public static function enableCacheAll() { self::$cacheAll = true; } public static function disableCacheAll() { self::$cacheAll = false; } public static function addCachedGroup($group) { if (!in_array($group, self::$cachedGroups)) { self::$cachedGroups[] = $group; } } public static function loadFromArray($array) { self::$css->unSerialize($array['css']); self::$less->unSerialize($array['less']); self::$js->unSerialize($array['js']); self::$googleFonts->unSerialize($array['googleFonts']); } public static function getCSS($path = false) { if (self::$css) { if ($path) { return self::$css->get(); } return self::$css->getOutput(); } return ''; } public static function getJs($path = false) { if (self::$js) { if ($path) { return self::$js->get(); } return self::$js->getOutput(); } return ''; } public static function generateAjaxCSS() { /* $data = N2Post::getVar('loadedCSS'); $alreadyLoadedCSSFiles = array(); if ($data) { $alreadyLoadedCSSFiles = (array)json_decode(base64_decode($data)); } self::$css->removeFiles($alreadyLoadedCSSFiles); */ return N2Html::style(self::$css->getAjaxOutput()); } public static function generateAjaxJS() { /* $data = N2Post::getVar('loadedJSS'); $alreadyLoadedJSFiles = array(); if (!empty($data)) { $alreadyLoadedJSFiles = (array)json_decode(base64_decode($data)); } self::$js->removeFiles($alreadyLoadedJSFiles); */ return self::$js->getAjaxOutput(); } }