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: http://redaxo.org/slack/
Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

[v2.2.0] Resource Includer AddOn inkl. LESS/SCSS Support

8. Nov 2012, 12:17

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
Zuletzt geändert von RexDude am 28. Nov 2015, 11:31, insgesamt 16-mal geändert.

Benutzeravatar
runstop64
Beiträge: 369
Registriert: 23. Okt 2012, 21:34
Wohnort: Hamburg
Kontaktdaten: Website Facebook Twitter

Re: Neues Addon: Smart Includer

9. Nov 2012, 16:16

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
Viele Grüße,
Daniel


studio-ahoi.de | Referenzen | Friends Of REDAXO

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Neues Addon: Smart Includer

9. Nov 2012, 17:47

nice.. vorschlag:

Code: Alles auswählen

$smartIncluder->whiteList('rex_article','4,5,12');
// bzw.
$smartIncluder->blackList('rex_article','7'); 
das 'rex_article' um evtl. später mal noch andere Filtermöglichkeiten unterzubringen.. (auch wenn mir grad keine einfallen ;)
vg, Jan

Benutzeravatar
rkemmere
Beiträge: 486
Registriert: 6. Feb 2007, 17:47
Kontaktdaten: Website

Re: Neues Addon: Smart Includer

9. Nov 2012, 19:21

Gute Sache das Ganze! Ggf. kann man die automatische Komprimierung und GZIP Funktion noch mit einbauen ;)

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Neues Addon: Smart Includer

9. Nov 2012, 19:57

rkemmere hat geschrieben:.. automatische Komprimierung ..
yo, +1 dafür ;) Und bei der Gelegenheit in ein (cache)file zusammenlegen.. Thema requests reduzieren (bringt meist mehr als Kompression).
vg, Jan

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer

13. Nov 2012, 11:39

@runstop64: Danke :) Zu deinen Fragen:
runstop64 hat geschrieben: - Wie steht es um die Möglichkeit den smart_includer in einem Addon zu nutzen?
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 :D 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...hihi ;)
runstop64 hat geschrieben: - Planst du eine Methode ein, die die Einzeldateien zusammenfasst?
Du meinst so:

Code: Alles auswählen

$smartIncluder->addCSSFiles(array("foo.css", "bar.css"));
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.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer

13. Nov 2012, 11:52

jdlx hat geschrieben:nice..
thx! :)
jdlx hat geschrieben:vorschlag:

Code: Alles auswählen

$smartIncluder->whiteList('rex_article','4,5,12');
// bzw.
$smartIncluder->blackList('rex_article','7'); 
das 'rex_article' um evtl. später mal noch andere Filtermöglichkeiten unterzubringen.. (auch wenn mir grad keine einfallen ;)
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'?

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
}
Meinst du vielleicht sowas?

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer

13. Nov 2012, 12:06

rkemmere hat geschrieben:Gute Sache das Ganze! Ggf. kann man die automatische Komprimierung und GZIP Funktion noch mit einbauen ;)
jdlx hat geschrieben:yo, +1 dafür ;) Und bei der Gelegenheit in ein (cache)file zusammenlegen.. Thema requests reduzieren (bringt meist mehr als Kompression).
Prinzipiell meint ihr sowas wie minify macht: http://code.google.com/p/minify/

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
/files/default.css?1351941917

Code: Alles auswählen

$autoVersionParameter = true und $versionParameterRewriteMethod = true
/files/default.1351941917.css

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Neues Addon: Smart Includer

13. Nov 2012, 12:36

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?
Das bezieht sich auf dein README Beispiel.. wobei es in der Form wie ich schrob zu unflexibel ist..
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');
 
Daher auch der param "rex_article" in dem Fall.. denkbar wären noch andere sinnvolle Standard FiIlter, UND wichtig imho: custom callbacks.. sprich das wenn ich smart includer verwende, dann z.b. so einen OPF check (oder halt sonstwas spezifisches) per callback als filter einhängen kann.

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

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/

13. Nov 2012, 13:10

@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?

Joachim.Dörr
Beiträge: 1405
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/

13. Nov 2012, 13:11

Für CSS min Dateien hab ich für BaseCondition folgende Mehtode Entwickelt: https://github.com/joachimdoerr/basecon ... p#L179-189

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;
  }
Kannst Du gerne übernehmen. Funktioniert jedenfalls perfekt.

lg
Joachim
Doerr Softwaredevelopment | GitHub
Beati pauperes spiritu.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/

13. Nov 2012, 13:50

@Joachim.Dörr: Hey, super vielen Dank! Gerade das preg_replace zur Comments-Entfernung kann ich für den JS Code Output gut gebrauchen!

Benutzeravatar
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/

13. Nov 2012, 22:09

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.
Viele Grüße,
Daniel


studio-ahoi.de | Referenzen | Friends Of REDAXO

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/

14. Nov 2012, 02:37

RexDude hat geschrieben:@jdlx: Ok habs verstanden...du störst dich an den "uncoolen" If-Abfragen ;)
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:Zur Callback-Idee: konkretes Use Case auf den Smart Includer bezogen?
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.
vg, Jan

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Neues Addon: Smart Includer (Einfache Einbindung von JS/

17. Feb 2013, 17:38

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

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

?>

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS

17. Feb 2013, 20:39

Das ist für mich viel zu komplex. Meine typische minify Konfigurationsdatei sieht so aus:

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,
);
 
Und der Aufruf im Template so:

Code: Alles auswählen

<head>
    ...
    <link href="/min/?g=css" rel="stylesheet" media="screen" />
    <script src="/min/?g=js"></script>
</head>
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 ;)

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS

17. Feb 2013, 20:49

Ingo hat geschrieben:Aber so hat jeder seine eingenen Vorlieben ;)
Genau so ist es ;)

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v1.4.3] Smart Includer - Elegante Einbindung von JS/CSS

17. Feb 2013, 21:14

Übrigens würde dein Code übersetzt für den Smart Includer nicht viel komplexer aussehen:

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'); 
In Zukunft auch so möglich:

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',);
Ausgabe:

Code: Alles auswählen

<head>
    ...
    <?php $smartIncluder->printCSS(); ?>
    <?php $smartIncluder->printJS(); ?>
</head>
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.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v1.5.0] Smart Includer AddOn inkl. LESS/SCSS Support

19. Mai 2013, 14:38

### 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:

Code: Alles auswählen

$smartIncluder = new rex_smart_includer();
$smartIncluder->addSCSSFile("theme.scss", "screen");
$smartIncluder->printCSS();
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.

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.

Benutzeravatar
Peter.Bickel
Beiträge: 1860
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: [v1.5.0] Smart Includer AddOn inkl. LESS/SCSS Support

19. Mai 2013, 17:04

Danke für LESS/SCSS-Support. Klasse Sache!

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v1.5.2] Smart Includer AddOn inkl. LESS/SCSS Support

1. Aug 2013, 16:57

### 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

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v2.0.0] Resource Includer AddOn inkl. LESS/SCSS Support

7. Nov 2013, 13:57

So nun hab ich endlich auch mal den Rewrite meines Smart Includer Addons geschafft (was jetzt auch Resource Includer heißt :lol: ).

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>
Und so sieht dann die Ausgabe aus:

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>
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 :)

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v2.1.0] Resource Includer AddOn inkl. LESS/SCSS Support

10. Nov 2013, 15:59

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
Zuletzt geändert von RexDude am 13. Nov 2013, 23:41, insgesamt 1-mal geändert.

Benutzeravatar
Peter.Bickel
Beiträge: 1860
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

Re: [v2.1.0] Resource Includer AddOn inkl. LESS/SCSS Support

10. Nov 2013, 16:42

:)
Ich brauch keinen Grund, ich hab schon genügend.
Ich finde das Ding super, wirklich sehr flexibel.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: [v2.1.2] Resource Includer AddOn inkl. LESS/SCSS Support

23. Nov 2013, 23:31

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

Zurück zu „Allgemeines [R4]“