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

    •  
      CommentAuthorjedesign
    • CommentTime03.05.2011 bearbeitet
     permalink
    Hallo, ich ziehe mir auf der Startseite per Ditto die News an.
    [!Ditto? &parents=`1,5,8` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]
    Nun ist es mir aber zu mühsam, jedesmal wenn ich eine Seite direkt unter dem Root anlege, die ID im Ditto Aufruf nachzuführen.

    Deshalb hätte ich es gerne so:
    [!Ditto? &parents=`0` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]
    Somit würden alle News in der ganzen Seite angezeigt werden. Klappt aber leider nicht, er geht nur eine Ebene nach unten.

    Ist sowas möglich? :wink:
    •  
      CommentAuthorsam
    • CommentTime03.05.2011 bearbeitet
     permalink
    Probier's mit diesem Snippet:
    getActiveChildren
    <?php
    /*
    * Snippet-Name: getActiveChildren
    * Beschreibung: Gibt die IDs aller unmittelbaren Kind-Seiten einer Seite in einer Komma-separierten Liste als Zeichenkette aus.
    * Anwendung: [[getActiveChildren?parent=`0`]]
    */

    if (strlen($parent)==0) return;
    $output = '';
    $children = $modx->getActiveChildren(intval($parent),'menuindex','ASC','id');
    if ($children !== false) {
    foreach ($children as $child) {
    $output .= (strlen($output) ? ',':'').implode(',', $child);
    }
    }
    return $output;
    ?>
    Der Aufruf wäre dann[!Ditto? &parents=`[[getActiveChildren?parent=`0`]]` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]
    •  
      CommentAuthorjedesign
    • CommentTime03.05.2011 bearbeitet
     permalink
    Jetzt wird über die ganze Seite die 3. Ebene durchsucht, das ist schon einmal ein Schritt in die richtige Richtung!

    Jedoch möchte ich, dass wirklich alle Unterseiten des Roots, also aus der 1., 2., 3., usw. Ebene durchsucht werden. Es ist somit egal, wo der Kunde seine Seite abgelegt hat, er kann die Checkbox aktivieren und der Artikel erscheint auf der Startseite.

    Ist dieses Snippet erweiterbar, dass es meine Anforderungen erfüllen kann?

    Danke für die Hilfe, hätte sonst keine Chance! :surprise:
    •  
      CommentAuthorMarc
    • CommentTime03.05.2011
     permalink
    Was genau willst Du machen? Ditto listet alle Dokumente auf mit parents=`0` &depth=`10` z.B. Wenn es nach Checkbox sein soll, arbeite mit &filter.
    •  
      CommentAuthorsam
    • CommentTime03.05.2011 bearbeitet
     permalink
    @Marc:
    Du meinst &depth=`0` :wink:


    @jedesign:
    Eine Übersicht und Beschreibung der Ditto-Parameter (auf Englisch) gibt's hier:
    http://ditto.modxcms.com/files/snippet-ditto-php.html
    •  
      CommentAuthorjedesign
    • CommentTime04.05.2011
     permalink
    ach, ist das peinlich, genau das habe ich gesucht! :surprise:

    Ich habe mich gegen eine Checkbox entschieden und verwende nun ein DropDown.

    Der Aufruf sieht folgendermassen aus:
    [!Ditto? &parents=`0` &depth=`10` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]

    tpl_newsslider:
    [*phx:if=`[+isnews+]`:ne=`FALSE`:then=`<a href="[~[+id+]~]"> <img src="[+newsimage_big+]" width="940" height="350" alt="[+pagetitle+]" title="[+pagetitle+]"></a>`:else=``*]

    In der Theorie ist das genau, was ich brauche, aber in der Praxis durchsucht er nur die Ebene direkt unter dem Root.

    Woran könnte das liegen?
    •  
      CommentAuthorjedesign
    • CommentTime04.05.2011
     permalink
    Ich habe den Aufruf noch um folgendes ergänzt und jetzt klappt's :grin:&display=`all`

    Danke für eure Hilfe und Geduld, nächstes Mal schaue ich mir die Parameterliste etwas genauer an. :angel:
    •  
      CommentAuthorMarc
    • CommentTime04.05.2011 bearbeitet
     permalink
    Ja, vor allem filter beim Ditto-Aufruf, nicht erst im Template. Denn sonst hast Du keine Kontrolle über die Anzahl der Items, abgesehen davon ist das performancetechnisch ziemlich ungeschickt.
    •  
      CommentAuthorjedesign
    • CommentTime04.05.2011
     permalink
    Habe das PHx aus dem Template genommen und habe den Aufruf mit dem Filter ergänzt.
    [!Ditto? &display=`all` &filter=`tvisnews, 'FALSE', 1` &parents=`0` &depth=`0` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]
    Klappt aber so nicht :sad:
    •  
      CommentAuthorsam
    • CommentTime04.05.2011
     permalink
    Versuch's mal damit:
    Bei der TV isnews (Typ CheckBox) die Eingabeoptionswerte ==show und den Ditto-Aufruf dann
    [!Ditto? &display=`all` &filter=`tvisnews, 'show', 2` &parents=`0` &depth=`0` &orderBy=`menuindex ASC` &tpl=`tpl_newsslider`!]
    •  
      CommentAuthorjedesign
    • CommentTime04.05.2011 bearbeitet
     permalink
    Meine TV "isnews" ist ein DropDown mit den werden ja==TRUE || nein==FALSE

    auch per CheckBox will das ganze nicht klappen :sad:
    •  
      CommentAuthorsam
    • CommentTime04.05.2011
     permalink
    Und wenn Du &filter=`tvisnews,FALSE,1`machst?
    •  
      CommentAuthorjedesign
    • CommentTime04.05.2011
     permalink
    aaaah, diese **** Leerzeichen nach den Kommas!!
    &filter=`tvisnews,FALSE,2`
    Ich musste die 1 durch 2 tauschen, da ich ja alle mit FALSE NICHT anzeigen möchte.

    Hat geholfen! :grin: