AIOM Modul (ProcessWire): Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== All In One Minify (AIOM) Modul == Links: * https://modules.processwire.com/modules/all-in-one-minify/ Modul zum Minimieren von CSS un JS Dateien. Kann auc…“)
 
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== All In One Minify (AIOM) Modul ==
 
== 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:  
 
Links:  
 
* https://modules.processwire.com/modules/all-in-one-minify/
 
* https://modules.processwire.com/modules/all-in-one-minify/
Zeile 18: Zeile 22:
  
 
== Mehrere CSS Dateien mergen und minimieren ==
 
== 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')); ?>">
+
  <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 ==
 
== JavaScript minimieren ==
 
  <script src="<?php echo AllInOneMinify::JS('js/javascript.js'); ?>"></script>
 
  <script src="<?php echo AllInOneMinify::JS('js/javascript.js'); ?>"></script>
Zeile 41: Zeile 45:
 
<link rel="stylesheet" type="text/css" href="<?php echo AllInOneMinify::CSS($stylesheets); ?>" />
 
<link rel="stylesheet" type="text/css" href="<?php echo AllInOneMinify::CSS($stylesheets); ?>" />
 
</syntaxhiglight>
 
</syntaxhiglight>
 +
 +
== Trouble Shooting ==
 +
=== Class not found ===
 +
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 ===
 +
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();

Aktuelle Version vom 6. November 2017, 11:43 Uhr

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