Ergebnis 1 bis 4 von 4

Thema: id, tl_member und Frontend-Editing

  1. #1
    Contao-Nutzer
    Registriert seit
    31.10.2013.
    Beiträge
    7

    Standard id, tl_member und Frontend-Editing

    Moin zusammen,
    sollte es im Forum irgendwo schon einen Eintrag geben, so bitte ich um Verzeihung, ich habe ihn dann einfach nicht gefunden.
    Grob umfasst möchte ich einen Arbeitsablauf erstellen, der mir eine umfassende Kundenverwaltung ermöglicht. Tw funktionieren die Dinge, tw aber eben nicht.
    - ich möchte sowohl bestehende Kunden in einer Auflistung im FE vor allem bearbeiten(!) können und andersherum Kunden im FE über ein Formular eingeben, die dann in der Mitgliedertabelle stehen. Bestenfalls gibt es in diesem Formular dann auch einge Felder, die sich auf andere Tabellen außer der Tl_member beziehen und dort reinschreiben
    - es bestehen schon Kunden in der tl_member, diese Daten habe ich per Hand (!) in die Formulardaten übertragen, damit ich eine Ausgabe über das Modul "Auflistung Formulardaten" bekomme -> das funktioniert
    - ich habe ein Formular angelegt, mit dem ich neue Mitglieder in tl_member und Formulardaten eintragen kann -> das funktioniert

    Jetzt kommen die Probleme bzw Logikfragen:
    - wenn ich versuche, Datensätz im Frontend zu bearbeiten, bekomme ich die Fehlermeldung im Systemlog "Could not find a ContentElement containing the form xy", obwohl ich das Formular auf einer Unterseite der Ausgabe erstellt habe (Quelle für dieses Vorgehen finde ich leider nicht wieder). Gibt es irgendwo eine Schritt-für-Schritt Anleitung, die als Contao-Anfänger nachvollziehbar ist?
    - wenn ich Datensätze löschen möchte, bekomme ich die Fehlermeldung im Systemlog "Could not identify record by ID "2" ". In den Formulardaten wird es gelöscht, in der Mitgliedertabelle nicht. Dies finde ich nicht erstaunlich, da meine Formulardaten-Einträge andere IDs als die Mitglieder in der tl_member haben. Aber welches Feld kann ich benutzen, um die Mitglieder mit den Formulardaten zu koppeln? tl_member ID als auch Formulardaten-Id werden ja automatisch erstellt.
    - wie könnte ich jetzt weitermachen, um mit diesem (oder auch einem zweiten) Formular Daten in eine Erweiterung einzugeben, die wiederum als einzige Verbindung zu den Kundendaten die pid enthält während die Formulardaten ja eine eigene ID haben?
    - ich habe die Erweiterung efgmemberselect installiert. Hilft mir das irgendwie weiter? Was mache ich damit bzw. wie wende ich das richtig an?
    - Gibt es andere Möglichkeiten, Mitgliederdaten im Frontend aufzulisten und dann zu exportieren bzw dort zu bearbeiten (ohne sich einzuloggen?) Memberlist und zextendedregistration habe ich getestet und funktionieren soweit super, aber damit kann ich nichts bearbeiten, während es über den Umweg efg ja anscheinend funkitonieren soll.

    Bin riesig dankbar über jeden Hinweis!

  2. #2
    Contao-Nutzer
    Registriert seit
    31.10.2013.
    Beiträge
    7

    Standard

    Kurze Zwischenmeldung, damit vielleicht jemand anders auch etwas davon hat:

    Das nochmalige Durchsehen aller Beiträge hat zumindest für das Bearbeitungs-Problem die Lösung gebracht:
    Damit ein Eintrag bearbeitbar ist, muss das Eingabeformular vom Typ Formular sein und nicht als Modul eingebunden werden !!!

    An der oben beschriebenen Löschhproblematik sowie den Zweifeln an meiner generellen Vorgehensweise ändert das allerdings nichts...

    Nachtrag :-(
    1 Schritt vor, 2 zurück: Auch wenn die Bearbeitung der Formulardaten aus dem Frontend heraus nun klappt (hier werden sie nur aktualisiert), so werden nun die Datensätze in der Mitgliedertabelle doppelt eingetragen anstatt aktualisiert. In der dcaconfig.php hatte ich mal folgende Zeile eingetragen
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['unique'] = true
    und bislang konnte ich auch keine Firma doppelt eintragen.
    Jetzt nach der Bearbeitung über's FE schon :-(
    Was wäre nun möglich?
    Geändert von bluna15 (01.12.2013 um 17:10 Uhr)

  3. #3
    Contao-Fan Avatar von tom
    Registriert seit
    16.06.2009.
    Ort
    Ludwigsburg
    Beiträge
    385

    Standard

    Hallo bluna15,

    wenn ich rictig verstehe, verwendest Du die beiden Optionen des Formulargenerators:
    a) 'Eingaben speichern' (als Zieltabelle die tl_member ?)
    b) 'Daten im Modul "Formular-Daten" speichern'

    Option b) ist die EFG-Funktion. Damit können Formulardaten angelegt, bearbeitet, gelöscht etc. werden, aber nicht in/aus beliebigen Tabellen. EFG verwendet die beiden Tabellen tl_formdata und tl_formdata_details.

    Option a) ist ein Core-Funktion. Damit können die aus Formularen übermittelten Daten in die Zieltabelle geschrieben werden; ein Update/Aktualisierung/Frontend-Bearbeitung ist damit allerdings nicht möglich. Somit wird Dir jedesmal nach Übermittlung des Formulars (auch bei einer Frontend-Bearbeitung der EFG-Formulardaten) ein neuer Datensatz in tl_member angelegt.

    Du könntest nun zwar z.B. per Hook im Falle einer Frontend-Bearbeitung der Formulardaten die Core-Funktion 'Eingaben speichern' deaktivieren,
    aber bei Änderung der Daten müsstest Du auch die Aktualisierung der Daten in der tl_member "selbst in die Hand nehmen". Dasselbe gilt für das Löschen.
    EFG kann zwar die eigenen Daten aktualisieren und auch Löschen, aber nicht die Daten aus der tl_member.

    Dein Ziel
    Bestenfalls gibt es in diesem Formular dann auch einge Felder, die sich auf andere Tabellen außer der Tl_member beziehen und dort reinschreiben
    wirst Du mit Bordmitteln (weder Core-Funktionen des Formulargenerators noch EFG) nicht umsetzen können, da weder Core noch EFG in "fremde" (bzw. gleichzeitig in verschiedene) Tabellen schreiben können.

    Schöne Grüße
    Tom

  4. #4
    Contao-Nutzer
    Registriert seit
    31.10.2013.
    Beiträge
    7

    Standard

    Danke für Deine hilfreiche Antwort, Tom!
    Ich hätte noch Wochen versucht, das anscheinend "Unmögliche" umzusetzen.
    Aber so ganz gebe ich noch nicht auf:
    Kann man nicht mittels dieser ominösen Inserttags Inhalte aus anderen Tabellen und deren Felder rausziehen? Wahrscheinlich nicht generell, denn mein Versuch auf Werte in einer Tabelle einer Extension zuzugreifen führte dazu, dass nichts mehr angezeigt wurde, als ich ein Mitglied aufrufen/ berbeiten wollte (gelbes Fehlerfenster, detaillierte Fehlerausgaben habe ich in dieser Installation noch deaktiviert)

    Wäre folgender Ablauf aus Deiner Sicht sinnvoll, Tom?
    Es geht als Kompromiss nur noch darum, dass ich die tollen Features der EFG-Ausgabe nutzen möchte, wie Suche, Filter und v.a. Export
    1. Ich trage meine Daten direkt über ein zextendedregistration in die DB ein (hier funktionieren die Sicherungen gegen doppelte Einträge)
    2. Ich baue ein paralleles Formular mit EFG für die Ausgabe dieser Daten. Anstatt die Daten per Hand einzutragen, erstelle ich mir eine Excelliste, in der ich via Inserttag von [extendedmemberinserttags] die Daten aus der DB rausziehe, also z.B. {{member::2::postal}}, entsprechend für alle angelegten Felder. Diese Excelliste importiere ich in die Formulardaten, möglicherweise wöchentlich/monatlich, wenn neue Kunden dazukamen
    3. Vorausgesetzt, 2. funktioniert (was ich für die PLZ bestätigen kann) auch für alle Felder, dann erhalte ich die Ausgaben als Frontend-Ausgabe, kann komfortabel suchen, filtern u.v.a exportieren. Wenn ich dann allerdings etwas zu ändern habe, muss ich zurück ins Backend und dies dort machen.

    Noch zwei Fragen:
    a) Nur in meiner (Contao-naiven) Sicht müsste das doch eigentlich funktionieren, oder gibt es für solch einen Ablauf andere (vereinfachte) Möglichkeiten?
    b) Ich habe mal etwas von pdf-Export einzelner Datensätze gelesen mit einer Übersicht aller Aktivitäten eines Mitglieds, finde dies aber nicht wieder. Kennst Du zufälig so etwas, was dann auch mit meiner Vorgehensweise kompatibel wäre?

    Hab Dank für's Lesen und ggf. antworten!

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
  •