We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28436
    • 242 Posts
    Morsche Leute,

    ist es mit Bordmitteln möglich Dokumente anhand einer Tv( tag? ) zu gruppieren und eben als Gruppe unter einer Überschrift(dem Inhalt der Tv) darzustellen?

    Zum verdeutlichen:

    In einem Verzeichnis sind neun Dokumente, jedem ist eine TV mit dem Namen einer Gruppe(Gruppe1,Gruppe2,Gruppe3) zugewiesen. Nun soll die Ausgabe in etwas so aussehen

    Gruppe1
    =====
    - Dokument 2
    - Dokument 5
    - Dokument 8


    Gruppe2
    =====
    - Dokument 1
    - Dokument 7
    - Dokument 9


    Gruppe3
    =====
    - Dokument 3
    - Dokument 6
    - Dokument 4

    Also alle Dokument aus dem Verzeichnis gruppiert nach dem Wert der TV.

    Bin für jede Idee dankbar.

    tschüß, Stefan
      • 17883
      • 1,039 Posts
      Nun so ganz automatisch wüsste ich gerade nicht. Aber prinzipiell so:

      <h2>Gruppe 1</h2>
      [!Ditto?.....&filter=`gruppen_tv,2,Gruppe 1`&... &....!]
      
      <h2>Gruppe 2</h2>
      [!Ditto?.....&filter=`gruppen_tv,2,Gruppe 2`&... &....!]
      
      <h2>Gruppe 3</h2>
      [!Ditto?.....&filter=`gruppen_tv,2,Gruppe 3`&... &....!]
      


      Wobei gruppen_tv die TV mit Inhalt Gruppe 1, Gruppe 2, Gruppe 3 ist.
        • 28436
        • 242 Posts
        Morsche!

        Danke für Deine Antwort. Ich hätte schon früher Rückmeldung geben können zu der Sache, denn mittlerweile ist mir eine andere Lösung eingefallen.
        Hardcoden ist nicht drin weil die Rubriken(Gruppen) von dem user auch erweitert werden können. Deshalb habe ich die Strategie geändert, die tags sind noch vorhanden, aber die Sortiertung funktioniert jetzt halt per Verzeichnis. Dafür habe ich mir mit phx und ditto eine Rekursion gebastelt, die durch die Verzeichnisse nach unten wandert. könnte man sicher auch mit einem leicht modifizierten Wayfinder hinbekommen.

        machs gut, Stefan
          • 17883
          • 1,039 Posts
          Dafür habe ich mir mit phx und ditto eine Rekursion gebastelt, die durch die Verzeichnisse nach unten wandert.

          Klingt interessant... Details, Details, Details laugh
            • 28436
            • 242 Posts
            Servus Marc!

            Und? Hast Du es schon selbst raus? Zuerst war’s knifflig, dann aber irgendwie doch ganz einfach und logisch smiley
            Ansonsten glaube ich wäre man mit einem Wayfinder, der alle DB-Felder und TVs läd besser bedient. Habs aber nicht versucht bisher.

            Das Dokument das die Auflistung hervorbringen soll
            <div id="wrapperListe">
                [[Ditto?parents=`162`&tpl=`liste_rekursiv`&display=`all`&sortDir=`ASC`]]
            </div>
            


            chunk :: " liste_rekursiv "
            [+id:hatKinder:is=`1`:then=`{{liste_rekursiv_verzeichnis}}`:else=`{{liste_rekursiv_element}}`+]
            


            chunk :: " liste_rekursiv_verzeichnis "
            <div class="wrapperKategorie">
                <h2 class="ebene[+id:ebene+]">[+pagetitle+]</h2>
                [[Ditto?parents=`[+id+]`&tpl=`liste_rekursiv`&display=`all`&sortDir=`ASC`]]
            </div>
            


            chunk :: " liste_rekursiv_element "
            <div class="wrapperElement">
                [+pagetitle+]
            </div>
            


            snippet :: " hatKinder "
            Name : phx:hatKinder
            <?php
            if( isset( $output ) )
            {
                $dokument_id = (int) $output;
                $kinder = $modx->getActiveChildren( $dokument_id );
            
                if( !$kinder === false )
                {
                    $anzahl_kinder = count( $kinder );
                    if( $anzahl_kinder > 0 )
                    {
                        return 1;
                    }
                    else
                    {
                        return 0;
                    }
                }
                else
                {
                    return 0;
                }
            }
            else
            {
                return 0;
            }
            ?>
            


            Optional

            snippet :: " ebene "
            Name : " phx:ebene "
            <?php
            if( isset( $output ) )
            {
                $dokument_id = (int) $output;
                $eltern = $modx->getParentIds( $dokument_id );
            
                if( !$eltern === false )
                {
                    $anzahl_eltern = count( $eltern );
                    return $anzahl_eltern; // ist halt auch die Ebene
                }
                else
                {
                    return 0;
                }
            }
            else
            {
                return 0;
            }
            ?>
            


            Die phx snippets können auch im Dateisystem im Verzeichnis "/assets/plugins/phx/modifiers" abgeleget werden. Finde ich persönlich günstiger weil besser zu bearbeiten.

            Zur besseren Visualisierung der Verschachtelung kanns Du ja mal noch die Formatierung einbauen

            div#wrapperListe{ border:1px solid #000 }
            div#wrapperListe div{ border:1px solid #000;margin:5px;margin-left:15px;padding:5px; }
            div#wrapperListe div.wrapperElement{ border-color:#F00; }
            


            Wenn Du das snippet " ebene " verwendest, kannst Du die Tiefe der Verschachtelung feststellen und im CSS damit den Weg zum Element abkürzen.
            div#wrapperListe div.wrapperKategorie2{  }
            div#wrapperListe div.wrapperElement2{  }
            div#wrapperListe h2.ebene2{ background-color: #F00; }
            div#wrapperListe h2.ebene3{ background-color: #0F0; }
            


            Falls es ein Problem gibt, helfe ich gerne, denn genau so sollte es funktionieren und daher können Probleme ja nicht sooo gewaltig sein.

            ciao, Stefan
              • 17883
              • 1,039 Posts
              Hi Stefan, sorry habe das hier ganz übersehen. Werde ich mir beizeiten mal anschauen. Sieht auf jeden Fall sauber aus und vor allem nach dem "MODx way" wink
                • 2798
                • 22 Posts
                Hi Stefan

                könnte es sein, das Deine Lösung evtl. auch mein Problem löst?? Könntest Du Dir, wenn Du ein weing Zeit hast, mal im deutschen Forum meinen Post ansehen:
                http://www.modxcms.de/forum/comments.php?DiscussionID=5125

                Ich verstehe Deinen Ansatz noch nicht so ganz, aber ich denke, das ich das gleiche Problem zu lösen versuche - oder????

                Ich werde erstmal eine sicherung machen und dann mit deiner Lösung rumprobieren!

                Vielen Dank im voraus

                barneyy


                EDIT - hat sich erledigt

                Hi Stefan - ich bin mit der Hilfe von Jako doch noch ans Ziel gekommen!
                http://www.modxcms.de/forum/comments.php?DiscussionID=5125

                Lieben Gruß

                Bernd