Ankündigung

Einklappen
Keine Ankündigung bisher.

kleiner SQL Abfrage Tipp benötigt in Listenmodul

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

  • kleiner SQL Abfrage Tipp benötigt in Listenmodul

    Ich bräuchte mal eben einen Tipp für die eigene SQL Abfrage. Ich wähle zu einem Hotel mehrere Freizeitangebote, die es anbietet.

    CC 1 = Hotels (DB-Tag Attribut = Freizeitangebote als Mehrfachauswahl)

    CC 2 = Freizeitangebote


    Auf der Leserseite eines Freizeitangebots (z.B. Schwimmen) sollen alle Hotels gelistet werden, die dies anbieten.

    Das hier liefert nur das Hotel, das die ID der aktuellen Freizeit-Seite hat.

    id IN (SELECT id FROM cc_hotel WHERE id = {{customcatalog::cc_freizeit::autoitem::id}})

    Es sollen aber alle Hotels gelistet werden, welche die aktuelle Freizeit-ID im DB-Tag enthalten.


  • #2
    Dafür muss du ein Einfache Abfrage Filter nutzen, dieser unterstützt Ids in Tags oder es auf reiner programmier-Ebene im Template nach filtern. Du kannst mit reinem SQL keine Blob-Felder zerlegen.

    ps. Ein Verwandte Einträge filter müsste exakt dafür ausgelegt sein.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Das mit den verwandten Einträge habe ich tatsächlich als erstes versucht. Das liefert aber keine Ergebnisse...

      Was sollte denn in der einfache Abfrage stehen?

      Ich habe die Hotelliste, einen Filter "einfache Abfrage" und hier das Attribut "Freizeitangebot". Wenn ich eine einen Inserttag auf die ID eingebe, kommt kein Ergebnis:

      {{customcatalog::cc_freizeit::autoitem::id}}

      Kommentar


      • #4
        Der Aufbau ist meines Erachtens exakt der für einen Verwandte Einträge Filter, mit Modus extern.

        Einfache Abfrage wird wahrscheinlich dann nicht gehen, weil du keine Inserttags verschachteln kannst. Alternativ bleibt natürlich immer einen richtigen Hook-Filter nutzen. Darin geht alles.
        Zuletzt geändert von Tim; 09.03.2021, 12:22.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Gibt's dafür evtl. ne Vorlage? Hab ich noch net gmacht ;-)

          Wie komme ich an den Demo Hookfilter, der hier angeboten wird?

          Kommentar


          • #6
            Quick & Dirty Lösung ist nun mit Link+Parameter in den Listenmodulen ;-)

            Code:
            <a href="<?php echo $entry->links('detail')->url; ?>?angebot=<?php echo $entry->id; ?>">

            Kommentar


            • #7
              Genau an sowas hatte ich gerade gedacht. Du kannst einen Tags-Filter nutzen auf der Detailseite für die Liste. Den Wert entweder per GET mitschleifen (wie du es gemacht hast, ist prima) oder wenn du es ohne GET-Parameter machen willst, kannst du in der initconfig.php diesen auch dyn. vorbelegen.

              Code:
              $id = \Contao\Controller::replaceInsertTags('{{customcatalog::cc_freizeit::autoitem::id}}');
              if( $id )
              {
              \Contao\Input::setGet('angebot',$id);
              }
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                ohne Get Parameter in der URL wäre natürlich wünschenswert.
                Der Vorschlag mit der initconfig führt aber nicht zum Ergebnis.

                habe es so eingetragen, aber hier wird nichts gefiltert.

                Kommentar


                • #9
                  Mit dem Parameter in der Url klappt die Filterung aber?
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    Ja, das klappt gut. URL ist halt nicht so gut und ich muss in jeder der Listen das Template individuell anpassen.

                    Kommentar


                    • #11
                      Wo ist der Hookfilter, den ich hier als Beispiel auswählen kann? Und wo würde ich einen neuen hinterlegen?

                      Kommentar


                      • #12
                        Ein Beispiel zum Hookfilter ist direkt im Modul.
                        ---
                        Das ganz klappt aber mit setGet. Platzier das mal in einer langconfig.php. Keine Ahnung warum die initconfig.php nicht klappt, aber wahrscheinlich feuert die einfach zu früh.
                        Zuletzt geändert von Tim; 10.03.2021, 08:43.
                        http://www.premium-contao-themes.com

                        Kommentar


                        • #13
                          Jau, in der langconfig funzt es!

                          Kommentar

                          Lädt...
                          X