Seite 1 von 1
[SOLVED] CSS der Module nach anderen CSS-Styles inklud.
Verfasst: Fr 16. Mai 2014, 16:34
von rethus
Derzeit ist es so, dass wenn ich bei einem Modul im Tab CSS Inhalte einfüge, dass dies dann in der Ausgabedatei (Dateiname= Template.css) eingefügt wird … ALLERDINGS direkt als aller erstes Stylesheet im <head>-Bereich, hinter dem <title>-Tag.
Das macht nicht viel sinn, da es für ein Modul notwendig sein kann, das default-Style der Page für bestimmte Tags zu überlagern.
Daher mein Wunsch: Bitte fügt das aus den Modulen generierte CSS ganz am ende des <head>-Bereichs vor dem schließenden <head>-Tag ein.
BTW. Für JS wäre es auch Sinnvoll. Hier vielleicht sogar noch eine weitere Option (checkbox), dass man es vor dem schließenden <body>-Tag ausgeben kann.
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Fr 16. Mai 2014, 20:38
von Oldperl
Wieso? Das geht doch schon. Du kannst über Platzhalter im Layout steuern wo die CSS- und JS-Datei für das Layout hin soll. Schau mal in die Entwicklerdoku.
Gruß aus Franken
Ortwin
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Mi 21. Mai 2014, 11:52
von rethus
Mhh, davon hab ich noch nie gehört, das dies geht. Auch ein Blick in die Entwicklerdoku hat mich nicht weitergebracht.
Sende doch mal nen Deeplink in die Entwicklerdoku der darauf verweist.
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Mi 21. Mai 2014, 13:15
von Oldperl
Upss, nein, steht wohl wirklich nicht in der Doku.
Geht aber dennoch bereits per Platzhalter in der 4.9. Da wird wohl auch irgendwann eine Doku dazu folgen.
Gruß aus Franken
Ortwin
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Mo 26. Mai 2014, 13:22
von rethus
Wenn du weißt, wie es geht, sei bitte so nett, und poste es hier kurz. So können alle bis dahin darauf zurückgreifen.
Mir ist diese Funktion komplett unbekannt.
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Mi 28. Mai 2014, 10:01
von mischa.holz
Die Platzhalter, die im Layout dafür benutzt werden können sind {CSS} und {JS}.
Sind diese nicht vorhanden wird CSS entweder nach dem title tag oder nach dem öffnenden head tag eingesetzt.
JS wird bereits vor dem schließenden body Tag inkludiert.
class.code.generator.standard.php (Zeile 182ff)
Aber ja, das sollte definitiv auch irgendwo in der Doku auftauchen und kommt auf die Todo Listen (die Dokumentation ist immer noch sehr ausbaufähig...)
Re: [WISH] CSS der Module nach allen anderen CSS-Styles inkl
Verfasst: Fr 6. Jun 2014, 09:34
von rethus
Super, danke.
Tolles Feature. Aber schade um die Arbeit, wenn mangelnds Dokumentation nie jemand erfährt, das dies möglich ist

Habe es nun mal in der Doku ergänzt.
Nun ja, nun haben die User zumindest auf Basis dieses Postings die Möglichkeit es heraus zu finden.
Gibt es noch mehr geheime Funktionen / und Platzhalter, die noch nicht dokumentiert sind?
Re: [SOLVED] CSS der Module nach anderen CSS-Styles inklud.
Verfasst: Di 15. Jul 2014, 14:52
von rethus
Gibt es so etwas nicht auch für die MetaTags, die ja auch von Contenido automatisch generiert werden.
Ich hätte die gerne mit oben bei den anderen stehen, anstatt vor dem schließenden Head-Tag.
Re: [SOLVED] CSS der Module nach anderen CSS-Styles inklud.
Verfasst: Mi 16. Jul 2014, 11:34
von mischa.holz
Für Meta Tags ist das noch nicht möglich, diese werden immer vor dem schließenden head-Tag eingefügt. Es sollte aber nicht besonders kompliziert sein, dort ähnliche Logik einzubauen...
Hier ist ein Link zu dem Ticket:
https://issues.contenido.org/browse/CON-1875
Re: [SOLVED] CSS der Module nach anderen CSS-Styles inklud.
Verfasst: Di 7. Mär 2017, 20:32
von McHubi
N'Abend!
Ja, das Thema ist schon was älter hier. Dennoch, um das Ganze mal zu vervollständigen und zu fragen, ob das Folgende so korrekt ist, meine Anpassung in der Datei
root/contenido/classes/code_generator/class.code.generator.standard.php:
Code: Alles auswählen
// add module CSS at {CSS} position, after title
// or after opening head tag
/*
if (strpos($this->_layoutCode, '{CSS}') !== false) {
$this->_layoutCode = cString::iReplaceOnce('{CSS}', $cssFile, $this->_layoutCode);
} else if (!empty($cssFile)) {
if (strpos($this->_layoutCode, '</title>') !== false) {
$matches = array();
preg_match_all("#(<head>.*?</title>)(.*?</head>)#si", $this->_layoutCode, $matches);
$this->_layoutCode = cString::iReplaceOnce($matches[1][0], $matches[1][0] . $cssFile . $matches[1][1], $this->_layoutCode);
} else {
$this->_layoutCode = cString::iReplaceOnce('<head>', '<head>' . $cssFile, $this->_layoutCode);
}
}
*/
if (strpos($this->_layoutCode, '{CSS}') !== false) {
$this->_layoutCode = cString::iReplaceOnce('{CSS}', $cssFile, $this->_layoutCode);
} else if (!empty($cssFile)) {
$this->_layoutCode = cString::iReplaceOnce('</head>', $cssFile . '</head>', $this->_layoutCode);
}
Funktioniert, aber passt das? Bedenken außer, "wird bei nem Update vermutlich überschrieben da Core-Datei"?
Danke euch für ein kurzes Feedback...
