This is a convenience module enforcing best practices for using Requirements.
- Combine a mixed list of JS / CSS assets using a single method.
- Access to the
$this->theme_dir
variable in your page controllers.
SvdRequirements will seperate the js from the css files, and combine them for each controller.
- Install using composer:
composer require "svandragt/silverstripe-svdrequirements:*"
Example: you might have a Page
and HomePage extends Page
class, each with dozen JS and CSS requirements. Add
SvdRequirements::combine($assets);
to each init method.
Done!
In our example the site will now have the following files:
page_controller.css
homepage_controller.css
page_controller.js
homepage_controller.js
This optional SvdRequirementsExtension (enabled by default) adds a shortcut to the theme folder by setting a $theme_dir
property to the Page_controller which you can access through $this->theme_dir
- which would return 'themes/simple' for example.
You can convert the simple theme to use requirements in 2 steps:
- Remove all calls to CSS and JS from the templates.
- to the Page's init() method add the following code:
$assets = array(
"{$this->theme_dir}/css/reset.css",
"{$this->theme_dir}/css/layout.css",
"{$this->theme_dir}/css/typography.css",
"{$this->theme_dir}/css/form.css",
"{$this->theme_dir}/javscript/script.js",
);
SvdRequirements::combine($assets);
I keep a list of known bugs.