ok danke fuer die info! :)
Gesendet von meinem GT-I9505 mit Tapatalk 2
Druckbare Version
ok danke fuer die info! :)
Gesendet von meinem GT-I9505 mit Tapatalk 2
Man braucht es Theme+ nicht beibringen. Das haben wir bereits getan. Sobald Minify installiert ist und cssmin nicht, wird sofort Minify verwendet. Das merkt der Assetic Part schon von alleine.
Und btw, Theme+ 4.0 ist nur mit Composer wirklich benutzbar. Man kann es sich zwar aus dem ER beziehen, dort hat Tristan auf meine Bitte hin eine aktualisierte Version veröffentlicht aber solche Packages wie Minify sind nur sicher über Composer erhältlich. Alles andere muss man sich selbst zurechtwursteln. Oder man verzichtet auf die Komprimierung oder man hat Glück und verwendet keine mobilen Media Queries :D
ist afaik auch keine gültige Syntax, daher schlägt es auch evt. in CssMin dann fehl ;). Alle Ausdrücke eines Media Queries müssen durch ein Space getrennt sein. Auch zwischen der Klammer und den davor kommenden Ausdrücken. Aber das nur nebenbei.PHP-Code:
@media(...)
Dass man Theme+ besser nur mit dem Composer verwenden sollte ist ja gut und schön. Trotzdem wäre es nicht schlecht einfach zB die jeweiligen GitHub links zu posten (ich beziehe Theme+ ohnehin nur von dort, nicht vom ER).
Das kann ich ja nicht ändern. Es ist nun mal das Contao Grid CSS. Aber es ist sowieso ratsamer einen Minifer zu nehmen der aktualisiert und gepflegt wird. Wie lange willst du denn mit Cssmin arbeiten? Mit CSS4 spätestens wirst du Probleme bekommen. Und das dauert nicht mehr lange bis das in 50% der Browser einsetzbar ist.
Eine kleine Suche via Google schadet keinem -.-
https://github.com/mrclay/minify
Doch klar. Selbe Prozedur wie bei cssmin
Muss die Klasse nach Installation über Composer noch registriert werden? Hab auch versucht Minify manuell zu registrieren, aber es wird weiterhin CssMin verlangt.
hallö,
bei mir bleiben die erstellten css Dateien leer ...
*collection.css ist leer
*collection.js dagegen gefüllt
themeplus4 und contao 3.1.2
nach etwas suchen habe ich gefunden das mein Ordner nicht theme-plus sondern ThemePlus heißt und es da drinnen aber keinen Ordner web gibtPHP-Code:
system/modules/theme-plus/web/proxy.php/css/13/Y3NzOjU=/styles.css
Ist die aktuelle Version installiert? https://contao.org/de/extension-list...000009.de.html
Tristan hat glaub ich mal die Ordner umbenannt. Notfalls die Erweiterung deinstallieren und nochmal installieren.
Danke das war's hatte das zwar installiert aber irgendwie fehlten die Verzeichnisse ... aber nun funzt das
aber der yui-compressor funzt nicht
was muss ich denni eintragen bei
- YUI JAR
- JAVA Executable
PHP-Code:
An error occurred while running: '/usr/bin/java' '-jar' 'assets/yui/yui247.jar' '-o' '/tmp/YUI-OUT-EO1co8' '--type' 'css' '/tmp/YUI-IN-OeVvnb'
Java und YUI Compressor müssen auf dem Server installiert sein.
Java kann nur Systemweit installiert werden.
Den YUI Compressor könnte man durch hochladen der yui-compressor.jar auch "lokal" in die Contao Installation installieren.
- YUI JAR => den Pfad zur yui-compressor.jar
- JAVA Executable => den Pfad zur java Executable
Wo bitte muss das denn eingetragen werden?
Unter Contao 3.1.2 finde ich keine Punkte, die Pfade anzugeben.
Das befindet sich in den Assetic Einstellungen zum jeweiligen Filter.
Ah, danke!
Hallo, ist die ThemePlus Version aus ER/GitHub nicht mit der aktuellen Version (3.1.3) kompatibel? Bzw. läuft ThemePlus nur bis 3.1.0?
Code:[25-Sep-2013 06:01:00] PHP Fatal error: Access level to ThemePlus\ThemePlus::__construct() must be public (as in class Contao\Frontend) in /var/www/contao3/system/modules/ThemePlus/ThemePlus.php on line 35
Also bei mir läuft Theme+ in einer 3.1.1 und 3.1.2 ohne Probleme.
Das mit der 3.1.3 ist tatsächlich eine Inkompatibilität die ich erst beheben muss.
Theme+ funktioniert auch bei mir in 3.1.2 ohne Probleme.
Übrigens, seit einem der letzten Updates die ich gemacht habe ist der Designer-Mode jetzt wieder immer aktiv, selbst wenn ich bei isDesignerMode() return false; mache. Ist das so gewollt? ;). Ist aber in diesem Fall nicht schlimm, da die CSS Dateien ja jetzt einzeln im assets Ordner liegen und abrufbar sind, anstatt vorher nur über die proxy.php (oder sollte das gar nicht so sein).
Interessant. Ich hab' wie gesagt dort return false; angegeben, macht Contao es dann von selbst, dass die CSS Dateien einzeln (aus dem Assets Verzeichnis) eingebunden werden? Wenn ja wundert es mich, dass diese einzelnen CSS Dateien (welche ja externe Dateien sind, die ich über Theme+ einbinde) trotzdem auch minified sind etc. Das funktioniert ja alles besser als erwartet :D
Ich habe die 4.2 ins ER gestellt, die läuft auch unter 3.1.3. :cool:
@Spooky
Bzgl. deiner Fragen, die du per E-Mail gestellt hast antworte ich mal hier, weil das eventuell auch andere interessiert:
Nein, das ist nicht normal.Zitat:
Also ich frage mich immer noch ob das Verhalten bei einer meiner Contao Installationen mit Theme+ 4 normal ist, dass die CSS Dateien einzeln über das assets Verzeichnis eingebunden werden, wenn man im Backend eingelogged ist und man den Designer Mode bei isDesignerMode() mit 'return false;' deaktiviert hat.
In der neuen Version 4.2 ist das im übrigen gar nicht mehr notwendig, die Methode isDesignerMode() zu hacken, weil die Einstellung pro Benutzer in seinem Profil aktiviert/deaktiviert werden kann.
Warum es bei dir allerdings trotzdem alles einzeln eingebunden wird, liegt wohl daran dass für diese Entscheidung der nicht auf die isDesignerMode() zurück greift, sondern auf isLiveMode(). Das ist das Gegenstück zu isDesignerMode() und müsste true liefern, liefert bei dir aber vermutlich false.
Den Designer Mode brauchst du wie der Name schon sagt zum designen der Seite.Zitat:
Meine Frage ist daher, warum braucht man die proxy.php überhaupt (die ja die Seite extrem verlangsamt im Designer Mode), ...
Ich weiß nicht was du unter "extrem verlangsamt" verstehst, aber der vorwiegende Performance impact entsteht halt dadurch, dass das Caching für die Sourcen die über die proxy.php gezogen werden deaktiviert ist.
Deshalb gibt es aber mittlerweile die Option im Benutzerprofil, damit nur diejenigen den Designermodus für sich aktivieren, die den auch brauchen.
Nein, es funktioniert nicht besser, wenn du gerade eine Website am Designen bist. Dann ist das ganze minimieren usw. nämlich ein störendes Hindernis beim Designen und Debuggen.Zitat:
...wenn das auch so viel besser funktioniert? Darum frage ich mich auch, ob das überhaupt normal ist :D
Die proxy.php verhindert unter anderem auch, dass das assets/css und assets/js Verzeichnis mit haufenweisen Dateien überflutet werden, weil sie die Dateien immer "live" rendert, was unter anderem auch beim debuggen technischer Probleme hilft, z.B. wenn ein Filter fehlerhaft läuft.
Das alles sind vor allem Vorbereitungen auf ein erweitertes asset caching, das ich noch einbauen werde.
Sobald dieses caching drin ist, werden die Dateien nicht mehr live neu generiert, sondern nur noch dann, wenn die zusammengefasste Datei nicht mehr existiert.
Ich habe das schon getestet, ich kann den IO damit auf 1 Befehl reduzieren, weil ich nicht mehr in die filemtime jeder Datei schauen muss.
Spätestens dann wirst du den Designer Modus brauchen, damit du überhaupt noch designen kannst, ohne stendig im BE auf "assets löschen" klicken zu müssen. ;)
MfG Tristan
Naja für das "designen" der Website ist der Designer Mode für uns (sage ja nicht, dass das für jeden gilt) momentan eher hinderlich als nützlich, weil zumindest auf dem billigen Webhosting Packet, das wir verwenden, die Seite dann mehrere Sekunden zum laden braucht. Und das nervt dann schon, wenn man CSS Änderungen oder was auch immer auf der Live Seite macht und man zum überprüfen jedes mal so lange warten muss ;). Auf dem Kunden macht das dann auch keinen guten Eindruck, wenn er Änderungen am Content macht und die Seite so langsam läuft (aber das ist mit der neuen Version von Theme+ eh hinfällig).
Ich meinte es funktioniert besser, weil man nicht den Nachteil der langsamen Website und man aber trotzdem einzelne CSS Dateien hat. Ob die minified Versionen nun stören kommt halt darauf an. In den meisten Fällen ist das ja eher egal, da "man" sowieso über Firebug oder Firefox Developer Tools arbeitet (glaube nicht dass jeder jedes mal nur in den CSS Dateien manuell sucht?).
Hört sich gut an, aber ja, da werde ich den Designer Mode wohl tatsächlich brauchen ;). Mühsam ist es aber dann trotzdem, wenn es dann weiterhin so langsam läuft... :(
Huh, in der Theme+ 3er Version? Ich glaub das hat in diesem Thread nix zu suchen, aber egal :D
ähm, nein in der 3er gibt es das noch nicht, dort sollte das eigentlich ohne Änderungen funktionieren O.o
Welche Variablen verwendest du denn, die im Theme (von Contao) oder die über das Untermenü "Variablen für weitere Dateien definieren"?
Doch doch :D das gehört schon hierher, mein aktuelles Problem hab ich ja mit Contao 3.1.2 und theme+ 4.2.0 - ich wollte damit nur sagen, ich habe die Farbvariablen hier nicht anders angelegt als in den früheren theme+ Versionen (also 3er) - aber mit 4.2.0 funzt es eben nicht.
Ich verwende die vom Untermenü "Variablen für weitere Dateien definieren", also das, was mit Theme+ mitgeliefert wird, nicht die im Theme von Contao.
Grüße, bibib
Dann musst du aber einen Filter vom Typ "Contao Replace Theme+ Variablen" anlegen und in die Filter Chain einbinden ;-)
... und die Antwort drauf, wo ich das anlege und einbinde, finde ich vermutlich im Video auf youtube, richtig? ;) Werde ich mir dann gleich anschauen, aber eins hätt ich noch (wenn ich hier darf, gehört jetzt nicht wirklich da rein):
Weil du die Möglichkeit, die Variablen im Contao-Theme direkt anzulegen erwähnt hast - auch das habe ich ausprobiert in Verbindung mit externen Stylesheets, die ich über das Seitenlayout eingebunden habe, auch das hat nicht funktioniert. Braucht man dazu nach wie vor interne Stylesheets? (Wie in Contao 2.x, wo man die Variablen nur pro Stylesheet anlegen konnte und nicht pro Theme).
Grüße, bibib
_________________________________
edit: gerade ausprobiert, auch mit einem internen Stylesheet werden die im Theme angelegten Variablen ignoriert. Irgendwo ist der Wurm drin.
Habe nun auch versucht Minify statt CssMin zu verwenden, allerdings wird nach wie vor nach CssMin verlangt. Im Source von Assetic wird ja auch explizitaufgerufen in der CssMinFilter.php und eine andere Filter Class scheint es nicht zu geben?PHP-Code:
$asset->setContent(\CssMin::minify($asset->getContent(), $filters, $plugins));
Die Klasse CssMin wird von Minify bereitgestellt ;)
https://github.com/mrclay/minify/blo...lib/CSSmin.php
Diese musst du eventuell von Hand includen.
(Groß-/Kleinschreibung sind bei PHP Klassen übrigens egal)
Mhhhh, ich hab AndreasIsaak mal Bescheid gesagt, ich verwende cssmin/minify nicht, daher weiß ich da gerade nicht was man da machen kann :(
Ok, thx :). Werde einstweilen das alte CssMin weiter verwenden.
So, Video hab ich jetzt durch und folgendes gemacht:
- unter Assetics den Filter "Contao Replace Theme+ und Variablen" angelegt
- eine Filter Chain "Farbvariable" erstellt und den angelegten Filter eingebunden
- bei meinen eingebundenen Stylesheets die Filter Chain "Farbvariable" ausgewählt
- im Seitenlayout bei Assetic Filter für Stylesheets auch nochmal die Filter Chain "Farbvariable" ausgewählt
Tut sich leider nach wie vor nix :(
Brauche ich noch mehr Filter, du schreibst ja auch "in die Filter Chain einbinden"? Leider haben zum Zeitpunkt des Videodrehs für Theme+ 4 die Farbvariablen noch nicht funktioniert, also gibt's dort auch nicht mehr Infos.
Oder hab ich noch was übersehen?
Grüße, bibib
Bin leider immer noch nicht schlauer. Nachdem ich das Forum durchforstet habe, hab ich noch einen zweiten Filter für einen CSS-Rewrite angelegt und auch in die Filter-Chain eingebunden. Dann die Filter Chain sowohl bei den CSS-Dateien als auch im Seitenlayout aktiviert, bzw. dasselbe auch einzeln gemacht, also Filter Chain entweder nur bei der CSS-Datei oder nur beim Stylesheet aktiviert.
Bringt aber alles nichts :(
Hallo, ich habe kurz die Verwendung einer Variable ausprobiert.
Die internen(?) Variablen funktionieren Anhang 11961 zum Teil, die Variablen von ThemePlus werden nicht geparsed Anhang 11962.
Bei Variante 1 wird die Variable mit $ ausgegeben, also z.B. "$#ff0000" statt "#ff0000".
ich habe den filter fuer die variablen direkt auf die css datei angewendet. aber bei variante 1 wird die variable leider falsch und bei variante 2 gar nicht geparsed. also im moment beides nicht brauchbar, ausser ich habe etwas falsch angewendet. falls es dir hilft kannst du auch lessphp verwenden und die variablen direkt im stylesheet definieren, das funktioniert auf jeden fall! lg
Gesendet von meinem GT-I9505 mit Tapatalk 4
Würde mir natürlich sehr helfen, wenn ich wüsste, wie, ich hab mich in das Thema lessphp bzw. sass/scss leider noch nicht eingearbeitet.
Ich hätte jetzt mal in meinem Stylesheet ganz oben eingegeben: @dunkelorange: #E95E27; und dann beispielsweise bei h1 { color: @dunkelorange; } und den lessphp-Filter drauf angewendet, aber das war sicher zu kurz gedacht, da kam nur eine Fehlermeldung:
Wäre klasse, wenn du noch einen Hinweis hättest, wie ich das angehen muss (wenn's nicht zu umständlich ist)!Code:Fatal error: Class 'lessc' not found in /.../system/modules/assetic/classes/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessphpFilter.php on line 87
Grüße, bibib
Stimmt schon so, du musst nur noch die Klasse für lessphp laden.
Hab dir das Codeschnipsel angehägt, einfach nach system/modules kopieren - dann sollte es funktionieren.
Vielen Dank, aber ... :( funzt leider immer noch nicht ... habe den ganzen Ordner lessphp nach /system/modules kopiert, Fehlermeldung bleibt bestehen ...
Ich fürchte, ich krieg heute aber auch nichts sinnvolles mehr auf die Reihe.
noch immer der gleiche fehler? evtl. den internen cache deaktivieren. ka ob sich das darauf auswirkt.
steht was im log?
Gesendet von meinem GT-I9505 mit Tapatalk 4
Jaaaaa, jetzt funzt es! DANKE!!!
Hab den internen Cache und den Skriptcache geleert, jetzt passt alles :D
Merci, Tag gerettet,
lg, bibib
Wenn ihr etwas an den Filtern bzw. Chains ändert, müsst ihr den Scriptcache immer löschen, sonst werden die Dateien nicht neu generiert und die Änderungen entsprechend nicht übernommen.
MfG Tristan
Ich hab jetzt nochmal testweise eine neue Farbvariable "pink" angelegt und ein neues Stylesheet mit einer einzigen Anweisung h1 {color: $pink;} erstellt, einen Filter für die Contao Replace Theme+ Variablen angelegt, den Filter im Stylesheet ausgewählt, ebenso im Seitenlayout, und den Scriptcache und auch den internen Cache zwei Mal geleert - aber nix. Im Firebug ist h1 { } leer.
Irgendwas hakt hier doch noch?
Grüße, bibib
Stehe hier auch etwas an. Habe in Theme+ ein paar Variablen angelegt (nicht in Contao beim Theme) und wollte diese mit $variable ausgeben lassen, allerdings wird dies gar nicht ersetzt. Habe den Filter Contao Replace Theme+ Variablen in der Filter Chain drin und diese Chain im Seitenlayout aktiviert.
Weder im designer noch im normalen Modus werden die Conditional Comment berücksichtigt. Mit einer kleinen Anpassung im Code konnte ich die Conditional Comment für den designer Modus wieder her stellen. Im normalen Modus geht das wohl nicht so einfach.
Ist das Problem bekannt?
Ich nutze C3.1.4 und TP4.2.0
Ja ist bekannt
https://github.com/bit3/contao-theme-plus/issues/59
(PS: Ja ich weiß das du das Ticket selbst erstellt hast :p)
Das mit dem ersetzen der Theme+ Variablen funktioniert bei mir ebenso nicht. Caches hab ich alle geleert, nach anlegen der Filter.
Filter-Chain angewendet für jede CSS-Datei und im Layout:
CSS-Rewrite
Contao Replace Theme+ Variablen
Muss man eigentlich die Filter in den CSS-Dateien selbst auch nochmal vergeben, oder reicht es im Layout aus, wenn die Dateien eh alle im Layout eingebunden werden?
Edit: verwende Contao 3.1.5 und T+ 4.2.0
Gibt's hier schon neue Erkenntnisse? Bei mir funktionieren die Farbvariablen immer noch nicht.
Contao 3.2.3, bit3/contao-theme-plus 4.3.4, installiert über den Composer.
Ansonsten bin ich vorgegangen wie thepixture beschrieben hat, Skriptcache ist auch gelöscht.
Grüße, bibib
Nee, das ist aktuell noch ein TODO an das ich noch nicht gekommen bin :o
Okay, danke für die Info :)
Wurde die Option Dateien aus der Zusammenfassung auszuschließen entfernt? Ich bräuchte eine Datei getrennt von der collection.css, scheint aber nicht mehr möglich zu sein oder?
Wie können die collections.css/js am einfachsten auf absolute Pfade geändert werden?
Also /assets/... anstattt assets/...
Contao produziert immer wieder Fehler, aufgrund der relativen Angabe und versucht dann z.B. domain.com/de/meineseite/assets/css/collection.css, deshalb würde ich das gerne anpassen.
Nein Base-Tag ist original vorhanden (Contao 3.2.5).
Edit: Aber das ist im Prinzip nicht nur bei theme_plus (oder Contao?) ein Problem sondern generell bei relativen Pfadangaben im Header. z.B. oft bei der favicon-Extension, bei der das Favicon ebenfalls relativ eingebunden war (mittlerweile nicht mehr im Einsatz).
Wollte es schnell mit einem str_replace beheben aber das will nicht, komm ich mit einem Hook dran?
Ich würde versuchen das ursprüngliche Problem zu lösen, anstatt mit str_replace herum zu pfuschen. Gibt es die Seite irgendwo online?
// Vielleicht könne ein Moderator die Posts in ein andere Kategorie verschieben, hat im Grunde doch nichts mit theme_plus zu tun.
Das war im eigentlich mein vorhaben :)
Nein ist nicht online, kurz gesagt suche ich nur einen weg um ein Slash vor den eingebundenen Dateien einzufügen.
Die URLs werden von Contao relativ generiert, auch in der Demo. --> Screenshot
Und ich möchte einfach ein Slash davor einfügen.
Wenn <base href="..."> richtig gesetzt ist, sollte das keine Probleme machen (bis auf ein paar Eigenheiten mancher Browser beim durchstöbern des Sources).
Es ist richtig gesetzt und es macht auch keine Probleme.
Wie du schreibst möchte ich die Eigenheiten der Browser umgehen, indem ich ein Slash davor setze :/
Du kannst es relativ einfach umgehen, in dem du für die Assets URL etwas einträgst im Root Knoten deiner Seitenstruktur. Ansonsten musst du dir system/modules/core/pages/PageRegular.php #524 umschreiben.
mrclay/minify ist in Verbindung mit Theme+ doch auch keine so gute Lösung. Wenn man eine solche Kette hat:dann passiert irgendwo ein Fehler in Theme+ und das resultierende CSS file ist leer. Mit dem ursprünglichen cssmin tritt das nicht auf. Genaueres habe ich noch nicht herausgefunden.PHP-Code:
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"],
foo[attr="lorem"] {
/* ... */
}