Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: MetaModels FEE - Benutzer verknüpfen

  1. #1
    Contao-Nutzer
    Registriert seit
    27.03.2017.
    Beiträge
    5

    Standard MetaModels FEE - Benutzer verknüpfen

    Hallo Leute,

    ich stehe aktuell noch vor einem Rätsel bei MetaModels FEE.

    Ist es möglich, die ID des eingeloggten Benutzers mit in die Datenbank-Tabelle meines Datensatzes zu schreiben sobald dieser einen neuen Datensatz anlegt?

    Aktuell ist es so, dass ich über das FE Datensätze erstellen kann - diese aber nicht standardmäßig dem Benutzer zugewiesen sind, der sie erstellt hat.
    Das heißt die Zuweisung löse ich aktuell über das Backend.

    Es wäre jedoch schöner und wesentlich einfacher für mich, wenn der Benutzer quasi direkt mit dem Datensatz verknüpft wird.

    Die Zuweisung benötige ich, da ich ein Feature eingebaut habe welches nur den Zugriff auf Datensätze erlaubt die auch dem Benutzer zugewiesen sind.


    Ich danke euch!

  2. #2
    Contao-Fan
    Registriert seit
    20.10.2014.
    Ort
    Freiburg
    Beiträge
    477

    Standard

    Zitat Zitat von Patrick_L Beitrag anzeigen

    Ist es möglich, die ID des eingeloggten Benutzers mit in die Datenbank-Tabelle meines Datensatzes zu schreiben sobald dieser einen neuen Datensatz anlegt?
    Hatte das mal über ein kleines Modul mit onsubmit_callback gelöst.
    Bin dann aber dazu übergegangen das ganze per Formular in die Datenbank zu schreiben Stichwort inserttag {{user::id}}.
    Formular deswegen, weil MM FEE einfach zu wenige Möglichkeiten bietet und noch nicht ausgereift ist. (z.B. Weiterleitungen beim Speichern, automatischer E-Mail Versand, Template ...)

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

    Standard

    Zitat Zitat von Patrick_L Beitrag anzeigen
    Ist es möglich, die ID des eingeloggten Benutzers mit in die Datenbank-Tabelle meines Datensatzes zu schreiben sobald dieser einen neuen Datensatz anlegt?
    es geht also um ein FEE, bei dem die Mitglieder-ID gespeichert werden soll?

    geht - aber man muss sich mit den Events von MM bzw. DCG auseinandersetzen z.B. der PrePersistModelEvent, der gefeuert wird, wenn der Datensatz gespeichert wird.

    Für ein Kapitel im Handbuch zu dem Thema hatte ich noch keine Zeit bzw. hat bisher niemand "beauftragt"...

  4. #4
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    45

    Standard

    Ich stehe vor dem gleichen Problem.

    Drei Alternativen sind aus meiner Sicht denkbar:

    a) über Kindtabelle zu tl_member

    Das funktioniert im Backend super. Die member ID wird in die PID der Metamodeltabelle geschrieben. Alles gut. Aus dem Frontend wird über FEE die PID nicht geschrieben. Ist das ein BUG, oder muss man dafür irgndwo etwas einstellen?

    b) über die Einrichtung eines Aliasfeldes mit Zuordnung der User ID. (Habe ich nicht gefunden. Man kann nur die Attribute der MM Tabelle zuordnen.)

    c) über die Einrichtung eines Attribute als Einzelauswahl (select), das auf tl_member id zielt. Ein passender Filter sorgt dafür, dass in der Listanzeige nur die für den jeweiligen Anwender erfassten Einträge angezeigt werden. Leider muss hier der Anwender im frontend diese ID auswählen. Was hier fehlt ist, die Definition der SQL Bedingung zum Attribut (Einschränkung der Auswahlbedingung), so dass er wirklich nur seine ID auswählen kann. Damit ist sie vorbelegt. Die Definition id={{user::id}} ergibt folgende Fehlermeldung:

    sql_error An exception occurred while executing 'SELECT sourceTable.* FROM tl_member sourceTable WHERE id={{user::id}} ORDER BY sourceTable.id ASC': SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{user::id}} ORDER BY sourceTable.id ASC' at line 1

    Ich bin für jeden Tip dankbar.

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

    Standard

    zu a) kein Bug - die Funktion gibt es nicht, da bisher keiner Beauftragt hat...

    zu b) Alias ist nicht das richtige Attribut

    zu c) könnte gehen


    bei a und c mache ich die Manipulation über ein Event - damit muss ich das Attribut in der Maske auch nicht anzeigen und ist Manipulationssicher

  6. #6
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    45

    Standard

    Zitat Zitat von zonky Beitrag anzeigen

    bei a und c mache ich die Manipulation über ein Event - damit muss ich das Attribut in der Maske auch nicht anzeigen und ist Manipulationssicher
    Wie und wo kann man Events steuern? Gibt es eine Beschreibung zu dem Thema?

  7. #7

  8. #8
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    45

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Vielen Dank, aber wenn man kein Entwickler ist, hat man da kaum eine Chance.

    Darf ich trotzdem nachfragen, was das Problem am SQL Statement zu c ist. Wenn ich dort für {{user::id}} einen festen Wert eintrage funktioniert es. Es muss demnach ein Problem mit dem {{user::id}} geben. Steht dieser Parameter an der Stelle nicht zur Verfügung?

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

    Standard

    Zitat Zitat von gfassben Beitrag anzeigen
    Darf ich trotzdem nachfragen, was das Problem am SQL Statement zu c ist. Wenn ich dort für {{user::id}} einen festen Wert eintrage funktioniert es. Es muss demnach ein Problem mit dem {{user::id}} geben. Steht dieser Parameter an der Stelle nicht zur Verfügung?
    k.A. - müsste mal jemand debuggen...

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
  •