Ergebnis 1 bis 21 von 21

Thema: [gelöst] Seitenwechsel per Select-Menü?

  1. #1
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Frage [gelöst] Seitenwechsel per Select-Menü?

    Hallo zusammen!

    Bietet Contao (2.9.1) die Möglichkeit, verschiedene Seiten perSelect-Menü aufrufen? Zum Beispiel wie hier:

    http://www.rb-filter.de/filterpatronen_115mm.html
    Über das Select-Menü können unterschiedliche Produktseiten geladen werden.

    Beim Formular-Element "Select-Menü" kann ich keine OnChange-Funktion hinterlegen, oder? Und ist es möglich, einen Insert-Tag als Options-Wert zu nehmen?

    Danke und Grüße,
    Andreas
    Geändert von comanche (18.08.2010 um 14:31 Uhr)

  2. #2
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Mit der individuellen navigation dürfte das zu realisieren sein.
    Kein Privat Support via PM.

  3. #3
    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

    Oder der Quicklink Navigation (dazu eventuell einfach nen extra Ast mit Weiterleitungen einrichten).

    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."

  4. #4
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Danke für die Antworten.

    Also quasi ein eigenes Navigationstemplate anlegen, das mir die gewünschte Ebene als Optionen eines Selectmenüs ausgibt? Verstehe ich das richtig?

    Einen zusätzlichen Ast mit Weiterleitungen möchte ich gerne vermeiden (verstehe auch nicht die Notwendigkeit?).

    Danke und Gruß,
    Andreas

  5. #5
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Du kannst ein Modul vom Typ individuelle Naviagation anlegen dort kannst du dann auf die jeweiligen Seiten linken.
    Kein Privat Support via PM.

  6. #6
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo Andreas,

    Du willst ein select-Menü, daher kommen die Module Quicknavigation oder Quicklink in die engere Auswahl (siehe Contao Frontend-Module).

    Welches das Richtige ist, hängt dann von der Struktur Deiner Seite ab.
    Geändert von kos (18.08.2010 um 14:14 Uhr) Grund: Tippfehler

  7. #7
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Vielen Dank für eure schnellen Antworten! Das geht ja echt fix

    Bei "Quicklink" und "Quicknavigation" muss ich nach Auswahl erst eine Schaltfläche drücken, um zur ausgewählten Seite zu kommen.

    Ich habe es nun mal mit einem angepassten Template probiert, das mir ein Select-Menü erstellt. Das funktioniert auch soweit, jedoch möchte ich gerne den Seitenalias anstatt pageTitle ausgeben lassen. pageAlias funktioniert nicht. Wie lautet denn die korrekte Syntax für den Seitenalias?

    Code:
    <form name="auswahl">
     <select name="produktauswahl" onChange="JumpTo('parent',this,0)" size="1">
     <?php foreach ($this->items as $item): ?>
     <option value="<?php echo $item['pageTitle'] ?>"<?php if ($item['isActive']): ?> selected<?php endif; ?>><?php echo $item['title'] ?></option>
    <?php endforeach; ?>
     </select>
     </form>
    Grüße,
    Andreas

  8. #8
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Dürfte per Insert-Tag lösbar sein: {{env::page_alias}}


    EDIT: Gibt es eine Möglichkeit, beim Einfügen von Inserttags zu verhindern, dass darin ein smiley anstelle von ":" erscheint?
    Geändert von xchs (18.08.2010 um 14:36 Uhr)

  9. #9
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Zitat Zitat von kos Beitrag anzeigen
    Dürfte per Insert-Tag lösbar sein: {{env:age_alias}}
    Danke für den Tipp, aber innerhalb der Schleife müsste ich ja
    Code:
    $item['{{env::page_alias}}']
    ausgeben und da funktioniert ein Insert-Tag nicht.

    Grüße,
    Andreas

  10. #10
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Ok, hab's selbst herausgefunden. Die korrekte Syntax für den Seitenalias ist schlicht alias

    So funktioniert's also jetzt:

    Code:
    <form name="auswahl">
     <select name="produktauswahl" onChange="JumpTo('parent',this,0)" size="1">
     <?php foreach ($this->items as $item): ?>
     <option value="<?php echo $item['alias'] ?>.html"<?php if ($item['isActive']): ?> selected<?php endif; ?>><?php echo $item['title'] ?></option>
    <?php endforeach; ?>
     </select>
     </form>
    Danke nochmal an alle

  11. #11
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Würdest Du Dein Template öffentlich machen, damit auch Andere ggf. damit arbeiten können?

  12. #12
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.559
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von comanche Beitrag anzeigen
    Bei "Quicklink" und "Quicknavigation" muss ich nach Auswahl erst eine Schaltfläche drücken, um zur ausgewählten Seite zu kommen.
    Wenn ich mich nicht irre, muss das aus Gründen der Zugänglichkeit so sein...

    Zitat Zitat von kos Beitrag anzeigen
    EDIT: Gibt es eine Möglichkeit, beim Einfügen von Inserttags zu verhindern, dass darin ein smiley anstelle von ":" erscheint?
    Ich füge zwischen den Doppelpunkten und dem nächsten Zeichen (in Deinem Fall das "p") einfach einen Foren-Code ein (z.B. Bold), dann klappt das auch mit der korrekten Anzeige...
    Hab oben Deinen Beitrag entsprechend korrigiert!
    Geändert von xchs (18.08.2010 um 14:41 Uhr)
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  13. #13
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kos Beitrag anzeigen
    EDIT: Gibt es eine Möglichkeit, beim Einfügen von Inserttags zu verhindern, dass darin ein smiley anstelle von ":" erscheint?
    Ich mach es immer so das ich ein "(B)(/B)" nach dem :: einfüge dann wird das verhindert (Statt den runden klammern muss es eine eckige sein)
    Kein Privat Support via PM.

  14. #14
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Zitat Zitat von kos Beitrag anzeigen
    Würdest Du Dein Template öffentlich machen, damit auch Andere ggf. damit arbeiten können?
    Hallo Karl,

    ja, gerne.

    Das Template hatte ich ja schon gezeigt:

    Code:
    <form name="auswahl">
     <select name="produktauswahl" onChange="JumpTo('parent',this,0)" size="1">
     <?php foreach ($this->items as $item): ?>
     <option value="<?php echo $item['alias'] ?>.html"<?php if ($item['isActive']): ?> selected<?php endif; ?>><?php echo $item['title'] ?></option>
    <?php endforeach; ?>
     </select>
     </form>
    Ich habe es unter dem Namen nav_dropdown.tpl gespeichert und in einem Modul Navigationsmenü verwendet. Die aufzurufende Funktion JumpTo muss einfach als Script auf der Seite oder als externes Script (.js) verfügbar sein:

    Code:
    function JumpTo(targ,selObj,restore){
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
    }
    Das Dropdown (Select-Menü) zeigt dann den Namen aller relevanten Seiten in der Liste an, wobei die aktuelle Seite in der Liste ausgewählt ist. Wählt man eine andere Seite aus dem Dropdown, so wird sofort zu dieser gewechselt.

    Viele Grüße,
    Andreas
    Geändert von comanche (18.08.2010 um 16:14 Uhr)

  15. #15
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    @xchs, @schman vielen Dank für den Tipp !

  16. #16
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    @comanche: auch Dir vielen Dank für's veröffentlichen!

  17. #17
    Contao-Nutzer Avatar von fesh
    Registriert seit
    02.01.2010.
    Ort
    Dresden
    Beiträge
    143

    Standard

    Einen Nachteil hat das Temlate noch: es zeigt keine unterseiten mit an :-(

    wenn dazu noch einer nen vorschlag hätte wäre das toll.
    Ob Sie etwas können oder ob Sie etwas nicht können, in beiden Fällen haben Sie Recht. Henry Ford

  18. #18
    Contao-Nutzer
    Registriert seit
    10.10.2011.
    Beiträge
    39

    Standard valider code

    hallo zusammen,

    nachdem ich den von comanche veröffentlichten template-code eingebunden habe (funktioniert super! vielen dank!) ist mir aufgefallen, dass meine seiten leider nicht mehr valide waren. hier also der valide xhtml-code für das template:

    Code:
    <form name="auswahl" action="#">
       <select name="produktauswahl" onchange="JumpTo('parent',this,0)" size="1">
          <?php foreach ($this->items as $item): ?>
             <option value="<?php echo $item['alias'] ?>.html"<?php if ($item['isActive']): ?> selected="selected"<?php endif; ?>><?php echo $item['title'] ?></option>
          <?php endforeach; ?>
       </select>
    </form>
    was ich geändert habe:
    • form hat das pflichtattribut action bekommen
    • select (...) onChange in onchange geändert
    • ...> selected<?php in selected="selected" geändert


    nochmals danke & gruß
    coolflame
    Geändert von coolflame (02.12.2011 um 22:37 Uhr)

  19. #19
    Contao-Nutzer
    Registriert seit
    09.01.2012.
    Beiträge
    4

    Standard Fein, aber es fehlt doch etwas

    Der Grund warum Unterseiten nicht dargestellt werden, liegt daran dass diese im Template gar nicht angesprochen werden.... $item['subitems']
    Geändert von Pixelator (13.01.2012 um 03:11 Uhr)

  20. #20
    Contao-Nutzer
    Registriert seit
    09.01.2012.
    Beiträge
    4

    Standard So kann es gehen

    So ... ich habe dieses Problem gelöst. Keine Ahnung ob es eine gute Lösung ist, denn ich bin ein blutiger Anfänger was Contao betrifft, aber es funktioniert.

    Schritt #1:

    Erstelle ein Template namens nav_select_core.xhtml (oder wie auch immer ihr das nennen möchtet, wichtig ist dass es mit nav_ beginnt) aus folgendem code:
    Code:
    <?php foreach ($this->items as $item): ?>
     <option value="<?php echo $item['href'] ?>"<?php if ($item['isActive']): ?> selected="selected"<?php endif; ?>><?php echo str_repeat(' [nbsp] ', (integer)substr($this->level, -1)); ?><?php echo $item['title'] ?></option><?php echo $item['subitems']; ?>
    <?php endforeach; ?>
    Schritt #2: Dieses Template in deine Contao Installation nach /templates/dein_theme kopieren.

    Schritt #3: Erstelle im Backend ein Modul Navigationsmenü, benenne es Navigation - NavSelectCore, und in diesem, verwende das oben erstellte Template. Merke dir die ID dieses Moduls nach dem Speichern.

    Schritt #4: Erstelle ein weiteres Modul, dieses Mal jedoch aus eigenem HTML Code, und füge folgende Code ein:
    Code:
    <form name="auswahl" action="#">
       <select name="produktauswahl" onchange="JumpTo('parent',this,0)" size="1">
          {{insert_module::233}} <!-- Dieses Tag wird mit dem referenzierten Modul ersetzt (ersetzen Sie * mit der ID des Moduls). -->
       </select>
    </form>
    Die Nummer 233 ist die ID Nummer des ersten Moduls (Navigation - NavSelectCore) dass erstellt wurde. Diese Nummer hier muss entsprechend angepasst werden. Dann einen sinnvollen Namen vergeben, und speichern. Ich habe meines Navigation - NavSelectWrapper benannt.


    Schritt #5: Dieses zuletzt erstellte Modul ist nun das fertige Modul dass im Layout, oder sonst wo eingebunden werden kann.

    Ergebnis: Eine QuickNavigation welche Referenzseiten-unabhängig ist, und somit auch bei mehrsprachige Seiten verwendet werden kann, das alle Unterseiten anzeigt, und diese entsprechend einrückt. Ein Problem das ich noch nicht gelöst habe, ist dass Contao bei Verwendung eines Moduls vom Typ Navigationsmenü, ständig den Content in ein div packt, genau genommen : <div class="mod_navigation block"> was natürlich in einem Select Element nichts verloren hat.
    Geändert von Pixelator (13.01.2012 um 15:43 Uhr)

  21. #21
    Contao-Nutzer
    Registriert seit
    09.01.2012.
    Beiträge
    4

    Standard Ok jetzt aber

    Ich hab mir dann eine Extension gebastelt, mit der das nun sehr schön und XHTML valide klappt.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 21.02.2010, 17:33
  2. Antworten: 1
    Letzter Beitrag: 03.11.2009, 12:20

Lesezeichen

Lesezeichen

Berechtigungen

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