Ergebnis 1 bis 11 von 11

Thema: Registrierbenachrichtigung: Gruppenname statt ID

  1. #1
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard Registrierbenachrichtigung: Gruppenname statt ID

    Hallo zusammen,

    leider konnte ich zu meinem Problem kein Posting finden und bin mir nicht mal sicher, ob ich hier richtig bin.

    Wenn sich jemand registriert mit Auswahl der Gruppe, bekommt der Admin eine Mail-Benachrichtigung. In der Benachrichtigung wird die ID der ausgewählten Gruppe angezeigt, z.B. "Gruppe: 6", was bei mehreren Gruppen unpraktisch ist. Wie und wo kann ich das ändern, damit mir der Gruppenname (z.B. "Gruppe: Kunden") anstelle der Gruppen-ID angezeigt wird?

    Ich habe die Templates und die Moduldateien durchgesehen, auch die des Registrierungsmoduls, bin aber mit meinen mäßigen PHP-Kenntnissen nicht fündig geworden. Kann mir jemand helfen?

    Grüße,
    Anke

  2. #2
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Hallo Anke,

    also ohne das Registrierungsmodul zu überschreiben sehe ich da keine Alternative. Das Problem ist, dass intern leider nur die Zahlen gespeichert werden. Da es in Contao leider keine Datenbankabhängigkeiten (sieht man mal von den id - pid-Abhängigkeiten ab) gibt, lässt sich das ohne direktes Erzeugen einer Registrierungsinstanz auch nicht per Datenbank machen.

    LG,
    Helmut
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  3. #3
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Hallo Helmut,

    vielen Dank für die ausführliche Erklärung, wenn ich auch nur die Hälfte verstehe ;-). Es wundert mich, dass das offenbar bisher nicht groß angesprochen wurde. Ich finde es wirklich unpraktisch, Kunden eine "Übersetzungstabelle" an dei Hand geben zu müssen, damit sie schon anhand der E-Mail sehen, für welche Mitgliedergruppe jemand einen Account beantragt hat.

    Was du schreibst, klingt nicht einfach - glaubst du, es hat Sinn, dafür ein Dev-Ticket zu eröffnen?

    LG
    Anke

  4. #4
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Sagen wir's mal so: Es ist nicht unmöglich, sondern einfach nur ein bisschen aufwändiger als üblicherweise. Contao speichert der Einfachheit halber Mehrfachauswahlen immer in einem einzelnen Datenbankfeld anstatt eine zusätzliche Datenbanktabelle zu erstellen und dort die Informationen abzulegen. Deswegen ist der Gruppenname auch nicht automatisch mit in dem Datensatz, da die Daten mehr oder weniger automatisiert generiert werden, d.h. im Prinzip gar keine Information über die Anzahl der Eigenschaften eines Mitglieds existieren muss, was die Erweiterbarkeit natürlich fördert.
    Man müsste hier eine spezielle Abfrage auf die Mitgliedergruppen-Eigenschaft machen. Wenn Leo das sauber und nachvollziehbar lösen kann, steht dem eigentlich nichts im Weg. Prinzipiell betrifft das natürlich viele Stellen in Contao, vielleicht könnte man hier auch eine generelle Herangehensweise finden. Evtl. gibt es das allerdings auch schon, ich bin da nicht so der Experte und kümmere mich auch viel zu selten um den schon vorhandenen Code. Oft bin ich überrascht, dass Leo schon alles vorgesehen hat

    Evtl. kann ja auch noch jemand anderes einen kompetenten Kommentar abgeben.

    LG,
    Helmut
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  5. #5
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Hallo Helmut,

    am Wochenende hatte ich mal eine kleine Atempause für dieses Problem. Es gibt die Tabelle tl_member_group mit den Feldern "id" und "name". Insofern bräuchte IMHO in der Vorlage für die Registrierungsmail doch nur id durch name ersetzt zu werden, oder sehe ich das immer noch zu naiv?
    Irgendwie konnte ich aber immer noch nicht rausfinden, welches Script die Benachrichtigungsmail generiert, denn ein tpl-file scheint es nicht zu geben. Weißt du das?

    VG
    Anke

  6. #6
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Hallo Anke,

    Zitat Zitat von Anke Beitrag anzeigen
    am Wochenende hatte ich mal eine kleine Atempause für dieses Problem. Es gibt die Tabelle tl_member_group mit den Feldern "id" und "name". Insofern bräuchte IMHO in der Vorlage für die Registrierungsmail doch nur id durch name ersetzt zu werden, oder sehe ich das immer noch zu naiv?
    Irgendwie konnte ich aber immer noch nicht rausfinden, welches Script die Benachrichtigungsmail generiert, denn ein tpl-file scheint es nicht zu geben. Weißt du das?
    das ist nicht naiv. Im Prinzip ist es auch so. In einem System mit einem stärken Fokus auf Datenbankfunktionen hat man normalerweise dann drei Tabellen: tl_member, tl_member_group und tl_member_member_group. In der dritten, die es in Contao nicht gibt würden die Verknüpfungen stehen, also wenn es z.B. ein Mitglied mit der ID 1 gibt, das in den Gruppen mit den ID's 5 und 7 ist, dann würde es in der dritten Tabelle, die aus den Feldern ID, tl_member_id, tl_member_group_id besteht zwei Zeilen geben, nämlich

    Code:
    ID, 1, 5
    ID, 1, 7
    wobei ID irgendwelche automatisch erzeugten ID's sind.
    Mit einer Datenbankabfrage kann man sich nun alle gewünschten Daten inklusive der Gruppennamen in seinen Datensatz holen.

    In Contao ist das aber anders gelöst. Hier wird immer, weil's halt auch das darunterliegende System unheimlich aufblähen würde, auf die dritte Tabelle verzichtet. Stattdessen stehen die Infos über die Gruppen in einem Datenbankfeld von tl_member (das glaube ich groups heist). Darin befindet sich ein Array mit (in unserem obigen Beispiel) 5 und 7, also

    PHP-Code:
    array(ID => 5ID => 7
    wobei ID wiederum irgendwelche Indizes sind, in dem Beispiel hier 0 und 1, aber das ist egal.

    In Contao benötigt man nun das Wissen, dass in group keiner, einer oder mehrere ID's stecken, die mit der Tabelle tl_member_group verbunden sind und das geht eben nur überzuätzlichen Programmcode, also PHP-Code.

    So viel zur Datenbanktheorie

    Aus diesem Grund lässt sich das leider nicht einfach über ein Template regeln, denn die Daten für ein Template müssten auch erst mal erzeugt werden. Geschehen tut das Ganze in
    Code:
    system/modules/registration/ModuleRegistration.php
    . Die Mail gesendet wird in der Methode sendAdminNotification. Diese Verwendet dafür ein Array, in dem die Daten stehen und das wird in der Method compile erzeugt. Hier läuft Leo automatisiert durch die verwendeten Felder des Registrierungsformulars (es können ja immer andere sein) und schreibt die Werte der Felder in das Array $arrData. Nun müsste man im Code, und am besten auch erst in sendAdminNotification zusätzlichen Code einschleusen, der die Zahlenwerte der ID's von
    PHP-Code:
    $arrData['groups'
    in die Gruppennamen auflöst.

    Updatesicher kriegt man das natürlich nur mit einem zusätzlichen Modul hin, das die sendAdminNotification-Methode überschreibt.

    Lange Rede, kurzer Sinn: Ich bau dir einfach mal so ein Modul, dann kannst du mal schauen, ob's klappt
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  7. #7
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Benutzt du xtmembers? Dann könnte ich es da einbauen?
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  8. #8
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Also ich hab jetzt einfach mal mein xtmembers so erweitert, dass die Registrierungsmail etwas geschönt wird:

    Code:
    A new member (ID 13) has registered at your website.
    
    First name: Bill
    Last name: Clinton
    Gender: female
    Username: clinton
    Group: Violin Students (ID 1)
    Member groups: Violin Students (ID 1), Piano Students (ID 2)
    Allow login: 1
    Date added: 2010-12-21
    Deactivate: 1
    
    If you did not allow e-mail activation, you have to enable the account manually in the back end.
    Das wäre dann ja wohl so in deinem Interesse, oder?
    Wenn du wissen willst, wie ich es gemacht habe: Mein Modul ModuleRegistrationExtended.php überschreibt hier einfach die sendAdminNotification Methode und führt dann 'von Hand' ein paar Änderungen durch, wie z.B. das Holen der Gruppennamen oder auch das Auflösen des Hinzufügedatums.

    LG,
    Helmut
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  9. #9
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Hallo Helmut!

    Allein deine ausführlichen Beschreibungen sind ja mal wieder unbezahlbar! Die kann ich mir erst später mal richtig reinziehen ;-(.

    Ja, ich nutze xtmembers, herzlichen Dank für die Anpassung, das ist ein nettes Weihnachtsgeschenk!!! Da werde ich mal zuerst schauen, was/wo du die Änderung vorgenommen hast, denn ich hatte ja mit meinen laienhaften Kenntnissen ja nichts gefunden.

    LG
    Anke

  10. #10
    Contao-Fan Avatar von hschottm
    Registriert seit
    15.06.2009.
    Ort
    Loxstedt, Germany
    Beiträge
    825
    User beschenken
    Wunschliste

    Standard

    Das hat ja mit laienhaft nix zu tun. Manchmal wünschte ich mir, ich hätte mir dem ganzen Programmierkrams nicht so viel zu tun

    Jede(r) hat halt seine Fähigkeiten woanders. Dafür gibts ja diese Community. Ich hoffe, die Änderungen sind in deinem Sinne.

    LG,
    Helmut
    Blackmail's such an ugly word. I prefer extortion -- the "x" makes it sound cool.
    -- Bender

  11. #11
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Und ob die in meinem Sinne sind - kleines Dankeschön an dich ist unterwegs ;-)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Inhaltselement Artikelteaser mit h1 statt h5
    Von heiko im Forum Allgemeine Inhaltselemente
    Antworten: 5
    Letzter Beitrag: 09.01.2012, 14:19
  2. Mediabox statt Lightbox
    Von phreak im Forum Was kann Contao?
    Antworten: 3
    Letzter Beitrag: 06.10.2010, 21:11
  3. Fancybox statt slimbox?
    Von redhat99 im Forum Bilder/Dateien
    Antworten: 2
    Letzter Beitrag: 06.07.2010, 22:33
  4. [ch_flowplayer] Alias statt ID in der URL
    Von Kahmoon im Forum Sonstige Erweiterungen
    Antworten: 2
    Letzter Beitrag: 15.06.2010, 18:28
  5. cloud statt liste?
    Von carlos im Forum tags
    Antworten: 1
    Letzter Beitrag: 05.10.2009, 14:02

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •