Menü: sind weitere Unterseiten vorhanden?

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • drefsa
    Contao-Nutzer
    • 25.06.2009
    • 186

    #1

    Menü: sind weitere Unterseiten vorhanden?

    Kann sein, daß ich wieder fürchterlich auf dem Schlauch stehe...
    Angenomme ich habe ein Menü, von dessen Seiten einige, aber nicht alle (!) Unterseiten haben.
    Folgende Frage:
    Wie oder wo muß ich das nav_default ändern, damit ich bei den Seiten mit Kindern einen Tag bekomme den ich per CSS ansprechen kann?
    Das gilt natürlich nur bei Start = Stoplevel und no hard-limit.
    Sowie eine Seite mit Kindern offen ist gibt es submenu. Was mir gerade fehlt ist ein "has-submenu".
    Ich hoffe jemand hat eine Idee?
    Danke und Gruß!
    Grüße
    drefsa
  • Antipitch
    Contao-Nutzer
    • 22.06.2009
    • 217

    #2
    Hi drefsa,
    nicht schön, aber du könntest das im Template per PHP machen. Ungefähr:
    PHP-Code:
    if ($item['subitems'])
    {
        <li class="kids"...
    } else {
         <li ...
    } 
    

    cheers
    Antipitch
    "Some people, when confronted with a problem, think 'I know, I’ll use regular expressions.' Now they have two problems." Jamie Zawinski

    Kommentar

    • drefsa
      Contao-Nutzer
      • 25.06.2009
      • 186

      #3
      Danke für den Schubser Antipitch.
      Ich mache mich mal dran und melde ggf wieder.
      Grüße
      drefsa

      Kommentar

      • Sebastian
        Contao-Urgestein
        • 19.06.2009
        • 3361

        #4
        HI

        eigentlich gibt es da schon die Klasse "submenu", sodass du da nur noch das passende CSS brauchst:

        Code:
        .mod_navigation li.submenu {
         /* Das spricht Punkte mit Unterpunkten an */
        }
        Sebastian
        Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

        Kommentar

        • drefsa
          Contao-Nutzer
          • 25.06.2009
          • 186

          #5
          Hallo Sebastian,
          die .submenu nutze ich eifrig.
          Allerdings ist sie bei mir nur vorhanden, wenn die Seite aktiv ist und nicht wenn sie eine unter vielen ist.
          Ich erkenne bei nicht-aktiver Seite in der ul des Navis also nicht, ob eine Seite Unterseiten ("Kinder") hat oder nicht.
          Ich möchte also das Template so ändern, daß ich immer eine ".Hat-Kinder"-Klasse habe, egal ob aktiv oder nicht.

          Oder habe ich bei den Menüeinstellungen was übersehen?

          [Habe ganz vergessen zu erwähnen: natürlich kann ich den Seiten mit Kindern eine eigene CSS-Klasse mitgeben. Aber ob das meine Redakteure nach einigen Monaten noch wissen?]
          Zuletzt geändert von drefsa; 09.08.2009, 00:15.
          Grüße
          drefsa

          Kommentar

          • Sebastian
            Contao-Urgestein
            • 19.06.2009
            • 3361

            #6
            HI

            seltsam. Bei mir hat jedes <li> mit Unterseiten, egal ob aktiv oder nicht, die Klasse "submenu". Verwendest du das originale Template nav_default.tpl?

            Verantwortlich dafür ist

            PHP-Code:
            <?php echo $item['class']; ?>
            Sebastian
            Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

            Kommentar

            • drefsa
              Contao-Nutzer
              • 25.06.2009
              • 186

              #7
              Hallo Sebastian,
              ja ich verwende (noch) das Original. Typolight Cache geleert, Browser geleert.
              Hier mal wie das bei mir erscheint:
              HTML-Code:
              <ul class="level_1">
              	<li class="submenu trail first"><a href="index.php/irgendwas.html" title="irgendwas" class="submenu trail first" onclick="this.blur();">irgendwas</a>
              	<ul class="level_2">
              	<li class="first"><a href="index.php/irgendwas-u1.html" title="irgendwas-u1" class="first" onclick="this.blur();">irgendwas-u1</a></li>
              	<li class="active last"><span class="active last">irgendwas-u2</span></li>
              	</ul>
              </li>
              <li><a href="index.php/nochwas.html" title="nochwas" onclick="this.blur();">nochwas</a></li>
              <li><a href="index.php/nochmehr.html" title="nochmehr" onclick="this.blur();">nochmehr</a></li>
              <li><a href="index.php/ueber-uns.html" title="Über uns" onclick="this.blur();">Über uns</a></li>
              <li class="last"><a href="index.php/mitgliederbereich.html" title="Mitgliederzugang" class="last" onclick="this.blur();">Mitgliederzugang</a></li>
              </ul>
              Die Seite "Über uns" hat drei Unterseiten...
              Hat Du Start = Stoplevel eingestellt in Deinem Menü?
              Grüße
              drefsa

              Kommentar

              • Sebastian
                Contao-Urgestein
                • 19.06.2009
                • 3361

                #8
                HI

                ach, das meinst du. Ja, wenn keine Unterseiten im Menü eingeblendet sind, wird die Klasse auch nicht hinzugefügt. Das ist in der Tat ein Problem. Entschuldigung, das habe ich nicht verstanden.

                Vielleicht kannst du einen Feature-Request stellen, damit Leo das einbaut, oder du benutzt eben den oben erwähnten Hack.

                Ich würde da ein Ticket eröffnen (aber vorher suchen)...

                Sebastian
                Ich arbeite beim Linux-Systemhaus ETES in Stuttgart

                Kommentar

                • Andreas
                  Contao-Urgestein
                  • 19.06.2009
                  • 7709

                  #9
                  CSS-Klasse für Listenpunkte mit Unterseiten

                  Hallo drefsa,

                  hast du oder jemand anderes jetzt einen Feature-Request dazu geschrieben, sonst mach ich das jetzt?

                  Oder hast du eine simple Lösung?

                  Andreas

                  Hab das Feature Request jetzt erstellt
                  Zuletzt geändert von Andreas; 17.09.2009, 22:21. Grund: Feature Request erstellt
                  Bitte!
                  Vor Anfragen im Forum HTML validieren.
                  Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                  Vielen Dank an alle Wunschlistenerfüller
                  Andreas Burg, Web Solutions

                  Kommentar

                  • drefsa
                    Contao-Nutzer
                    • 25.06.2009
                    • 186

                    #10
                    Hallo Andreas,
                    zweimal nein:
                    - ich habe noch kein Feature Request gestellt
                    - und ich habe noch keine simple Lösung gefunden. Vor allem, weil ich nun endlich auch mal ein paar Tage völlig ohne Internet und Handy verleben durfte. Ganz neues Gefühl
                    Ich habe mal recherchiert und auf die Schnelle nichts gefunden - aber das will nichts heißen!!
                    Wenn Du willst stelle ihn mal. Wir werden ja sehen...
                    Danke und Gruß

                    [Edit: Da warst Du wohl schneller -als meine Antwort. Ich habe den Thread nicht mehr gelesen, sonder nur auf die Mail reagiert. Fehler....]
                    Grüße
                    drefsa

                    Kommentar

                    • atomiq
                      Contao-Nutzer
                      • 09.12.2009
                      • 6

                      #11
                      Hallo zusammen,

                      hat schon jemand eine Lösung für dieses Problem gefunden?

                      Ich habe eine Navigation mit 3 Ebenen und folgendes gesetzt:

                      Start Level = 0
                      Stop Level = 1
                      Hard Limit = aus

                      Punkt 1
                      Punkt 1.1
                      Punkt 1.2 < .active
                      Punkt 1.3 < kein .submenu
                      (Punkt 1.3.1)
                      (Punkt 1.3.2)

                      Wenn der Punkt 1.2 aktiv ist, dann hat 1.3 kein class="submenu ...".

                      Ich hab das Template folgendermaßen geändert:

                      Code:
                      <ul class="<?php echo $this->level; ?>">
                        <?php foreach ($this->items as $item): ?>
                          <?php if ($item['isActive']): ?>
                            <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li>
                          <?php else: ?>
                      [B]      <?php if ($item['subitems']): ?>
                              <li<?php if ($item['class']): ?> class="submenu <?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
                            <?php else: ?>[/B]
                              <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?> onclick="this.blur();<?php echo $item['target']; ?>"><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
                            <?php endif; ?>
                          <?php endif; ?>
                        <?php endforeach; ?>
                      </ul>
                      Das funktioniert nicht, weil die $item['subitems']) für Punkt 1.3 nicht gefüllt ist.

                      Bin für jeden Ansatz dankbar

                      Danke und Gruß
                      atomiq

                      Kommentar

                      • drefsa
                        Contao-Nutzer
                        • 25.06.2009
                        • 186

                        #12
                        Schätze wir brauchen noch ein paar Tage Geduld - die 2.8 naht und Leo hat sich bereits gekümmert Danke auch!
                        Link auf dev.typolighht.org .
                        hilft Dir das?
                        Gruß!
                        Grüße
                        drefsa

                        Kommentar

                        • Andreas
                          Contao-Urgestein
                          • 19.06.2009
                          • 7709

                          #13
                          Zitat von atomiq Beitrag anzeigen
                          Wenn der Punkt 1.2 aktiv ist, dann hat 1.3 kein class="submenu ...".
                          Hallo atomiq,

                          das war ja gerade das Problem. Das Template liefert $item['subitems'] in der foreach Schleife erst dann, wenn es bereits gerendert ist. Ab TL 2.8.RC2 kannst du wie in dem besagten Ticket beschrieben $item['subpages'] abfragen.

                          Ich habe die Lösung gerade ausgearbeitet und werde die Anwendung dessen im Template nav_default.tpl gleich in einem Tutorial hier im Forum veröffentlichen. Das ist meine ich der beste Ort dafür. Also ein wenig Geduld, dürfte nicht lange dauern. Ich melde mich dann hier wieder.

                          Gruß Andreas
                          Bitte!
                          Vor Anfragen im Forum HTML validieren.
                          Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                          Vielen Dank an alle Wunschlistenerfüller
                          Andreas Burg, Web Solutions

                          Kommentar

                          • Andreas
                            Contao-Urgestein
                            • 19.06.2009
                            • 7709

                            #14
                            Hinweis auf Tutorial zur Lösung

                            So, das Tutorial ist fertig:

                            Eine CSS-Klasse generieren für Seiten mit Unterseiten (hasSub)

                            Andreas
                            Bitte!
                            Vor Anfragen im Forum HTML validieren.
                            Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                            Vielen Dank an alle Wunschlistenerfüller
                            Andreas Burg, Web Solutions

                            Kommentar

                            • atomiq
                              Contao-Nutzer
                              • 09.12.2009
                              • 6

                              #15
                              Hallo an alle,

                              2 Tage mal ohne TypoLight - daher erst jetzt meine Antwort

                              Danke, danke, danke! Ihr habt mir sehr geholfen.

                              Bis demnächst...

                              atomiq

                              Kommentar

                              Lädt...