Inhaltsverzeichnis Weiterführende Möglichkeiten Benutzerverwaltung um eigene Reiter erweitern

Benutzerverwaltung um eigene Reiter erweitern

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)

QuelltextPHP Code:
  1. <?php
  2.     $smarty->assign('aktuelles_datum',date("d.m.Y"))// Das aktuelle Datum als Smarty-Platzhalter übergeben
  3. ?>

Beispiel (Template: var/lib/rights/t/kunden_daten.html)

QuelltextHTML Code:
  1. <form method="post" name="edit"> 
  2.  
  3. <div align="center"> 
  4. <table class="table"> 
  5.     <tr> 
  6.         <td colspan="2" class="cell"> 
  7.         <table class="table" border="0" cellspacing="1" cellpadding="4" class="table"> 
  8.             <tr> 
  9.                 <td style="width:200px;"><b>{t}VIP-Kunde{/t}</b><br /><small>Aktiv bei besonderen Benutzern</small></td> 
  10.                 <td><input type="checkbox" name="extra[vip]" value="1" /></td> 
  11.             </tr> 
  12.             <tr> 
  13.                 <td><b>{t}Rechnung bezahlt am:{/t}</b><br /><small>Letzter Zahlungseingang</small></td> 
  14.                 <td> 
  15.                     <input type="text" name="extra[bezahlt]" /> 
  16.                     &nbsp;&nbsp;&nbsp;(aktuelles Datum: {$aktuelles_datum}) 
  17.                 </td> 
  18.             </tr> 
  19.         </table> 
  20.         </td> 
  21.     </tr> 
  22. </table> 
  23. </div> 
  24. </form> 
  25.  
  26. <script language="javascript"> 
  27. <!-- 
  28. var elements = document.forms['edit'].elements; 
  29.  
  30. {literal} 
  31. function do_load_extra() 
  32.     elements['extra[vip]'].checked = window.parent.get_extra('vip')==1; 
  33.     elements['extra[bezahlt]'].value = window.parent.get_extra('bezahlt'); 
  34.  
  35. function do_unload_extra() 
  36.     window.parent.set_extra('vip', elements['extra[vip]'].checked?1:0); 
  37.     window.parent.set_extra('bezahlt', elements['extra[bezahlt]'].value); 
  38. {/literal} 
  39. //--> 
  40. </script>

Vorschau

benutzer_profil_reiter 

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.