info@a-coding-project.de

Rollenliste (CMS)

In unserem CMS gibt es zur Zeit standardmäßig drei Rollen:

  • Administrator
  • Gast
  • Alle

Diese Rollen sollen erweiterbar und veränderbar sein. Hierfür bauen wir heute schon einmal die Auflistung der Rollen unter Benutzer->Rollen. Zunächst starten wir mit dem template system/templates/role_list.html:

<table>
  <thead>
    <tr>
      <td><strong>{LANG:ID}</strong></td>
      <td><strong>{LANG:NAME}</strong></td>
      <td><strong>{LANG:ACTIONS}</strong></td>
    </tr>
  </thead>
  <tbody>
    {LOOP:ROLELIST}
    <tr>
      <td>{VAR:ID}</td>
      <td>{VAR:NAME}</td>
      <td>{VAR:ACTIONS}</td>
    </tr>
    {/LOOP:ROLELIST}
  </tbody>
</table>

Diese ist so ähnlich aufgebaut, wie die Liste der Benutzer. Die dahinter steckende Klasse ist die /system/classes/rolelist.php:

<?PHP
  class RoleList extends Editor{
    function __construct($page){
      $this->page = $page;
    }

    public function display(){
      $rolelist = new Template();
      $rolelist->load("role_list");

      foreach(Role::getAllRoles() as $role){
        $index = $rolelist->add_loop_item("ROLELIST");
	    $rolelist->assign_loop_var("ROLELIST", $index, "ID", $role->ID);
	    $rolelist->assign_loop_var("ROLELIST", $index, "NAME", $role->name);
      }

      $rolelist->output();
    }

    function getHeader(){
    }

    public function getEditableCode(){
      return "<input name="save" type="submit" value="Ändern" onclick="form.action='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."' ; target='_self' ; return true" />";
    }

    public function save($newPage,$oldPage){
    }
}
?>

Des Weiteren hab ich noch einige Elemente gecachet, wie zum Beispiel fast alle Widgets. So läuft ContentLion noch schneller.

Alle Änderungen im Detail gibt es in Revison 73 und Revision r74. Die Änderungen stehen auch als Update bereit.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant