Ergebnis 1 bis 4 von 4

Thema: Accordion: Verwendung als Menü, automatisch öffnen bei "active"

  1. #1
    Contao-Nutzer
    Registriert seit
    23.11.2009.
    Beiträge
    28

    Standard Accordion: Verwendung als Menü, automatisch öffnen bei "active"

    Moin,

    Ich habe in einem Projekt mal die Flexibilität von Contao ausgenutzt. Das Ergebnis: Die Inhalte (sind alle gleich formatiert) stehen im Katalog. Aus diesem wird automatisch die Navigation generiert. Soweit so gut. Keine Probleme. Nun möchte ich erreichen, dass das Akkordeon bei jeweils "aktiven" Inhaltselement geöffnet ist/ geöffnet wird.

    Also: Link klicken > auf die Seite kommen > Accordeon ist im jeweiligen Submenu geöffnet.

    Im template kann ich die jeweils aktuelle Seite abgreifen und eine Klasse active setze, indem ich die jeweiligen Variablen abgreife und vergleiche. Auch das funktioniert.

    Code:
    <?php $currenturl='http://DOMAIN/'.$entry['url']; ?>
    <?php $currentlink='http://DOMAIN'.$GLOBALS['_SESSION']['FE_DATA']['referer']['current']; ?>
    ...
    <div class="item<?php if (($currenturl)==($currentlink)): ?> active<?php endif; ?>"><a ... ></a></div>
    Weit kann es nicht mehr sein Hat jemand einen Tipp für mich?

    Vielen Dank!

  2. #2
    Contao-Nutzer
    Registriert seit
    23.11.2009.
    Beiträge
    28

    Standard

    Ein Stück bin ich weiter. Die aktive Spezies wird an $activemenu übergeben. (Also die ID des Hauptnavigationselements). Wenn ich das richtig verstanden habe zählt moo_accordion bei 0 los und zeigt das Element an, dessen Index bei "display" angegeben wird.

    Also:

    PHP-Code:
    <?php if (($currenturl)==($currentlink)): ?>
    <?php $activemenu
    =$entry['data']['chapter']['value']; ?>
    <?php $activemenu
    =$activemenu-1?>
    <?php 
    echo "
       <script type=\"text/javascript\">
         var activemenu = \""
    .$activemenu."\";
       </script>
     "
    ?>
    <?php 
    endif; ?>
    Und in moo_accordion.tpl

    Code:
    display: activemenu,
    Lustigerweise öffnet sich das Akkordeon nun anscheinend willkürlich. Überprüft wurde, dass var activemenu den richtigen Wert bekommt.

    Edit: "Willkürlich", so scheint es mir, ist, dass der Wert der vorherigen Seite verwendet wird. Wie kann das sein? Der javascript wird zuerst aufgeführt, allerdings wird der Skript, in dem activemenu gesetzt wird durch php generiert. Ohne php komme ich an dieser Stelle allerdings nicht an den benötigten index ran?
    Geändert von jeanfredo (05.11.2012 um 08:40 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    16.01.2010.
    Ort
    bei Kaiserslautern
    Beiträge
    221

    Standard

    Hi,

    bist du mit dem Akkordeon weitergekommen? Ich stehe nämlich vor dem gleichen Problem. Oder weiß jemand von den Profis einen Rat?

    Vielen Dank schon mal im Voraus für Eure immer tolle Hilfe.
    Viele Grüße
    latscheli

  4. #4
    Contao-Nutzer
    Registriert seit
    16.01.2010.
    Ort
    bei Kaiserslautern
    Beiträge
    221

    Standard

    Tolle Lösung von Glen Langer gefunden http://www.contao.glen-langer.de/akk...en-lassen.html
    Vielen Dank.

    Mein Problem ist oder war, dass ich die Akkordeons auf der gleichen Seite habe, da ich diese über eine Image-Map ansteuere. Ich konnte dies jetzt lösen, muss aber jedesmal die Seite (zwecks Parameterübergabe) wieder neu aufrufen, was natürlich nicht so elegant ist und die Webseite verlangsamt. Leider habe ich für dieses Problem noch keine Lösung.
    Viele Grüße
    latscheli

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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