function frontend_module_table()
 {
     $this->frontend_not_installed = RheinaufFile::dir_array(INSTALL_PATH . '/Module', false, 'php');
     $return_string = '';
     $table = new Table(1);
     $table->add_caption('Frontend-Module');
     $installed_modules = array();
     foreach ($this->frontend_installed as $installed) {
         $installed_modules[] = $installed['Name'];
     }
     foreach ($this->frontend_not_installed as $not_installed) {
         $not_installed = preg_replace('#(.*?).php$#', "\$1", $not_installed);
         if (!in_array($not_installed, $installed_modules)) {
             $table->add_td(array('<em>' . $not_installed . '</em>' . Html::a('/Admin/Module?newfrontend=' . rawurlencode($not_installed), '&gt;&gt;', array('title' => 'Installieren'))));
         }
     }
     foreach ($this->frontend_installed as $installed) {
         $table->add_td(array($installed['Name']));
     }
     $this->return .= $table->flush_table();
 }
 function cat_select()
 {
     $return_string = Form::form_tag(SELF, 'get');
     $attr = array();
     $table = new Table(2, array('id' => 'cat_select'));
     foreach ($this->categories as $cat) {
         if (isset($_GET['Kategorie'])) {
             if (in_array(rawurlencode($cat['Name']), $_GET['Kategorie'])) {
                 $attr['checked'] = 'checked';
             } else {
                 unset($attr['checked']);
             }
         }
         if ($cat['Access'] == 'PUBLIC' || $this->check_right('KalenderExtern') || $this->check_right('KalenderIntern')) {
             $inputs[] = Form::add_input('checkbox', 'Kategorie[]', rawurlencode($cat['Name']), $attr);
             $labels[] = $cat['Name'];
         }
     }
     $submit = Form::add_input('submit', 'filter', 'Auswählen', array('class' => 'button'));
     //$table->add_td(array(array(2=>'Ansicht')));
     $table->add_caption('Ansicht');
     for ($i = 0; $i < count($inputs); $i++) {
         $table->add_td(array($labels[$i], $inputs[$i]));
     }
     $table->add_td(array(array(2 => $submit)), array('style' => 'text-align:center'));
     $return_string .= $table->flush_table() . Form::close_form();
     return $return_string;
 }
 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 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 install()
 {
     if (isset($_POST['cat_submit'])) {
         $create_categorytable_sql = "CREATE TABLE `RheinaufCMS>Kalender>Kategorien` (\n\t\t\t\t\t\t\t\t\t\t\t`id` INT NOT NULL ,\n\t\t\t\t\t\t\t\t\t\t\t`Name` TEXT NOT NULL ,\n\t\t\t\t\t\t\t\t\t\t\t`Gruppen` TEXT NOT NULL ,\n\t\t\t\t\t\t\t\t\t\t\t`event` TINYINT DEFAULT '0' NOT NULL,\n\t\t\t\t\t\t\t\t\t\t\tPRIMARY KEY ( `id` )\n\t\t\t\t\t\t\t\t\t\t\t)";
         $this->connection->db_query($create_categorytable_sql);
         $cat_array = unserialize(urldecode($_POST['categories']));
         for ($i = 0; $i < count($cat_array); $i++) {
             $id = $i;
             $name = $cat_array[$i]['Name'];
             $event = $cat_array[$i]['event'];
             $gruppen = '';
             $insert_cat_sql = "INSERT INTO `RheinaufCMS>Kalender>Kategorien`\n\t\t\t\t\t\t\t\t\t\t\t\t( `id` , `Name` , `Gruppen` , `event` )\n\t\t\t\t\t\t\t\t\t\tVALUES \t('{$id}', '{$name}', '{$gruppen}', '{$event}')";
             $this->connection->db_query($insert_cat_sql);
         }
         $create_datatable_sql = "CREATE TABLE `RheinaufCMS>Kalender>Termine` (\n\t\t\t\t\t\t\t\t\t  `id` int(10) NOT NULL auto_increment,\n\t\t\t\t\t\t\t\t\t  `wann` timestamp(14) NOT NULL,\n\t\t\t\t\t\t\t\t\t  `wer_ueber` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `wer_text` longtext NOT NULL,\n\t\t\t\t\t\t\t\t\t  `presse` text,\n\t\t\t\t\t\t\t\t\t  `cafe_logo` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `bild` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `was` varchar(200) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `kostet` varchar(10) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `verantwortlich` text NOT NULL,\n\t\t\t\t\t\t\t\t\t  `pass` varchar(30) NOT NULL default '',\n\t\t\t\t\t\t\t\t\t  `event` tinyint(1) default '0',\n\t\t\t\t\t\t\t\t\t  PRIMARY KEY  (`id`),\n\t\t\t\t\t\t\t\t\t  UNIQUE KEY `pass` (`pass`),\n\t\t\t\t\t\t\t\t\t  KEY `wann` (`wann`),\n\t\t\t\t\t\t\t\t\t  KEY `event` (`event`),\n\t\t\t\t\t\t\t\t\t  KEY `was` (`was`)\n\t\t\t\t\t\t\t\t\t) TYPE=MyISAM ";
         $this->connection->db_query($create_datatable_sql);
         Module::install('KalenderAdmin', true);
     } else {
         $img_apply = Html::img('/' . INSTALL_PATH . '/Libraries/Icons/16x16/apply.png', 'Speichern');
         $img_apply_path = '/' . INSTALL_PATH . '/Libraries/Icons/16x16/apply.png';
         $img_add = Html::img('/' . INSTALL_PATH . '/Libraries/Icons/16x16/edit_add.png', 'Neu');
         $img_add_path = '/' . INSTALL_PATH . '/Libraries/Icons/16x16/edit_add.png';
         $return_string = '';
         $form = new Form();
         $return_string .= $form->form_tag('/Admin/Module?new=KalenderAdmin');
         $table = new Table(2);
         $table->add_caption('Kalender einrichten');
         if (isset($_POST['categories'])) {
             $cat_array = unserialize(urldecode($_POST['categories']));
         }
         if (isset($_POST['new_category'])) {
             $new = array('Name' => $_POST['new_category']['Name'], 'event' => $_POST['new_category']['event'] ? 1 : 0);
             $cat_array[] = $new;
         }
         for ($i = 0; $i < count($cat_array); $i++) {
             $table->add_td(array($cat_array[$i]['Name'], $cat_array[$i]['event']));
         }
         if (isset($_POST['newcategory'])) {
             $new_cat_name = Form::add_input('text', "new_category[Name]");
             $new_cat_event = Form::add_input('checkbox', "new_category[event]", 1);
             $newcategory_submit = Form::add_input('image', 'newcategory_submit', 'Speichern', array('src' => $img_apply_path));
             $table->add_td(array($new_cat_name, $new_cat_event . $newcategory_submit));
         }
         $cat_input = Form::add_input('hidden', 'categories', urlencode(serialize($cat_array)));
         $add_button = Form::add_input('image', 'newcategory', 'Kategorie hinzufügen', array('src' => $img_add_path));
         $table->add_td(array(array(2 => $add_button . 'Neue Kategorie' . $cat_input)));
         $all_submit = Form::add_input('image', 'cat_submit', 'Speichern', array('src' => $img_apply_path));
         $table->add_td(array(array(2 => $all_submit . 'Speichern')));
         $return_string .= $table->flush_table() . $form->close_form();
         print $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;
 }