AIOM Modul (ProcessWire)

Aus Wikizone
Wechseln zu: Navigation, Suche

All In One Minify (AIOM) Modul[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

<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[Bearbeiten]

<script src="<?php echo AllInOneMinify::JS('js/javascript.js'); ?>"></script>

Mehrere JS Dateien[Bearbeiten]

<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[Bearbeiten]

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[Bearbeiten]

Class not found[Bearbeiten]

Wenn das Site Profile einen eigenen Namespace hat wird die Modulklasse nicht gefunden. Fix ist:

<?php echo \AIOM::CSS('css/stylesheet.css'); ?>

einen Backslash vor AIOM einzufügen, damit von der Root gestartet wird. Oder die Klasse manuell instanziieren: instantiate the AIOM into a variable like

$aiom = $modules->get('AllInOneMinify') or whatever the class name of the module is..

CSSMinify updaten[Bearbeiten]

AIOM nutzt einen Port von YUI Minify. Den muß man aber updaten damit modernere CSS Techniken korrekt minimiert werden.

           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();