Dynamisch css-Klasse für body-Tag vergeben

Gesperrt
bodil
Beiträge: 340
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Dynamisch css-Klasse für body-Tag vergeben

Beitrag von bodil » Do 18. Jul 2013, 12:24

Im HTML-Code von anderen CMS habe ich gesehen, dass dem Body-Tag je nach Seite unterschiedliche css-Klassen hinzugefügt werden. Sowas hätte ich gerne auch in meinem Contenido. Am besten einfach den Name des gerade verwendeten Templates. Das würde mir das Handling mit der css-Datei sehr vereinfachen.
Jetzt ist das natürlich möglich, ich muss nur für jedes Template ein eigenes Layout anlegen. Aber das ist ja nicht Sinn der Übung (bzw. des Konzepts des CMS).
Man könnte auch das öffnende body-Tag durch einen Container ersetzten und diesen durch ein Modul dynamisch befüllen. Dann bekomme ich »Stress« beim Abspeichern des Layouts, weil das (ausgeschriebene) body-Tag fehlt.
Hatte sonst schon mal jemand dieses Problem und ne praktikable Lösung dafür gefunden?
Für Ideen dankbar grüßt
Bodil

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Spider IT » Do 18. Jul 2013, 13:52

Hallo bodil,

du bist der Lösung schon so nahe, schaust aber daran vorbei.
Der Container muss nicht das body-Anfangstag ersetzen, sondern nur den Namen der Klasse:

Code: Alles auswählen

<body class="<container id="11" types="Style" mode="fixed" name="BodyClass" default="BodyClass">BodyClass</container>">
(vorausgesetzt dein Modul heißt "BodyClass" und ist vom Typ "Style")

Gruß
René

bodil
Beiträge: 340
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von bodil » Do 18. Jul 2013, 22:59

Hi René!
Vielen Dank für diesen Vorschlag! Probiere ich gleich aus.
Hätte ich vielleicht auch gleich gemacht, aber ich meinte mich von früheren Contenido-Versionen daran erinnern zu können, dass irgendwas anderes zickt, wenn das Container-Tag nicht alleine in der Zeile (oder zumindest am Anfang der Zeile) steht.
Dank und Gruß!
Bodil

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Spider IT » Fr 19. Jul 2013, 07:45

Nein, da gibt es keine Probleme, nur muss das komplette container-Tag in eine Zeile stehen (also keine Umbrüche innerhalb des Tags).

Gruß
René

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von xmurrix » Fr 19. Jul 2013, 11:16

@bodil: Du kannst auch den Container so erstellen, dass es gleich den body-Tag ausgibt, anstatt nur den Wert im class-Attribut, wäre auch etwas leserlicher:

Code: Alles auswählen

<container id="11" types="Tag" mode="fixed" name="BodyStartTag" default="BodyStartTag">BodyStartTag</container>
Es spricht auch nichts gegen die andere Lösung, die funktioniert auch...

Nachtrag:
...Man könnte auch das öffnende body-Tag durch einen Container ersetzten und diesen durch ein Modul dynamisch befüllen. Dann bekomme ich »Stress« beim Abspeichern des Layouts, weil das (ausgeschriebene) body-Tag fehlt...
Die Meldung mit dem fehlenden body-Tag im beim Abspeichern des Layouts kann ignoriert, werden. Das kriegt man auch, wenn man z. B. reine AJAX-Layouts umsetzt, die kein HTML ausgeben. Es ist eher als ein Hinweis zu verstehen!

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Spider IT » Fr 19. Jul 2013, 11:52

Moin Murat,

wenn du die Frage genauer ließt, siehst du, dass genau das das Problem ist.
Du solltest nicht nur versuchen meine Antworten zu kommentieren.

Gruß
René

Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Horst1234 » Di 5. Nov 2013, 10:45

Guten Tag,
ich habe gerade versucht, den ersten Codeschnipsel in ein Layout einzubauen:
<body class="<container id="11" types="Style" mode="fixed" name="BodyClass" default="BodyClass">BodyClass</container>">
Zum Einen taucht dann aber im Template gar kein Container 11 auf, zum Anderen kann ich im Modulbereich gar keinen type "Style" anwenden.
Hat eines mit dem anderen zu tun?
Grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von xmurrix » Di 5. Nov 2013, 11:31

Horst1234 hat geschrieben:ich habe gerade versucht, den ersten Codeschnipsel in ein Layout einzubauen:
<body class="<container id="11" types="Style" mode="fixed" name="BodyClass" default="BodyClass">BodyClass</container>">
Zum Einen taucht dann aber im Template gar kein Container 11 auf, zum Anderen kann ich im Modulbereich gar keinen type "Style" anwenden....
Willst du das Modul im Template editieren?
Dann mach folgendes:

Im Layout:

Code: Alles auswählen

<container id="11" types="Style" mode="fixed" name="BodyClass" default="BodyClass">BodyClass</container>
<body class="<?php if (!$contenido && !$edit) { echo (isset($bodyClassValue)) ? $bodyClassValue : ''; } ?>">
Und im Modul kannst du folgendes machen:

Code: Alles auswählen

<?php

$bodyClassValue = "CMS_TEXT[1]";

if ($contenido && $edit) {
    echo $bodyClassValue;
}

?>
So sollte es gehen...

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Horst1234 » Di 5. Nov 2013, 12:22

Hallo Murrix,
danke für die schnelle Antwort, im Template konnte ich das modul einbauen,
aber schon in der Vorkonfiguration tacht es nicht mehr auf ...
Rufe ich die Seite mit dem erneuerten Template auf, finde ich in der Konfiguration den Container nicht, leider habe ich nun im Editor:
Parse error: syntax error, unexpected T_STRING in /usr/www/xyz/contenido/includes/include.con_editcontent.php(634) : eval()'d code on line 203
Grüße aus Bremen,
Horst
p.sp nutze 4.8.18
Zuletzt geändert von Horst1234 am Di 5. Nov 2013, 12:29, insgesamt 1-mal geändert.
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von xmurrix » Di 5. Nov 2013, 12:29

Mein Fehler, es sollte folgendermaßen lauten:

Code: Alles auswählen

<body class="<?php echo (isset($bodyClassValue)) ? $bodyClassValue : ''; ?>">
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Horst1234 » Di 5. Nov 2013, 14:21

Danke Murrix,
klappt perfekt, vielen Dank. Ein kleiner Schönheitsfehler: in der Editoransicht tauchen nun zwei Bearbeitungsbuttons nebeneinander auf,
der zweite davon ist inaktiv, der erste führt zur Eingabe. Gibt es nun noch einen Trick, den Zweiten auszublenden?

By the way: ich arbeite nun seit bestimmt fünf Jahren mit Contenido, habe bestimmt schon drei, vier Dutzend Installationen für Kunden laufen
und bin nicht immer ganz, aber meistens doch sehr zufrieden. Was mich aber echt umhaut, ist dieses Forum: ein ganz, ganz großes Lob
an das Moderatorenteam von Contenido :D :D :D .


Grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von xmurrix » Di 5. Nov 2013, 14:56

Gute, immer noch ein Fehler im Beispielccode...

Aber das da sollte endgültig funktionieren:

Code: Alles auswählen

<body class="<?php if (!$contenido && !$edit) { echo (isset($bodyClassValue)) ? $bodyClassValue : ''; } ?>">
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Horst1234
Beiträge: 366
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Dynamisch css-Klasse für body-Tag vergeben

Beitrag von Horst1234 » Di 5. Nov 2013, 15:16

Danke xmurrix,
nun klappt es perfekt,
Grüße,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

Gesperrt