Contao-Camp 2024
Ergebnis 1 bis 17 von 17

Thema: Formularfeld in DB speichern

  1. #1
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard Formularfeld in DB speichern

    Nabend zusammen

    Habe ein Formular im Formulargenerator erstellt, welches die Daten speichert und im Frontend ausgibt. Funktioniert auch alles wunderbar.

    Damit diese Daten nun vom Kunden selbst bearbeitet werden können und diese nicht in der Datenbank herumwursteln, möchte ich ihnen dies im Backend zur Verfügung stellen.
    Früher verwendete ich den EFG dazu, heute läuft der ja unter 4.4 nicht mehr. Also muss ich da selbst ran :-)

    Leider habe ich keinen Ansatz wie ich das angehe.

    Kann mir hier wer etwas auf die Sprünge helfen?

    Edit: 15.01.2019 - Habe den Titel angepasst.
    Geändert von Dee (15.01.2019 um 22:50 Uhr)

  2. #2
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.464
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Dee,

    in Kombination von Notification_Center und Leads kannst du die Daten im Backend anzeigen lassen.
    Jedoch nicht, wie beim EFG, im Backend bearbeiten. Aber die Daten lassen sich als CSV exportieren
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  3. #3
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    Hallo planepix

    Danke für deine Inputs. Die helfen mir schon ein gutes Stück weiter, jedoch stellt sich mir sogleich eine wichtige Frage:
    Wenn der Kunde die Beiträge im Backend nicht bearbeiten kann, muss er um einen Beitrag live zu schalten jeweils einen Export/Import tätigen.
    Das empfinde ich jetzt nicht gerade als eine optimale Lösung.

    hmmm... wäre es vielleicht einen Ansatz, das Kommentar-Modul dazu zu missbrauchen?
    Dies müsste wohl nur um einige Felder erweitert werden. Anschließend erhält der Kunde nach dem eintragen eine Mail, kann es übers Backend live schalten und könnte auch die "Beiträge" editieren.
    Die Ausgabe wäre auch easy umzusetzen. Das einzige wäre dann wohl noch einen Filter um die Daten im Frontend sortieren zu können, der mir schon etwas Kopfzerbrechen macht

    Was meinst du dazu? Habe ich hier vielleicht etwas nicht auf dem Radar?

  4. #4
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Vor dem Problem stand ich bei meiner Seminarverwaltung auch.
    Da sich die Formulare nicht dauernd ändern, habe ich mir zu diesem Zweck einfach eine eigene Erweiterung geschrieben. Ist ja in so einem Fall recht einfach zu machen.

    Gesendet von meinem CLT-L29 mit Tapatalk

  5. #5
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    @Fachinger
    Danke für deine Antwort, jedoch hilft mir dein Beitrag nicht gerade weiter.

    Habe nun das Kommentar-Modul um das Feld "Titel" erweitert.
    Dieses wird mir im Backend auch angezeigt und wenn ich da den Kommentar editiere, wird das auch korrekt in der DB eingetragen.

    Nun habe ich das Feld "Titel" manuell in "mod_comment_form" eingefügt, was auch auf der Seite angezeigt wird.
    Jetzt stehe ich aber etwas auf dem Schlauch, wie ich die Daten korrekt in die DB bekomme.
    So wie ich in Erfahrung bringen konnte, muss ich dies mit einem entsprechenden Hook umsetzen.

    Kann mir wer ein Beispiel angeben, wie das aussehen muss und wo dieser eingetragen werden muss?

    Zurzeit habe ich folgendes gemacht:

    Unter "app/Resources/contao/dca/tl_comments.php

    PHP-Code:
    <?php 

    $GLOBALS
    ['TL_DCA']['tl_comments']['palettes']['default'] = str_replace 

        
    ',name,'
        
    ',titel,name,'
        
    $GLOBALS['TL_DCA']['tl_comments']['palettes']['default'
    ); 

    // Hinzufügen der Feld-Konfiguration 
    $GLOBALS['TL_DCA']['tl_comments']['fields']['titel'] = array 

        
    'label'     => &$GLOBALS['TL_LANG']['tl_comments']['titel'], 
        
    'exclude'   => true
        
    'inputType' => 'text'
        
    'eval' => array('maxlength'=>255'tl_class'=>'long'), 
        
    'sql'  => "varchar(255) NOT NULL default ''" 
    );
    In "/app/Resources/contao/languages /de/tl_comments.php"
    PHP-Code:
    <?php 
    $GLOBALS
    ['TL_LANG']['tl_comments']['titel'] = array 

        
    'Titel der Aktivität'
        
    'Bitte geben Sie eine Aktivität an' 
    );
    und dann in "mod_comment_form"
    HTML-Code:
            <div class="widget widget-text">
    			<label for="ctrl_titel">Titel der Aktivität</label>
    			<input name="titel" id="ctrl_titel" class="text" value="" maxlength="128" type="text">
    		</div>

    Danke für eure etwas detaillierten Angaben

  6. #6
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Für die Erstellung des eigenen Moduls habe ich mich an den Contao-Wiki gehalten.

    Da ich die Werte nicht nur in Leads, sondern auch in der eigenen Tabelle speichere, kann ich dann jederzeit die Anmeldedaten des Teilnehmers über das Backendmodul noch ändern. Das gilt dann natürlich nur für die Daten in der Tabelle, nicht für die Originaldaten des Teilnehmers in Leads.

  7. #7
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    Danke Fachinger

    Das ist ja so zirka dass was ich schon habe. Was mir fehlt ist die Angabe, wie ich die Daten des neuen Feldes, welche im Frontend über das Kommentar-Modul eingetragen werden, in der Datenbank speichere. (oder habe ich das eventuell übersehen)

    Wie muss dieser Hook aussehen und wo genau muss dieser eingetragen werden?

    Wäre toll, wenn mir hier wer angeben könnte, wie ich das umsetze.
    Da ich wohl nicht der einzige bin der das brauchen kann und im Forum nur immer Bruchteile in den Beiträgen sind zu finden sind, gäbe es hier dann gleich alle Code-Snippets die dazu benötigt werden. Wäre sicher einen Mehrwert für alle.
    Geändert von Dee (13.01.2019 um 13:19 Uhr)

  8. #8
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    @ Fachinger

    Benötigst du die Speicherung in der DB über ein Frontend-Formular nicht?
    Hast du dir deine Erweiterung nur für das BE geschrieben?

  9. #9
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Staunendes Gesicht

    Achso, jetzt ist es angekommen.

    Den Wert generiere ich mir bei der Formularausgabe im Frontend anhand des höchsten Wertes der gespeicherten Tabelle. Das kann ich mir erlauben, da ich keinen hohen Traffic auf der Seite habe und somit eine Doppelvergabe relativ unwahrscheinlich ist.Bei einer Seite mit hohem Traffic müsste man hier wahrscheinlich einen ansderen Weg gehen und den Wert erst beim speichern des Formulars erzeugen.

    Den generierten Wert setze ich mit einem
    Code:
    {{post::value_name}}
    als Standard-Wert eines versteckten Feldes im Formular ein. Dafür habe ich noch die ModuleEventReader.php aus dem Calendar-Extended-Bundle modifiziert und gebe "$regform" (in der Nähe von Zeile 400) noch die folgende Zeile mit:
    Code:
    $regform = str_replace('value="booking_invoice"', 'value="' . $objEvent->booking_invoice . '"', $regform);
    Ich hoffe, dass das einigermaßen verständlich war

  10. #10
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    Danke Fachinger...

    Sorry aber ich schnall es einfach nicht

    Ich habe auf der folgenden Seite das Kommentar-Modul eingebunden:
    https://goo.gl/DgrAxQ

    Das Kommentar-Modul habe ich um das Feld "Titel der Aktivität" erweitert.
    Das wird mir im Backend angezeigt und ich kann es da auch bearbeiten.

    Nun wird aber der Wert des neuen Feldes "Titel der Aktivität" nicht in der Datenbank gespeichert und ich habe sowas von keinen Plan, wie ich das umsetzen kann.

    Kannst du mir vielleicht etwas genauer erklären, wie ich das hinkriege?
    Geändert von Dee (14.01.2019 um 22:53 Uhr)

  11. #11
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Da bin ich jetzt auch nicht tief genug in der Programmierung drin.
    Ich setze auf dem ganz normalen Formular aus dem Fornulargenerator auf, da dieses von Haus aus die eingegebenen Daten in eine Datenbanktabelle speichern kann. Da bräuchte ich dann nur noch die Backend-Anzeige zu realisieren.
    Das "müsste" auch mit dem Kommentarmodul funktionieren, damit habe ich mich aber noch nicht beschäftigt.

    Gesendet von meinem CLT-L29 mit Tapatalk

  12. #12
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    Danke trotzdem Fachinger

    Ich hoffe, es gibt wer, der mir hier weiterhelfen kann

  13. #13
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Standard

    Könnte sich wer dazu durchringen, mir hier einige Ansätze anzugeben, respektive vielleicht etwas genauer zu erläutern, was genau ich noch brauche damit das Formularfeld in der Datenbank gespeichert wird?
    Geändert von Dee (15.01.2019 um 22:59 Uhr)

  14. #14
    Contao-Fan
    Registriert seit
    17.10.2012.
    Ort
    Bern - Schweiz
    Beiträge
    443

    Frage

    Habe nun also folgenden Link gefunden:
    https://docs.contao.org/books/cookbo...in-Contao.html

    Ich gehe mal davon aus, dass ich sowas in diese Richtung benötige. Was genau und wo das ganze dann eingetragen werden soll, ist mir alles noch schleierhaft.

  15. #15
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Poste mal den Abschnitt aus Deiner DCA, mit dem Du die Anzeige im Backen erzeugst.

    Auf Youtube gibt es auch eine Videoreihe, in der die Programmierung ein wenig erklärt wird. Hab den Link jetzt nicht zur Hand. Suche mal nach "Contao Module programmieren Teil", damit solltest Du fündig werden. Im ersten Teil geht es um Inserttags und dann geht es mit einem Besucherzähler weiter.

    Gesendet von meinem CLT-L29 mit Tapatalk

  16. #16
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.464
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  17. #17
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    @planepix: Deiner ist sicher hochwertiger.

    Ich hatte mich zum Erlernen an diesen Screencast gehalten. Hat mir seinerzeit sehr nützliche Dienste geleistet.

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
  •