Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: SQL Parameter zur Einschränkung von Select Feldern

  1. #1
    Contao-Nutzer
    Registriert seit
    28.05.2014.
    Beiträge
    3

    Standard SQL Parameter zur Einschränkung von Select Feldern

    Contao 4.9.26
    MetaModels Core 2.1.14


    Liebe Community,

    ich versuche ein Einzelauswahl- Feld auf der Attribut-Einstellungsseite per SQL weiter einzuschränken.
    Leider scheint es so, dass sich hier keine dynamischen Parameter wie {{param::get?name=id}} verwenden lassen und
    ein Syntaxfehler generiert wird.

    Hier ist der Inhalt des SQL Feldes:
    Code:
    (sourceTable.groups LIKE '%"1"%' AND sourceTable.disable LIKE '') OR sourceTable.id = {{param::get?name=id}}
    Können hier überhaupt dynamische Daten an dieser Stelle verwendet werden oder mache ich etwas verkehrt?
    Mit rein statischen Werten funktioniert diese Zeile.

    Mein Ziel ist es, deaktivierte Datensätze im Select- Feld nicht anzeigen zu lassen, es sei denn die ID eines deaktivierten Datensatzes wird
    im Datensatz mit dem Select- Feld bereits verwendet. Sonst würde das Select- Feld beim Abspeichern der Eingabemaske mit einem
    anderen Wert aus der Optionsgruppe des Select- Feldes überschrieben werden.

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Dassollte so hoffentlich nicht gehen, denn so würdest Du ein Tor für SQL Injection öffnen, da Du nicht kontrollieren kannst, was Du als Get-Parameter übergeben bekommst.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von massmann Beitrag anzeigen
    Contao 4.9.26
    MetaModels Core 2.1.14
    Vorab der Hinweis: https://community.contao.org/de/show...en-bitte-lesen!

    Aus den Angaben vermute ich, dass es sich um das Attribut "Übersetzte Einzelauswahl" handelt - wenn dem so ist, aus welchem Grund ist die im Einsatz und nicht die "normale" Einzelauswahl?

    Mach mal einen Screenshot der Einstellungen...

  4. #4
    Contao-Nutzer
    Registriert seit
    28.05.2014.
    Beiträge
    3

    Standard

    Dank für den Hinweis.
    Wenn sich abzeichnet, dass ich das Projekt mit mm umsetzen kann, wird es definitiv MM 2.2.

    Nein, ich habe nicht "übersetzte Einzelauswahl" verwendet. Der Screenshot und die verwendeten Module hängen an.

    Ich habe nun versucht das Problem zu umschiffen. In dem ich einfach das Select Feld ausblende,
    wenn es schon befüllt wurde. Dann benötige ich allerdings eine weitere Eingabemaske für das Frontend
    mit nur diesem einen SELECT-Feld.
    Dabei bin ich allerdings auf ein weiteres Problem gestoßen. Es lassen sich zwar mehrere Eingabe- Masken generieren.
    Aber es kann immer nur eine Maske pro Mitgliedergruppe verwendet werden. Auch dann, wenn ich dem Mitglied
    mehrere Mitgliedergruppen zuweise.
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.714
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von massmann Beitrag anzeigen
    A: Nein, ich habe nicht "übersetzte Einzelauswahl" verwendet. Der Screenshot und die verwendeten Module hängen an.

    B: Dabei bin ich allerdings auf ein weiteres Problem gestoßen. Es lassen sich zwar mehrere Eingabe- Masken generieren.
    Aber es kann immer nur eine Maske pro Mitgliedergruppe verwendet werden. Auch dann, wenn ich dem Mitglied
    mehrere Mitgliedergruppen zuweise.
    zu A: o.k. - jetzt habe ich gesehen, dass das eine Nicht-MM-Tabelle ist - ansonsten würde die Auswahl eines Filters erscheinen.

    In dem Selectfeld gibt es keine Ersetzung von Inserttags - könnte man in MM 2.2 ggf. nachrüsten. siehe https://github.com/MetaModels/attrib...elect.php#L141

    Wenn man eine MM-Tabelle hat und einen Filter verwendet, kann man das per Filterregel "SQL" machen da dort die GET- und POST-Werte abgefragt werden können...

    Vom DCG gibt es das BuildWidgetEvent, was das Widget aufbaut - damit könnte das funktionieren


    zu B: die Frage kommt alle paar Jahre wieder auf - nein, geht nicht! Ich sehe da auch wenig Sinn dahinter einem User zwei unterschiedliche Eingabemasken für einen Datensatz zur Verfügung zu stellen. Mit den sehr umfangreichen Einstellungsmöglichkeiten der Ansichtsbedingungen eines Widgets und den Events des DCG kann man eigentlich alles Erdenkliche zusammendengeln...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •