AIOM Modul (ProcessWire): Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 51: Zeile 51:
 
  <?php echo \AIOM::CSS('css/stylesheet.css'); ?>
 
  <?php echo \AIOM::CSS('css/stylesheet.css'); ?>
 
einen Backslash vor AIOM einzufügen, damit von der Root gestartet wird.
 
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');
 +
* Klasse aktualisieren in Z. 616
 +
$cssMin = new Minifier();

Version vom 6. November 2017, 09:43 Uhr

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.

           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');
  • Klasse aktualisieren in Z. 616
$cssMin = new Minifier();