YCom

Eine Erweiterung von Yform

YCom
Geschützter Login und Community-Funktionen

Das AddOn YCom bringt derzeit zwei Plugins mit: group zur Verwaltung von Usergruppen und auth zur Authentifizierung bei Login-Vorgängen oder anderen Anmeldeaktionen. Weitere Plugins wie z.B. Kommentarfunktion oder Newsletter werden folgen.


Prinzip der Authentifizierung

Um die im auth-Plugin eingebaute Authentifizierung bei einem eigenen Projekt nutzen zu können, musst Du zunächst ein paar Einstellungen vornehmen.

Als Erstes muss natürlich ein Häkchen bei Authentifizierung aktiviert gesetzt werden. Außerdem musst Du DIch entscheiden, welches Feld der User-Tabelle als Loginname genutzt wird. Es steht jedes Feld zur Auswahl, aber man wird im Normalfall das Feld Login oder – wie hier in der Demo – E-Mail wählen. Da dieser Loginname natürlich nicht doppelt vorkommen darf, sollte bei der Registrierung durch die Validierungsfunktion validate|unique überprüft werden, ob der Loginname schon vorhanden ist.


Weiterhin muss am Anfang des Templates diese Zeile stehen:

$ycom_user = rex_ycom_auth::getUser();

Sodann kann man prüfen, ob ein User angelegt ist, und könnte – als simples Beispiel – im positiven Fall seinen Namen anzeigen:


if ($ycom_user) {

    // Benutzter besitzt die nötige Berechtigung
    echo 'Hallo, '.rex_ycom_auth::getUser()->getValue('name');

} else {

    // Benutzter besitzt die nötige Berechtigung nicht
    echo 'Bitte erst einloggen';

}
>

Gruppen

Basis der Rechteverwaltung

Das Group-Plugin ermöglicht es, Gruppen anzulegen und die User diesen Gruppen zuzuordnen. Bei der Installation fügt das Plugin werden den Artikeln drei Metafelder hinzu. Mit diesen Feldern kannst Du für jeden Artikel einstellen, welche Gruppen die Berechtigung dafür haben. Bei der Rechte-Zuweisung kann man auch für mehrere Kategorien rekursiv ihre Rechte definieren und bei mehreren Gruppen mit und/oder-Logik verknüpfen.

Wenn ein User einen Artikel aufruft, für den er keine Rechte hat, wird er zu einer anderen Seite weitergeleitet. Welche das ist, kann man in den Einstellungen des auth-Plugins – das für die Authentifizierung zuständig ist – definieren, siehe unten.

Weiterleitungen


In vielen anderen CMS ist die Struktur eines Loginbereichs fest vorgegeben. Das erleichtert natürlich zunächst die Arbeit für den Admin, macht den Loginbereich aber bis zu einem gewissen Grad unflexibel. Im YCom-AddOn muss man dagegen zentrale Seiten des Login-Vorgangs zunächst manuell "verdrahten", was dem Admin aber die Freiheit gibt, einen geschützten Bereich nahezu so aufzubauen, wie er sich das vorstellt oder das Projekt es erfordert.

Folgende Weiterleitungen gilt es zu definieren:

  • wenn erfolgreich eingeloggt:
    Diese Seite sollte den User in seinem Loginbereich empfangen. Für die Demo wurde dazu der Startartikel Loginbereich gewählt
  • wenn nicht erfolgreich eingeloggt:
    Zu dieser Seite gelangt man, wenn der Loginversuch nicht gelingt. Im Normalfall möchte man, dass die Seite Login einfach erneut angezeigt wird.
  • nach dem Ausloggen:
    In der Demo gibt es eine eigens erstellte Seite Logged Out, zu der man beim Logout geleitet wird. Dort kann man den User verabschieden und ihm einen Link zum erneuten Login anbieten.
  • wenn auf einen gesperrten Artikel zugriffen wird:
    Wenn der User eine URL aufruft, die er nur eingeloggt sehen darf, so wird er zu der Seite Loginbereich geleitet, um sich einloggen zu können. Sofern er bereits eingeloggt ist und eine Seite aufruft, für die die ihm zugewiesene Gruppe keine Rechte besitzt, so erfolgt eine erneute Weiterleitung zu der Seite, die man bei wenn erfolgreich eingeloggt: definiert hat.

E-Mailversand

Flexibel durch E-Mail-Templates

Soll ein YForm-Formular nach dem Abschicken eine E-Mail verschicken, so liegt es nahe, die vordefinierte Aktion zu verwenden, die man am Ende des Moduls findet. Mehr Optionen bieten allerdings die YForm-Email-Templates. Dazu kann man mit der Aktion tpl2email ein E-Mail-Template aufrufen (Der Name des E-Mail-Templates muss beim Anlegen des Templates genau so als Key definiert werden):

action|tpl2email|name_des_email_templates|email_adresse_im_formular|

Auch ein Labeltext ist möglich, der (samt Zeilenumbruch) nur angezeigt wird, wenn das Feld auch ausgefüllt wurde:

REX_YFORM_DATA[field="name" prefix="\nMein Name:" suffix=""]

Die in den Formularfeldern eingegebenen Daten kann man so in den E-Mail-Text integrieren:

REX_YFORM_DATA[field="vorname"]

Bei E-Mail-Templates kannst Du außerdem:

  • eine HTML- und eine Text-Version hinterlegen
  • Dateien aus dem Medienpool anhängen
  • PHP nutzen und so Konditionen für die Einbindung bestimmter Felder definieren