Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe Liste alphabetisch / per Zufall

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe Liste alphabetisch / per Zufall

    Hallo,

    ich möchte die Ergebnisse in der Listendarstellung mittels jeweils einem Button alphabetisch und per Zufall sortiert ausgeben können.
    Mir erschließt sich die Funktionsweise bei den Filtern noch nicht richtig, wie gehe ich hier am besten vor? In der Dokumentation und im Forum habe ich keine Lösung dafür gefunden.

    Muss ich dafür erst Buttons anlegen und denen die Funktionalität mitgeben oder regle ich das komplett über die Filter?
    Die Ausgabe bekomme ich für die beiden Sortierungen hin (RAND() und alphabetisch), nur wie schalte ich um?

    Danke

  • #2
    CC hat Sortierungs-Filter, anwendbar auf Text oder Numerische Felder. Ein "zufällig" ist dort aber nicht vorgesehen.

    Ein Hin-und-Her Schalten wirst du manuell programmieren müssen. Das würde man über einen GET Parameter in der Url prüfen können.
    Hier empfiehlt sich der getQueryOption Hook von CC. Dort wird vor der Haupt-SQL-Abfrage die Grundlegenden Einstellungen übergeben.

    Auch sehr gut anwendbar wäre ein eigener kleiner Hook-Filter, der die Sortierung umstellt. Geht auch prima.
    ---
    Alternative wäre ein shuffle im CC Template http://php.net/manual/de/function.shuffle.php, da stimmen dann aber ggf. CSS Klassen nicht mehr wie first, last usw.
    ---
    Contao kann leider kein if(...) in Inserttags. Sonst könnte man hier mit Inserttags arbeiten. Das wäre cool
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Noch einfacher
      CC erlaubt natürlich direkt per url eine Sortierung zu geben z.B. meineSeite.html?orderby=RAND()

      Damit brauchste nur ein input Feld im mod_customcatalogfilter bzw. form_customcatalog_filter ergänzen mit value="RAND()". Fertig und die Liste wird gewürfelt. Andere Sortierungen werden hier sogar dann standardmäßig überschrieben. Damit ist das Hin-und-Her auch schon fertig.
      Zuletzt geändert von Tim; 21.11.2016, 14:45.
      http://www.premium-contao-themes.com

      Kommentar


      • #4
        Ha, das ist ja super, da wäre ich nicht drauf gekommen mit der URL ...

        Danke dir!

        Kommentar


        • #5
          Hallo,

          so etwas wie "meineSeite.html?orderby=ASC" gibt es nicht oder? Dann könnte ich mir ja einfach zwei hübsche Hyperlinks mit den jeweiligen Links für ?orderby=RAND() und dem für alphabetische Ausgabe anlegen ...

          Gruß

          Kommentar


          • #6
            Zitat von zitronen Beitrag anzeigen
            Hallo,

            so etwas wie "meineSeite.html?orderby=ASC" gibt es nicht oder? Dann könnte ich mir ja einfach zwei hübsche Hyperlinks mit den jeweiligen Links für ?orderby=RAND() und dem für alphabetische Ausgabe anlegen ...

            Gruß
            Klar. Alles schon vorbereitet , Aber du musst nen Feld mit angeben, sonst weiss CC/SQL ja nicht wonach sotiert werden soll z.b. CC hat folgende Logik

            ?orderby=title[DESC] bzw. ?orderby=title[ASC]
            Zuletzt geändert von Tim; 24.11.2016, 09:18.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Herzallerliebst vielen Dank - wunderbar!

              Kommentar


              • #8
                Hallo,

                ich hänge wieder bei der gleichen Thematik.

                Mein Modul für die CC Liste hat für die Zufalls-Ausgabe "Eigene SQL Sortierung" noch RAND() hinterlegt, sodass meine Ergebnisse standardmäßig zufällig ausgegeben werden. Über der Liste habe ich mir 2 Buttons eingebaut mit jeweils einem Link: "{{link_url::924}}?orderby=firmenname[ASC]" und "{{link_url::924}}?orderby=RAND()". Somit kommt jemand auf die Seite aller Mitglieder und bekommt fairer Weise die Mitglieder zufällig ausgegeben. Über den ersten Button kann er sich dann manuell die Ergebnisse alphabetisch darstellen.

                Nun ist es nur so, dass der erste Button wohl nicht greift, sondern von der im Modul eingebenenen RAND() Anweisung überschrieben wird, denn hier wird nichts alphabetisch ausgegeben. Wenn ich RAND() entferne funktioniert der Button ...

                Wie kann ich das lösen?

                Danke und Gruß
                Florian

                Kommentar


                • #9
                  Richtig, die Moduleinstellungen repräsentieren den Standard-Wert. Alles weitere wird ergänzt. Nutze keinen Wert und leite den Benutzer einfach auf die Seite mit orderby=RAND() zusätzlich als GET Parameter z.B. durch eine Externe Seite in der Seitenstruktur als Sprungbrett.
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    Also in der Seite eine externe Weiterleitung auf die interne Seite mit der Liste und als parameter ?orderby=RAND() hängen?

                    Erzeugt bei mir eine Endlosschleife ...

                    Kommentar


                    • #11
                      Zitat von zitronen Beitrag anzeigen
                      Also in der Seite eine externe Weiterleitung auf die interne Seite mit der Liste und als parameter ?orderby=RAND() hängen?

                      Erzeugt bei mir eine Endlosschleife ...
                      Eine Externe Weiterleitungsseite, nicht eine stetige Weiterleitung, die erzeugt natürlich eine Endlosschleife. und es muss auch eine richtige Url werden z.b. deine vom button: {{link_url::924}}?orderby=RAND()
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Okay, das verstehe ich noch nicht ganz. Meinst du mit Externe Weiterleitungsseite eine Seite die ich noch dazwischenschalte? Die nur dazu dient wiederrum weiterzuleiten?

                        Also den Menüpunkt "Mitglieder" auf die "Zwischenseite" weiterleiten, von dort dann mittels {{link_url::924}}?orderby=RAND() bei dem Feld externe Weiterleitung auf die Liste ... ?

                        Kommentar


                        • #13
                          Kurz gesagt. Wie du den GET parameter standardmäßig in die url kriegst ist eigentlich egal. Hauptsache er ist drin , wenn du zwischen Sortierungen hin-und-her schalten willst, ohne eine Standardsoriterung zu definieren.
                          Du musst quasi genau das gleiche machen, was dein Button macht - nur eben ohne Interaktion vom user. Das leichteste ist es mit Externen Weiterleitungsseiten zu arbeiten, weil man dort eine eigene Url eingeben kann.
                          http://www.premium-contao-themes.com

                          Kommentar


                          • #14
                            Okay, ich das bekomme ich schon irgendwie hin, danke dir!

                            Kommentar

                            Lädt...
                            X