Vanilla 1.1.2 Forum von Lussumo. Weitere Informationen: Dokumentation, Community.

    •  
      CommentAuthorschman
    • CommentTime30.07.2007
     permalink
    Ich habe mal eine Frage irgendwie verstehe ich es einfach nicht, und zwar gibt es zB im Wayfinder diverse Platzhalter, besser gesagt die gibt es ja so ziemlich in jedem Snippet.

    Ich bleibe jetzt mal beim Wayfinder.
    Wenn ich ein Chunk anlege der in etwa so aussieht:

    [/<li><a [+wf.classes+]>[+wf.linktext+][+wf.wrapper+]</a></li>

    Woher weiß Wayfinder um welche Klasse es sich hier handelt, bzw. muss ich Aufruf von Wayfinder ein Parameter mitgeben, damit es weis was ins classes reingehört. Irgendwie werde ich eifnach nicht schlau daraus.

    Bitte um eine kurze Erklärung
    •  
      CommentAuthorMarc
    • CommentTime30.07.2007
     permalink
    Dies sind die Klassen, die Wayfinder generiert. In der Parameterübersicht siehst Du ja was es alles gibt, zum Beispiel Klassen für den ersten Menüpunkt, den letzten, den aktiven etc. Normalerweise sind diese für den Listenpunkt gedacht, lassen sich aber auch auf die Links anwenden. Wie die genau heißen (sollen), kannst ja per "&hereClass=`hier` zum Beispiel definieren. Standardgemäß ist zum Beispiel der aktive Menüpunkt mit der Klasse "active" bezeichnet. Der erste Menüpunkt dagegen wird nicht mit einer Klasse versehen, solange Du nicht &firstClass=`irgendwas` angibst. Wie gesagt, siehe Parameterliste unter "default".
    •  
      CommentAuthorschman
    • CommentTime30.07.2007
     permalink
    danke, ich glaube jetzt habe ich es kappiert
    •  
      CommentAuthorottogal
    • CommentTime30.07.2007
     permalink
    Ich habe hier gerade eine halbe Stunde lang einen Beitrag getippt, um beim Absenden die Fehlermeldung zu bekommen, ich hätte kein Recht zu kommentieren, da nicht eingeloggt. Offenbar hab ich da ein Time-Limit überschritten.
    Könnte man das nicht so gestalten, dass einem wenigstens der Text nicht verloren geht? (Der Beitrag war als Hilfestellung gedacht.)

    Geknickte Grüße :sad:
    ottogal
    •  
      CommentAuthorottogal
    • CommentTime31.07.2007 bearbeitet
     permalink
    (Diesmal habe ich in Notepad++ geschrieben und kopier das jetzt hier rein...)

    Zum Verständnis der Wayfinder-Platzhalter sind vielleicht die folgenden Anmerkungen hilfreich.

    Wenn man kein eigenes &outerTpl definiert hat, nimmt WF als Vorgabe dieses:
    <ul [+wf.classes+]>[+wf.wrapper+]</ul>
    Und so entsteht die Frage: Woher weiß WF beim Aufruf, welche Klassen er hier für den Platzhalter [+wf.classes+] einsetzen muss?

    Antwort: Alles über Klassen steht in den CSS-Definitionen (die am besten in eigenen css-Dateien stehen). WF sucht also nach einer Styledefinition für eine ungeordnete Liste und findet z.B.
    ul.meinmenue
    {
    ....
    }

    Beim Aufruf entsteht dann der Output<ul class="meinmenue"> .... </ul>
    Was aber, wenn ich in meinem CSS verschiedene ul-Klassen habe, z.B.
    ul.ersteklasse
    {
    ....
    }
    ul.zweiteklasse
    {
    ....
    }

    und z.B. nur die zweite für das Menü zuständig ist, das mit dem WF-Aufruf ausgegeben werden soll?

    Nun, dafür gibt es den Parameter &outerClass. Im Beispiel muss man in den WF-Aufruf hineinschreiben:&outerClass=`zweiteklasse`und schon weiß WF, dass er das Menü mit den Styles von ul.zweiteklasse versehen soll.

    In dem &rowTpl (ob das vorgegebene oder ein eigenes) kommt wieder der Platzhalter [+wf.classes+] vor, z.B.
    <li [+wf.classes+] ><a href= ....>[+wf.linktext+]</a>[+wf.wrapper+]</li>
    Woher holt WF die Klasse, die er hier einsetzen muss?

    Es muss eine Styledefinition für ein Listenelement li geben, und das muss zur richtigen ul gehören. In der css-Datei muss also z.B. stehen (man beachte das Leerzeichen - kein Komma!):
    ul.zweiteklasse li.zeile
    {
    ....
    }

    Dann erzeugt WF beim Aufruf für jeden Listenpunkt diesen Output:
    <li class="zeile" ><a href= ....> .... </a> .... </li>
    WF weiß dabei aus dem Parameter &outerClass, dass das <li> in einem <ul> der Klasse "zweiteklasse" liegt und nimmt dafür also die Klasse "zeile", auch wenn es im CSS an anderen Stellen noch andere <li>-Styledefinitionen geben mag.

    Wie Marc schon erwähnte, gibt es für die erste, die letzte und die aktuelle Zeile eigene Klassenparameter &firstClass, &lastClass und &selfClass bzw. &hereClass, mit denen diese Zeilen individuell gestaltet werden können.

    Fazit:
    Wayfinder stützt sich auf ein gut gebautes CSS, und es ist sicher von Vorteil, wenn man seine Website vor dem Umschreiben auf MODx schon mit sauberer Trennung von HTML (für die Struktur) und CSS (für das Layout) geschrieben hat. Will man eine bestehende Website auf MODx umbauen, sollte man dies vorher getan haben (ist ja schon lehrreich genug; wer da von einer z.B. mit Frontpage oder, übler noch, mit Word erstellten Website ausgehen muss, ist allerdings nicht zu beneiden).

    Allen Bastlern viel Erfolg!
    ottogal
    •  
      CommentAuthorschman
    • CommentTime31.07.2007
     permalink
    Danke ottogal, das war sehr hilfreich.
    •  
      CommentAuthorMarc
    • CommentTime31.07.2007
     permalink
    Super Ottogal, werde ich in die Wayfinder Doku mit einbauen ;-)