Ergebnis 1 bis 9 von 9

Thema: Abfrage Mitgliedergruppe

  1. #1
    Contao-Nutzer Avatar von 1stof8
    Registriert seit
    09.12.2009.
    Ort
    Oberstdorf
    Beiträge
    121

    Standard Abfrage Mitgliedergruppe

    Ich möchte gerne im Frontend im Modul Darstellung Mitgliederdetails jeweils ausgeben ob ein Mitglied zu einer bestimmten Mitgliedergruppe gehört.

    Ich verwende XT members.

    Konkret heist das ich würde gerne in den nötigen Modulen ein Bild (Emblem) ausgeben lassen dass das Mitglied sozusagen zertifiziert ist.

    Wie kann ich im Modul eine Abfrage machen?
    Welches sind die nötigen Module?
    kann ich das auch mit Insert Tags machen?

    Formulierung der Abfrage ungefähr so:
    wenn Mitglied zugehörig zu Mitgliedergruppe X (tl_member_group.name) dann zeige ein Bild an.

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

    Standard

    Hallo 1stof8,

    ist das immer das gleiche Bild oder etwas, das mit dem Mitglied wechselt?
    Fragst du dann immer eine feste Mitgliedergruppe ab oder kann die auch wechseln?

    Hintergrund: Was ich natürlich machen kann, ist für das Ausgabetemplate die Gruppen des Mitglieds mit durchzuschleifen. Dann könntest du mit einer kleinen if-Abfrage im Template bei Vorhandensein einer von dir gewünschten Gruppe dein Bild ausgeben.

    Wenn die abzufragenden Gruppen natürlich unterschiedlich sind, müsste da noch ein Automatismus rein, um die benötigte Gruppe auf die geprüft werden soll überhaupt feststellen zu können.

    Diese if-Abfrage auf die Gruppe könnte man natürlich auch per insert-tag zur Verfügung stellen, aber irgendwo finde ich sollte man die Anzahl der insert-tags auch begrenzen und das wäre jetzt so ein Fall, wo ich denke, dass es besser ist, den nicht unbedingt zum insert-tag zu machen.

    Ein simples

    PHP-Code:
    <?php if (in_array($check_for_group$this->membergroups)): ?>
    <div class="certificate"><img src="..." title="Certificate" /></div>
    <?php endif; ?>
    fände ich da dann doch zumutbar. Wenn es also so ist, dann könnte ich dir in einem Patch die Mitgliedsgruppen in einem Array (wie hier angezeigt, z.B. als $this->membergroups) für das Template zur Verfügung stellen.

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

  3. #3
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  4. #4
    Contao-Nutzer Avatar von 1stof8
    Registriert seit
    09.12.2009.
    Ort
    Oberstdorf
    Beiträge
    121

    Standard Hallo zusammen

    Ich nehme die Schelte an...

    Lieber Helmut. Danke für dein kleines Script.

    Es reicht mir natürlich aus wenn ich immer die gleiche Gruppe abfrage und dann einfach ein Bild ausgebe.

    Der php code würde also reichen. ...und ich mach mich nochmal zum Doofie... an welcher stelle genau frage ich den Gruppennamen ab?

    <?php if (in_array($check_for_group, $this->HIER-GRUPPENNAME)): ?>
    <div class="certificate"><img src="..." title="Certificate" /></div>
    <?php endif; ?>

    Danke dass ihr mich unterstützt

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

    Standard

    Hallo 1stof8,

    Zitat Zitat von 1stof8 Beitrag anzeigen
    Ich nehme die Schelte an...

    Lieber Helmut. Danke für dein kleines Script.

    Es reicht mir natürlich aus wenn ich immer die gleiche Gruppe abfrage und dann einfach ein Bild ausgebe.

    Der php code würde also reichen. ...und ich mach mich nochmal zum Doofie... an welcher stelle genau frage ich den Gruppennamen ab?

    <?php if (in_array($check_for_group, $this->HIER-GRUPPENNAME)): ?>
    <div class="certificate"><img src="..." title="Certificate" /></div>
    <?php endif; ?>

    Danke dass ihr mich unterstützt
    das kommt nun darauf an, ob du nach einem Gruppennamen suchen willst oder eher nach der ID der Gruppe. Normalerweise liefert TYPOlight ein Array mit den ID's, d.h. am einfachsten wäre es, wenn ich dieses einfach "raushaue". Der Vorteil wäre auch, dass es nicht so viel Speicherplatz benötigt, da es sich dann nur um ein Array mit einigen Zahlen handelt. In dem Fall müsstest du praktisch die ID der Gruppe wissen, auf die du überprüfen willst. Die kannst du ja problemlos aus deinem System rausbekommen.

    Nehmen wir mal an, du würdest die Gruppe "Zertifizierte Kunden" mit der ID 6 verwenden, um das Zertifikat auszugeben, dann würde der Beispielcode

    PHP-Code:
    <?php if (in_array(6$this->membergroups)): ?>
    <div class="certificate"><img src="..." title="Certificate" /></div>
    <?php endif; ?>
    lauten. In $this->membergroups hätte das Template einfach ein Array der zum aktuellen Benutzer gehörenden Gruppen abgelegt und du müsstest in diesem Array nur nachschauen, ob es die ID 6 beinhaltet.

    So hab ich das jetzt auch gemacht. Wenn du xtmembers aus dem Extension Repository aktualisierst, dann kannst du jetzt im Template des Modul Mitglieder-Details (mod_memberlist_detail.tpl) die zusätzliche Variable $this->membergroups verwenden.

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

  6. #6
    Contao-Nutzer Avatar von 1stof8
    Registriert seit
    09.12.2009.
    Ort
    Oberstdorf
    Beiträge
    121

    Standard Certifikat wunderbar

    Hallo Helmut

    vielen vielen Dank für die hilfreiche Info.
    Das hat so wunderbar geklappt.

    Darf ich dich trotzdem noch 2 Fragen fragen:

    1. Auf der Detailseite des Mitglieds steht als Überschrift immer: "Firmenprofil von <Benutzernme>"
    Kann man hier statt des Benutzernames auch ein anderes Feld ausgeben - und wenn ja wo stelle ich das ein.

    2. Ist es eigentlich auch möglich in der "persönliche Daten bearbeiten" Seite dem Mitglied auch die Möglichkeit zu geben dass er seine Mitgliedergruppen selber verwalten kann.

    Vielen Dank schon mal und du hast mir mein Wochenende gerettet.

    Joachim

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

    Standard

    Moin Joachim,

    Zitat Zitat von 1stof8 Beitrag anzeigen
    1. Auf der Detailseite des Mitglieds steht als Überschrift immer: "Firmenprofil von <Benutzernme>"
    Kann man hier statt des Benutzernames auch ein anderes Feld ausgeben - und wenn ja wo stelle ich das ein.
    Puh, da muss ich schauen, das kann ich dir aus dem Kopf nicht sagen. Kannst du mir bitte sagen, um welches Modul es sich handelt und welches Template du benutzt?

    Zitat Zitat von 1stof8 Beitrag anzeigen
    2. Ist es eigentlich auch möglich in der "persönliche Daten bearbeiten" Seite dem Mitglied auch die Möglichkeit zu geben dass er seine Mitgliedergruppen selber verwalten kann.
    Also ich denke, das ist nicht möglich. Ich kenne erst mal keine Stelle, an der man als Mitglied die Gruppen verwalten kann (außer bei der Erstanmeldung, da kann man, wenn es ausgewählt wurde, ja eine Gruppe für sich festlegen).
    Man kann das natürlich programmiertechnisch erlauben, ich weiß nur nicht, ob das allgemeiner Konsens ist.

    Ich bin viel unterwegs die nächsten Tage, wundere dich also nicht, wenn es etwas mit der Antwort dauert.

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

  8. #8
    Contao-Nutzer Avatar von 1stof8
    Registriert seit
    09.12.2009.
    Ort
    Oberstdorf
    Beiträge
    121

    Standard Servus Helmut

    Erst mal möchte ich dir einen ganz herzlichen Dank aussprechen für den vielen Support und die guten Rückmeldungen.

    Bei dem Problem mit der Ausgabe der Überschrift "Öffentliches Profil von..."
    steht in der mod_memberlist_detail eine Ausgabe der Variable 'headline'

    In dieser Variable muss dann wohl der Text stehen.
    Ich habe allerdings keinen Schimmer in welcher Datei diese headline erzeugt wird.

    schöne Grüße
    Joachim

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

    Standard

    Zitat Zitat von 1stof8 Beitrag anzeigen
    Erst mal möchte ich dir einen ganz herzlichen Dank aussprechen für den vielen Support und die guten Rückmeldungen.

    Bei dem Problem mit der Ausgabe der Überschrift "Öffentliches Profil von..."
    steht in der mod_memberlist_detail eine Ausgabe der Variable 'headline'

    In dieser Variable muss dann wohl der Text stehen.
    Ich habe allerdings keinen Schimmer in welcher Datei diese headline erzeugt wird.

    Moin Joachim,

    so, das hat etwas gedauert, da es sich hier um TL-Funktionalität des members-Moduls handelt (also nicht xtmembers), aber kein Problem:

    Es passiert, wie du schon richtig sagst im Template mod_memberlist_detail. Die Überschrift wird aus der Sprachvariable $this->publicProfile erzeugt. Das passiert im Memberlist-Modul, da kommt man nur schwer ran, ohne die komplette Ausgabefunktion zu überschreiben. Zusammengesetzt wird der Text aus dem Login des Benutzers und der Sprachvariable $GLOBALS['TL_LANG']['tl_member']['profile_legend'] die du ja offensichtlich schon mit einem dir genehmeren Text überschrieben hast. Um nun etwas ganz anderes dort stehen zu haben, musst du die Flinte aber nicht ins Korn werfen. Du kannst einfach deine Version von md_memberlist_detail in templates erzeugen und dann die Ausgabe von $this->publicProfile durch etwas anderes ersetzen. Über

    $this->record[0]->raw kannst du auf alle Datenbankfelder des Mitglieds zugreifen, du könntest also z.B.

    PHP-Code:
    <?php echo $this->record[0]->raw['firstname'] . ' ' $this->record[0]->raw['lastname']; ?>
    im Template einsetzen, um einfach nur Vor- und Nachnamen auszugeben, etc.

    Welche Inhalte/Variablen verfügbar sind, kannst du in einem Template immer ganz einfach herauskriegen, indem du z.B. in die erste Zeile einfach

    PHP-Code:
    <?php $this->showTemplateVars(); ?>
    einträgst. Das gibt dann innerhalb des Templates alle verfügbaren Variablen als PHP-Dump aus.

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

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Benutzer- / Mitgliedergruppe ausgeben lassen
    Von Baumkind im Forum Benutzer/-gruppen
    Antworten: 3
    Letzter Beitrag: 02.05.2011, 12:46
  2. Inhalt je nach Mitgliedergruppe in dca definieren
    Von tobo im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 11.02.2010, 11:12
  3. Mitgliedergruppe bei Registrierung wählbar machen
    Von Maik im Forum Geschützte Bereiche/Mitglieder
    Antworten: 3
    Letzter Beitrag: 05.02.2010, 07:34
  4. Mitgliedergruppe im Frontend wechseln lassen
    Von v4umax im Forum Geschützte Bereiche/Mitglieder
    Antworten: 5
    Letzter Beitrag: 14.01.2010, 11:51

Lesezeichen

Lesezeichen

Berechtigungen

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