Contao-Camp 2024
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 45

Thema: [Database Select Table Field] - Select mit Daten aus der Datenbank

  1. #1
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard [Database Select Table Field] - Select mit Daten aus der Datenbank

    Hallo.

    Ich habe eine kleine Erweiterung veröffentlicht.
    Getestet mit Contao 3.5.28.

    [Database Select Table Field]

    Installation:
    1. Download ZIP
    2. Datei entpacken
    3. Umbennen auf 'database-select-table'
    4. Upload nach /system/modules
    5. Datenbankupdate machen


    Nutzung:

    Nach der Installation ist ein neues FormFiled zur Verwendung im Formulargenerator vorhanden.

    Bildschirmfoto 2017-10-19 um 21.47.33.png

    Download & Tickes:
    Github: https://github.com/Messa1/contao-database-select-table

    Liebe Grüße
    Matthias
    Geändert von Messa (22.10.2017 um 19:35 Uhr)
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  2. #2
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.487

    Standard

    Vielen Dank ... das sieht doch super aus.

    Kleine Frage: Kann man auch Bedingungen angeben für die Select Felder?

    Als beispiel hier eine Abfrage aus dem EFG

    bedingung.JPG

  3. #3
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo.

    Bis jetzt noch nicht Klingt nach einem netten Feature.
    Du kannst aber gerne ein Ticket auf Github eröffnen.
    https://github.com/Messa1/contao-dat...t_field/issues

    Liebe Grüße
    Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  4. #4
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    hi Acta.

    Ich wollt dich nur auf dem Laufenden halten.
    Dein Wunsch ist eingebaut und ich teste noch alles durch.
    Hoffe, dass ich am WE dazu komme die aktuelle Version auf GitHub zu laden.
    Melde mich dann im Ticket sobald es erledigt ist.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  5. #5
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo.

    Neue Version V1.0.1 ist online.
    Bitte kompletten alten Ordner löschen und den neuen Ordner komplett einfügen.
    Danach Datenbank aktualisieren lassen .

    Ich habe es jetzt nur lokal bei mir getestet.
    Bei Fragen schreib mir einfach.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  6. #6
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.487

    Standard

    Hey Messa,

    hast du das Tool auch schonmal mit Contao 4 getestet?

  7. #7
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo.

    Nein habe keine Contao 4 Installation. Steige erst um sobald es keine LTS der 3er mehr gibt
    Denke auch, dass ich dann das Tool umbauen muss :/ Und den Aufwand kann ich vorab noch nicht einschätzen,
    da ich noch keine Contao 4 Erweiterung programmiert habe. Da ich auch keinen Kunden habe die, die 4er Version am Laufen haben

    Hast du mein Tool nicht auch in einer 3er getestet und in Verwendung?

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  8. #8
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.487

    Standard

    Jop hab ich. Werde meine 3.5.er auch erst ganz zum Schluss umziehen.

    Hab nur nebenbei ne 4er Testumgebung aufgebaut. Daher die Frage.

  9. #9
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Ich mach mich mal die Tage schlau wie viel Aufwand das ist und ob ich für die 4er was komplett neues machen muss.
    Melde mich dann wieder hier Aber bitte test das Tool mit einer 3.5 Version mal. Bei mir hat alles gut funktioniert.
    Bei Fragen einfach melden

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sehr gut, gehört IMHO zum Core.

    Ich habe aber gerade ein Ticket erstellt, weil es noch nicht funktioniert. https://github.com/Messa1/contao-dat...field/issues/2

    Was du noch machen solltest ist die Sprache "en" hinzufügen. Selbst wenn die auch erstmal auf Deutsch ist, ist dies die Fallbacksprache und sollte immer existieren.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  11. #11
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Danke fürs Testen. Ich mache mich gleich auf die Fehler suche und übersetze es dann noch auf EN.

    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  12. #12
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo Andreas.

    Das senden klappt nun, ich muss die nächsten Wochen noch den Code überarbeiten und aufräumen Ist leider sehr zusammenkopiert aus dem Core Code.
    Den HTML Fehler habe ich leider nicht reproduzieren können. Habe auch mit Contao 3.5.30 getestet.

    Screenshot backend
    Bildschirmfoto 2017-10-20 um 10.40.29.png

    Hier meine HTML Ausgabe
    Bildschirmfoto 2017-10-20 um 10.39.20.png

    Liebe Grüße
    Matthias
    Geändert von Messa (20.10.2017 um 10:40 Uhr)
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  13. #13
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.487

    Standard

    Klingt gut! Ich habe Anfang November nochmal ne Woche Urlaub.. Da will ich dann das ganze tool mal mit meinen Daten als EFG -Alternative durchtesten....

  14. #14
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Matthias.

    Wie du im Ticket siehst, habe ich den Fehler gefunden, nachdem deine Änderung bei mir nichts brachte.

    Ich würde dir aber gerne noch ein paar Notizen von mir zeigen, was mir noch aufgefallen ist, Fragen usw. Evtl. kannst du das ein oder andere ja gebrauchen.

    1. db_select_datenbank => db_select_db

    Es gibt da ein Feld db_select_datenbank, den Namen solltest du ins Englische überführen.

    2. contao-database_select_field => database_select_field | select_db | [form|ffl|widget]_select_db

    Die anderen Erweiterungen auf github haben zwar auch "contao-" davor, aber der eigentliche Ordnername in system/moduls/ ist dann ohne "contao-". Evtl. könnte der Name des Ordners (der Erweiterung) auch kürzer sein. Beispiele siehe oben. Auch die Bezeichnung im Select "Feldtyp". Ich glaube es gab schonmal so ein Feld und das hieß einfach nur "Select-DB". (Obwohl das ja eigentlich nicht stimmt, man wählt ja keine DB, sondern eine Table.)

    3. $this->import('Database'); => \FormFieldModel

    Hast du das mit dem "import" in forms/FormDBSelectMenu.php aus dem Core abgeschaut? Ich bin kein Entwickler, aber wären die Daten da nicht einfacher über ein FormFieldModel zu holen?

    4. db_ => sdb_

    Es wäre schön, wenn der Prefix der Tabellenfelder zum Namen der Erweiterung passen würde, oder eine Abkürzung davon wäre. Am Beispiel easy_themes, dort ist dies "et_".

    5. Was ich wichtig finde, du aber wahrscheinlich schon gemacht hast, ich habe es nicht kontrolliert, ist das HTML der FE-Ausgabe zu validieren und das HTML an die Contao Widgets anpassen, dass dies identisch ist.

    Leerzeichen nach Tab machst du wahscheinlich, zwischendurch immer mal wieder. Ich schreibe auch immer mit Leerzeichen und wenn ich nicht aufpasse habe ich da Kuddelmuddel.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  15. #15
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Jetzt, nachdem ich das geschrieben habe, stelle ich mir die Frage, ob so ein Feld, bzw. die Erweiterung, nicht besser "Select-Table" heißen sollte, da man ja tatsächlich eine Tabelle und keine DB wählt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  16. #16
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo Andreas.

    Ah ok, danke fürs anschauen. Ändere ich. Zu deinen Ideen.

    1. Mach ich
    2. Andere Erweiterungen haben auch contao davor
    https://github.com/terminal42 schlussendlich ist es eigentlich egal wie der Ordner heißt sieht ja niemand
    Name kann ich gern ändern
    3. Wie oben beschrieben habe ich Code drinnen der noch angepasst werden muss. Bin nicht mit allen model oder Klassen von contao vertraut. Teils ist es eine Kopie von einem form.php von contao. Wird aber noch verfeinert und verbessert, aber solang es vorab funktioniert kann damit gearbeitet werden. Bin selber Frontend-Entwickler und Grafiker
    4.kann ich machen
    5.ist contao identisch. Legendlicht der Import der Felder + das verarbeiten kommt von mir + eigenes Widget für Bedienungen.

    Leerzeichen muss ich checken.
    Danke nochmals für testen, sobald ich alles erledigt habe melde ich mich. Punkt 3 wird in einem seperaten Push geschehen.

    Liebe Grüße
    Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  17. #17
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    2. Ja, die haben aus irgendeinem Grund, wahrscheinlich Übersichtlichkeit, Suche usw. das "contao-" davor, aber nie im Ordnernamen (zumindestens nicht in Contao 3.5).

    3. Das mit den Models ist sehr einfach, kannst du dir in der Doku mal ansehen und dann auch im Core abschauen. Aber wenn du es im Core so gefunden und kopiert hast, würde ich es glaube ich auch so lassen. Ich wüsste da einfach nicht, warum man im Core keine Models benutzt. Hat evtl. einen Grund.

    Auf jeden Fall schonmal danke für diese Erweiterung. Auch wenn ich sie jetzt gerade nicht benötigt kann ich mich erinnern, dass ich schon des öfteren danach gesucht hatte und dann eine andere Lösung umsetzen musste.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  18. #18
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo Andreas.

    2. Also wenn ich die zips herunterlade und entpacke sieht es gnau gleich wie bei mir aus steht auch contao davor und ja mir geht es hierbei nur darum, dass wenn es jemand sucht leicht gefunden wird

    3. Erfahrung damit habe ich schon wie gesagt ich überarbeite den Code so oder so noch. Mir ging es nur darum, da ich so was schon oft gebraucht habe und nichts passendes gefunden habe. Und wenn scho so was programmiere sollen alle davon was haben darum habe ich es veröffentlichen auch wenn es noch nicht perfekt ist

    Lg
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  19. #19
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Perfekt ist ja sowieso nichts

    Ne, wir war das mit dem Namen nur aufgefallen, weil man bei den anderen manuell installierten Erweiterungen das "contao-" immer wegmachen muss. Als deine dann nicht lief musste ich zuerst in die config gucken wie der Ordner heißen muss https://github.com/Messa1/contao-dat...toload.php#L27
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  20. #20
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo Andreas.

    So die die Felder die nun angelegt werden heißen "dbst_" DataBaseSelectTable.
    Das bedeutet die Erweiterung heißt zukünftig auch so.

    Autoload File st auch auch umgeschrieben, contao- bleibt aber beim Ordern. Dieser muss dann vor dem Upload auf
    "database-select-table" abgeändert werden.

    Ich werde die nächsten Wochen den Code noch umbauen und anpassen.
    Deine Zeile habe ich eingefügt.
    PHP-Code:
    $db_conditions deserialize($this->db_conditionstrue); 
    Danke dafür.

    Ich führe in ein paar Minuten ein Push auf Github druch, dann ist der neue Code online. Version Nummer bleib vorab aber gleich

    Liebe Grüße
    Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  21. #21
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Vielen Dank
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  22. #22
    Contao-Nutzer
    Registriert seit
    16.04.2013.
    Beiträge
    12

    Standard

    Hallo!

    Diese Erweiterung ist super und stellt endlich eine Alternative zu einer Funktion dar die es bisher nur in "EFG" gab!!!

    Ich hätte da noch einen Verbesserungsvorschlag:

    Als Bedingung für die Auswahl gibt es momentan nur die Möglichkeit mit exakten Werten aus der Datenbank zu arbeiten (also z.B. wenn Feld "A" GLEICH "1" ist...).
    Optimal wäre es wenn man auch zusätzlich die Möglichkeiten wie "größer" oder "kleiner" hätte. Dann könnte man z.B. auch Datumsangaben für z.B. die Veröffentlichung von Elementen mit einbeziehen.

    In der Erweiterung "EFG" ist das relativ einfach gelöst indem man die Bedingung frei definieren kann.

    Es wäre absolut genial wenn du das noch einbauen könntest...

    Viele Grüße,
    Michael.

  23. #23
    Alter Contao-Hase Avatar von Messa
    Registriert seit
    19.01.2011.
    Ort
    Vorarlberg, Österreich
    Beiträge
    1.423

    Standard

    Hallo Michael.

    Bitte erstelle ein Ticket auf Github.

    Ich habe das extra so gemacht, das keine SQL Error enstehen können oder SQL Injection.

    Ich habe schon eine "neue" Version in den Startlöchern mit mehr Funktionen.
    Leider komme ich im Moment kaum dazu daran weiter zu arbeiten.

    Aber erstell mal ein Ticket mit deinem Wunsch nach Größer / Kleiner.

    Liebe Grüße
    Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

  24. #24
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard Select mit Daten aus der Datenbank für Contao 4.9

    Hallo zusammen,
    ich wärme dieses Thema von damals noch einmal auf. Ich bin auf der Suche, nach genau so einer Erweiterung für Contao 4.9. Ich habe leider nichts vergleichbares finden können und die auf GitHub verfügbare Version ist scheinbar nicht mit Contao 4.9 kompatibel (Formular-Inhaltselement anlegen und Einstellungen vornehmen klappt größtenteils bis auf die Bedingungen, es erfolgt allerdings keine Ausgabe im Frontend und das Inhaltselement im Backend wird nach dem Speichern auch nicht richtig angezeigt.)

    Gibt es eine vergleichbare Alternative oder eine Möglichkeit die Erweiterung für Contao 4.9 zu nutzen?

    Vielen Dank für eure Hilfe!!
    Markus

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    Gibt es eine vergleichbare Alternative oder eine Möglichkeit die Erweiterung für Contao 4.9 zu nutzen?
    ggf. das https://github.com/trilobit-gmbh/con...options-bundle

  26. #26
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard Select mit Daten aus der Datenbank

    Hallo zonky,

    ja, perfekt – das ist genau was ich gesucht habe! Komisch, dass ich da beim Suchen nicht drauf gestoßen bin... VIELEN DANK!

    Jetzt stehe ich allerdings vor einem weiteren Problem, bei dem du mir vielleicht helfen kannst:
    Ich kann mit der Erweiterung eine Tabelle auswählen und daraus dann eine Spalte jeweils für Option und Label. Hier wird auf eine per DCA neu angelegte Spalte in der Mitgliederverwaltung zurückgegriffen. Wie bekomme ich es denn da dann hin, dass dort mehrere Werte hinterlegt sein können? Das hatte ich jetzt über mehrere Spalten gelöst, kann aber ja scheinbar im "Datenbank Select-Menü" immer nur eine abrufen.

    Kurz zur Aufgabenstellung: Die Mitglieder haben zwischen ein bis sechs verschiedene Nummern, die sie beim Absenden eines Formulars über ein Select-Menü auswählen sollen.

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    A) Ich kann mit der Erweiterung eine Tabelle auswählen und daraus dann eine Spalte jeweils für Option und Label. Hier wird auf eine per DCA neu angelegte Spalte in der Mitgliederverwaltung zurückgegriffen.
    B) Wie bekomme ich es denn da dann hin, dass dort mehrere Werte hinterlegt sein können? Das hatte ich jetzt über mehrere Spalten gelöst, kann aber ja scheinbar im "Datenbank Select-Menü" immer nur eine abrufen.

    Kurz zur Aufgabenstellung: Die Mitglieder haben zwischen ein bis sechs verschiedene Nummern, die sie beim Absenden eines Formulars über ein Select-Menü auswählen sollen.
    A: soweit klar
    B: nicht verstanden - ggf. mal Screenshots posten

  28. #28
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard Select mit Daten aus der Datenbank

    Danke erstmal, dass du dich dessen annimmst. Ich bin in dem Thema leider ein wenig laienhaft unterwegs. Hier drei Screenshots – einer vom neuen Datenbank Select-Menü im Frontend, die Konfiguration im Backend sowie die per DCA neu angelegten Felder im Backend in der Mitgliederverwaltung. Von diesen Feldern kann ich in der Konfiguration des Select-Menüs ja immer nur eins auswählen, ich müsste aber – je nach Mitglied – mal eine Nummer, mal mehrere Nummern angeben.
    Angehängte Grafiken Angehängte Grafiken

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    Von diesen Feldern kann ich in der Konfiguration des Select-Menüs ja immer nur eins auswählen, ich müsste aber – je nach Mitglied – mal eine Nummer, mal mehrere Nummern angeben.
    Dann muss Du auf Checkbox-Menü wechseln oder gucken, ob bei dem Select "multiple" aktivierbar ist.


    Ggf. ist es einfacher sich ein eigenes Formularelement zu schreiben / schreiben zu lassen.


    nochmal die Screens angesehen... Du hast offensichtlich je Member die Spalten schlagzahl_1, schlagzahl_2, schlagzahl_n angelegt - d.h. du müsstest je Spalte ein Formularelement anlegen - ggf. kann man im Template abfangen, wenn kein Wert, das Widget nicht ausgeben

    oder ein eigenes Widget für Deinen Case bauen

  30. #30
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard

    Genau, zurzeit ist es so angelegt, dass jedes Schlagzeichen eine eigene Spalte hat. Das ist aber kein Muss. Wenn man das Feld auch per DCA anders konfigurieren kann z.B. Zahlen per Komma getrennt oder ähnliches würde das auch gehen.

    Wenn ich pro Spalte ein Formularelement anlege habe ich ja hinterher acht Select-Menüs mit jeweils nur einem Wert, oder lassen sich die irgendwie kombinieren?

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    Wenn ich pro Spalte ein Formularelement anlege habe ich ja hinterher acht Select-Menüs mit jeweils nur einem Wert, oder lassen sich die irgendwie kombinieren?
    Wenn Du mit den gegebenen Erweiterungen arbeiten möchtest, sehe ich kaum eine andere Möglichkeit. Für die Eingabe bei den Mitgliedern könnte man den MCW einsetzen, so dass die Werte als "CSV" in einer Zelle liegen - aber auch da benötigst Du ein eigenes Formularwidget, was Dir das wieder aufdröselt...

  32. #32
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard Select mit Daten aus der Datenbank

    Okay, danke dir für die Tipps! Ich werde mir das nochmal näher anschauen und meine Lösung dann hier kund geben. Die Erweiterung hat aber auf jeden Fall schonmal sehr geholfen!

  33. #33
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard [Database Select Table Field] - Select mit Daten aus der Datenbank

    Hallo zusammen,
    einige Zeit später habe ich mich nochmal dem Problem gewidmet und bin der Lösung eventuell ein Stück näher gekommen. Mit dem MultiColumnWizard hatte ich mich erst versucht, dann hat sich aber ergeben, dass ich vom Kunden die Benutzerdaten als CSV mit allen Nummern kommagetrennt in einer Zelle geliefert bekomme. Entsprechend brauche ich nur noch ein Feld im Backend und habe es so umgebaut.

    Das Template vom Datenbank Select-Menü habe ich so umgeschrieben, dass die Werte jeweils als separate Option ausgegeben werden. Das klappt auch soweit, allerdings bekomme ich beim Absenden des Formulars den Fehler "Ungültige Auswahl!".

    PHP-Code:
    <select name="<?= $this->name ?>" id="ctrl_<?= $this->id ?>" class="<?= $this->class ?>"<?= $this->getAttributes() ?>>
           <?php if ('group_start' == $option['type']): ?>
            <optgroup label="<?= $option['label'?>">
          <?php endif; ?>
        <?php 
        
    foreach ($this->getOptions() as $option) {
            
    $options $option['value'];
            
    $selected $option['selected'];
            
    $optionsArr explode(",",$options);   
            foreach (
    $optionsArr as $row){
                echo 
    '<option value='.$row.''.$selected.'>'.$row.'</option>';
            }
        }
        
    ?>
        <?php if ('group_end' == $option['type']): ?>
            </optgroup>
          <?php endif; ?>
      </select>

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    allerdings bekomme ich beim Absenden des Formulars den Fehler "Ungültige Auswahl!".
    was korrekt ist - Contao prüft, ob es Deine Eingabe in der Optionsliste überhaupt gibt... und das ist nicht der Fall!

  35. #35
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard

    Danke für die fixe Antwort! An welcher Stelle müsste denn das Separieren der einzelnen Optionen denn passieren, damit die Ausgabe von Contao anerkannt wird? Oder ist das gar nicht möglich?

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    Danke für die fixe Antwort! An welcher Stelle müsste denn das Separieren der einzelnen Optionen denn passieren, damit die Ausgabe von Contao anerkannt wird? Oder ist das gar nicht möglich?
    Du musst dir ein eigenes Widget bauen, was aus der "CSV" die Sachen als überprüfbare Werte baut oder du müsstest den Validator anpassen ... würde ich sagen...

  37. #37
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    du müsstest den Validator anpassen
    Das erscheint mir auf den ersten Blick am "Einfachsten". Ich habe mich am Freitag mal mit dem Hook "loadFormField" auseinandergesetzt. Mit den Anleitungen in der Dokumentation (https://docs.contao.org/dev/reference/hooks/ und https://docs.contao.org/dev/referenc...loadFormField/) komme ich aber nicht zum Erfolg (kenne mich mit sowas allerdings auch leider nicht wirklich aus). Auch über den (scheinbar alten) Weg, es als Modul statt über den EventListener anzulegen, bekam ich am Ende immer den Fehler dass die Klasse nicht gültig oder unbekannt ist.
    Code:
    [2021-08-27 16:04:51] request.CRITICAL: Uncaught PHP Exception RuntimeException: "System::import() failed because class "App\EventListener\LoadFormFieldListener" is not a valid class name or does not exist." at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php line 198 {"exception":"[object] (RuntimeException(code: 0): System::import() failed because class \"App\\EventListener\\LoadFormFieldListener\" is not a valid class name or does not exist. at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php:198)"} []
    In der composer.json habe ich den Punkt "autoload" hinzugefügt und über den Manager den Cache neu aufgebaut..

    Was mache ich falsch? Bzw. ist das der richtige Weg?

    ...und wenn ich geschafft habe, dass die Klasse angenommen wird, wie kann ich die Funktion dann laut der Anleitung in der Dokumentation auf das eine Feld anwenden? Bei einem Weg, den ich im Forum gefunden habe war das sehr eindeutig per Formularfeld ID gelöst.

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

    Standard

    Zitat Zitat von design-the-future Beitrag anzeigen
    Was mache ich falsch?
    dazu müsste man wissen/sehen, was Du gemacht hast? ;-)

  39. #39
    Contao-Nutzer
    Registriert seit
    19.03.2013.
    Beiträge
    32

    Standard

    sorry, natürlich...
    dadurch, dass ich mehreres ausprobiert habe habe ich nicht DEN einen Weg, aber hier die zwei, die mir am vielversprechendsten vorkamen:

    Weg 1 (Contao Dokumentation)

    1. Unter "app/Resources/contao/config" die Datei "config.php" angelegt:
    PHP-Code:
    <?php
    // app/Resources/contao/config/config.php
    use App\EventListener\LoadFormFieldListener;

    $GLOBALS['TL_HOOKS']['loadFormField'][] = [LoadFormFieldListener::class, '__invoke'];
    2. Unter "vendor/contao/core-bundle/src/EventListener" die Datei "LoadFormFieldListener.php" angelegt:
    PHP-Code:
    <?php
    // src/EventListener/LoadFormFieldListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Contao\Form;
    use 
    Contao\Widget;

    /**
     * @Hook("loadFormField")
     */
    class LoadFormFieldListener
    {
        public function 
    __invoke(Widget $widgetstring $formId, array $formDataForm $form): Widget
        
    {
            if (
    '63' === $formId) {
                
    $widget->class.= 'ManipulateForm';
            }

            return 
    $widget;
        }
    }
    Hier bin ich mir mit der Konfiguration absolut unsicher, allerdings wird ja schon die Klasse nicht anerkannt, sodass ich hier noch nicht herausfinden konnte wie was dann wirklich funktioniert.

    3. In der composer.json den autoload-Eintrag hinzugefügt:
    PHP-Code:
    "autoload": {
            
    "psr-4": {
                
    "App\\""src/"
            
    }
    }, 
    4. Mittels Contao Manager den Anwendungs-Cache geleert.
    -> führte (beim Laden von Seiten mit Formularen) zum besagten Fehler
    5. Composer Class Loader über den Manager ausgeführt
    -> gleicher Fehler


    Weg 2 (Ideen aus dem Forum / von anderen Websites)

    1. Anlegen der Modul-Ordnerstruktur unter "system/modules":
    ManipulateForm
    -config

    2. Unter "system/modules/ManipulateForm" die Datei "ManipulateForm.php" angelegt:
    PHP-Code:
    <?php
    class ManipulateForm extends Backend

      public function 
    CoastLoadFormField(Widget $objWidget$strForm$arrForm
      { 
        if (
    $arrForm['id'] == '63' && $objWidget->id == '817') { 
          
    $arrOptions = array(); 
        } 
        return 
    $objWidget
      } 
    }
    3. Unter "system/modules/ManipulateForm/config" die Datei "config.php" angelegt:
    PHP-Code:
    <?php
        $GLOBALS
    ['TL_HOOKS']['loadFormField'][] = array('ManipulateForm''CoastLoadFormField');
    4. Mittels Contao Manager den Anwendungs-Cache geleert.
    -> führte (beim Laden von Seiten mit Formularen) zum Fehler:
    Code:
    [2021-08-27 14:31:43] request.CRITICAL: Uncaught PHP Exception RuntimeException: "System::import() failed because class "ManipulateForm" is not a valid class name or does not exist." at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php line 198 {"exception":"[object] (RuntimeException(code: 0): System::import() failed because class \"ManipulateForm\" is not a valid class name or does not exist. at /html/domain.de/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php:198)"} []
    5. Composer Class Loader über den Manager ausgeführt
    -> gleicher Fehler

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

    Standard

    * Weg 1
    * Punkt 1 weglassen
    * Punkt 2 nicht in "vendor/contao/core-bundle/src/EventListener/" sondern wie es da steht in "src/EventListener/"

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
  •