Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Eingabemaske - Checkboxen oder Dropdown mit vordefinierten Werten (ohne Relation)?

  1. #1
    Contao-Nutzer
    Registriert seit
    30.06.2017.
    Beiträge
    1

    Standard Eingabemaske - Checkboxen oder Dropdown mit vordefinierten Werten (ohne Relation)?

    Hallo zusammen,
    ich würde gerne wissen, ob es einen Weg gibt Checkboxen oder Dropdowns für Attribute zu nutzen ohne dabei dabei eine Datenbankrelation zu erstellen.

    Beispiel - Tabelle Länder:
    Name [Varchar] Kontinent [Varchar] Kategorien (A/B/C/D) [Varchar]
    Deutschland Europa x/x/x/x
    Frankreich Europa x/-/-/-
    USA Nordamerika x/x/x/-
    Südafrika Afrika -/-/x/x


    Was möchte ich erreichen:
    Die Kontinente hätte ich in der Eingabemaske im Backend gerne als Dropdown mit allen Kontinenten als vordefinierte Werte. Das ganze aber eben ohne eine Datenbankrelation. Im Prinzip wie ein "'inputType' => 'select'" in einem DCA.

    Die Kategorien würde ich gerne als mehrere Checkboxen haben, gespeichert als Array oder einfach nur als Text. Im Prinzip wie ein "'inputType' => 'checkboxWizard'" in einem DCA.


    Wieso das Ganze:
    1. Klar definierte und unkaputtbare Eingabe für Redakteure
    2. Einfach aufzubauen, ohne komplizierte Abhängigkeiten
    3. Kein Overhead da es keine unnötigen Datenbankabfragen gibt


    Frage:
    Gibt es diese Möglichkeit oder auch einen besseren Weg? Habe ich da einen Denkfehler?

    Danke!
    Geändert von Milan (22.05.2019 um 16:45 Uhr) Grund: Formatierung verbessert

  2. #2
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Ich wüsste jetzt nicht, wie das geht, aber ich habe auch einige Listen, wo ich nur ganz wenig Auswahloptionen habe und wo es mir zu viel war, für jedes einzelne ein extra MM anzulegen. Daher habe ich pro Hauptliste i.d.R. ein weiteres MM angelegt, wo ich alle Auswahlmöglichkeiten anlege. Falls du dich noch an die Taxonomie aus dem Catalog erinnern kannst, dann lege ich es jetzt so ähnlich an. In die Checkbox nimmst du dann mit entsprechend angelegten Filtern (die ein paar Zeilen eigenes SQL erfordern) jeweils die Auswahlmöglichkeiten, die du in der Checkbox haben willst. Aber das ist eigentlich simpel, nur etwas Arbeit es anzulegen.

    Für Werte, die sich gar nicht ändern, musst du niemandem Rechte auf dieses Metamodel geben. Dann kann auch kein Redakteur da etwas kaputt machen und nur die Kontinente oder Kategorien auswählen. Ist das zweigeteilt, würde es sich empfehlen, die starren Werte in ein eigenes Metamodel zu bauen und die variablen, die ein Redankteur pflegen muss, in ein Zweites. Dann kannst du den Zugriff von den Rechten her einfach trennen.

    Der eigene SQL Filter geht dann einfach immer auf die pid, also z.B.

    Code:
    SELECT id
    from {{table}}
    WHERE pid=481
    Die pid ist die Zeile, wo es im "Baum" dann z.B. mit den Kontinenten los geht. Die siehst du im Backend, wenn du mit der Maus über den Bleistift fährst. Du musst dafür also nicht einmal in die Datenbank und die ID suchen.

    Aber vielleicht meldet sich hier ja noch einer der Profis, die dir einen besseren Tipp geben können .
    Viele Grüße
    Shania

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

    Standard

    Man kann mehrere solcher "Hilfs-MMs" in zwei MM unterbringen, in dem das eine die Rubrik und das andere die Werte aufnimmt - über einen Filter für das BE hat man bei dem Attribut dann nur die relevanten Auswahlen wie z.B. für Anrede zur Verfügung

    so wie Du das beschreibst, wäre das mit https://github.com/MetaModels/attribute_tablemulti möglich (gibt es auch translated) - Nachteil wäre, dass Filterungen nach den Inhalten Deiner Tabelle im Prinzip mit MM-Standardsachen nicht möglich sind

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
  •