Ergebnis 1 bis 22 von 22

Thema: Eigene CSS-Klasse für Unterseiten

  1. #1
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard Eigene CSS-Klasse für Unterseiten

    Hallo zusammen,

    man kann ja in der Seitenstruktur für eine Seite eine eingene CSS-Klasse vergeben. Nun möchte ich, dass die darunterliegenden Seiten die selbe Klasse bekommen, ohne das explizit in jeder Seite eingeben zu müssen.

    Gibt es hier eine Möglichkeit? Hintergrund ist der, dass für jede Rubrik auf der Website (Karriere, Presse, etc.) ein eigenes Hintergrundbild angezeigt werden soll, das dann über

    Code:
    body.karriere {background:url("/images/hg_karriere.png") left top no-repeat;}
    eingebunden werden soll.

    Vielen Dank!
    Viele Grüße,
    closeup

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo closeup,
    das hier sollte weiter helfen -> http://de.contaowiki.org/typolight/T...heSeitenbilder

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.482
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo closeup,

    wenn Du allen Unterseiten die gleiche Klasse mitgibst klappt das. Hilfreich hierbei ist die Funktion "Mehrere Bearbeiten".
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  4. #4
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    too late
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  5. #5
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hallo,

    erstmal danke für alle Antworten. Ging ja superschnell.

    Hab mir das Tutorial von MackP durchgelesen und versucht im Seitentemplate beim body einen Insert-Tag folgendermaßen einzufügen:

    Code:
    <body id="top"<?php if ($this->class): ?> class="{{env::main_alias}}<?php echo $this->class; ?>"<?php endif; if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
    Es soll ja als Klasse jeweils der Alias der Hauptseite (also der Seite, die nach dem "Startpunkt einer Webseite" folgt) verwendet werden.

    Als Ausgabe erfolgt nun aber <body id="top" class="karrierekarriere">
    Auch wenn ich die CSS-Klasse bei den Seiteneinstellungen leer lasse.

    Irgendwie funktioniert das Ganze auch nur in der 1. Ebene. Bei den Unterseiten wird keine Klasse mehr ausgegeben.

    Hoffe, ihr könnt mir nochmal weiterhelfen.
    Viele Grüße,
    closeup

  6. #6
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo closeup,
    mach erst mal ein leerzeichen an die Stelle -> class="{{env::main_alias}} <?php echo $this->class; ?>"

    Dann steht der main_alias schon mal alleine.

    Es sollte aber eigentlich dann überall ein Main Alias ausgegeben werden...
    Wenn nicht: hast du vllt noch ein anderes Seitentemplate in Benutzung?

    Und: kann man sich das direkt mal live ansehen ?

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst auch folgendes in dein Template schreiben. Die ID der Hauptseite ist hier 9.
    PHP-Code:
    //
    <body id="top" class="<?php echo $GLOBALS['objPage']->id == || $GLOBALS['objPage']->pid == 'meineKlasse '.$this->class 'keineKlasse '.$this->class?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload?>"<?php endif; ?>>
    Andreas

  8. #8
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hi,

    also, mit der Lösung von Andreas geht es nun auch für die Unterseiten.
    Nur habe ich insgesamt 7 Hauptseiten. Wie bekomme ich das in das Template?
    Ich möchte ungern für jede Hauptseite ein eigenes Template anlegen.

    Thanks!
    Viele Grüße,
    closeup

  9. #9
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo closeup,
    wenn du noch kein Seitentemplate gemacht hast kann das auch nicht wirklich funktionieren...
    Einfach die fe_page.tpl aus /system/modules/frontend/templates/ nach /templates kopieren und die kopie wie beschrieben abändern.

    Wenn mein Vorschlag nicht funktioniert hast du noch was falsch gemacht oder andere Probleme...
    Ich hab diese Methode mehrfach in Benutzung.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst auch folgendes im Template benutzen. Ist aber jetzt erstmal nur für 1 Unterlevel, war mein erster Vorschlag ja auch.
    PHP-Code:
    </head>
    <?php
      $arrMainpage 
    = array(9,8,7,6); # IDs der Hauptseiten
      
    $ID $GLOBALS['objPage']->id;
      
    $PID $GLOBALS['objPage']->pid;
      
    $class 'page';
      
    $spacer $this->class ' ' '';
      foreach(
    $arrMainpage as $mainID) {
        if(
    $PID == $mainID || $ID == $mainID) {
          
    $class .= '_'.$mainID.$spacer.$this->class;
          break;
        }
      }
    ?>
    <body id="top" class="<?php echo $class?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload?>"<?php endif; ?>>
    Andreas

  11. #11
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    @MacKP: Hm, ich hatte das schon genau so gemacht, wie von dir beschrieben. Habe auch nur ein Template in Benutzung. Das fe_page.tpl nur unter anderem Namen gespeichert, den Code eingefügt und dann eben beim Seitenlayout zugewiesen. fe_page ist zwar noch in der Auswahlliste vorhanden, wird aber nirgends zugewiesen.

    @Andreas: Die Seite hat 4 Unterlevel. Ist das kompliziert, das auf 4 Unterlevel zu erweitern? Kenne mich mit PHP so gut wie gar nicht aus.

    Danke für die Hilfe.
    Viele Grüße,
    closeup

  12. #12
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo closeup,
    kopier mir doch noch mal eben was du genau gemacht hast (mit dem inserttag).
    Das kann nicht sein das es nicht funktioniert. Es sei denn du benutzt eine so alte TL Version das es noch nicht unterstützt wird.
    Hast du den Inserttag denn per Hand abgeschrieben?

    Das php Konstrukt ist ja schon und gut das es irgendwie funktioniert.. aber so eine Masse Code ist ja garn nicht nötig und wie wir merken für dich selber auch nicht wirklich pflegbar.

    Hast du vllt die Seiten gecachet gehabt und deswegen noch nicht das Ergebniss vom Inserttag gesehen?

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  13. #13
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hi,

    folgendes habe ich im body-tag des Templates eingefügt:

    Code:
    <body id="top"<?php if ($this->class): ?> class="{{env::main_alias}} <?php echo $this->class; ?>"<?php endif; if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
    Am Insert-Tag selbst liegt es nicht. Die Ausgabe ist in der 1. Ebene ja korrekt (Beispiel für die Seite "Karriere", steht noch 2x da, weil auch im BE die Klasse .karriere zugewiesen wurde):

    Code:
    <body id="top" class="karriere karriere">
    Ab der 2. Ebene steht dann nur noch:

    Code:
    <body id="top">
    Nachtrag: cache hab ich jetzt mal gelöscht, daran lag es nicht.
    Viele Grüße,
    closeup

  14. #14
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ha, ich habs...
    das ist ja bei dir in der Abfrage drinn das wenn ne Klasse angegeben wurde erst diese Ausgabe kommt.
    Ein wenig umbauen ist doch noch nötig ->
    Code:
    <body id="top" class="{{env::main_alias}}<?php if ($this->class): ?> <?php echo $this->class; ?><?php endif; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
    Oder du nimmst das direkt in die id vom body.. ist ja eh nur einmal auf der Seite vorhanden ;-)

    Viele Grüße
    Geändert von MacKP (17.12.2009 um 11:59 Uhr)
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  15. #15
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hi,

    nun bekomme ich ein PHP Error:

    Parse error: syntax error, unexpected $end in /usr/local/serv/www/www.domain.de/data/templates/fe_takkt.tpl on line 94

    Seltsamerweise ist der Error immer noch vorhanden, wenn ich das body-tag wieder zurücksetzte, also so wie es in der fe_page.tpl drinsteht.

    In Zeile 94 steht das schließende HTML-Tag </html>
    Viele Grüße,
    closeup

  16. #16
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ups sorry... hatte noch das eine if zu viel drinn....
    Habs berichtigt.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  17. #17
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Vielen herzlichen Dank! Jetzt geht alles. Zum Glück gibt es Leute, die besser PHP können als ich.
    Viele Grüße,
    closeup

  18. #18
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo MackKP,

    meine Lösung habe ich so angesetzt, weil deine bei mir nicht funktioniert. Meine Struktur:
    Startpunkt
    --Menü1(Weiterleitung)
    ----Seiten
    --Menü2(Weiterleitung)
    ----Seiten

    In diesem Fall bekomme ich bei deiner Lösung auf allen Seiten class="Menü1" bzw. Menü2.

    Sollte noch jemand die Lösung mit mehreren Levels brauchen, kann er mich ruhig ansprechen. Ich brauch's nicht und spar mir die Zeit erstmal.

    Andreas

  19. #19
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hallo nochmal,

    habe ja die Lösung von MacKP in Verwendung. Nun bin ich dabei neben der deutschen Website eine englische Sprachversion zu erstelllen.
    Dabei verwende ich die Erweiterung changelanguage und möchte in der URL-Struktur jeweils "de" oder "en" einbauen also z.B. www.domain.de/de/karriere.html oder www.domain.de/en/career.html

    Da ich dann beim Seitenalias "de/karriere" bzw. "en/karriere" angeben muss, heißt meine Klasse für den body auch "de/karriere" ...

    Das lässt sich ja nun mit CSS nicht ansprechen, so dass ich für den main_alias nun irgendwas anderes definieren müsste, z.B. de_karriere, dann würde es gehen. Mann hat aber nicht mehr die gewünschte URL-Struktur.

    Wisst ihr da noch eine Möglichkeit wie man das lösen könnte?

    Vielen Dank und Grüße
    Viele Grüße,
    closeup

  20. #20
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Jetzt mal ohne viel Nachdenken, ob das Sinn macht, oder es eine einfachere Lösung gibt. Probier mal:
    PHP-Code:
    <?php echo str_replace('/''_'$this->replaceInsertTags'{{env::main_alias}}' )); ?>
    an der Stelle wo jetzt nur {{env::main_alias}} steht.

    oder auch
    PHP-Code:
    ...str_replace(array('de/''en/'), ''$this->replaceInsertTags(... 
    wenn du das de/ und en/ ganz entfernen möchtest.

    Andreas

  21. #21
    Contao-Nutzer
    Registriert seit
    24.11.2009.
    Ort
    Stuttgart
    Beiträge
    98

    Standard

    Hallo Andreas,

    super, habe jetzt die untere Variante probiert und die funktioniert perfekt.
    Vielen, vielen Dank! Ich bin echt begeistert.

    Viele Grüße und einen "guten Rutsch" ins neue Jahr.
    Viele Grüße,
    closeup

  22. #22
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das freut mich, dir und allen anderen auch einen angenehmen Übergang ins neue Jahrzehnt.

    ps Die ober Variante müsste auch funktionieren, kommt halt drauf an, was man möchte.

    Andreas

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 3 (Registrierte Benutzer: 0, Gäste: 3)

Ähnliche Themen

  1. Seitenstruktur - Klasse an Unterseiten vererben
    Von thepixture im Forum Layout / Templates / Holy Grail
    Antworten: 29
    Letzter Beitrag: 16.02.2015, 17:00
  2. Unterseiten in URL
    Von Dora im Forum Sonstiges zu Contao
    Antworten: 2
    Letzter Beitrag: 24.08.2010, 15:45
  3. Jedem Listeneintrag in einem Artikel eigene Klasse zuweisen.
    Von zinky im Forum Allgemeine Inhaltselemente
    Antworten: 0
    Letzter Beitrag: 12.06.2010, 17:00
  4. TL um eigene Klasse erweitern - richtig/falsch
    Von timbugto im Forum Entwickler-Fragen
    Antworten: 8
    Letzter Beitrag: 26.04.2010, 10:17
  5. Antworten: 0
    Letzter Beitrag: 08.01.2010, 18:13

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •