Ergebnis 1 bis 7 von 7

Thema: Navigation auf nur einer Seite dynamisch erweitern

  1. #1
    Contao-Nutzer
    Registriert seit
    23.06.2011.
    Beiträge
    14

    Standard Navigation auf nur einer Seite dynamisch erweitern

    Ich habe auf der Seite Referenzen eine Google Map, worauf ich die verschiedenen Referenzen anzeigen lasse, welche ich aus der DB auslese mit dem Auflistungsmodul. Der Kunde möchte nun, beim Menupunkt "Referenzen" ein Submenu mit den beiden Punkten "Regionen" und "Kategorien". Innerhalb dieser beiden Punkte natürlich wieder ein Submenu mit den Regionen bzw. Kategorien. Die verschiedenen Kategorien und Regionen kommen dann wiederum aus der DB. Ausserdem ist der Wunsch dann, dass bei einem Klick auf eine bestimmte Region im Menu, die Karte auf diese Region gezoomt wird.
    Das heisst das Submenu der Kategorien oder Regionen kann jederzeit wachsen, wenn eine Referenz aus einer Region angelegt wird, welche noch nicht vorhanden ist.

    Wie kann ich diese Anforderung am saubersten implementieren? Die Menupunkte mit javascript hinzuzufügen, würde mich nicht sehr glücklich machen.
    Sollte ich für die Seite Referenzen ein neues Layout anlegen, wo ich dann ein Navigationsmodul integriere bei welchem ich das Template angepasst habe? Oder weiss jemand noch eine bessere Lösung?

  2. #2
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Es wird dich wahrscheinlich nicht glücklich machen, aber ich glaube langfristig gesehen bist Du mit einer Individuallösung am besten bedient.

    Ein Programmierer könnte dir aufgrund von Datenbankeinträgen die Seitenstruktur dynamisch erweitern, so dass Du nur ein Navigationsmodul hast ohne spezielle Templateanpassungen. Ebenso könnte er ein Frontend-Modul schreiben, dass diese Navigationspunkte quasi ausliest und dementsprechend die Google Map ausrichtet und zentriert etc.

    Ich denke da an sowas:

    DB:
    • titel
    • alias
    • google maps location


    Mögliche Navigationslinks:
    • Region 1 - regionen/loc/alias1.html
    • Region 2 - regionen/loc/anderes_alias.html


    Nur so...Gedankenspielerei Machbar wäre es auf jeden Fall
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  3. #3
    Alter Contao-Hase Avatar von christian
    Registriert seit
    15.06.2009.
    Ort
    Viersen
    Beiträge
    1.038
    Partner-ID
    387

    Standard

    Das müsste auch mit dem Katalog + dem Google Maps Modul gehen.

    Du gibst Dir eine nach Regionen gefilterte Liste aus - die Regionen können ja auch Tags sein, jedenfalls irgendwas gefiltertes. Über eine Anpassung des Katalog-Ausgabetemplates listest Du das nicht nur auf, sondern schreibst auch direkt einen Javascript-Block mit in die Seite rein, der die passenden Markierungen in die Karte setzt. Siehe dlh_googlemaps-Handbuch. Ggf. brauchst Du dafür 2 Lister auf der Seite, aber das ist Kleinkram.

    Der Trick ist, auch den Datensatz der Region listen zu lassen, der Du auch ein Koordinaten-Feld gibst, nämlich mit dem Karten-Mittelpunkt der Region. Das Beispiel im o.g. Handbuch zeigt Dir, wie damit die Karte an die passende Stelle verschoben wird. Es wird also neben der Katalogausgabe nur 1 Map-Modul benötigt. Ob Du darin dann einfache Markierungen, oder auch Logos bzw. Icons ausgibst, bleibt Dir überlassen.

    Ohne die Karten-Verschiebung siehst Du das z.B. auf http://www.premium-gaertnerei.de.

    Grüße,

    Christian
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  4. #4
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Nur dass einfach die Sache sich nicht in die Navigation einbindet. Wenn die Subnavi komplett als eigenständiges Modul geführt werden kann, dann sollte es auch mit dem Catalog gehen
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  5. #5
    Alter Contao-Hase Avatar von christian
    Registriert seit
    15.06.2009.
    Ort
    Viersen
    Beiträge
    1.038
    Partner-ID
    387

    Standard

    Stimmt - diese Tag-Navigation klinkt sich da nicht ein, sondern läuft separat. Das kann man aber bestimmt optisch faken
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  6. #6
    Contao-Nutzer
    Registriert seit
    23.06.2011.
    Beiträge
    14

    Standard

    Danke für eure Vorschläge!

    Also momentan sieht das so aus http://powercondens.ch/referenzen.html. Im Backend habe ich mit dem Elementgenerator ein neues Inhaltselement "Referenz" erstellt. Der Kunde legt dann jeweils eine neue Referenz an mit Adresse, Bildern und Text. Für die Ausgabe der Referenzen auf die Karte habe ich das Template des Auflistungsmoduls angepasst.

    Mit dem Catalog kenne ich mich leider gar nicht aus.

    Ich könnte ja im Navigationstemplate abfragen, ob der Menupunkt Referenzen heisst (also mit der ID) und dann das Untermenu mit Hilfe der Datenbankeinträge um die vorhandenen Regionen und Kategorien erweitern. Für die Menupunkte lasse ich Links generieren mit javascript funktionen, sowas wie: onclick="showRegion(region)" oder onclick="showCategory(category)". In der Funktion greife ich dann wieder auf das Google maps Objekt aus dem Auflistungsmodul zu, wenn das geht. Für jede Region habe ich dann einen Array mit Zoomfaktor und Koordinaten vom Mittelpunkt, sodass die Karte auf die entsprechende Region zoomt. Und bei den Kategorien lasse ich einfach nur diejenigen Marker anzeigen, welche die entsprechende Kategorie aufweisen.
    Ist wegen des Einklinkens ins Menu nicht gerade die sauberste Lösung, aber meint Ihr das könnte funktionieren?

  7. #7
    Contao-Nutzer
    Registriert seit
    08.04.2011.
    Beiträge
    47

    Standard

    Hallo kyr,

    etwas schöner, anstatt die JS-Anbindung direkt im HTML-Quelltext zu machen, finde ich die Lösung über CSS-Klasse zu gehen. Einfach den Seiten "Referenzen" und "Kategorien" die CSS-Klasse "google-maps" geben.

    Dann fügst Du im Seitenlayout dein gewünschtes Skript ein:
    Code:
    <script>
    function googleMapsZoomIn(event) {
    	event.stop();
    	alert(this.get('href'));
    }
    window.addEvent("domready", function() {
    	$$('.google-maps ul a').addEvent('click', googleMapsZoomIn);
    });
    </script>
    Das hält den HTML-Code schmal. Im href-Attribut kannst Du die Daten für Zoomfaktor, Koordinaten vllt. schon im richtigen Format ablegen, so dass Du sie beim Klick einfach an das Google-Maps-Modul weiterreichen kannst. Wenn das JS-Objekt aus dem Modul global ist, solltest Du es von außen ansprechen können.

    Viel Spass beim Basteln,
    Oliver

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
  •