Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
[v2.2.0] Resource Includer AddOn inkl. LESS/SCSS Support
Achtung: Addon wird nicht mehr weiterentwickelt und ist ausserdem mit SEO42 fusioniert worden.
Beschreibung:
Dieses AddOn ermöglicht komfortable Einbindung von CSS und JavaScript Dateien über die Klasse `rex_resource_includer` inkl. dem Kombinieren von Dateien um HTTP-Request zu minimieren. Es kommt ausserdem mit einer `.htaccess` Datei welche über einen kompletten Satz an Rewrite Regeln für CSS/JS Versionierung sowie Caching und GZip Einstellungen verfügt.
Features
* Sauber eingestelltes Caching von Resourcen wie Bildern, Fonts, CSS und JS Dateien (.htaccess)
* Alle wichtigen Resourcen werden per GZip ausgeliefert (.htaccess)
* Kombinieren von mehreren JS/CSS Dateien zu einer einzigen Datei um HTTP Request zu minimieren
* Versions-String Mechanismus damit trotz Caching immer die neuste Version einer JS/CSS Datei heruntergeladen wird
* Integrierte LESS sowie SCSS (SASS) Compiler
* Automatische Neukompilierung sowie Neukombinierung der Dateien bei Änderungen der Quell-Dateien
* Überführung von Variablwerten von PHP nach LESS möglich. Mehr Infos in den Codebeispielen und hier: http://leafo.net/lessphp/docs/#setting_ ... s_from_php
* Einbindung von JavaScript Code aus einem REDAXO Template (oder einer Datei) heraus inkl. PHP Interpretierung
* Abgestimmt auf SEO42
Google PageSpeed
Beim Test einer Seite lieferte Google PageSpeed folgende Ergebnisse:
* ohne Resource Includer: 67/100 Punkte
* mit Resource Includer: 96/100 Punkte
Download:
http://www.redaxo.org/de/download/addons/?addon_id=1018
Beschreibung:
Dieses AddOn ermöglicht komfortable Einbindung von CSS und JavaScript Dateien über die Klasse `rex_resource_includer` inkl. dem Kombinieren von Dateien um HTTP-Request zu minimieren. Es kommt ausserdem mit einer `.htaccess` Datei welche über einen kompletten Satz an Rewrite Regeln für CSS/JS Versionierung sowie Caching und GZip Einstellungen verfügt.
Features
* Sauber eingestelltes Caching von Resourcen wie Bildern, Fonts, CSS und JS Dateien (.htaccess)
* Alle wichtigen Resourcen werden per GZip ausgeliefert (.htaccess)
* Kombinieren von mehreren JS/CSS Dateien zu einer einzigen Datei um HTTP Request zu minimieren
* Versions-String Mechanismus damit trotz Caching immer die neuste Version einer JS/CSS Datei heruntergeladen wird
* Integrierte LESS sowie SCSS (SASS) Compiler
* Automatische Neukompilierung sowie Neukombinierung der Dateien bei Änderungen der Quell-Dateien
* Überführung von Variablwerten von PHP nach LESS möglich. Mehr Infos in den Codebeispielen und hier: http://leafo.net/lessphp/docs/#setting_ ... s_from_php
* Einbindung von JavaScript Code aus einem REDAXO Template (oder einer Datei) heraus inkl. PHP Interpretierung
* Abgestimmt auf SEO42
Google PageSpeed
Beim Test einer Seite lieferte Google PageSpeed folgende Ergebnisse:
* ohne Resource Includer: 67/100 Punkte
* mit Resource Includer: 96/100 Punkte
Download:
http://www.redaxo.org/de/download/addons/?addon_id=1018
Zuletzt geändert von RexDude am 28. Nov 2015, 11:31, insgesamt 16-mal geändert.
- runstop64
- Beiträge: 369
- Registriert: 23. Okt 2012, 21:34
- Wohnort: Hamburg
- Kontaktdaten: Website Facebook Twitter
Re: Neues Addon: Smart Includer
Super! Ich habe mich in der letzten Zeit auch an einer solchen Klasse versucht, kam aber nicht so recht voran, das hat sich jetzt wohl erledigt.
Zwei fragen habe ich zum Einsatz:
- Wie steht es um die Möglichkeit den smart_includer in einem Addon zu nutzen?
und
- Planst du eine Methode ein, die die Einzeldateien zusammenfasst?
Danke Dir!
Daniel
Zwei fragen habe ich zum Einsatz:
- Wie steht es um die Möglichkeit den smart_includer in einem Addon zu nutzen?
und
- Planst du eine Methode ein, die die Einzeldateien zusammenfasst?
Danke Dir!
Daniel
Re: Neues Addon: Smart Includer
nice.. vorschlag:
das 'rex_article' um evtl. später mal noch andere Filtermöglichkeiten unterzubringen.. (auch wenn mir grad keine einfallen ;)
Code: Alles auswählen
$smartIncluder->whiteList('rex_article','4,5,12');
// bzw.
$smartIncluder->blackList('rex_article','7');
vg, Jan
Re: Neues Addon: Smart Includer
Gute Sache das Ganze! Ggf. kann man die automatische Komprimierung und GZIP Funktion noch mit einbauen
Re: Neues Addon: Smart Includer
yo, +1 dafür ;) Und bei der Gelegenheit in ein (cache)file zusammenlegen.. Thema requests reduzieren (bringt meist mehr als Kompression).rkemmere hat geschrieben:.. automatische Komprimierung ..
vg, Jan
Re: Neues Addon: Smart Includer
@runstop64: Danke Zu deinen Fragen:
Hmm, dies hat Joachim auch schon vorgeschlagen. Prinzipiell könnte man das zusätzlich zur Verfügung stellen. Ich stehe allerdings mehr auf das untereinander schreiben. Ist besser lesbar finde ich und gerade bei den CSS Files gebe ich der addCSSFile-Methode sowieso immer noch als zweiten Parameter das media-Attribute (screen, print etc.) mit, was bei der einzeiligen Version schwierig wird bzw. vielleicht die Lesbarkeit mindert.
Sollte eigentlich kein Problem sein. Man muss vermutlich nur schauen, dass das Addon zuerst geladen wird vor dem Addon welches dann auf die rex_smart_includer Klasse zugreift...was in REX4 nicht so eingach geht...aber in REX5 dann...habe ich gehört Zwischenzeitlich kannst du aber vor Benutzung der rex_smart_includer Klasse diese einfach mit einem require_once inkludieren und dann einfach drauf zugreifen. Das Smart Includer Addon macht nämlich momentan auch nix anderes...besteht eigentlich nur aus einer Zeile Code...hihirunstop64 hat geschrieben: - Wie steht es um die Möglichkeit den smart_includer in einem Addon zu nutzen?
Du meinst so:runstop64 hat geschrieben: - Planst du eine Methode ein, die die Einzeldateien zusammenfasst?
Code: Alles auswählen
$smartIncluder->addCSSFiles(array("foo.css", "bar.css"));
Re: Neues Addon: Smart Includer
thx!jdlx hat geschrieben:nice..
hmm, bin mir noch nicht ganz sicher ob ich genau erfasst habe was du gerne habe möchtest Was sollen die Methoden whiteList und blackList genau machen? Und was hat es mit dem ersten Parameter auf sich: 'rex_article'?jdlx hat geschrieben:vorschlag:das 'rex_article' um evtl. später mal noch andere Filtermöglichkeiten unterzubringen.. (auch wenn mir grad keine einfallenCode: Alles auswählen
$smartIncluder->whiteList('rex_article','4,5,12'); // bzw. $smartIncluder->blackList('rex_article','7');
Es gibt momtan eine statische Methode isArticleID in der rex_smart_includer Klasse. Man kann damit auf mehrere Artikel prüfen:
Code: Alles auswählen
if (rex_smart_includer::isArticleID(array(4,5,12)) {
// do somthing
}
Re: Neues Addon: Smart Includer
rkemmere hat geschrieben:Gute Sache das Ganze! Ggf. kann man die automatische Komprimierung und GZIP Funktion noch mit einbauen
Prinzipiell meint ihr sowas wie minify macht: http://code.google.com/p/minify/jdlx hat geschrieben:yo, +1 dafür Und bei der Gelegenheit in ein (cache)file zusammenlegen.. Thema requests reduzieren (bringt meist mehr als Kompression).
Wäre für eine zukünftige Version aufjedenfall interessant! Ist auf der TODO Liste
Zwischenzeitlich kann man GZIP über die htaccess regel lassen. Man kann dort auch ruhig eine lange Cache-zeit für die CSS/JS Dateien einstellen. Denn der Smart Includer fügt auf Wunsch einen Timestamp-Paramter zum Dateinamen hinzu, so dass bei einer Versionsänderung der Dateien immer die aktuellsten heruntergeladen wird.
Code: Alles auswählen
$autoVersionParameter = true und $versionParameterRewriteMethod = false
Code: Alles auswählen
$autoVersionParameter = true und $versionParameterRewriteMethod = true
Re: Neues Addon: Smart Includer
Das bezieht sich auf dein README Beispiel.. wobei es in der Form wie ich schrob zu unflexibel ist..RexDude hat geschrieben:hmm, bin mir noch nicht ganz sicher ob ich genau erfasst habe was du gerne habe möchtest ;) Was sollen die Methoden whiteList und blackList genau machen?
Allgemein: wärs cool wenn man conditions für den include eines bestimmten files oder eine gruppe von files definieren kann.. ohne es mit irgendwelchen if schleifen oder sonstigem extra code machen zu müssen, sondern eben per Klassenmethode, sprich:
Code: Alles auswählen
// fancybox only for article with id = 7
if ($REX["ARTICLE_ID"] == 7) { ...
// stattdessen:
$smartIncluder->blackList('rex_article','7');
Was mein obiges Beispiel eben noch nicht berücksichtig sind Zuordnungen.. sprich das man definieren kann welcher filter für welche(s) file (bzw. gruppe von files.. namspaces?) anzuwenden ist.
vg, Jan
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
@jdlx: Ok habs verstanden...du störst dich an den "uncoolen" If-Abfragen Für mich ist das halt die einfachste und lesbarste Variante eine ganze Gruppe von Stuff (CSS, JS, Code) pro Artikel zu adden.
Zur Callback-Idee: konkretes Use Case auf den Smart Includer bezogen?
Zur Callback-Idee: konkretes Use Case auf den Smart Includer bezogen?
-
- Beiträge: 1403
- Registriert: 7. Apr 2006, 01:49
- Kontaktdaten: ICQ Website
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
Für CSS min Dateien hab ich für BaseCondition folgende Mehtode Entwickelt: https://github.com/joachimdoerr/basecon ... p#L179-189
Kannst Du gerne übernehmen. Funktioniert jedenfalls perfekt.
lg
Joachim
Code: Alles auswählen
/*
minimalizer function
*/
public function process_minimalize ($strBuffer)
{
/* remove comments */
$strBuffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $strBuffer);
/* remove tabs, spaces, newlines, etc. */
$strBuffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $strBuffer);
return $strBuffer;
}
lg
Joachim
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
@Joachim.Dörr: Hey, super vielen Dank! Gerade das preg_replace zur Comments-Entfernung kann ich für den JS Code Output gut gebrauchen!
- runstop64
- Beiträge: 369
- Registriert: 23. Okt 2012, 21:34
- Wohnort: Hamburg
- Kontaktdaten: Website Facebook Twitter
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
Hi, dank dir für die Info. Meine zweite Frage war auf das komprimieren der Daten in einem File bezogen, aber das hast du ja inzwischen auch beantwortet.
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
Geht nicht um "uncool"... geht darum - wenn man schon eine eigene Klasse dafür hat - typische oder ergänzende Funktionen direkt über Klassenmethoden abzufrühstücken. Das sicherlich typischste Beispiel wäre eben eine article_id white/blacklist.. aber eben auch potentiell andere:RexDude hat geschrieben:@jdlx: Ok habs verstanden...du störst dich an den "uncoolen" If-Abfragen ;)
Wie in dem verlinkten Code.. sprich ein include der vom vorkommen bestimmter Trigger gesteuert wird. In dem konkreten Fall eben kucken ob irgendwo ein rel="shadowbox.. oder rel="lightbox.. im page Output auftaucht, und nur dann die assets einbinden.RexDude hat geschrieben:Zur Callback-Idee: konkretes Use Case auf den Smart Includer bezogen?
vg, Jan
Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/
Neue Version 1.4.3:
-Changelog eingeführt
-Dateirechte korrekt gesetzt
-CSS/JS/Image Verzeichnisse lassen sich nun über den Konstruktor einstellen
-Kleine Minifixes, PHP Notices entfernt
Coming soon:
- Einstellungspage a la PHPMailer
- Doku
Und hier nochmal ein Real-life-Beispiel wie so ein Smart-Includer Template aussehen könnte. Vielleicht kommt ja noch der ein oder andere auf den Geschmack
-Changelog eingeführt
-Dateirechte korrekt gesetzt
-CSS/JS/Image Verzeichnisse lassen sich nun über den Konstruktor einstellen
-Kleine Minifixes, PHP Notices entfernt
Coming soon:
- Einstellungspage a la PHPMailer
- Doku
Und hier nochmal ein Real-life-Beispiel wie so ein Smart-Includer Template aussehen könnte. Vielleicht kommt ja noch der ein oder andere auf den Geschmack
Code: Alles auswählen
<?php
define('ID_HOME', 1);
$smartIncluder = new rex_smart_includer(/* $enableIE = */ true,
/* $enableTracking = */ true,
/* $autoJSMinExt = */ true,
/* $autoVersionParameter = */ true,
/* $versionParameterRewriteMethod = */ true,
/* $cssDir = */ '/layout/css',
/* $jsDir = */ '/layout/js',
/* $imageDir = */ '/layout/images');
/* ------------------------------------------------------------------ */
/* Default */
/* ------------------------------------------------------------------ */
$smartIncluder->addCSSFile('default.css', 'screen,print');
$smartIncluder->addJSFile('jquery.js');
/* ------------------------------------------------------------------ */
/* Tooltip */
/* ------------------------------------------------------------------ */
// for all but home article
if (!rex_smart_includer::isArticleID(ID_HOME)) {
$smartIncluder->addJSFile('jquery.tooltip.js');
$code = 'tooltip();';
$smartIncluder->addJSCode($code);
}
/* ------------------------------------------------------------------ */
/* Slider */
/* ------------------------------------------------------------------ */
// for home article only
if (rex_smart_includer::isArticleID(ID_HOME)) {
$smartIncluder->addJSFile('modernizr.custom.js');
$smartIncluder->addJSFile('jquery.cslider.js');
$smartIncluder->addCSSFile('cslider.css', 'screen');
$code = <<<EOT
$('#da-slider').cslider({
current : 0,
bgincrement : 0,
autoplay : true,
interval : 4000
});
EOT;
$smartIncluder->addJSCode($code);
}
/* ------------------------------------------------------------------ */
/* Fancybox */
/* ------------------------------------------------------------------ */
if (rex_globals::articleHasFancyBoxLink()) {
$smartIncluder->addJSFile('jquery.fancybox.js');
$smartIncluder->addCSSFile('fancybox.css', 'screen');
$smartIncluder->preloadImage('icon_magnify.png');
$code = <<<EOT
$("a.fancybox").fancybox();
EOT;
$smartIncluder->addJSCode($code);
}
/* ------------------------------------------------------------------ */
/* Print CSS */
/* ------------------------------------------------------------------ */
$smartIncluder->addCSSFile('print.css', 'print');
?>
Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS
Das ist für mich viel zu komplex. Meine typische minify Konfigurationsdatei sieht so aus:
Und der Aufruf im Template so:
Versionierung, Caching und Lint ist in minify drin. Inline Skripte binde ich über Templates ein, wenn sie mehrfach genutzt werden. Knackpunkt ist die Komprimierung und Zusammenfassung der Skripte (nur noch ein Request für alle Skripte/Stylesheet).
Sollte eine Ressource tatsächlich mal abhängig von der Artikel-Id geladen werden sollen (den Fall hatte ich ehrlichgesagt noch nie), würde ich die Abfrage lieber direkt im Template machen (bzw. dem Artikel ein eigenes Template spendieren).
Aber so hat jeder seine eingenen Vorlieben
Code: Alles auswählen
$css = array();
$css[] = '//layout/normalize.css';
$css[] = '//layout/base.css';
$css[] = '//layout/structure.css';
$css[] = '//layout/home.css';
$css[] = '//layout/navs.css';
$css[] = '//layout/forms.css';
$css[] = '//layout/modules.css';
$css[] = '//layout/fancybox/jquery.fancybox-1.3.4.css';
$js = array();
$js[] = '//layout/jquery.js';
$js[] = '//layout/standard.js';
$js[] = '//layout/fancybox/jquery.fancybox-1.3.4.js';
$js[] = '//layout/jquery.scrollto.js';
$js[] = '//layout/jquery.cycle.js';
return array(
'css' => $css,
'js' => $js,
);
Code: Alles auswählen
<head>
...
<link href="/min/?g=css" rel="stylesheet" media="screen" />
<script src="/min/?g=js"></script>
</head>
Sollte eine Ressource tatsächlich mal abhängig von der Artikel-Id geladen werden sollen (den Fall hatte ich ehrlichgesagt noch nie), würde ich die Abfrage lieber direkt im Template machen (bzw. dem Artikel ein eigenes Template spendieren).
Aber so hat jeder seine eingenen Vorlieben
Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS
Genau so ist esIngo hat geschrieben:Aber so hat jeder seine eingenen Vorlieben
Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS
Übrigens würde dein Code übersetzt für den Smart Includer nicht viel komplexer aussehen:
In Zukunft auch so möglich:
Ausgabe:
Was mir am Smart Includer so gefällt ist, dass ich alle meine CSS- und JS-Dateien sowie JS-Code an einer Stelle habe in einem Template. Desweiteren kann ich diese wunderbar gruppieren, sodass ich immer genau sehen kann was zusammengehört. In späteren Projekten muss ich lediglich die Gruppe rauskopieren die ich dann brauche. Und zu guter letzt kann ich per PHP meinen JS-Code speisen um z.B. einen Slider der die Images per JS übergeben haben will per MEDIA_LIST zu befüllen. Oder der Interval kann ausm nem MetaInfo gezogen werden etc.
Code: Alles auswählen
$smartIncluder = new rex_smart_includer();
$smartIncluder->addCSSFile('normalize.css');
$smartIncluder->addCSSFile('base.css');
$smartIncluder->addCSSFile('home.css');
$smartIncluder->addCSSFile('navs.css');
$smartIncluder->addCSSFile('forms.css');
$smartIncluder->addCSSFile('modules.css');
$smartIncluder->addCSSFile('jquery.fancybox-1.3.4.css');
$smartIncluder->addJSFile('jquery.js');
$smartIncluder->addJSFile('standard.js');
$smartIncluder->addJSFile('jquery.fancybox-1.3.4.js');
$smartIncluder->addJSFile('jquery.scrollto.js');
$smartIncluder->addJSFile('jquery.cycle.js');
Code: Alles auswählen
$smartIncluder->addCSSFiles('normalize.css', 'base.css', 'home.css', 'navs.css', 'forms.css', 'module.css', 'jquery.fancybox1.3.4.css', );
$smartIncluder->addJSFiles('jquery.js', 'standard.js', 'jquery.fancybox1.3.4.js', 'jquery.scrollto.js', 'jquery.cycle.js',);
Code: Alles auswählen
<head>
...
<?php $smartIncluder->printCSS(); ?>
<?php $smartIncluder->printJS(); ?>
</head>
Re: [v1.5.0] Smart Includer AddOn inkl. LESS/SCSS Support
### Version 1.5.0 - 18. Mai 2013
* SCSS/LESS Unterstützung über die Methoden `addSCSSFile(...)` und `addLESSFile(...)` inkl. automatischer Kompilierung zu CSS
* `$autoVersionParameter` (Bool) und `$versionParameterRewriteMethod` gekickt, stattdessen kann man bei `$autoVersionParameter` folgende Werte eingeben: `none`, `querystring`, `rewriterule`
* Kleinere Bugfixes und Korrekturen
### Version 1.4.5 - 23. April 2013
* Methode `autoVersionParameter` umbenannt in `getFileWithParameter`
* Variable `versionParameterRewriteMethod` entfernt, stattdessen `autoVersionParameter` abgeändert
* Tracking Stuff entfernt
* Notices beseitigt
* getCSS()/getJS() Methoden hinzugefügt
------------------------------------------------------------------------------------------------------------
Man kann prinzipiell des Smart Includer auch als reinen LESS/SCSS Compiler einsetzen ohne alle CSS/JS Dateien drüberlaufen zu lassen:
Ausgabe: <link rel="stylesheet" href="/files/theme.css" type="text/css" media="screen" />
(Die Ausgabe mit printCSS() kann man sich aber auch sparen und theme.css "von Hand" in den Template Code eintragen)
------------------------------------------------------------------------------------------------------------
Was auch interessant ist: Der LESS Compiler "lessphp" bietet die Möglichkeit Variabelwerte aus PHP ins LESS und damit ins CSS zu überführen. http://leafo.net/lessphp/docs/#setting_ ... s_from_php
Per Smart Includer kann man das Variablen-Array als zweiten Parameter übergeben.
------------------------------------------------------------------------------------------------------------
Have fun!
EDIT 28.05.2013: Es ist ein kleiner Bug aufgetaucht (https://github.com/RexDude/smart_includer/issues/6) der in der aktuellen GitHub Version aber bereits gefixt ist.
* SCSS/LESS Unterstützung über die Methoden `addSCSSFile(...)` und `addLESSFile(...)` inkl. automatischer Kompilierung zu CSS
* `$autoVersionParameter` (Bool) und `$versionParameterRewriteMethod` gekickt, stattdessen kann man bei `$autoVersionParameter` folgende Werte eingeben: `none`, `querystring`, `rewriterule`
* Kleinere Bugfixes und Korrekturen
### Version 1.4.5 - 23. April 2013
* Methode `autoVersionParameter` umbenannt in `getFileWithParameter`
* Variable `versionParameterRewriteMethod` entfernt, stattdessen `autoVersionParameter` abgeändert
* Tracking Stuff entfernt
* Notices beseitigt
* getCSS()/getJS() Methoden hinzugefügt
------------------------------------------------------------------------------------------------------------
Man kann prinzipiell des Smart Includer auch als reinen LESS/SCSS Compiler einsetzen ohne alle CSS/JS Dateien drüberlaufen zu lassen:
Code: Alles auswählen
$smartIncluder = new rex_smart_includer();
$smartIncluder->addSCSSFile("theme.scss", "screen");
$smartIncluder->printCSS();
(Die Ausgabe mit printCSS() kann man sich aber auch sparen und theme.css "von Hand" in den Template Code eintragen)
------------------------------------------------------------------------------------------------------------
Was auch interessant ist: Der LESS Compiler "lessphp" bietet die Möglichkeit Variabelwerte aus PHP ins LESS und damit ins CSS zu überführen. http://leafo.net/lessphp/docs/#setting_ ... s_from_php
Per Smart Includer kann man das Variablen-Array als zweiten Parameter übergeben.
Code: Alles auswählen
function addLESSFile($lessFile, $lessVars = array(), $media = 'screen', $ieOnly = false, $ieCondition = '')
Have fun!
EDIT 28.05.2013: Es ist ein kleiner Bug aufgetaucht (https://github.com/RexDude/smart_includer/issues/6) der in der aktuellen GitHub Version aber bereits gefixt ist.
Zuletzt geändert von RexDude am 28. Mai 2013, 10:21, insgesamt 5-mal geändert.
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Re: [v1.5.0] Smart Includer AddOn inkl. LESS/SCSS Support
Danke für LESS/SCSS-Support. Klasse Sache!
Re: [v1.5.2] Smart Includer AddOn inkl. LESS/SCSS Support
### Version 1.5.2 - 12. September 2013
* `addCSS()` und `addJS()` Methoden können nun auch URLs aufnehmen. Siehe Beispielanwendung.
* Konstanten SM_VERSIONPARAM_NONE, SM_VERSIONPARAM_QUERYSTRING, SM_VERSIONPARAM_REWRITERULE eingeführt als Werte für die Konstruktorvariable `$autoVersionParameter`
## Version 1.5.1 - 01. August 2013
* lessphp und scssphp Klassen auf die neusten Versionen gebracht
* Kleine Codeverbesserungen/Fixes. Danke an Gregor
* Fixed #6: Bug behoben der zu unkorrekten scss/less Dateinamen führte
* `addCSS()` und `addJS()` Methoden können nun auch URLs aufnehmen. Siehe Beispielanwendung.
* Konstanten SM_VERSIONPARAM_NONE, SM_VERSIONPARAM_QUERYSTRING, SM_VERSIONPARAM_REWRITERULE eingeführt als Werte für die Konstruktorvariable `$autoVersionParameter`
## Version 1.5.1 - 01. August 2013
* lessphp und scssphp Klassen auf die neusten Versionen gebracht
* Kleine Codeverbesserungen/Fixes. Danke an Gregor
* Fixed #6: Bug behoben der zu unkorrekten scss/less Dateinamen führte
Re: [v2.0.0] Resource Includer AddOn inkl. LESS/SCSS Support
So nun hab ich endlich auch mal den Rewrite meines Smart Includer Addons geschafft (was jetzt auch Resource Includer heißt ).
Features:
https://github.com/RexDude/resource_includer#features
Hier wird der Gebrauch der öffentlichen PHP-Methoden gezeigt:
Und so sieht dann die Ausgabe aus:
Viel Spaß damit wer es nutzen möchte. Download wie immer im Downloadbereich oder per GitHub. Und Bugs bitte wie immer direkt auf GitHub melden
Features:
https://github.com/RexDude/resource_includer#features
Hier wird der Gebrauch der öffentlichen PHP-Methoden gezeigt:
Code: Alles auswählen
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="stylesheet" href="<?php echo rex_resource_includer::getCSSFile("default.css"); ?>" type="text/css" media="screen,print" />
<link rel="stylesheet" href="<?php echo rex_resource_includer::getCSSFile("theme.scss"); ?>" type="text/css" media="screen,print" />
<link rel="stylesheet" href="<?php echo rex_resource_includer::getCSSFile("stuff.less", array("color" => "red", "base" => "960px")); ?>" type="text/css" media="screen" />
<link rel="stylesheet" href="<?php echo rex_resource_includer::getCSSFile("http://fonts.googleapis.com/css?family=Fjalla+One"); ?>" type="text/css" media="screen" />
<link rel="stylesheet" href="<?php echo rex_resource_includer::getCombinedCSSFile("combined.css", array("foo.css", "bar.scss", "batz.less"); ?>" type="text/css" media="screen" />
<link rel="shortcut icon" href="<?php echo rex_resource_includer::getImageFile("favicon.ico"); ?>" type="image/x-icon" />
</head>
<body>
<div id="container"></div>
<script type="text/javascript" src="<?php echo rex_resource_includer::getJSFile("http://codeorigin.jquery.com/jquery-2.0.3.min.js"); ?>"></script>
<script type="text/javascript" src="<?php echo rex_resource_includer::getCombinedJSFile("combined.js", array("jquery.magnific-popup.min.js", "jquery.nivo-slider.min.js")); ?>"></script>
<script type="text/javascript" src="<?php echo rex_resource_includer::getJSFile("init.js"); ?>"></script>
<script type="text/javascript"><?php echo rex_resource_includer::getJSCodeFromTemplate(5); ?></script>
</body>
</html>
Code: Alles auswählen
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="stylesheet" href="/resources/css/default.1383590596.css" type="text/css" media="screen,print" />
<link rel="stylesheet" href="/resources/css/theme.1387210364.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/resources/css/stuff.13835987210.css" type="text/css" media="screen" />
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Fjalla+One" type="text/css" media="print" />
<link rel="stylesheet" href="/resources/css/combined.13887210596.css" type="text/css" media="screen" />
<link rel="shortcut icon" href="/resources/images/favicon.ico" type="image/x-icon" />
</head>
<body>
<div id="container"></div>
<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="/resources/js/combined.13835987210.js"></script>
<script type="text/javascript" src="/resources/js/init.13887210596.js"></script>
<script type="text/javascript">var foo = "dieser string kommt aus einer php variable :)"; alert(foo);</script>
</body>
</html>
Re: [v2.1.0] Resource Includer AddOn inkl. LESS/SCSS Support
Falls noch jemand ein Grund sucht das Baby einzusetzen...
Beim Test einer Seite (kein 1und1 Server ) lieferte Google PageSpeed folgende Ergebnisse:
* ohne Resource Includer: 67/100 Punkte
* mit Resource Includer: 96/100 Punkte
### Version 2.1.1 - 13. Novermber 2013
* `.htaccess` Datei SEO42 2.8.0 angepasst
* Textkorrekturen
### Version 2.1.0 - 10. Novermber 2013
* `.htaccess` verbessert. An Boilerplate `.htaccess` Datei orientiert
* Patch verbessert. Hartcodierten Header rausgenommen
* 1 neue Einstellungen um den X-UA-Compatible zu senden
Beim Test einer Seite (kein 1und1 Server ) lieferte Google PageSpeed folgende Ergebnisse:
* ohne Resource Includer: 67/100 Punkte
* mit Resource Includer: 96/100 Punkte
### Version 2.1.1 - 13. Novermber 2013
* `.htaccess` Datei SEO42 2.8.0 angepasst
* Textkorrekturen
### Version 2.1.0 - 10. Novermber 2013
* `.htaccess` verbessert. An Boilerplate `.htaccess` Datei orientiert
* Patch verbessert. Hartcodierten Header rausgenommen
* 1 neue Einstellungen um den X-UA-Compatible zu senden
Zuletzt geändert von RexDude am 13. Nov 2013, 23:41, insgesamt 1-mal geändert.
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Re: [v2.1.0] Resource Includer AddOn inkl. LESS/SCSS Support
Ich brauch keinen Grund, ich hab schon genügend.
Ich finde das Ding super, wirklich sehr flexibel.
Re: [v2.1.2] Resource Includer AddOn inkl. LESS/SCSS Support
Vielen Dank Peter
### Version 2.1.2 - 23. November 2013
* Hinweis aufgenommen: Der Patch in Setup Schritt 3 ist ab REDAXO 4.5.1 nicht mehr nötig!
* `.htaccess` Datei an SEO42 2.8.1 angepasst
### Version 2.1.2 - 23. November 2013
* Hinweis aufgenommen: Der Patch in Setup Schritt 3 ist ab REDAXO 4.5.1 nicht mehr nötig!
* `.htaccess` Datei an SEO42 2.8.1 angepasst