Um einen eigenen Reiter in der Benutzerverwaltung zu erstellen gehen Sie wie folgt vor:
Erstellen Sie in
var
folgende Ordnerstruktur
lib/rights/t/
und unter
var/lib/rights
die Datei
user_profile_tab.ini
. Diese Datei definiert zusätzliche Reiter welche in der Benutzerverwaltung erscheinen sollen. Die ini Datei verhält sich ähnlich der
navigation.ini
der Seitentypen.
Beispiel (var/lib/rights/user_profile_tab.ini)
[profile]
name = Profil
title = Profil
template = rights/t/user_profile_dlg.html
script = rights/user_profile_dlg.php
right = desktop
[kunden_daten]
name = "Kundendaten"
title = "Kundendaten"
template = rights/t/kunden_daten.html
script = rights/kunden_daten.php
right = desktop
Der erste Bereich [profile] sollte standardmäßig immer hinzugefügt werden, damit Benutzername und Passwort weiterhin bearbeitet werden können.
Der zweite Bereich stellt einen neuen Reiter dar. Die Parameter
template und script erhalten jeweils den Pfad zur Template- und Skriptdatei. Der Parameter right
steht für das Ansichtsrecht. Templates werden im
t
Verzeichnis abgelegt.
Beispiel (Skript: var/lib/rights/kunden_daten.php)
<?php
$smarty->assign('aktuelles_datum',date("d.m.Y")); // Das aktuelle Datum als Smarty-Platzhalter übergeben
?>
Beispiel (Template: var/lib/rights/t/kunden_daten.html)
<script><form method="post" name="edit">
<div align="center">
<table>
<tr>
<td colspan="2">
<table border="0" cellspacing="1" cellpadding="4">
<tr>
<td><b>{t}VIP-Kunde{/t}</b><br /><small>Aktiv bei besonderen Benutzern</small></td>
<td><input type="checkbox" name="extra[vip]" value="1" /></td>
</tr>
<tr>
<td><b>{t}Rechnung bezahlt am:{/t}</b><br /><small>Letzter Zahlungseingang</small></td>
<td>
<input type="text" name="extra[bezahlt]" />
(aktuelles Datum: {$aktuelles_datum})
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<script language="javascript">
<!--
var elements = document.forms['edit'].elements;
{literal}
function do_load_extra()
{
elements['extra[vip]'].checked = window.parent.get_extra('vip')==1;
elements['extra[bezahlt]'].value = window.parent.get_extra('bezahlt');
}
function do_unload_extra()
{
window.parent.set_extra('vip', elements['extra[vip]'].checked?1:0);
window.parent.set_extra('bezahlt', elements['extra[bezahlt]'].value);
}
{/literal}
//-->
</script>
Vorschau

Im Beispiel werden 2 einfache Eingabefelder als Checkbox und Texteingabe definiert. Wie beim Erstellen von Seitentyp-Reitern werden auch hier die do_load_extra und do_unload_extra Funktionen zum Ein- und Auslesen der gespeicherten Werte verwendet.