Xtmembers

Aus Contao Community Documentation


Zusätzliche Datenfelder für Contao-Mitglieder.


Erweiterungs-Übersicht
Name des Entwicklers Helmut Schottmüller (hschottm)
Entwickler Webseite http://www.aurealis.de
Version der Erweiterung 2.0.3
Kompatibilität mit Contao Version 2.10.0 - 2.10.3
Kompatibilität mit TYPOlight Version 2.8.0 - 2.8.4
Link zum Extension Repository http://www.contao.org/erweiterungsliste/view/xtmembers.de.html
Den Entwickler unterstützen http://aurealis.de/spenden.html


MemberExtensions (Zusätzliche Datenfelder für Mitglieder)

Erstellen einer Registrierungsseite

Mit dem Modul Mitgliederregistrierung kann in Contao eine Seite zur Anmeldung von Mitgliedern erstellt werden. Die editierbaren Felder legen fest, welche Felder ein potentielles Mitglied bei der Registrierung angeben kann und in welcher Reihenfolge diese Felder angezeigt werden.

Editierbare Felder

MemberExtensions fügt den bestehenden Mitgliederfeldern noch die folgenden Felder hinzu:

  • Titel (Einzeiliges Textfeld)
  • Titel [erweitert] (Einzeiliges Textfeld)
  • Anrede (Einzeiliges Textfeld)
  • Beschreibung der Position (Mehrzeiliges Textfeld)
  • Sprechstunde (Mehrzeiliges Textfeld)
  • Arbeitsgebiet (Mehrzeiliges Textfeld)
  • Abteilung/Organisationseinheit (Einzeiliges Textfeld)
  • Adresszeile 2 (Einzeiliges Textfeld)
  • Raumnummer (Einzeiliges Textfeld)
  • Gebäude (Einzeiliges Textfeld)
  • Arbeitsbeginn (Datum)
  • Ausgeschieden (Datum)
  • Kampagne (Einzeiliges Textfeld)
  • Art der Geschäftsbeziehung (Einzeiliges Textfeld)
  • Branche (Einzeiliges Textfeld)
  • Jobtitel (Einzeiliges Textfeld)
  • Jobtitel [Visitenkarte] (Einzeiliges Textfeld)
  • Notizen (Mehrzeiliges Textfeld)

Außerdem werden zwei bestehende Felder umbenannt:

  • Straße in Adresszeile 1
  • Firma in Institution

Für die Darstellung der Registrierungsseite kann aus verschiedenen Templates ausgewählt werden. Die ..._grouped...-Templates stellen die Registrierungsseite gruppiert dar, während das Template member_default die Registrierungsseite in der festgelegten Reihenfolge der editierbaren Felder ausgibt. Das Template member_grouped_useragreement ist speziell für eine gruppierte Ausgabe der Registrierungsseite, in der auch eine Nutzervereinbarung angezeigt wird.

Verfügbare Templates

Viele Seiten verlangen von ihren Mitgliedern, dass sie eine bestimmte Nutzervereinbarung akzeptieren. Dies kann durch die Auswahl des Kontrollkästchens Nutzervereinbarung anzeigen aktiviert werden. Die Nutzervereinbarung besteht aus Aufforderung, die Nutzervereinbarung zu akzeptieren und dem Text der Nutzervereinbarung. Wird die Nutzervereinbarung nicht akzeptiert, erfolgt keine Erstellung eines neuen Contao-Mitglieds und es wird eine Fehlermeldung ausgegeben.

Nutzervereinbarung

In einigen Fällen kann es auch sinnvoll sein, neuen Mitgliedern nicht automatisch eine vordefinierte Mitglieder-Gruppe zuzuweisen, sondern diese Gruppe auswählbar zu machen. Wenn man die Gruppenauswahl ermöglicht und aus den verfügbaren Gruppen mindestens eine Gruppe zur Auswahl bereitstellt, wird diese Auswahl auf der Registrierungsseite angeboten. Im Falle einer Gruppenauswahl durch die Neuanmeldung wird ein Mitgliedszugang nicht direkt aktiviert, sondern inaktiv angelegt. Ein Administrator muss dann nach Überprüfung der Auswahl das neu angelegte Mitglied aktivieren.

Gruppenauswahl ermöglichen

Erstellen einer Mitgliederliste

Um eine Liste von Mitgliedern einer oder mehrerer Mitgliedergruppen zu erzeugen, muss man ein Modul vom Typ Mitgliederliste erstellen. Dort gibt man die sichtbaren Felder der Liste an, die dann - falls die jeweiligen Felder von den Mitgliedern als öffentlich definiert wurden - in der Liste angezeigt werden. Auf der rechten Seite jedes Eintrags wird dann in der Frontend-Ansicht der Mitgliederliste eine kleine Informations-Grafik angezeigt, die bei einem Mausklick das öffentliche Profil des angezeigten Mitglieds ausgibt.

Info-Grafik der Mitgliederliste

MemberExtensions erweitert diese Funktionalität durch die Möglichkeit, eine Seite für eine Weiterleitung anzugeben. Existiert eine solche Seite, so wird bei dem Klick auf die Informations-Grafik nicht das öffentliche Profil geöffnet, sondern die angegebene Seite. Idealerweise sollte sich auf dieser Seite ein Modul vom Typ Mitgliederseite befinden, das von MemberExtensions eingeführt wurde.

Weiterleitung zu den persönlichen Daten

Das Mitgliederliste-Modul kommt mit einigen zusätzlichen Moduleinstellungen im Vergleich zum Standard-Mitgliederliste-Modul von Contao:

  • Es kann ausgewählt werden, ob das Suchfeld für die Mitglieder eingeblendet wird oder nicht (Suchfeld anzeigen)
  • Der Name des ausgewählten Mitglieds kann zusätzlich im Seitentitel des Webbrowsers angezeigt werden (Name des Mitglieds in Seitentitel anzeigen)
  • Es kann eine eigene Listenvorlage in Form eines Templates ausgewählt werden. Diese Vorlage muss mit memberlist_ beginnen (Listenvorlage)
  • Eines der Datenbankfelder der Mitgliedertabelle kann für eine initiale Sortierreihenfolge ausgewählt werden. Die Liste wird dann nach diesem Feld alphanumerisch sortiert (Initiale Sortierreihenfolge)
  • Es kann eine SQL-WHERE-Bedingung für die Filterung der Mitgliederliste angegeben werden. Bitte beachten Sie, dass diese Bedingung einem gültigen SQL-Ausdruck entsprechen muss, da das ausführende PHP Skript sonst fehlschlägt und die Seite unter Umständen überhaupt nicht angezeigt wird. Um z.B. nur weibliche Mitglieder anzuzeigen, könnte man die Bedingung gender="female" eingeben (Bedingung)
Zusätzliche Modul-Einstellungen der Mitgliederliste

Erstellen einer detaillierten Mitgliederseite

Das Modul Mitgliederseite ermöglicht die Ausgabe der Mitgliederdaten eines Mitglieds auf einer eigenen Seite. Es kann außerdem durch die Einstellung Erlaubte Mitgliedergruppen festgelegt werden, dass die Mitgliedsdaten, ob öffentlich oder nicht öffentlich, nur für eine oder mehrere bestimmte Mitgliedergruppen ausgegeben werden dürfen. Dadurch kann z.B. verhindert werden, dass die Daten von Mitgliedsgruppen, die nur für den "internen" Gebrauch angelegt wurden, durch Ausprobieren von Mitglieds-ID's ausgegeben werden.

Ausgabe des öffentlichen Profils eines bestimmten Mitglieds

Das Modul Mitglieder-Details ermöglicht die Ausgabe des öffentlichen Profils eines bestimmten Mitglieds. Dazu wählt man nur den Namen des Mitglieds im Dropdown-Feld Mitglied aus. Die Ausgabe entspricht der Detailansicht des Mitglieds, die über das Modul Mitgliederliste für ein Mitglied angezeigt werden kann.

Bearbeiten der persönlichen Daten von Mitgliedern

Mitglieder können, wenn sie angemeldet sind, ihre persönlichen Daten bearbeiten. Dafür muss von Contao das Modul Persönliche Daten bereitgestellt werden. Neben den editierbaren Feldern, die hier festgelegt werden können, gibt es die Möglichkeit, über die Option Seiteneditor aktivieren den Mitgliedern zu erlauben, neben ihrer normalen Mitgliederseite auch noch weitere Seiten zu definieren, die beliebige Inhalte annehmen dürfen.

Seiteneditor aktivieren

Mit aktiviertem Seiteneditor dürfen die Mitglieder in der Frontend-Darstellung des Moduls Persönliche Daten ihre eigenen Seiten anlegen. Dies kann z.B. dazu verwendet werden, einen Lebenslauf, eine persönliche Stellungnahme oder andere Inhalte anzulegen.

Anlegen/Bearbeiten einer zusätzlichen Seite

Neben der Sichtbarkeit der jeweiligen Seiten und dem Inhalt der Seite kann für jede Seite noch ein Titel festgelegt werden.

Erstellen von individuellen Mitgliederseiten

Wenn man persönliche Seiten mit individuellen Inhalten zur Verfügung stellen will, bietet MemberExtensions zwei Konfigurations-Arrays an, über die man callback-Funktionen für eigene Erweiterungen einbinden kann:

Konfigurations-Array Schlüssel Wert Beschreibung
$GLOBALS['TL_PERSONALDATA_EDITOR'] SEITENTYP Callback-Funktion array Diese Funktion wird aufgerufen, wenn der Editor für eine persönliche Seite aufgerufen wird. Man definiert die Callback-Funktion als array('Klasse', 'Methode'). Die Funktion erhält ein assoziatives Array mit dem Seitenaufbau und eine Objektreferenz auf die aufrufende Klasse als Parameter. Als Rückgabewert gibt die Funktion den HTML-Code für den Seiteneditor zurück.
$GLOBALS['TL_PERSONALDATA'] SEITENTYP Callback-Funktion array Diese Funktion wird aufgerufen, wenn die Frontend-Ausgabe für eine persönliche Seite aufgerufen wird. Man definiert die Callback-Funktion als array('Klasse', 'Methode'). Die Funktion erhält ein assoziatives Array mit dem Seitenaufbau als Parameter. Als Rückgabewert gibt die Funktion den HTML-Code für die Seitenausgabe zurück.

SEITENTYP muss ein eindeutiger Bezeichner für die Mitgliederseiten-Erweiterung sein. Die dazugehörige Übersetzung muss in tl_module.php als $GLOBALS['TL_LANG']['tl_module']['pagetype']['SEITENTYP'] definiert werden.

Das assoziative Array, das als erster Callback-Parameter übergeben wird, beinhaltet die Namen und Werte der Formularfelder, die im Seiteneditor verwendet werden, z.B.:

Array
(
    [title] => Publikationen
    [content] => Array
        (
        )
 
    [position] => 3
    [is_visible] => 1
    [href] => index.php/persoenliche-daten.html?activepage=3
    [type] => literature
)

Die folgenden Schlüssel und Werte sind im assoziativen Array angegeben:

Schlüssel Wert Beschreibung
title Seitentitel string Titel der Seite, der über das Textfeld Seitentitel verändert werden kann.
position Seitenreihenfolge integer Reihenfolge der Seite in der Liste der persönlichen Seiten.
is_visible Sichtbarkeit boolean Gibt an, ob die aktuelle Seite für andere Mitglieder und Gäste sichtbar ist oder nicht. Der Wert wird durch das Kontrollkästchen Die Seite ist sichtbar beeinflusst.
href Seiten-URL string URL auf die aktuelle Seite.
type Seitentyp string Typ der aktuellen Seite
content Seiteninhalt mixed Je nach Seitentyp beinhaltet content den Wert des Datenbankfeldes content der Tabelle tl_member_pages. Wenn Sie einen komplexeren Seitentyp anlegen, empfiehlt es sich hier, entweder den HTML-Inhalt der Seite oder aber ein serialisiertes Array mit den Seiteninformationen in diesem Feld zu speichern.

Ein Beispiel für eine Mitgliederseiten-Erweiterung wäre z.B.

$GLOBALS['TL_PERSONALDATA_EDITOR']['literature'] = array('LiteraturePersonalPage', 'editPersonalLiteratureList');
$GLOBALS['TL_PERSONALDATA']['literature'] = array('LiteraturePersonalPage', 'showPersonalLiteratureList');

in einer entsprechenden config.php. Eine Mitgliederseiten-Erweiterung wurde bereits im Contao-Modul literature erstellt.

--Hschottm 12:48, 11. Sep. 2010 (CEST)

Ansichten
Meine Werkzeuge

Contao Community Documentation

Chuck Norris programmiert kein PHP, er diktiert das Ergebnis. Den Rest macht der Editor aus Angst.

Stefan Lindecke
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge