Dynamisches Inhaltsverzeichnis

  • Hallo zusammen,

    meine Seitennavigation möchte ich statisch gestalten, d.h. jeder Unterseite soll ein fester Link zugewiesen werden. Das habe ich soweit ganz gut hinbekommen. Ein Link aus der Seitennavigation soll nun die Adresse eines Ordners bekommen, in dem sich mehrere Dateien befinden. Wenn man dann auf den Link klickt, soll ein Template in dem entsprechenden Ordner geladen werden, das alle Dateien in dem Ordner auflistet (= Inhaltsverzeichnis). Hoffentlich war diese Erklärung einigermaßen verständlich.

    Weiß jemand vielleicht, wie sowas geht? Könnt mir vorstellen, dass in dem Template so ein Iterations-Algorithmus (z.B. mit "tal:repeat") implementiert werden muss, der dann eine Liste des Ordnerinhalts generiert und ausgibt. Hab auch schon paar Anläufe gestartet, selbst so ein Template zu schreiben, bin aber kläglich gescheitert. Es wäre nett, wenn mir da jemand ein bisschen weiterhelfen könnte! Interessieren würde mich auch, wie die Adresse des Links zu dem Ordner dann lauten muss.

    Besten Dank schon mal für eure Hilfe!!!!!!

    Schöner Gruß,
    Dr. Evil

  • Hallo zusammen!

    Ach ja, beim nochmaligen Durchlesen meines Beitrags ist mir aufgefallen, dass ich da etwas unpräzise war :).
    Das Inhaltsverzeichnis soll auch im Navigationsframe angezeigt werden und zwar in Form eines aufgeklappten Untermenüs. Das hört sich jetzt sicher so an, als könnte man das mit dem zeigenden Männchen dann nicht mehr machen, aber es geht!!! Es soll ja nur das Inhaltsverzeichnis von dem Punkt angezeigt werden, auf den der Besucher geklickt hat (-> auf den auch das Männchen zeigt). Die Inhaltsverzeichnisse zu den Punkten darüber würden stören, da dadurch die Position für das Zeigemännchen nicht mehr definiert wäre (genau deswegen kann man so ein Zeigemännchen nicht bei einer dynamischen Navigation einsetzen). Da aber NUR das Untermenü zu dem Punkt aufgeklappt sein soll, auf den das Männchen zeigt, sollte das kein Problem sein.
    Kurz gesagt: Die Oberpunkte sind STATISCH, so dass die "Animation" mit einem zeigenden Männchen funktioniert. Die Unterpunkte sollen DYNAMISCH sein, aber es sollen nur diejenigen angezeigt werden, die zu dem ausgewählten Oberpunkt gehören. Da diese darunter liegen, haben sie keinen Einfluss auf die Zeigemannposition und stören nicht.
    skl: Meinst du, dass man das auch mit Intelligenten Ordnern machen kann?

    @alle: Gibts da noch andere Möglichkeiten?

    PS: Ich will niemanden als blöd hinstellen, weil ich im Prinzip alles doppelt geschrieben habe. Es geht mir nur darum, Missverständnisse zu vermeiden!

  • Hallo zusammen!

    In den letzten zwei Monaten konnte ich mich leider nicht mehr hier in diesem Forum melden..
    Leider besteht mein Problem immer noch. Es wäre echt voll nett, wenn ihr euch meinen letzten Beitrag nochmal ansehen könntet. Vielleicht habt ihr ja eine Idee, wie man so etwas lösen kann!

    Schöner Gruß,
    Dr. Evil

  • hallo was ich nicht versteh, warum statische navi, wenn du ab der 2 ebene wieder dynamisch wirst?

    Über Zope Page Templates kannst du das alles mit relative wenig Aufwand abbilden.

    Zur Navi, wenn du die Ordner der ersten Ebene nie veränderst ist die Ebene quasi statisch und die weitere Ebenen sind dann halt dynamisch.
    Das zeigende Männchen stellt hier genau wenig ein Problem dar. Die Untermenüs der oberen Einträge werden nur angezeigt wenn der jeweilige Menüpunkt aufgerufen wird. Also genau das was du eigentlich haben willst.

    Wenn du für deine Ordner dann keine Standard Seite angiebtst, werden hier ja alle Inhalte aufgelistet. Weitere Möglichkeit stellen die Intelligenten Ordner oder jetzt neu Kollektionen genannt dar. Damit kannst du auch alle Inhalte und noch mehr anzeigen lassen und diese nach belieben sortieren.

    Gruß Maik

  • Hallo derstappenit,

    die Hauptnavigation (1. Ebene) soll "statisch" ("quasi statisch" triffts wahrscheinlich besser) sein, um die Position eindeutig festzulegen, auf die das Männchen zeigen soll. Bis jetzt hab ich das Problem so gelöst, dass statt des Navi-Frames (Pagetemplate) eine normale HTML-Seite angezeigt wird, die die 1. Ebene statisch und ohne weitere Ebenen beinhaltet. Da ist es natürlich kein Problem, das zeigende Männchen einzubauen (Javascript). Über die Möglichkeit, das mit Pagetemplates zu machen, hab ich auch schon nachgedacht, aber ich hab noch keine Ahnung, wie das geht. Bin was TAL/METAL/Python angeht noch nicht so fit auf den Beinen.

    Um es nochmal auf den Punkt zu bringen:
    * Bewegung des Männchens, wenn nur 1. Ebene der Navigation angezeigt wird.
    * Falls Menüpunkt (1.Ebene) ausgewählt wurde, soll das Männchen fest auf diesen zeigen und das dynamische Untermenü (2. Ebene) zum ausgewählten Hauptmenüpunkt direkt darunter aufklappen.
    * Sehr gut wäre: Vorhandene Templates/Produkte verwenden und ggf. anpassen, Einstellungen im ZMI vornehmen, aber so wenig Code wie möglich neu produzieren!!!

    Wie würde das mit den Intelligenten Ordnern gehen?

    Hoffentlich konnte ich nochmal mehr Licht in die Sache bringen!

    Schöner Gruß,
    Dr. Evil

  • Hallo,
    Mit Intelligenten Ordner hat die Navi erstmal nichts zu tun. Diese sind nur für den Inhalt des Ordners verantwortlich und würden hier dem Zweck dienen, die Inhalte nach belieben zu sortieren und/oder zu filtern.

    Du kannst für dein Vorhaben die Standard Navi nehmen. Per CSS läßt sich diese ja weiter nach rechts einrücken und da kannst du dann dein Männchen per CSS + JS platzieren. Um den HTML-Code dafür einzubauen, kannst du entweder ein eigenes Portlet verwenden und es dann per CSS richtig positionieren, oder aber das Navi Portlet nehmen und es um deinen Code erweitern, TAL/Python Kenntnisse sind dafür eigentlich nicht nötig.

    Gruß Maik

  • Hallo derstappenit!

    Hoff, dass ich dich richtig verstanden hab. Werds jetzt einfach mal probieren und wenns nicht klappt, stell ich hier den Code online. Dann fällt das diskutieren auch gleich viel leichter!

    Schöner Gruß,
    Dr. Evil

  • Hallo,

    komme leider nicht weiter. Ich hab mir folgendes überlegt.

    Über die Position des ersten Links aus der ersten Ebene der quasi-statischen Navigation errechne ich die Position, an der das Männchen (egal, wo dessen Arm hinzeigt!; einfach nur das Feld für das Bild) stehen soll.
    Problem 1: Wie bekomme ich bei einer quasi-statischen Navigation, die eigentlich (um das navi-Template nicht zu verändern) dynamisch ist die Position des ersten Elementes.

    Wenn dann also die Position des Bildfeldes bekannt ist, hätte ich mir gedacht, die OnMouseOver-Effekte einzubinden. Dafür brauche ich aber die Position des Elements (bzw. hier Links), auf dem der Mauszeiger liegt. Und schon bin ich bei meinem nächsten Problem.
    Problem 2: Wie kann man die Links der ersten Ebene automatisch mit einer Art OnMouseOver-Ereignis versehen und gleichzeitig dem Männchen "sagen", wo es hinzeigen soll?

    Das bereitet mir wirklich Kopfzerbrechen!

    Gruß,
    Dr. Evil

  • hallo,
    also entweder du nimmst die absolute Position, die ja abhängig von deinen Stylesheets ist aber sonst fix sein sollte. Oder du baust das Bild bzw nen div als wrapper direkt in der naviportlet ein. Die Position brauchst du dabei nie zu berechnen, das testest du einfach aus. ;)

    Wozu brauchst du die Position des Mauszeigers, für das OnMousOver event? Lies dir bitte mal etwas Background in SelfHTML an, bevor du weiter machst. Du kannst entweder direkt in dem NaviPortlet bzw in das macro welches die Navi zusammen baut, deine OnMouseOver Anweisung direkt in jedes NaviElement einbauen, oder per JS + id des jeweiligen Elementes ein Eventhandler auf jedes Feld setzen. Wobei die erste Variante für dich erstmal einfacher zu realisieren sein wird.

    Dem Männchen sagst du gar nicht wo es hin zeigen soll. Du hast für jeden Navi Punkt der Ebene 0, ein Bild welches auf den richtigen Punkt zeigt. Du wechselst also nur die Grafik per JS aus. Eine gute Lösung setzt beim Aufbau der Navi gleich einen marker der sagt welches Bild zu diesem NaviElement gehört. Also die Position des Elementes ermittelt und das passende Bild beim OnMouseOver Aufruf als Parameter mit übergibt.

    so ich hoffe ich konnte dir etwas auf die Sprünge helfen. Durch den Rest musst du dich mal selbst durch beißen. ;)

    Gruß Maik

  • Hallo,

    kann ich dann eigentlich für die oberste Navigationsstufe die Links fest vorgeben und die darunter liegenden Stufen (also den Inhalt der Ordner, die in der obersten Stufe verlinkt sind) dynamisch lassen oder geht nur rein statisch bzw. rein dynamisch? Wenn eine Kombination möglich ist, gibt es dann so eine Art "Liste", in der ich eintragen kann, welche Links fest sein sollen? Hab nämlich versucht im entsprechenden nav-portlet feste Links vorzugeben, hat aber nicht geklappt. Danke schon mal für eure Hilfe!

    Schöner Gruß,
    Dr. Evil

  • Hallo,

    wie schon gesagt, du brauchst keine Statische erste Ebene.
    Nehmen wir mal an du erstellst ganz normal ein paar Ordner im Portal Root, dann kannst du diese als Statisch ansehen, solange du keine weiteren hinzufügst.
    Was sich ja über die Rechtevergabe auch unterbinden lässt.

    In den Ordnern der Ebene 0 kannst du dann beliebig deine Ordner dynamisch anlegen wie du willst. Denn deine Grafik ist ja auf deine Ebene 0 ausgerichtet.

    beste Grüße
    Maik Derstappen