kravcik / webloader
Fork
Installs: 355
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 84
pkg:composer/kravcik/webloader
Requires
- nette/application: ~2.3@dev
- nette/di: ~2.3@dev
- nette/utils: ~2.3@dev
Requires (Dev)
- coffeescript/coffeescript: 1.3.*
- jakub-onderka/php-parallel-lint: ~0.7
- latte/latte: ~2.3@dev
- leafo/scssphp: ~0.1
- mockery/mockery: 0.7.*
- nette/application: ~2.3@dev
- nette/bootstrap: ~2.3@dev
- nette/caching: ~2.3@dev
- nette/component-model: ~2.2@dev
- nette/database: ~2.3@dev
- nette/deprecated: ~2.2@dev
- nette/di: ~2.3@dev
- nette/finder: ~2.3@dev
- nette/forms: ~2.3@dev
- nette/http: ~2.3@dev
- nette/mail: ~2.3@dev
- nette/neon: ~2.3@dev
- nette/php-generator: ~2.3@dev
- nette/reflection: ~2.3@dev
- nette/robot-loader: ~2.3@dev
- nette/safe-stream: ~2.3@dev
- nette/security: ~2.3@dev
- nette/tokenizer: ~2.2@dev
- nette/utils: ~2.3@dev
- oyejorge/less.php: ~1.5
- phpunit/phpunit: 3.7.*
- tracy/tracy: ~2.3@dev
Suggests
- coffeescript/coffeescript: CoffeeScript compiler written in PHP.
- joseki/webloader-filters: CSSMin & JSMin filters written in PHP.
- leafo/scssphp: SCSS compiler written in PHP.
- oyejorge/less.php: LESS compiler written in PHP.
This package is not auto-updated.
Last update: 2025-10-18 02:04:40 UTC
README
Component for CSS and JS files loading
Author: Jan Marek Licence: MIT
Example
Control factory in Nette presenter:
<?php protected function createComponentCss() { $files = new WebLoader\FileCollection(WWW_DIR . '/css'); $files->addFiles(array( 'style.css', WWW_DIR . '/colorbox/colorbox.css', )); $files->addWatchFiles(Finder::findFiles('*.css', '*.less')->in(WWW_DIR . '/css')); $compiler = WebLoader\Compiler::createCssCompiler($files, WWW_DIR . '/temp'); $compiler->addFilter(new WebLoader\Filter\VariablesFilter(array('foo' => 'bar'))); $compiler->addFilter(function ($code) { return cssmin::minify($code, "remove-last-semicolon"); }); $control = new WebLoader\Nette\CssLoader($compiler, '/webtemp'); $control->setMedia('screen'); return $control; }
Template:
{control css}
Example with Nette Framework extension used
Configuration in app/config/config.neon:
extensions:
webloader: WebLoader\Nette\Extension
services:
wlCssFilter: WebLoader\Filter\CssUrlsFilter(%wwwDir%)
lessFilter: WebLoader\Filter\LessFilter
jwlCssMinFilter: Joseki\Webloader\CssMinFilter
webloader:
css:
default:
files:
- style.css
- {files: ["*.css", "*.less"], from: %appDir%/presenters} # Nette\Utils\Finder support
filters:
- @jwlCssMinFilter
fileFilters:
- @lessFilter
- @wlCssFilter
watchFiles: # only watch modify file
- {files: ["*.css", "*.less"], from: css}
- {files: ["*.css", "*.less"], in: css}
js:
default:
remoteFiles:
- http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js
- http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js
files:
- %appDir%/../libs/nette/nette/client-side/netteForms.js
- web.js
For older versions of Nette, you have to register the extension in app/bootstrap.php:
$webloaderExtension = new \WebLoader\Nette\Extension(); $webloaderExtension->install($configurator);
Usage in app/presenters/BasePresenter.php:
/** @var \WebLoader\Nette\LoaderFactory @inject */ public $webLoader; /** @return CssLoader */ protected function createComponentCss() { return $this->webLoader->createCssLoader('default'); } /** @return JavaScriptLoader */ protected function createComponentJs() { return $this->webLoader->createJavaScriptLoader('default'); }
Template:
{control css}
{control js}