function group_table()
 {
     $group_table = '';
     $this->images['edit'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit.png', 'Eigenschaften bearbeiten', array('title' => 'Eigenschaften bearbeiten'));
     $this->images['apply'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/apply.png', 'Speichern');
     $this->images['apply_path'] = '/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/apply.png';
     $this->images['checkbox_disabled_unchecked'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/checkbox_disabled_unchecked.png', 'Nicht erlaubt');
     $this->images['checkbox_disabled_checked'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/checkbox_disabled_checked.png', 'Erlaubt');
     $this->images['new_group'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/add_group.png', 'Gruppe hinzufügen', array('title' => 'Gruppe hinzufügen'));
     $this->images['delete_group'] = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/delete_group.png', 'Gruppe löschen', array('title' => 'Gruppe löschen'));
     $img_group = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit_group.png', 'Gruppe');
     $cols = count($this->rechte) + 3;
     $table = new Table($cols, array('id' => 'groups_table'));
     $form_tag = Form::form_tag('/Admin/Gruppen');
     $form_close = Form::close_form();
     $th = array(Html::bold('Gruppe'));
     foreach ($this->rechte as $recht) {
         $th[] = $recht['RechtName'];
     }
     $table->add_th($th);
     for ($i = 0; $i < count($this->existent_groups); $i++) {
         if (isset($_GET['editgroup']) && $_GET['editgroup'] == $i) {
             $td = array(Form::add_input('text', 'name', $this->existent_groups[$i]['Name']));
             for ($j = 0; $j < count($this->rechte); $j++) {
                 if (in_array($this->rechte[$j]['id'], $this->existent_groups[$i]['Rechte'])) {
                     $td[] = Form::add_input('checkbox', 'Recht[]', $this->rechte[$j]['id'], array('checked' => 'checked'));
                 } else {
                     $td[] = Form::add_input('checkbox', 'Recht[]', $this->rechte[$j]['id']);
                 }
             }
             $id = Form::add_input('hidden', 'group_id', $i);
             $new_rechte_submit = Form::add_input('image', 'submit_rechte', 'Speichern', array('src' => $this->images['apply_path'], 'alt' => 'Speichern'));
             $td[] = $id . $new_rechte_submit;
         } else {
             $td = array(Html::bold($this->existent_groups[$i]['Name']));
             for ($j = 0; $j < count($this->rechte); $j++) {
                 $td[] = in_array($this->rechte[$j]['id'], $this->existent_groups[$i]['Rechte']) ? $this->images['checkbox_disabled_checked'] : $this->images['checkbox_disabled_unchecked'];
             }
             $edit_button = Html::a('/Admin/Gruppen?editgroup=' . $i, $this->images['edit'], array('title' => 'Eigenschaften bearbeiten'));
             $delete_button = Html::a('/Admin/Gruppen?deletegroup=' . $i, $this->images['delete_group'], array('title' => 'Gruppe löschen', 'onclick' => "return confirm('Gruppe " . $this->existent_groups[$i]['Name'] . " löschen?')"));
             $td[] = $edit_button;
             $td[] = $delete_button;
         }
         $class = is_int($i / 2) ? 'abwechselnde_flaechen_1' : 'abwechselnde_flaechen_2';
         $table->add_td($td, array('class' => is_int($i / 2) ? 'abwechselnde_flaechen_1' : 'abwechselnde_flaechen_2'));
     }
     $new_group_button = Html::a('/Admin/Gruppen?newgroup', $this->images['new_group'] . ' Gruppe hinzufügen');
     if (isset($_GET['newgroup'])) {
         $td = array(Form::add_input('text', 'name', 'Name...'));
         for ($j = 0; $j < count($this->rechte); $j++) {
             $td[] = Form::add_input('checkbox', 'Recht[]', $this->rechte[$j]['id']);
         }
         $new_group_submit = Form::add_input('image', 'submit_newgroup', 'Speichern', array('src' => $this->images['apply_path'], 'alt' => 'Speichern'));
         $td[] = $id . $new_group_submit;
         $table->add_td($td);
     } else {
         $table->add_td(array(array(2 => $new_group_button)));
     }
     return $form_tag . $table->flush_table() . $form_close;
 }
 function user_table()
 {
     $user_table = '';
     $img_edit_group = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit_group.png', 'Gruppe ändern', array('title' => 'Gruppe ändern'));
     $img_delete_user = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/delete_user.png', 'Benutzer löschen', array('title' => 'Benutzer löschen'));
     $img_new_user = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/add_user.png', 'Benutzer hinzufügen', array('title' => 'Benutzer hinzufügen'));
     $img_edit = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit.png', 'Eigenschaften bearbeiten', array('title' => 'Eigenschaften bearbeiten'));
     $img_apply = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/apply.png', 'Speichern');
     $img_apply_path = '/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/apply.png';
     $img_pass = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/password.png', 'Passwort');
     $img_user = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit_user.png', 'Benutzername');
     $img_group = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/edit_group.png', 'Gruppe');
     $img_mail = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/mail_generic.png', 'E-Mail');
     $img_show_pw = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/14_layer_visible.png', 'Passwörter zeigen');
     $img_hide_pw = Html::img('/' . INSTALL_PATH . '/Classes/Admin/Icons/16x16/14_layer_novisible.png', 'Passwörter verstecken');
     $form = new Form();
     $table = new Table(5, array('id' => 'user_table'));
     $table->add_caption('Registrierte Benutzer');
     if (!isset($_GET['showpw'])) {
         $pwshow = Html::a($_SERVER['REDIRECT_URL'] . '?showpw', $img_show_pw, array('title' => 'Passwörter zeigen'));
     } else {
         $pwshow = Html::a($_SERVER['REDIRECT_URL'], $img_hide_pw, array('title' => 'Passwörter verstecken'));
     }
     $table->add_th(array('Benutzer', 'E-Mail', 'Passwort ' . $pwshow, 'Gruppe'));
     for ($i = 0; $i < count($this->existent_users); $i++) {
         $select = new Select('gruppe');
         foreach ($this->existent_groups as $group) {
             if ($this->existent_users[$i]['Group'] == $group) {
                 $attr['selected'] = 'selected';
             } else {
                 unset($attr['selected']);
             }
             $select->add_option(rawurlencode($group), $group, $attr);
         }
         $groups_select = $select->flush_select();
         if (!isset($_GET['showpw'])) {
             $show_password = '******';
         } else {
             $show_password = $this->existent_users[$i]['Password'];
         }
         if (isset($_GET['editgroup'])) {
             $id = $_GET['editgroup'];
             if ($id == $this->existent_users[$i]['id']) {
                 $editgroup_submit = $form->add_input('image', 'submit_edit_group', '', array('src' => $img_apply_path, 'alt' => 'Speichern'));
                 $editgroup_submit_id = $form->add_input('hidden', 'id', $id);
                 $groupshow = $groups_select . $editgroup_submit_id . $editgroup_submit;
             } else {
                 $groupshow = $this->existent_users[$i]['Group'];
             }
         } else {
             $groupshow = $this->existent_users[$i]['Group'];
         }
         //$edit_group_button = Html::a($_SERVER['REDIRECT_URL'].'?editgroup='.$this->existent_users[$i]['id'],$img_edit_group);
         $edit_user_button = Html::a($_SERVER['REDIRECT_URL'] . '?edituser='******'id'], $img_edit);
         $delete_user_confirm = array('onclick' => 'return confirm(\'Wollen Sie ' . $this->existent_users[$i]['Name'] . ' wirklich löschen?\')');
         $delete_user_button = Html::a($_SERVER['REDIRECT_URL'] . '?deleteuser='******'id'], $img_delete_user, $delete_user_confirm);
         $user_row = array($this->existent_users[$i]['Name'], $this->existent_users[$i]['E-Mail'], $show_password, $groupshow, $edit_user_button . $edit_group_button . $delete_user_button);
         if (isset($_GET['edituser'])) {
             $id = $_GET['edituser'];
             if ($id == $this->existent_users[$i]['id']) {
                 $edit_user_form_name = $form->add_input('text', 'edit_user_name', $this->existent_users[$i]['Name'], array('size' => '12'));
                 $edit_user_form_pass = $form->add_input('text', 'edit_user_pass', $this->existent_users[$i]['Password'], array('size' => '12'));
                 $edit_user_form_mail = $form->add_input('text', 'edit_user_mail', $this->existent_users[$i]['E-Mail'], array('size' => '12'));
                 $edit_user_form_id = $form->add_input('hidden', 'edit_user_id', $id);
                 $edit_user_form_submit = $form->add_input('image', 'submit_edit_user', 'Speichern', array('src' => $img_apply_path, 'alt' => 'Speichern'));
                 $user_row = array($img_user . $edit_user_form_name, $img_mail . $edit_user_form_mail, $img_pass . $edit_user_form_pass, $img_group . $groups_select, $edit_user_form_submit . $edit_user_form_id);
             }
         }
         $table->add_td($user_row, array('class' => is_int($i / 2) ? 'abwechselnde_flaechen_1' : 'abwechselnde_flaechen_2'));
     }
     $new_user_link = Html::a($_SERVER['REDIRECT_URL'] . '?newuser', $img_new_user . ' Benutzer hinzufügen');
     if (isset($_GET['newuser'])) {
         $new_user_form_name = $form->add_input('text', 'new_user_name', '', array('size' => '12'));
         $new_user_form_pass = $form->add_input('text', 'new_user_pass', '', array('size' => '12'));
         $new_user_form_mail = $form->add_input('text', 'new_user_mail', '', array('size' => '12'));
         $new_user_form_submit = $form->add_input('image', 'submit_new_user', 'Speichern', array('src' => $img_apply_path, 'alt' => 'Speichern'));
         $table->add_td(array($img_user . $new_user_form_name, $img_mail . $new_user_form_mail, $img_pass . $new_user_form_pass, $img_group . $groups_select, $new_user_form_submit));
     } else {
         $table->add_td(array(array(2 => $new_user_link)));
     }
     return $form->form_tag('/Admin/User/') . $table->flush_table() . $form->close_form();
 }
 function module_table()
 {
     $this->installed = $this->connection->db_assoc("SELECT * FROM `RheinaufCMS>Module` WHERE `SYSTEM` = 0 ORDER BY `id` ASC");
     $this->available_modules = RheinaufFile::dir_array(INSTALL_PATH . '/Module', false, 'php');
     foreach ($this->available_modules as $module) {
         $class_name = preg_replace('/\\.php/', '', $module);
         if ($module != 'Navi.php') {
             if (RheinaufFile::is_file(INSTALL_PATH . '/Module/' . $class_name . '/Install.php')) {
                 include_once INSTALL_PATH . '/Module/' . $class_name . '/Install.php';
                 $class_name .= 'Install';
             } else {
                 include_once $module;
             }
         }
         if (is_callable(array($class_name, 'about'))) {
             eval('$module_about = ' . $class_name . '::about();');
             switch ($module_about['type']) {
                 case 'inPage':
                     $this->inPageModules[] = $module_about;
                     break;
                 case 'installable':
                     $this->installableModules[] = $module_about;
                     break;
             }
         }
     }
     $return_string = '';
     $this->return .= Html::h(3, 'Installierbare Module');
     $table = new Table(2);
     $table->add_th(array('Installierbare Module', 'Installierte Module'));
     $form = new Form();
     $form->form_tag(SELF_URL);
     $installed_modules = array();
     foreach ($this->installed as $installed) {
         $installed_modules[] = $installed['Name'];
     }
     $installables_select = new Select('installable', array('size' => '10', 'style' => 'width:150px'));
     foreach ($this->installableModules as $modul) {
         if (!in_array($modul['Name'], $installed_modules)) {
             $installables_select->add_option(rawurlencode($modul['Name']), $modul['Name']);
         }
     }
     $installed_select = new Select('installed', array('size' => '10', 'style' => 'width:150px'));
     foreach ($installed_modules as $modul) {
         $installed_select->add_option(rawurlencode($modul), $modul);
     }
     $table->add_td(array($installables_select->flush_select(), $installed_select->flush_select()));
     $install_submit = Form::add_input('submit', 'install', 'Installieren');
     $uninstall_submit = Form::add_input('submit', 'uninstall', 'Deinstallieren');
     $table->add_td(array($install_submit, $uninstall_submit), array('style' => 'text-align:center'));
     $form->add_custom($table->flush_table());
     $this->return .= $form->flush_form();
     $this->return .= Html::h(3, 'Aufruf über Template');
     $table = new Table(2, array('style' => 'width:500px'));
     $table->add_th(array('Modul', 'Einbindung'));
     foreach ($this->inPageModules as $module) {
         $table->add_td(array(Html::bold($module['Name']), $module['Usage']));
     }
     $this->return .= $table->flush_table();
 }
    function pages_table($j)
    {
        $rubrik = $this->navi[$j]['Rubrik'];
        $rubrik = $this->I18n_get_real($rubrik);
        $return_string = '';
        $GLOBALS['scripts'] .= Html::script('
		var editor_win = null;
		function editor (r,s)
		{
			editor_win = window.open("/Admin/SeiteEdit?edit_page=" +r+ "&edit="+s,"Editor","resizable=yes,status=no");
			editor_win.focus();
		}
		');
        $navi_table = new Table(3);
        $navi_table->add_caption('Seiten in ' . $rubrik);
        $rubrik_folder = $this->path_encode($rubrik);
        $navi_table->add_th(array('Live-Version', 'Arbeits-Version'), array('style:padding-right:5px;'));
        for ($i = 0; $i < count($this->navi[$j]['Subnavi']); $i++) {
            if (!empty($this->navi[$j]['Subnavi'][$i]) && $this->navi[$j]['Subnavi'][$i]['Modul'] == '') {
                $name = $this->I18n_get_real($this->navi[$j]['Subnavi'][$i]['Seite']);
                $seite_folder = $this->path_encode($name);
                $edit_button = Html::a(SELF_URL . '?edit_page=' . $i . '&edit=' . $j, $name . $this->images['edit'], array('onclick' => "editor({$i},{$j});return false"));
                $working_version_button = Html::a(SELF_URL . '?workingversion&edit_page=' . $i . '&edit=' . $j, $name . $this->images['edit'], array('onclick' => "window.open('/Admin/SeiteEdit?workingversion&edit_page={$i}&edit={$j}','Editor','resizable=yes,status=no');return false"));
                $vorschau_button = ' ' . Html::a('/' . rawurlencode($rubrik_folder) . '/' . rawurlencode($seite_folder) . '/Arbeitsversion/', 'Vorschau');
                $golive_button = ' | ' . Html::a(SELF_URL . '?golive&edit_page=' . $i . '&edit=' . $j, 'Go Live!');
                $navi_table->add_td(array($edit_button, $working_version_button, $vorschau_button . $golive_button), array('style:padding-right:5px;'));
            }
        }
        $return_string .= $navi_table->flush_table();
        return $return_string;
    }
 function pages_table($j)
 {
     $return_string .= Form::form_tag($_SERVER['REDIRECT_URL'] . '?edit=' . $j, 'post', 'application/x-www-form-urlencoded', array('onsubmit' => 'return dublette(document.getElementById(\'new_page_name\').value,\'seiten\')'));
     $navi_table = new Table(3);
     $navi_table->add_caption('Seiten in ' . $this->I18n_get_real($this->navi[$j]['Rubrik']));
     $navi_table->add_th(array('', 'Name', ''));
     for ($i = 0; $i < count($this->navi[$j]['Subnavi']); $i++) {
         if (isset($_GET['edit_page']) && $_GET['edit_page'] == $i && !isset($_GET['visible'])) {
             $name = $this->navi[$j]['Subnavi'][$i]['Seite'];
             $name_input = $_SESSION['RheinaufCMS_User']['Group'] == 'dev' ? Form::add_input('text', 'name', $name) : Html::bold($name) . Form::add_input('hidden', 'name', $name);
             if ($this->navi[$j]['Subnavi'][$i]['Show'] == 1) {
                 $visible_checked = array('checked' => 'checked', 'title' => 'Sichtbarkeit im Hauptmenü');
             } else {
                 $visible_checked = array('title' => 'Sichtbarkeit im Hauptmenü');
             }
             $visble_checkbox = Form::add_input('checkbox', 'Show', 1, $visible_checked);
             $id = Form::add_input('hidden', 'page_id', $i);
             $old_name = Form::add_input('hidden', 'oldname', $this->navi[$j]['Subnavi'][$i]['Seite']);
             $apply_button = Form::add_input('image', 'submit_edit_page', 'Speichern', array('src' => $this->images['img_apply_path'], 'alt' => 'Speichern', 'title' => 'Speichern'));
             $navi_table->add_td(array($id . $old_name . $visble_checkbox, $name_input, $apply_button . $this->buttons['cancel_page']));
             $module_select = $this->modules_select(preg_replace("/\\(.*/", "", $this->navi[$j]['Subnavi'][$i]['Modul']));
             if ($module_select) {
                 $navi_table->add_td(array('', Html::bold('Modul') . Html::br() . $module_select));
             }
             $ext_link_input = Html::bold('URL ') . '(optional) ' . Html::br() . Form::add_input('text', 'ext_link', rawurldecode($this->navi[$j]['Subnavi'][$i]['ext_link']), array('id' => 'ext_link_page'));
             $navi_table->add_td(array('', $ext_link_input, isset($_GET['browse']) ? '' : Html::br() . Html::a($_SERVER['REDIRECT_URL'] . '?browse&amp;edit_page=' . $i . '&amp;edit=' . $j, $this->images['browse'])));
             if (isset($_GET['browse'])) {
                 $navi_table->add_td(array('', $this->make_tree('ext_link_page')));
             }
             $navi_table->add_td(array('', $this->groups_select($_GET['edit'], $i)));
         } else {
             if (!empty($this->navi[$j]['Subnavi'][$i]) && $this->navi[$j]['Subnavi'][$i]['Seite'] != 'index') {
                 if ($this->navi[$j]['Subnavi'][$i]['Show'] == 0) {
                     $visible_img = $this->images['invisible'];
                     $visible_button = Html::a($_SERVER['REDIRECT_URL'] . '?visible=1&amp;edit_page=' . $i . '&amp;edit=' . $j, $visible_img);
                 } else {
                     $visible_img = $this->images['visible'];
                     $visible_button = Html::a($_SERVER['REDIRECT_URL'] . '?visible=0&amp;edit_page=' . $i . '&amp;edit=' . $j, $visible_img);
                 }
                 $modul = $this->navi[$j]['Subnavi'][$i]['Modul'] != '' ? $this->images['modul'] : '';
                 $locked = $this->navi[$j]['Subnavi'][$i]['Show_to'] != '' ? $this->images['locked'] : '';
                 $international = strstr($this->navi[$j]['Subnavi'][$i]['Seite'], '{I18n') ? $this->images['intern'] : '';
                 $name = $this->I18n_get_real($this->navi[$j]['Subnavi'][$i]['Seite']);
                 $edit_button = Html::a($_SERVER['REDIRECT_URL'] . '?edit_page=' . $i . '&amp;edit=' . $j, $this->images['edit']);
                 $delete_button = Html::a($_SERVER['REDIRECT_URL'] . '?delete_page=' . $i . '&amp;edit=' . $j, $this->images['delete'], array('onclick' => "return delete_confirm('{$name}')"));
                 $navi_table->add_td(array($visible_button, $modul . $locked . $international . $name, $edit_button . $delete_button));
             }
         }
     }
     $add_page_button = Html::a($_SERVER['REDIRECT_URL'] . '?newpage&amp;edit=' . $j, $this->images['new_file'] . 'Neue Seite');
     $reihenfolge_button = Html::a($_SERVER['REDIRECT_URL'] . '?reorder_pages&amp;edit=' . $j, $this->images['order'] . 'Reihenfolge ändern');
     if (isset($_GET['newpage'])) {
         $name_input = Form::add_input('text', 'new_name', '', array('title' => 'Name', 'id' => 'new_page_name'));
         $visble_check = Form::add_input('checkbox', 'Show', 1, array('checked' => 'checked', 'title' => 'Sichtbarkeit im Hauptmenü'));
         $count = Form::add_input('hidden', 'count', count($this->navi));
         $apply_button = Form::add_input('image', 'submit_new_page', 'Speichern', array('src' => $this->images['img_apply_path'], 'alt' => 'Speichern', 'title' => 'Speichern'));
         $navi_table->add_td(array($visble_check, $count . $name_input, $apply_button . $this->buttons['cancel_page']));
         $ext_link_input = Html::bold('URL ') . '(optional) ' . Html::br() . Form::add_input('text', 'ext_link', $this->navi[$i]['ext_link'], array('id' => 'ext_link_page'));
         $navi_table->add_td(array('', $ext_link_input, isset($_GET['browse']) ? '' : Html::br() . Html::a($_SERVER['REDIRECT_URL'] . '?browse&amp;newpage&amp;edit=' . $j, $this->images['browse'])));
         if (isset($_GET['browse'])) {
             $navi_table->add_td(array('', $this->make_tree('ext_link_page')));
         }
         $navi_table->add_td(array('', $this->groups_select()));
     } else {
         $navi_table->add_td(array(array(2 => $add_page_button)));
         $navi_table->add_td(array(array(2 => $reihenfolge_button)));
     }
     $return_string .= $navi_table->flush_table();
     $return_string .= Form::close_form();
     return $return_string;
 }