AIOM Modul (ProcessWire): Unterschied zwischen den Versionen
Steff (Diskussion | Beiträge) |
Steff (Diskussion | Beiträge) |
||
| (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 | + | 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.
- 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();