0251 / 590 837 15
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="&Auml;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.