AIOM Modul (ProcessWire)
All In One Minify (AIOM) Modul
Eines der beliebtesten Module. Leider scheinbar nicht mehr aktive weiterentwickelt. Es gibt einige Bugs die aber von der Community recht gut aufgefangen werden.
Alternative: ProCache. Kostenpflichtige Alternative, die aber noch einiges mehr als Minifying beinhaltet.
Links:
Modul zum Minimieren von CSS un JS Dateien. Kann auch mit Less Files umgehen.
Download ID:
AllInOneMinify
Einzeldatei minimieren
Tipp: Statt AllInOneMinify kann AIOM verwendet werden.
<!-- CSS Stylesheet -->
<link rel="stylesheet" type="text/css" href="<?php echo AIOM::CSS('css/stylesheet.css'); ?>">
<!-- LESS file -->
<link rel="stylesheet" type="text/css" href="<?php echo AIOM::CSS('css/stylesheet.less'); ?>">
Mehrere CSS Dateien mergen und minimieren
<link rel="stylesheet" href="<?php echo AIOM::CSS(array('css/file-1.css', 'css/file-2.less', 'css/file-3.css', 'css/file-4.less')); ?>">
JavaScript minimieren
<script src="<?php echo AllInOneMinify::JS('js/javascript.js'); ?>"></script>
Mehrere JS Dateien
<script src="<?php echo AIOM::JS(array('js/file-1.js', 'js/file-2.js', 'js/file-3.js', 'js/file-4.js')); ?>"></script>
Conditions
Mit der loadOn Option kann man Styles nur dann laden, wenn betimmte Bedingungen erfüllt sind (z.B. bei Template xy) <syntaxhighlight lang="php"> <?php $stylesheets = array(
'css/reset.css',
'css/main.less',
array(
'loadOn' => 'id|template=1002|1004|sitemap',
'files' => array(
'css/special.css', 'css/special-theme.less'
)
)
); ?> <link rel="stylesheet" type="text/css" href="<?php echo AllInOneMinify::CSS($stylesheets); ?>" /> </syntaxhiglight>
Trouble Shooting
Class not found
Wenn das Site Profile einen eigenen Namespace hat wird die Modulklasse nicht gefunden. Fix ist entweder im betreffenden Template (z.B. head.inc) den namespacde rauszunehmen, oder
<?php echo \AIOM::CSS('css/stylesheet.css'); ?>
einen Backslash vor AIOM einzufügen, damit von der Root gestartet wird.
CSSMinify updaten
AIOM nutzt einen Port von YUI Minify. Den muß man aber updaten damit modernere CSS Techniken korrekt minimiert werden.
- in Libs https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port in Unterordner CssMin legen
- in AllInOneMinify.module ab Z. 541 Libs aktualisieren
require_once(wire('config')->paths->AllInOneMinify.'lib/CssMin'.DIRECTORY_SEPARATOR.'Minifier.php');
require_once(wire('config')->paths->AllInOneMinify.'lib/CssMin'.DIRECTORY_SEPARATOR.'Colors.php');
require_once(wire('config')->paths->AllInOneMinify.'lib/CssMin'.DIRECTORY_SEPARATOR.'Command.php');
require_once(wire('config')->paths->AllInOneMinify.'lib/CssMin'.DIRECTORY_SEPARATOR.'Utils.php');
- In den hinzugefügten Klassen den Namespace entfernen
- Klasse aktualisieren in Z. 616
$cssMin = new Minifier();