AIOM Modul (ProcessWire): Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 48: Zeile 48:
 
== Trouble Shooting ==
 
== Trouble Shooting ==
 
=== Class not found ===
 
=== 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
+
Wenn das Site Profile einen eigenen Namespace hat wird die Modulklasse nicht gefunden. Fix ist:
 
  <?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.
 +
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 ===
 
=== CSSMinify updaten ===

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