/** * * @param \Phalcon\DI $di */ public function registerServices($di) { Admin::instance(); require __DIR__ . '/../../../../phad/phad.php'; $di['phadConfig'] = function () { $config = (require __DIR__ . '/../../../../phad-config.php'); return new Config($config); }; $di['view'] = function () { $view = new ViewEngine(); $view->setViewsDir(__DIR__ . '/Views/'); $view->setLayoutsDir('Layouts/'); $view->setPartialsDir('Partials/'); return $view; }; $di['viewSimple'] = function () { $view = new Simple(); $view->setViewsDir(__DIR__ . '/Views/'); return $view; }; $di['flashSession'] = function () { $flashClasses = ['error' => 'alert alert-danger', 'success' => 'alert alert-success', 'notice' => 'alert alert-info', 'warning' => 'alert alert-warning']; return new FlashSession($flashClasses); }; $di['session'] = function () { $session = new Session(); $session->start(); return $session; }; $di['phadAuth'] = function () { return new Auth(); }; $di['assets'] = function () use($di) { $options = ['sourceBasePath' => __DIR__ . '/Assets/', 'targetBasePath' => __DIR__ . '/../../../../public/backend-assets/']; $assets = new AssetsManager($options); $assets->collection('backend_css')->setTargetPath('final.css')->setTargetUri('backend-assets/final.css')->addCss('bootstrap/css/bootstrap.min.css')->addCss('css/styles.css')->join(true)->addFilter(new AssetsNullFilter()); $assets->collection('backend_js')->setTargetPath('final.js')->setTargetUri('backend-assets/final.js')->addJs('bootstrap/js/bootstrap.min.js')->addJs('js/custom.js')->join(true)->addFilter(new AssetsNullFilter()); return $assets; }; }
public function loadAssets($assets, $isAdmin = false) { $prefix = $isAdmin ? 'admin-' : ''; if (isset($this->_loadedThemes[$prefix])) { return $this; } $this->_loadedThemes[$prefix] = true; $assetsOptions = $this->config['options']['assets_options']; $applyFilter = $assetsOptions['apply_filter']; // The base path, usually the public directory $basePath = $assetsOptions['base_path']; // The assets dir inside base path $resourcePath = '/' . $assetsOptions['assets_dir'] . '/'; $compiledPath = '/' . $assetsOptions['compiled_dir'] . '/'; foreach ($assets as $collectionName => $resources) { $resourceType = substr($collectionName, strrpos($collectionName, '-') + 1); $collectionName = $prefix . $collectionName; $collection = $this->assets->collection($collectionName); $collection->setSourcePath($basePath); $contentHash = ''; switch ($resourceType) { case 'css': foreach ($resources as $item) { $isLocal = !isHttpUrl($item); $resource = new Css($isLocal ? $resourcePath . $item : $item, $isLocal); $applyFilter and $contentHash = $resource->concatenateHash($contentHash); $collection->add($resource); } $applyFilter and $collection->addFilter(new Cssmin()); break; case 'js': foreach ($resources as $item) { $isLocal = !isHttpUrl($item); $resource = new Js($isLocal ? $resourcePath . $item : $item, $isLocal); $applyFilter and $contentHash = $resource->concatenateHash($contentHash); $collection->add($resource); } $applyFilter and $collection->addFilter(new Jsmin()); break; } $targetUri = $compiledPath . substr($collectionName, 0, -1 - strlen($resourceType)); $contentHash and $targetUri .= '.' . $contentHash; $targetUri .= '.' . $resourceType; $collection->setTargetPath($basePath . $targetUri)->setTargetUri(url($targetUri)); } return $this; }
/** * Tests custom filters * * @issue 1198 * @author Volodymyr Kolesnykov <*****@*****.**> * @since 2013-09-15 */ public function testAssetsFilterChainCustomFilterWithCssmin() { $this->specify("The chaining a custom filter with cssmin does not return the correct results", function () { $fileName = $this->tester->getNewFileName('assets_', 'css'); $assets = new Manager(); $assets->useImplicitOutput(false); $css = $assets->collection('css'); $css->setTargetPath(PATH_CACHE . $fileName); $css->addCss(PATH_DATA . 'assets/1198.css'); $css->addFilter(new UppercaseFilter()); $css->addFilter(new TrimFilter()); $css->join(true); $assets->outputCss('css'); $expected = 'A{TEXT-DECORATION:NONE;}B{FONT-WEIGHT:BOLD;}'; $actual = file_get_contents(PATH_CACHE . $fileName); $this->tester->cleanFile(PATH_CACHE, $fileName); expect($actual)->equals($expected); }); }
public function collection($name) { return parent::collection($name); }
/** * * @param type $options */ protected function initAssets($options = []) { $this->_di->setShared('assets', function () { $assets = new AssetsManager(); $assets->collection('headerCss'); $assets->collection('headerJs'); $assets->collection('footerJs'); return $assets; }); }
$di->set('router', function () { $router = new Router(); $router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI); return $router; }); $di->set('flash', function () { $flash = new flash(); $flash->setCssclasses(array('success' => 'alert alert-success', 'warning' => 'alert alert-warning', 'error' => 'alert alert-danger')); return $flash; }); $di->set('assets', function () use($config) { $manager = new Manager(); foreach ($config->vendorAssets as $k => $v) { if ($k == 'css') { foreach ($v as $alias => $file) { $manager->collection('css')->addCss($file); } } else { foreach ($v as $alias => $file) { $manager->collection('js')->addJs($file); } } } $manager->collection('js')->setPrefix('/public/vendor')->setLocal(true); $manager->collection('css')->setPrefix('/public/vendor')->setLocal(true); return $manager; }); /** * The URL component is used to generate all kind of urls in the application */ $di->set('url', function () use($config) {
public function collection($name) { $collection = parent::collection($name); $collection->setSourcePath($this->getBasePath() . $this->getAssetsDir()); $collection->setPrefix($this->getBasePath() . $this->getAssetsDir()); return $collection; }