We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13859
    • 2 Posts
    Hallo,
    bin Anfänger und möchte den Wayfinder in einem Dokument nur aufrufen, wenn dieses Kinder hat. Wie müsste hierzu der Aufruf mit PHx sein?
    Gruß Jear

    [EDIT]
    Hallo,
    gleich zu Anfang hier noch mal mein Problem und meine Lösung:
    Mein Problem war, das Wayfinder das &startItemTpl auch anzeigt, wenn das Entsprechende Dokument keine Kinder hat. Dies war von mir so nicht gewollt. Nach einigem suchen bin ich auf eine eigentlich recht einfache Lösung gekommen. Ich verwende hierzu einfach PHx direkt im &startItemTpl in Verbindung mit der Möglichkeit von Wayfinder mit [+wf.subitemcount+] die Anzahlt der aktiven Kinder ausgeben zu lassen.
    Hierzu habe ich den gesamten Inhalt des &startItemTpl in einen PHx-Aufruf eingeschlossen:

    [+phx:if=`[+wf.subitemcount+]`:ne=`0`:then=`Hier steht der eigentliche Inhalt des startItemTpl`+]

    Man muss vorher natürlich PHx installiert haben und schauen, dass [+wf.subitemcount+] im Wayfinder "aktiviert" ist.

    Vielleicht hilft es ja man noch jemandem weiter?!

    Gruß Jear

    [/EDIT]
      • 36451
      • 264 Posts
      Das macht der Wayfinder doch ganz automatisch, wenn man ihn ohne den Parameter "startid" aufruft, also in der simpelsten Form:
      [!Wayfinder!]
      Hat das aktuelle Dokument keine "Kinder", so wird eben auch nichts angezeigt.

      PHx dient zur Formatierung von Platzhaltern. Oder habe ich da etwas übersehen?
        • 13859
        • 2 Posts
        Hallo,
        ich würde Wayfinder gerne mit &displayStart=`true` verwenden. Und dann wird bei mir die Überschrift auch angezeigt, wenn das Dokument keine Kinder hat. Daher muss ich den Wayfinder in eine "If-Abfrage" einbauen, so dass der Aufruf nur geschieht, wenn das Dokument Kinder hat.
        Das dachte ich geht halt einfach mit PHX. Vor allem, da ich noch weitere zusätzliche If-Abfragen verwende, so dass Wayfinder auch nur in Dokumenten mit einem bestimmten Dokumentenlevel angezeigt wird. Ich weiß nur nicht, welche Funktion mir zurück gibt, ob ein Dokument Kinder hat und wie ich diese mit PHx aufrufe.
        Vielleicht bin ich ja aber auch ganz auf dem falschen Weg?
        Vielen Dank für Hilfe
        Gruß Jear
          • 3785
          • 143 Posts
          Hallo Jear,

          was spricht den dagegen die Ausgabe einfach per CSS zu unterdrücken, wie ich das bereits im deutschen MODx-Forum vorgeschlagen habe?

          Gruß

          Bogdan
            Medianotions – Studio für Webdesign
            http://www.medianotions.de
            • 24495
            • 407 Posts
            Sorry, wenn ich auf die Schnelle keine Lösung anbieten kann. Aber mal generell zum Unterdrücken irgendwelcher Inhalte per CSS: Aufgabe von CSS ist es nicht, Logik zu ersetzen. Also unerwünschte Ausgaben per CSS zu unterdrücken ist wie Pickelabdeckstift. Vor allem sollte man sich hüten, immer nur mit den Augen zu "denken". Nur weil’s auf dem Screen nicht zu sehen ist, ist es doch immer noch da. Screenreader finden es in der Regel, Suchmaschinen sehen den Text, ...

            Sicher gibt’s für die Null-Ausgabe eine Lösung, ich schau mal.
              • 28436
              • 242 Posts
              Hallo Leute, hallo yoomai

              PHx dient zur Formatierung von Platzhaltern. Oder habe ich da etwas übersehen
              Und ob! phx ist mehr wie nur ein "formatierer". Du kannst das Ding benutzen wie die modifer/Funktionen in Smarty. Sehr sehr sehr geil.

              ein einfacher phx modifier wäre

              assets/plugins/phx/modifer/kinder.phx.php
              <?php
              return count( $modx->getActiveChildren( (int)$output ) );
              ?>


              im Template dann
              [*id:kinder*]

              Das spuckt dann immer die Anzahl der aktiven Kinder aus. Gibts keins, ist es "0"

              Wenns hilft

              tschüß, Stefan
                • 3785
                • 143 Posts
                Quote from: rasc at Mar 06, 2008, 07:44 PM

                Aber mal generell zum Unterdrücken irgendwelcher Inhalte per CSS: Aufgabe von CSS ist es nicht, Logik zu ersetzen. Also unerwünschte Ausgaben per CSS zu unterdrücken ist wie Pickelabdeckstift. Vor allem sollte man sich hüten, immer nur mit den Augen zu "denken". Nur weil’s auf dem Screen nicht zu sehen ist, ist es doch immer noch da. Screenreader finden es in der Regel, Suchmaschinen sehen den Text, ...

                Ich denke hier muss man noch mal differenzieren. Ich weiß zwar nicht genau was jear vor hat, aber z.B. bei einer Seite wie z.B. http://www.ab-m.de/ ist es durchaus erwünscht, dass die gesamte Navigation im HTML-Quelltext auftaucht, gerade wegen den Suchmaschinen. Und die Optik der Navigation wird per CSS je nach Wunsch angepasst. Das ist eine elegante und hoch flexible Lösung.

                Aber es gibt natürlich auch Fälle, wo ein bestimmter Inhalt auf keinen Fall im Quelltext auftauchen soll. Da ist CSS natürlich der falsche Ansatz.
                  Medianotions – Studio für Webdesign
                  http://www.medianotions.de
                  • 36451
                  • 264 Posts
                  Quote from: stefan at Mar 06, 2008, 08:32 PM

                  phx ist mehr wie nur ein "formatierer". Du kannst das Ding benutzen wie die modifer/Funktionen in Smarty.
                  In der Tat. Ich habe gerade im Kundenauftrag ein Blog eingebaut und in dem Zusammenhang PHx entdeckt. Sehr flexibel, und das ist mir bislang einfach entgangen. Danke für den Hinweis.
                    • 28436
                    • 242 Posts
                    Hallo Jear, hallo yoomai,

                    Danke für den Hinweis.
                    Bitte. Gerne geschehen.

                    Um das jetzt aufzulösen.
                    möchte den Wayfinder in einem Dokument nur aufrufen, wenn dieses Kinder hat. Wie müsste hierzu der Aufruf mit PHx sein?

                    Wenn Du wirklich nur das willst, sollte es so funktionieren
                    [*id:kinder:ne=`0`:then=`
                        [!Wayfinder!]
                    `*]
                    


                    "ne" steht dabei für "not equal" also "nicht gleich" oder "!="
                    Nachzulesen hier http://wiki.modxcms.com/index.php/PHx#ne

                    Leider vermute ich, daß das nicht wirklich das ist was Du brauchst. Es ist echt schwierig zu helfen wenn man nicht weiß was den tatsächlich gefordert ist.

                    tschüßing und nicht verzagen, es _gibt_ für alles eine Lösung.
                    Stefan


                    edit mmd: Tippfehler ausgebessert (Wayfinder)