|
Chris
|
 |
« am: 25 August 2010, 13:40:47 » |
|
Hallo zusammen, wer seine CSS bei CMSms gerne übersichtilich in verschiedene Stylesheets aufteilt kommt schnell auf mehr als 5 Styles die vom Browser jeweils geladen werden wollen. Für ein Projekt haben wir einen Template Tag als CMSms Plugin gebaut der einige zusätzliche Funktionen mitbringt. TouchFastCSS ist ein TAG für CMS Made Simple der alle Stylesheets zu einem grossen Stylesheet nach Mediatype zusammenführt, Leerzeichen und Kommentare aus den CSS entfernt, den absoluten Pfad für Url-Aufrufe (background) setzt, einen internen Cache (Filebasiert) der Stylesheets anlegt und über einen eingebauten mobile Check für mobile Browser verfügt. Der Tag steht unter GPL zum Download bereit, die Projektseite auf CMSmadeSimple.org findet ihr unter: http://dev.cmsmadesimple.org/projects/touchfastcssUm den Tag nutzen zu können muss dieser in das "plugins" Verzeichnis der CMSms Installation geladen werden. Der Tag wird im Header des Templates anstelle des {stylesheet} Tags welcher standardmässig von CMSms geliefert wird eingebunden: {touchfastcss replace_relpath=1 cleanup=1} Zusätzlich können folgende Paramater an das Plugin übergeben werden:
- name - Query one template by template name
nocache - Css cache ignorieren (bis Version 1.0)- force_rewrite - Css cache ignorieren (ab Version 1.1)
- chk_mobile - Prüfen ob eine mobiler Browser die Seite besucht und nur mobile Stylesheets (Handheld) laden
- css_path - Pfad zum CSS Cache, Default CMSms tmp_dir/static_sytlesheets
- replace_relpath - Ersetze relative Pfade durch absolute URL -> Background: url(http://www.example.com/tmp/css/name.jpg)
- cleanup - Entferne Kommentare und Leerzeichen
- comments - Fügt Kommentare in die Css ein (Minfiy verlust)
-- (http://www.homepage-community.de/UPLOADS/img/fastCSS.png)[/list][/list]
|
|
|
|
« Letzte Änderung: 04 April 2011, 09:23:09 von Madlen »
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #1 am: 05 September 2010, 17:58:11 » |
|
Klingt gut - eine gzip-Komprimierung des Stylesheets wäre evtl. noch eine interessante Option ... man müsste nur noch eine htaccess-Regel hinzufügen # BEGIN Gzip Compression AddEncoding gzip .gz <filesmatch "\.css\.gz$"> AddType "text/css" .gz </filesmatch> <ifmodule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME} \.(css)$ RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule ^(.*)$ $1.gz [QSA,L] </ifmodule> # END Gzip Compression
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #2 am: 07 September 2010, 10:24:05 » |
|
Klingt gut - eine gzip-Komprimierung des Stylesheets wäre evtl. noch eine interessante Option ... man müsste nur noch eine htaccess-Regel hinzufügen Interessante Option - Danke für dein Feedback  Viele Grüße Chris
|
|
|
|
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #3 am: 01 Dezember 2010, 14:02:33 » |
|
Hmm, ist der Tag in seiner Lauffähigkeit auf irgend welche Versionen beschränkt? Habs gerade mit einer 1.6.8 und {touchfastcss} versucht - Ergebnis
/* @@@ Plugin touchfastcss @@@ cssId: 55, cssName: CSS-Beispiel für den Kalender, cssModified: 2009-09-25 10:28:36 */
/* @@@ Plugin touchfastcss @@@ cssId: 31, cssName: Accessibility and cross-browser tools, cssModified: 2008-04-09 14:06:31 */
/* @@@ Plugin touchfastcss @@@ cssId: 38, cssName: Navigation: Simple - Horizontal, cssModified: 2006-07-25 21:22:32 */
/* @@@ Plugin touchfastcss @@@ cssId: 39, cssName: Layout: Top menu + 2 columns, cssModified: 2009-09-25 12:04:00 */
Ist doch bestimmt nicht so gewollt, oder?! Edit: gleiches Ergebnis mit der 1.9.1 ...
|
|
|
|
« Letzte Änderung: 01 Dezember 2010, 14:13:37 von cyberman »
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #4 am: 01 Dezember 2010, 16:48:19 » |
|
Hmm, ist der Tag in seiner Lauffähigkeit auf irgend welche Versionen beschränkt? Die niedrigste CMSms Version die ich hier habe in der der Tag läuft ist eine 1.6.4 Moindou, die aktuellste eine CMSms 1.9.1 und in beiden läuft er. Viele Grüße Chris
|
|
|
|
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #5 am: 01 Dezember 2010, 23:39:42 » |
|
Hmm, das erklärt aber nicht das gepostete Ergebnis  ...
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #6 am: 02 Dezember 2010, 10:44:49 » |
|
Kannst du mal das temporäre Css File löschen und neu schreiben lassen? Und dann Testweise mit den Schaltern spielen und schauen ob dann deine Css generiert werden: replace_relpath cleanup Zusätzlich noch den Schlater "nocache=1" setzen. Nutzt du evtl. Besonderheiten in den Css oder sind das die default Css von einem Theme? Wie rufst du den Tag aktuell auf? Viele Grüße Chris
|
|
|
|
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #7 am: 03 Dezember 2010, 09:07:17 » |
|
Es sind im wesentlichen (bis auf ein paar Farbänderungen) die originalen Themes. Hatte bislang nur {touchfastcss} verwendet, da sämtliche Parameter optional sein sollten. Hab jetzt die "Vollversion" genommen  {touchfastcss replace_relpath=1 cleanup=1} und es funktioniert! {touchfastcss cleanup=1} geht auch. Hab allerdings festgestellt, dass noch nicht alle Leerzeichen sauber gelöscht werden: .calendar tr td a{ color: red;}.calendar-today{ font-weight: bold;}(innerhalb der styles)
|
|
|
|
« Letzte Änderung: 03 Dezember 2010, 09:20:07 von cyberman »
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #8 am: 04 Dezember 2010, 11:02:08 » |
|
Danke für dein Feedback, ich habe soeben einige Änderungen an dem Tag eingespielt und im ersten Beitrag ein Update angehängt (Version 1.1). Damit sollte ein Grossteil deiner Infos verarbeitet sein Changelog- leere Css ohne Params gefixt
- Default params hinzugefügt
- Parameter nocache unbenannt -> force_rewrite
- Regex für die Bereinigung der Css verbessert
Hier noch der Link zur SVN Log: http://viewsvn.cmsmadesimple.org/log.php?repname=touchfastcss&path=%2Ftrunk%2Ffunction.touchfastcss.php&Viele Grüße Chris
|
|
|
|
« Letzte Änderung: 04 Dezember 2010, 12:23:39 von Chris »
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #9 am: 06 Dezember 2010, 08:50:21 » |
|
Vielen Dank für deine prompte Reaktion  - werds mir ansehen, sobald ich eine freie Minute finde ...
|
|
|
|
|
Gespeichert
|
|
|
|
Geraldo
Newbie

Beiträge: 1
|
 |
« Antworten #10 am: 15 Dezember 2010, 21:49:19 » |
|
Hallo Chris unter XAMPP (=WIN) funktioniert es (bei mir?) nur dann, wenn ich einen Parameter für das Verzeichnis angeben, also css_path=tmp/touchfastcss ansonsten wird zwar alles generiert aber Du linkst nach /tmp\touchfastcss/ <link media="screen" href="http://localhost/cmsms.de/tmp\touchfastcss/23-screen-touchFastCss.css" type="text/css" rel="stylesheet"> Ob obige Pfadangabe auf der Webpräsenz (Linux) durchgeht, habe ich noch nicht ausprobiert Geraldo
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #11 am: 16 Dezember 2010, 09:47:44 » |
|
Hallo Geraldo, danke für dein Feedback. Ich habe für den Windowspfad eine Änderung vorgenommen, wenn du in deinem Tag die Zeilen 110-118 gegen folgende ersetzt bist du wieder auf dem aktuellen Stand: if(!empty($params['chk_mobile']) && isMobile()){ if($m == 'handheld'){ $html .= "<link rel='stylesheet' type='text/css' href='".$config['root_url'] . "/" . str_replace("\\","/",$css_path) . "/" . $c['file'] . "' media='".$m."' />\n"; } }else{ $html .= "<link rel='stylesheet' type='text/css' href='".$config['root_url'] . "/" . str_replace("\\","/",$css_path) . "/" . $c['file'] . "' media='".$m."' />\n"; } Ich lade hierzu aber auch noch eine aktualisierte Version hoch. Viele Grüße Chris
|
|
|
|
|
Gespeichert
|
|
|
|
cyberman
Newbie

Beiträge: 49
|
 |
« Antworten #12 am: 16 Dezember 2010, 09:52:46 » |
|
Wäre es da nicht einfacher, die Konstante DIRECTORY_SEPARATOR für den "Pfadtrenner" zu verwenden, anstatt die fette replace-Maschine anzuwerfen?
|
|
|
|
« Letzte Änderung: 16 Dezember 2010, 09:54:05 von cyberman »
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #13 am: 16 Dezember 2010, 11:25:31 » |
|
Wäre es da nicht einfacher, die Konstante DIRECTORY_SEPARATOR für den "Pfadtrenner" zu verwenden... Für die Pfadangaben auf "Filesystemebene" wird die Konstante DIRECTORY_SEPARATOR im Tag genutzt, für den Pfad in den URL Requests nutze ich jedoch den Unix "/" Slash. Bei Geraldo würde der Einsatz der DS Konstante bei den URL Requests dann zu dem Ergebnis führen: <link media="screen" href="http://localhost/cmsms.de/tmp\touchfastcss\23-screen-touchFastCss.css" type="text/css" rel="stylesheet"> Ohne Replacen müssten wir entweder einen 2ten Pfad setzen und für die URL Requests nutzen oder ganz auf den DIRECTORY_SEPARATOR verzichten (oder notfalls variabel als optionalen Paramater mit anhängen) damit löst sich das Problem dann von selber und es wäre kein Replace mehr notwendig. Viele Grüße Chris
|
|
|
|
« Letzte Änderung: 16 Dezember 2010, 11:26:41 von Chris »
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #14 am: 24 Dezember 2010, 12:03:57 » |
|
Anbei eine kurze Updateinfo für den Tag auf Version 1.2: Rename isMobile -> touchIsMobile, Declare func touchIsMobile only if not declared Goodbye DIRECTORY_SEPARATOR, Remove str_replace Das Problem mit den Windows und Unixpfaden ist mit der Version behoben, der Tag hängt oben an. Frohe Festtage  Chris
|
|
|
|
|
Gespeichert
|
|
|
|
|