Ergebnis 1 bis 6 von 6

Thema: Frontend-Editing in Anführungszeichen

  1. #1
    Contao-Nutzer Avatar von sebi
    Registriert seit
    17.03.2012.
    Ort
    Kiel
    Beiträge
    154

    Standard Frontend-Editing in Anführungszeichen

    Moin zusammen,

    ich probiere für einen Kunden gerade mal ein bisschen mit MetaModels herum. Geht darum eine Art Projektbörse zu erstellen, wo FE-Mitglieder eigene Projekte eintragen und im besten Fall auch später ändern können.

    Den Part mit der Eintragung habe ich soweit schon hiermit hinbekommen. Klapt auch.

    FE-Formular: FE-Eingabe.jpg
    BE-Formularkonfiguration: BE-Eingabeformular.jpg

    Das Feld ID im Frontend werde ich noch als verstecktes Feld anlegen, ist nur jetzt zur Kontrolle noch sichtbar. Es wird über das Insert-Tag "{{user::id}}" mit der ID des angemeldeten Nutzers gefüllt, so dass man später die Projekte zuordnen kann.

    Nach Anleitung im Wiki habe ich dann eine FE-Liste mit Zusatzfilter erstellt, so dass nur die Projekte des angemeldeten Nutzers angezeigt werden. Dieser ist direkt im Modul als "Anzuwendene Filtereinstellung" ausgewählt. Die Liste enthält außerdem den Details-Links, der zur Detailansicht eines Projektes leitet.

    Zusatzfilter: BE-Zusatzfilter.jpg
    FE-Liste: FE-Liste.jpg

    Meine Überlegung ist nun, dass das angemeldete Mitglied auf der "Detailseite" die eingegebenen Daten in einem Formular angezeigt bekommt, diese ggf. ändern kann und nach Klick auf Speichern, diese in der Datenbank aktualisiert werden.
    Dass die Daten in Formularfeldern ausgegeben werden habe ich über die Templates der einzelnen Felder gelöst. Beispielsweise habe ich für das Text-Attribut ein Template angelegt und bearbeitet:
    PHP-Code:
    <input name="<?php echo $this->additional_class?>" type="text" value="<?php echo $this->raw?>">
    Damit der name des input-Feldes richtig gesetzt wird, habe ich mich dem Feld "Zusätzliche CSS-Klasse" bedient. Den Spaltennamen "colname" konnte ich leider nicht finden, bzw herausfinden, wie ich diesen direkt ausgebe, ohne den Feldnamen so zu übergeben.

    BE-Attribut: BE-Attribut.jpg

    Nun habe ich dazu ein paar Fragen
    • Wie kann ich den Spaltennamen in das name-Attribut des input-Feldes besser übergeben?
    • Ist der Ansatz über die Templates die Ausgabe in input-Felder zu lösen gut? Oder kann man ggf. das über den Formular-Editor erzeuge Formular dafür ebenfalls verwenden?
    • Wie sollte ich am besten vorgehen, um die geänderten Daten in die Datenbank zu bringen? (kurzes php-Skript, das als form-action aufgerufen wird? andere Lösung?)
    • Gibt es bei diesem Vorgehen allgemeine Bedenken eurerseits? Dann bitte her damit


    Wenn das alles so klappt, wie ich es hoffe, werde ich das auch gerne ins Wiki bringen, solange die Spenden-Summe für das echte Frondend-Editing noch nicht zusammen gekommen ist.

    Besten Gruß,
    sebi

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

    Standard

    ein Hinweis: die User-ID als verstecktes Feld ist trotzdem "sichtbar" und manipulierbar - besser wäre es wahrscheinlich, die aus der Session zu ziehen...

    eine Info: ggf. ist das interessant für das Projekt: https://community.contao.org/de/show...rs-Contao-Camp

  3. #3
    Contao-Nutzer Avatar von sebi
    Registriert seit
    17.03.2012.
    Ort
    Kiel
    Beiträge
    154

    Standard

    Danke schon mal für das Feedback.

    Habe jetzt versucht die ID des Mitglieds über einen Hook aus der Session zu holen und dann manuell zu setzen, aber sie wird dann nicht mit in die Datenbank geschrieben. Dafür habe ich den "processFormData"-Hook verwendet. Aber mir scheint, der wird erst nach dem Speichern ausgeführt. Finde aber auch keinen anderen, der vor dem Speichern ausgeführt wird.
    Oder bin ich blind?

    Oder hast du das anders gemeint mit der Session auslesen?

    Den anderen Beitrag werde ich mir auch nochmal reintun und gucken, ob es evtl. etwas für mich ist.
    Danke!

    Sebi

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

    Standard

    guck mal in die Form.php - es gibt den (undokumentierten) Hook "prepareFormData" => ggf. kommst Du damit weiter

  5. #5
    Contao-Nutzer Avatar von sebi
    Registriert seit
    17.03.2012.
    Ort
    Kiel
    Beiträge
    154

    Standard

    Super,

    habe darüber einen weiteren Hook gefunden: "storeFormData". Der wird vorher ausgeführt und tut nun das was ich will
    Danke.

    Für alle anderen, die evtl. erst später dieses Thema finden, nochmal meine Ursprünglichen Fragen (siehe auch oben):
    • Wie kann ich den Spaltennamen in das name-Attribut des input-Feldes besser übergeben?
    • Ist der Ansatz über die Templates die Ausgabe in input-Felder zu lösen gut? Oder kann man ggf. das über den Formular-Editor erzeuge Formular dafür ebenfalls verwenden?
    • Wie sollte ich am besten vorgehen, um die geänderten Daten in die Datenbank zu bringen? (kurzes php-Skript, das als form-action aufgerufen wird? andere Lösung?)



    Sebi

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

    Standard

    Zitat Zitat von sebi Beitrag anzeigen
    • 1. Wie kann ich den Spaltennamen in das name-Attribut des input-Feldes besser übergeben?
    • 2. Ist der Ansatz über die Templates die Ausgabe in input-Felder zu lösen gut? Oder kann man ggf. das über den Formular-Editor erzeuge Formular dafür ebenfalls verwenden?
    • 3. Wie sollte ich am besten vorgehen, um die geänderten Daten in die Datenbank zu bringen? (kurzes php-Skript, das als form-action aufgerufen wird? andere Lösung?)
    1: ich habs "von hinten durch die Brust ins Auge" gemacht - benötigte Werte als Sessionvariable abgelegt und in normales Form per Insert-Tag eingepflanzt - die Spaltennamen müssen natürlich passen => bei Form-Einstellungen in DB speichern wählen und MM-Tabelle nehmen

    2: ... viele Wege führen nach Rom... "schön" ist 1.) nicht, aber funzt ;-)

    3: guck mal bei EFG

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
  •