Damit der Nutzer sich anmelden kann muss er das Recht Siteroles/frontend:Login und Siteroles/frontend:Logout haben. Die Registrierung muss für den Gast-Benutzer zusätzlich Freigeschaltet werden, hierfür muss die Gast Rolle das Recht Siteroles/frontend:Login und Siteroles/frontend:register besitzen.
Das folgende Beispiel zeigt ein Anmeldeformular mit Benutzername und Passwort wenn man nicht angemeldet ist und den Benutzernamen mit Abmeldelink wenn der Nutzer sich richtig angemeldet hat.
<ty:siteroles mode="loggedout">
<form action="<?php echo tyGetURLByTopic("userdata"); ?>" method="post" name="login" id="loginform">
<input type="hidden" name="login" value="Anmelden"/>
<input name="login_email" id="email" type="text" class="input_login<ty:siteroles mode="error" name="login_failure"> formerror logerror</ty:siteroles>" value="<?php echo $_REQUEST['login_email'];?>">
<input name="login_password" type="password" class="input_login<ty:siteroles mode="error" name="login_failure"> formerror logerror</ty:siteroles>">
<button type="submit" name="login_button"><?php if ($tyState["lang"] == "de" ) { echo "Login"; } else { echo "Anmelden"; } ?></button><br>
<a href="<?php echo tyGetUrlByTopic("registrierseite"); ?>">registrieren</a>
</form>
</ty:siteroles>
<?php if (!$tyState["editMode"]) { ?>
<ty:siteroles mode="loggedin">
You are logged in as: <ty:siteroles mode="attribut-value" name="email"><ty-siteroles:value/></ty:siteroles><br><a href="<?php echo $_SERVER["REQUEST_URI"]; echo (!empty($_SERVER['QUERY_STRING'])?"&logout=1":"?logout=1"); ?>" target="_self">Logout</a>
</ty:siteroles>
<?php
}
?>
<?php if ($tyState["editMode"]) { ?>
Login nicht verfügbar
<?php } ?>
Beispielbeschreibung:
Gibt ein Registrierungsformular mit 3 Eingabefeldern (Email, Passwort, Name) und einer Auswahlbox (Land) aus. Beim abschicken wird der neue Nutzer der Rolle „websiteuser“ zugewiesen.
Wichtig ist, dass unter „attributes“ alle Attribute angegeben werden, die gespeichert werden sollen. Desweiteren muss der Submitbutton immer den Namen „siteroles_register“ tragen, damit das Formular auch als Registrierungsformular erkannt wird. Beispielquellcode:
<ty:siteroles mode="register" attributes="email,passwort,name,land" role="websiteuser"> <form action="register.php?topic=registerconfirm" method="post"> <table> <tr> <td width="250">Email</td> <td><input type="text" name="email" value=""></td> </tr> <tr> <td>Passwort</td> <td><input type="password" name="passwort" value=""></td> </tr> <tr> <td>Name</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Land</td> <td><select name="land"> <option value>Deutschland</option> <option value>Österreich</option> <option value>Schweiz</option> </select> </td> </tr> </table> <br/> <input type="submit" name="siteroles_register" value="registrieren"></form> </ty:siteroles>
Das folgende Formular meldet den Nutzer vom System ab und springt zur Standardseite der Webseite. In den Richtlinien der Nutzergruppe muss für das Modul siteroles das Recht „logout“ aktiviert sein.
<ty:siteroles mode="loggedin">
<form action="<?php echo tyGetURLByTopic($tyConfig['modules']['nav']['defaultTopic']);?>" method="post" name="logoutForm">
<input type="submit" name="logout" value="Abmelden" />
</form>
</ty:siteroles>
oder
<a href="<?php echo $_SERVER["REQUEST_URI"]; echo (!empty($_SERVER['QUERY_STRING'])?"&logout=1":"?logout=1"); ?>" target="_self">Logout</a>
Alle für einen Nutzer in den sitroles-Attributen gespeicherten Daten können im angemeldeten Zustand z.B. zur Verwendung in Formularen ausgelesen werden.
<ty:siteroles mode="attributes"> <ty-attribute:name/> :<ty-attribute:value/><br/> </ty:siteroles>
<ty:siteroles mode="attribut-value" name="name">
<ty-siteroles:value/>
</ty:siteroles>
<ty:siteroles mode="roles">
<ty-role:name/><br/>
</ty:siteroles>
<form id="kontaktformular" method="post"> <label for="vorname">Vorname</label><br /> <input id="vorname" name="vorname" type="text" value="<ty:siteroles mode="attribut-value" name="vorname"><ty-siteroles:value/></ty:siteroles>" /> <label for="nachname">Nachname</label><br /> <input id="nachname" name="nachname" type="text" value="<ty:siteroles mode="attribut-value" name="nachname"><ty-siteroles:value/></ty:siteroles>" /> <label for="email">E-Mail</label><br /> <input id="email" name="email" type="text" value="<ty:siteroles mode="attribut-value" name="email"><ty-siteroles:value/></ty:siteroles>" /> <label for="nachricht">Ihre Nachricht</label><br /> <textarea id="nachricht" name="nachricht">Ihre Nachricht...</textarea> <button type="submit">Absenden</button> </form>
Ausgabe von (Quell)Text, wenn ein Nutzer in einer bestimmten Rolle angemeldet ist:
<ty:siteroles mode="loggedin">
<ty:siteroles mode="inrole" role="bestimmte_rolle">
<p>Nur für angemeldete Nutzer von "bestimmte_rolle" sichtbar.</p>
</ty:siteroles>
</ty:siteroles>
Die Beispieldatei zeigt ein Formular zum ändern des Benutzerprofils. Zu beachten ist, dass der Button zum Absenden des Formulars im Attribut „name“ den Wert „siteroles_save“ zugewiesen bekommt.
Zum Zusenden eines neuen Passwortes muss der Nutzer eine im System existierende E-Mail-Adresse über folgendes Formular angeben:
<ty:siteroles mode="forgot">
<form action="#" method="post">
<!-- Fehlermeldung, falls Nutzer nicht existiert -->
<ty:siteroles mode="error" name="forgot_failure_exists">
<div class="error">Es existiert kein Nutzer mit der angegebenen E-Mail-Adresse!</div>
</ty:siteroles>
<!-- Anzeige nach erfolgreichem Versand -->
<ty:siteroles mode="noerror" name="forgot_failure_exists">
<div class="noerror">Sie erhalten in Kürze eine E-Mail mit Ihrem neuen Passwort.</div>
</ty:siteroles>
<!-- Formularelemente -->
<label for="email">E-Mail</label><br />
<input id="email" type="text" name="email" value="E-Mail-Adersse" /><br/>
<button type="submit" name="forgot">Neues Passwort zusenden</button>
</form>
</ty:siteroles>
Nutzerattribute, email und das neu gesetzte passwort werden in der Form {firstname}, {lastname} ersetzt. Die Mailvorlage untersützt auch die Syntax: per XML Tag <ty-mail:firstname/>, <ty-mail:lastname/>
Ihre neuen Zugangsdaten:
Login: {email}
Passwort: {password}
oder:
Ihre neuen Zugangsdaten: Login: <ty-mail:email/> Passwort: <ty-mail:password/>
Anm.: Unterschiede bei der Verwendung der Tags. Die Syntax mit geschweiften Klammern wird, sofern dieses Nutzerattribut nicht vorhanden ist nicht ersetzt. Die Syntax mit xml-Tags wird hingegen immer ersetzt, auch wenn das abzufragende Attribut nicht bekannt ist.
Daten eines angemeldeten Nutzers können in Verbindung mit dem myty Shop Modul genutzt werden. Es lassen sich alle Daten in ein Formular für Rechnungsadresse übernehmen. Dazu ist allerdings eine eine Rolle notwendig, in welcher die Nutzerdaten in vorgegeben Attributen hinterlegt werden, die dann über ty-Shop-Tags in Eingabefelder ausgelesen werden können. Die in in der Rolle zu nutzenden Attributnamen sind fett markiert:
Das folgende Beispiel erzeugt im Bestellvorgang ein Formular zur Eingabe der Nutzerdaten. Die ty-Shop:user… Tags erzeugen Texteingabefelder, in welche beim angemeldete Nutzer Nutzerdaten aus siteroles (wenn vorhanden) übernommen werden.
<ty:shop element="user" type="form">
<label for="tyShopFirstname">Vorname</label><br />
<ty-Shop:userFirstname id="tyShopFirstname" />
<label for="tyShopLastname">Nachname</label><br />
<ty-Shop:userLastname id="tyShopLastname" />
<label for="tyShopCompany">Firma</label><br />
<ty-Shop:userCompany id="tyShopCompany" />
<label for="tyShopAddress">Strasse</label><br />
<ty-Shop:userAddress id="tyShopAddress" />
<label for="tyShopAddressNr">Strasse</label><br />
<ty-Shop:userAddressNr id="tyShopAddressNr" />
...
<ty-Shop:userStoreUserData>Zur Auswahl der Zahlungsart</ty-Shop:userStoreUserData>
</ty:shop>
Ab myty Version 3.5 / 4.0 verfügbar.
Gibt aus wieviele Nutzer sich gerade auf Ihrer Internetseite befinden:
Es befinden sich <ty:siteroles mode="usercount"/> Gäste auf der Seite. oder: Es befinden sich <ty:siteroles mode="usercount" role="Gast"/> Gäste auf der Seite. Nutzer aus meheren Rollen kumuliert ausgeben: Es befinden sich <ty:siteroles mode="usercount" role="Shopkunden,Intern"/> Angemeldete Nutzer auf der Seite
diese Information wird maximal 15 Minuten gespeichert. Verschiedene Nutzer werden über Ihrer session_id identifiziert. Es ist möglich mehrere Rollen anzugeben, um so eine kumulierte Statistik über mehrer Rollen anzuzeigen. Jede session_id wird hier über alle Rollen nur einmal gezählt.
Die folgende PDF-Datei zeigt, wie man Nutzer aus einer CSV-Datei in das myty importiert:
http://www.tycon.info/media/doku/myty%20-%20Nutzerimport.pdf