diff options
author | Philip Häusler <msquare@notrademark.de> | 2013-09-10 14:27:31 +0200 |
---|---|---|
committer | Philip Häusler <msquare@notrademark.de> | 2013-09-10 14:27:31 +0200 |
commit | a47b1935cb6310e05e4e6b15512b21b7cd4eec3c (patch) | |
tree | c966f9f44aace4f40baf2d55bd7c9ffc6c45a85f | |
parent | 4b2284797641c7c824a6d5efe32bd48884223d94 (diff) |
#119 added basic shift json export support using same pattern like ical export
-rw-r--r-- | db/install.sql | 129 | ||||
-rw-r--r-- | includes/controller/shifts_controller.php | 34 | ||||
-rw-r--r-- | includes/model/User_model.php | 24 | ||||
-rw-r--r-- | includes/pages/admin_shifts.php | 3 | ||||
-rw-r--r-- | includes/pages/user_atom.php | 23 | ||||
-rw-r--r-- | includes/pages/user_ical.php | 10 | ||||
-rw-r--r-- | includes/pages/user_myshifts.php | 4 | ||||
-rw-r--r-- | includes/pages/user_shifts.php | 6 | ||||
-rw-r--r-- | includes/sys_user.php | 6 | ||||
-rw-r--r-- | public/index.php | 278 |
10 files changed, 290 insertions, 227 deletions
diff --git a/db/install.sql b/db/install.sql index cb0c8c35..f8d17342 100644 --- a/db/install.sql +++ b/db/install.sql @@ -128,61 +128,6 @@ INSERT INTO `FAQ` (`FID`, `Frage_de`, `Antwort_de`, `Frage_en`, `Antwort_en`, `S -- -------------------------------------------------------- -- --- Tabellenstruktur für Tabelle `GroupPrivileges` --- - -DROP TABLE IF EXISTS `GroupPrivileges`; -CREATE TABLE IF NOT EXISTS `GroupPrivileges` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `group_id` int(11) NOT NULL, - `privilege_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `group_id` (`group_id`,`privilege_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=191 ; - --- --- Daten für Tabelle `GroupPrivileges` --- - -INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES -(187, -3, 28), -(24, -1, 5), -(177, -2, 24), -(176, -2, 8), -(23, -1, 2), -(142, -5, 16), -(141, -5, 28), -(175, -2, 11), -(174, -2, 26), -(86, -6, 21), -(140, -5, 6), -(139, -5, 12), -(173, -2, 9), -(138, -5, 14), -(137, -5, 13), -(136, -5, 7), -(172, -2, 17), -(87, -6, 18), -(171, -2, 15), -(85, -6, 10), -(170, -2, 3), -(88, -1, 1), -(186, -3, 19), -(169, -2, 4), -(109, -4, 27), -(135, -5, 31), -(184, -3, 27), -(143, -5, 5), -(144, -5, 33), -(188, -3, 16), -(185, -3, 32), -(189, -3, 33), -(168, -2, 34), -(190, -3, 25); - --- -------------------------------------------------------- - --- -- Tabellenstruktur für Tabelle `Groups` -- @@ -323,6 +268,62 @@ CREATE TABLE IF NOT EXISTS `news_comments` ( -- -------------------------------------------------------- +-- +-- Tabellenstruktur für Tabelle `GroupPrivileges` +-- + +DROP TABLE IF EXISTS `GroupPrivileges`; +CREATE TABLE IF NOT EXISTS `GroupPrivileges` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `privilege_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `group_id` (`group_id`,`privilege_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=203 ; + +-- +-- Daten für Tabelle `GroupPrivileges` +-- + +INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES +(187, -3, 28), +(24, -1, 5), +(200, -2, 11), +(199, -2, 26), +(23, -1, 2), +(142, -5, 16), +(141, -5, 28), +(198, -2, 9), +(197, -2, 17), +(86, -6, 21), +(140, -5, 6), +(139, -5, 12), +(196, -2, 35), +(138, -5, 14), +(137, -5, 13), +(136, -5, 7), +(195, -2, 15), +(87, -6, 18), +(194, -2, 3), +(85, -6, 10), +(193, -2, 4), +(88, -1, 1), +(186, -3, 19), +(192, -2, 30), +(109, -4, 27), +(135, -5, 31), +(184, -3, 27), +(143, -5, 5), +(144, -5, 33), +(188, -3, 16), +(185, -3, 32), +(189, -3, 33), +(191, -2, 34), +(190, -3, 25), +(201, -2, 8), +(202, -2, 24); + +-- -------------------------------------------------------- -- -- Tabellenstruktur für Tabelle `Privileges` @@ -335,19 +336,19 @@ CREATE TABLE IF NOT EXISTS `Privileges` ( `desc` varchar(1024) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=35 ; +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=36 ; -- -- Daten für Tabelle `Privileges` -- INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES -(1, 'start', 'Startseite für Gäste/Nicht eingeloggte User'), +(1, 'start', 'Startseite für Gäste/Nicht eingeloggte User'), (2, 'login', 'Logindialog'), (3, 'news', 'Anzeigen der News-Seite'), (4, 'logout', 'User darf sich ausloggen'), (5, 'register', 'Einen neuen Engel registerieren'), -(6, 'admin_rooms', 'Räume administrieren'), +(6, 'admin_rooms', 'Räume administrieren'), (7, 'admin_angel_types', 'Engel Typen administrieren'), (8, 'user_settings', 'User profile settings'), (9, 'user_messages', 'Writing and reading messages from user to user'), @@ -374,7 +375,9 @@ INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES (31, 'admin_active', 'Mark angels as active and if they got a t-shirt.'), (32, 'admin_free', 'Show a list of free/unemployed angels.'), (33, 'admin_user_angeltypes', 'Confirm restricted angel types'), -(34, 'atom', ' Atom news export'); +(34, 'atom', ' Atom news export'), +(35, 'shifts_json_export', 'Export shifts in JSON format'); + -- -------------------------------------------------------- @@ -1216,18 +1219,18 @@ CREATE TABLE IF NOT EXISTS `User` ( `Art` varchar(30) DEFAULT NULL, `kommentar` text, `Hometown` varchar(255) NOT NULL DEFAULT '', - `ical_key` varchar(32) NOT NULL, + `api_key` varchar(32) NOT NULL, PRIMARY KEY (`UID`,`Nick`), UNIQUE KEY `Nick` (`Nick`), - KEY `ical_key` (`ical_key`) + KEY `api_key` (`api_key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- Daten für Tabelle `User` -- -INSERT INTO `User` (`UID`, `Nick`, `Name`, `Vorname`, `Alter`, `Telefon`, `DECT`, `Handy`, `email`, `ICQ`, `jabber`, `Size`, `Passwort`, `Gekommen`, `Aktiv`, `Tshirt`, `color`, `Sprache`, `Avatar`, `Menu`, `lastLogIn`, `CreateDate`, `Art`, `kommentar`, `Hometown`, `ical_key`) VALUES -(1, 'admin', 'Gates', 'Bill', 42, '', '', '', '', '', '', '', '$23PstrXfk7Nw', 1, 1, 0, 10, 'DE', 115, 'L', 1371899094, '0000-00-00 00:00:00', '', '', '', '1b02f4586319e75000b3919380624ab5'); +INSERT INTO `User` (`UID`, `Nick`, `Name`, `Vorname`, `Alter`, `Telefon`, `DECT`, `Handy`, `email`, `ICQ`, `jabber`, `Size`, `Passwort`, `Gekommen`, `Aktiv`, `Tshirt`, `color`, `Sprache`, `Avatar`, `Menu`, `lastLogIn`, `CreateDate`, `Art`, `kommentar`, `Hometown`, `api_key`) VALUES +(1, 'admin', 'Gates', 'Bill', 42, '', '', '', '', '', '', '', '$23PstrXfk7Nw', 1, 1, 0, 10, 'DE', 115, 'L', 1371899094, '0000-00-00 00:00:00', '', '', '', ''); -- -------------------------------------------------------- diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php new file mode 100644 index 00000000..1cd7b5d6 --- /dev/null +++ b/includes/controller/shifts_controller.php @@ -0,0 +1,34 @@ +<?php + +/** + * Export filtered shifts via JSON. (Like iCal Export or shifts view) + */ +function shifts_json_export_controller() { + global $ical_shifts, $user; + + if (isset ($_REQUEST['key']) && preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) + $key = $_REQUEST['key']; + else + die("Missing key."); + + $user = User_by_api_key($key); + if($user === false) + die("Unable to find user."); + if($user == null) + die("Key invalid."); + if(!in_array('shifts_json_export', privileges_for_user($user['UID']))) + die("No privilege for shifts_json_export."); + + if (isset ($_REQUEST['export']) && $_REQUEST['export'] == 'user_shifts') { + require_once ('includes/pages/user_shifts.php'); + view_user_shifts(); + } else { + $ical_shifts = sql_select("SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `ShiftEntry` INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`=" . sql_escape($user['UID']) . " ORDER BY `start`"); + } + + header("Content-Type: application/json; charset=utf-8"); + echo json_encode($ical_shifts); + die(); +} + +?>
\ No newline at end of file diff --git a/includes/model/User_model.php b/includes/model/User_model.php index c2d2282e..d79ede17 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -11,4 +11,28 @@ function User($id) { return null; } +/** + * Returns User by api_key. + * @param string $api_key User api key + * @return Matching user, null or false on error + */ +function User_by_api_key($api_key) { + $user = sql_select("SELECT * FROM `User` WHERE `api_key`='" . sql_escape($api_key) . "' LIMIT 1"); + if($user === false) + return false; + if (count($user) == 0) + return null; + return $user[0]; +} + +/** + * Generates a new api key for given user. + * @param User $user + */ +function User_reset_api_key($user) { + $user['api_key'] = md5($user['Nick'] . time() . rand()); + sql_query("UPDATE `User` SET `api_key`='" . sql_escape($user['api_key']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1"); + engelsystem_log("API key resetted."); +} + ?>
\ No newline at end of file diff --git a/includes/pages/admin_shifts.php b/includes/pages/admin_shifts.php index 9a0dde35..178e4e88 100644 --- a/includes/pages/admin_shifts.php +++ b/includes/pages/admin_shifts.php @@ -12,7 +12,7 @@ function admin_shifts() { $mode = ''; $angelmode = ''; $length = ''; - $change_hours = ''; + $change_hours = array(); // Locations laden (auch unsichtbare - fuer Erzengel ist das ok) $rooms = sql_select("SELECT * FROM `Room` ORDER BY `Name`"); @@ -209,7 +209,6 @@ function admin_shifts() { $hidden_types = ""; foreach ($needed_angel_types as $type_id => $count) $hidden_types .= '<input type="hidden" name="type_' . $type_id . '" value="' . $count . '" />'; - sort($change_hours); return template_render('../templates/admin_shift_preview.html', array ( 'shifts_table' => $shifts_table, 'name' => $name, diff --git a/includes/pages/user_atom.php b/includes/pages/user_atom.php index fd28510f..c9420c91 100644 --- a/includes/pages/user_atom.php +++ b/includes/pages/user_atom.php @@ -9,16 +9,19 @@ function user_atom() { else die("Missing key."); - $user = sql_select("SELECT * FROM `User` WHERE `ical_key`='" . sql_escape($key) . "' LIMIT 1"); - if (count($user) == 0) + $user = User_by_api_key($key); + if($user === false) + die("Unable to find user."); + if($user == null) die("Key invalid."); + if(!in_array('atom', privileges_for_user($user['UID']))) + die("No privilege for atom."); - $user = $user[0]; $news = sql_select("SELECT * FROM `News` " . (empty($_REQUEST['meetings'])? '' : 'WHERE `Treffen` = 1 ') . "ORDER BY `ID` DESC LIMIT " . sql_escape($DISPLAY_NEWS)); header('Content-Type: application/atom+xml; charset=utf-8'); $html = '<?xml version="1.0" encoding="utf-8"?> -<feed xmlns="http://www.w3.org/2005/Atom"> + <feed xmlns="http://www.w3.org/2005/Atom"> <title>Engelsystem</title> <id>' . $_SERVER['HTTP_HOST'] . htmlspecialchars(preg_replace('#[&?]key=[a-f0-9]{32}#', '', $_SERVER['REQUEST_URI'])) . '</id> <updated>' . date('Y-m-d\TH:i:sP', $news[0]['Datum']) . "</updated>\n"; @@ -29,11 +32,11 @@ function user_atom() { <id>" . preg_replace('#^https?://#', '', page_link_to_absolute("news")) . "-${news_entry['ID']}</id> <updated>" . date('Y-m-d\TH:i:sP', $news_entry['Datum']) . "</updated> <summary type=\"html\">" . htmlspecialchars($news_entry['Text']) . "</summary> - </entry>\n"; - } - $html .= "</feed>"; - header("Content-Length: " . strlen($html)); - echo $html; - die(); + </entry>\n"; +} +$html .= "</feed>"; +header("Content-Length: " . strlen($html)); +echo $html; +die(); } ?> diff --git a/includes/pages/user_ical.php b/includes/pages/user_ical.php index 2b5632e3..d994ce31 100644 --- a/includes/pages/user_ical.php +++ b/includes/pages/user_ical.php @@ -10,11 +10,13 @@ function user_ical() { else die("Missing key."); - $user = sql_select("SELECT * FROM `User` WHERE `ical_key`='" . sql_escape($key) . "' LIMIT 1"); - if (count($user) == 0) + $user = User_by_api_key($key); + if($user === false) + die("Unable to find user."); + if($user == null) die("Key invalid."); - - $user = $user[0]; + if(!in_array('ical', privileges_for_user($user['UID']))) + die("No privilege for ical."); if (isset ($_REQUEST['export']) && $_REQUEST['export'] == 'user_shifts') { require_once ('includes/pages/user_shifts.php'); diff --git a/includes/pages/user_myshifts.php b/includes/pages/user_myshifts.php index 4fec4872..a19ee34e 100644 --- a/includes/pages/user_myshifts.php +++ b/includes/pages/user_myshifts.php @@ -17,7 +17,7 @@ function user_myshifts() { if (isset ($_REQUEST['reset'])) { if ($_REQUEST['reset'] == "ack") { - user_reset_ical_key($user); + User_reset_api_key($user); success("Key geändert."); redirect(page_link_to('user_myshifts')); } @@ -118,7 +118,7 @@ function user_myshifts() { 'actions' => "Aktion" ), $myshifts_table), $id == $user['UID'] && count($shifts) == 0 ? error(sprintf(Get_Text('pub_myshifts_goto_shifts'), page_link_to('user_shifts')), true) : '', - "<h2>iCal Export</h2>" . sprintf(Get_Text('inc_schicht_ical_text'), page_link_to_absolute('ical') . '&key=' . $shifts_user['ical_key'], page_link_to('user_myshifts') . '&reset') + "<h2>iCal Export</h2>" . sprintf(Get_Text('inc_schicht_ical_text'), page_link_to_absolute('ical') . '&key=' . $shifts_user['api_key'], page_link_to('user_myshifts') . '&reset') )); } ?> diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index 727bd696..6a7d6ed5 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -690,8 +690,8 @@ function view_user_shifts() { ), $shifts_table); } -if ($user['ical_key'] == "") - user_reset_ical_key($user); +if ($user['api_key'] == "") + User_reset_api_key($user); return msg() . template_render('../templates/user_shifts.html', array ( 'room_select' => make_select($rooms, $_SESSION['user_shifts']['rooms'], "rooms", ucfirst(Get_Text("rooms"))), @@ -704,7 +704,7 @@ return msg() . template_render('../templates/user_shifts.html', array ( 'task_notice' => '<sup>1</sup>' . Get_Text("pub_schichtplan_tasks_notice"), 'new_style_checkbox' => '<label><input type="checkbox" name="new_style" value="1" ' . ($_SESSION['user_shifts']['new_style']? ' checked' : '') . '> Use new style if possible</label>', 'shifts_table' => $shifts_table, - 'ical_text' => sprintf(Get_Text('inc_schicht_ical_text'), htmlspecialchars(make_user_shifts_ical_link($user['ical_key'])), page_link_to('user_myshifts') . '&reset'), + 'ical_text' => sprintf(Get_Text('inc_schicht_ical_text'), htmlspecialchars(make_user_shifts_ical_link($user['api_key'])), page_link_to('user_myshifts') . '&reset'), 'filter' => ucfirst(Get_Text("to_filter")), )); } diff --git a/includes/sys_user.php b/includes/sys_user.php index 231b2b62..53976f5a 100644 --- a/includes/sys_user.php +++ b/includes/sys_user.php @@ -28,12 +28,6 @@ $tshirt_sizes = array ( 'XL-G' => "XL Girl" ); -function user_reset_ical_key($user) { - $user['ical_key'] = md5($user['Nick'] . time() . rand()); - sql_query("UPDATE `User` SET `ical_key`='" . sql_escape($user['ical_key']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1"); - engelsystem_log("iCal key resetted."); -} - function UID2Nick($UID) { if ($UID > 0) $SQL = "SELECT Nick FROM `User` WHERE UID='" . sql_escape($UID) . "'"; diff --git a/public/index.php b/public/index.php index e551f2c5..667b19c2 100644 --- a/public/index.php +++ b/public/index.php @@ -29,161 +29,165 @@ load_auth(); // JSON Authorisierung gewünscht? if (isset ($_REQUEST['auth'])) - json_auth_service(); + json_auth_service(); // Gewünschte Seite/Funktion $p = isset ($user) ? "news" : "login"; if (isset ($_REQUEST['p']) && preg_match("/^[a-z0-9_]*$/i", $_REQUEST['p']) && ($_REQUEST['p'] == 'stats' || (sql_num_query("SELECT * FROM `Privileges` WHERE `name`='" . sql_escape($_REQUEST['p']) . "' LIMIT 1") > 0))) - $p = $_REQUEST['p']; + $p = $_REQUEST['p']; $title = Get_Text($p); $content = ""; if ($p == "ical") { - require_once ('includes/pages/user_ical.php'); - user_ical(); + require_once ('includes/pages/user_ical.php'); + user_ical(); } elseif ($p == "atom") { - require_once ('includes/pages/user_atom.php'); - user_atom(); + require_once ('includes/pages/user_atom.php'); + user_atom(); +} +elseif ($p == "shifts_json_export") { + require_once ('includes/controller/shifts_controller.php'); + shifts_json_export_controller(); } elseif ($p == "stats") { - require_once ('includes/pages/guest_stats.php'); - guest_stats(); + require_once ('includes/pages/guest_stats.php'); + guest_stats(); } // Recht dafür vorhanden? elseif (in_array($p, $privileges)) { - if ($p == "news") { - require_once ('includes/pages/user_news.php'); - $content = user_news(); - } - elseif ($p == "news_comments") { - require_once ('includes/pages/user_news.php'); - $content = user_news_comments(); - } - elseif ($p == "user_meetings") { - require_once ('includes/pages/user_news.php'); - $content = user_meetings(); - } - elseif ($p == "user_myshifts") { - require_once ('includes/pages/user_myshifts.php'); - $content = user_myshifts(); - } - elseif ($p == "user_shifts") { - require_once ('includes/pages/user_shifts.php'); - $content = user_shifts(); - } - elseif ($p == "user_messages") { - $content = user_messages(); - } - elseif ($p == "user_questions") { - require_once ('includes/pages/user_questions.php'); - $content = user_questions(); - } - elseif ($p == "user_wakeup") { - require_once ('includes/pages/user_wakeup.php'); - $content = user_wakeup(); - } - elseif ($p == "user_settings") { - require_once ('includes/pages/user_settings.php'); - $content = user_settings(); - } - elseif ($p == "login") { - require_once ('includes/pages/guest_login.php'); - $content = guest_login(); - } - elseif ($p == "register") { - require_once ('includes/pages/guest_login.php'); - $content = guest_register(); - } - elseif ($p == "logout") { - require_once ('includes/pages/guest_login.php'); - $content = guest_logout(); - } - elseif ($p == "admin_questions") { - $content = admin_questions(); - } - elseif ($p == "admin_user") { - require_once ('includes/pages/admin_user.php'); - $content = admin_user(); - } - elseif ($p == "admin_user_angeltypes") { - require_once ('includes/pages/admin_user_angeltypes.php'); - $content = admin_user_angeltypes(); - } - elseif ($p == "admin_arrive") { - require_once ('includes/pages/admin_arrive.php'); - $content = admin_arrive(); - } - elseif ($p == "admin_active") { - require_once ('includes/pages/admin_active.php'); - $content = admin_active(); - } - elseif ($p == "admin_free") { - require_once ('includes/pages/admin_free.php'); - $content = admin_free(); - } - elseif ($p == "admin_news") { - require_once ('includes/pages/admin_news.php'); - $content = admin_news(); - } - elseif ($p == "admin_angel_types") { - require_once ('includes/pages/admin_angel_types.php'); - $content = admin_angel_types(); - } - elseif ($p == "admin_rooms") { - require_once ('includes/pages/admin_rooms.php'); - $content = admin_rooms(); - } - elseif ($p == "admin_groups") { - require_once ('includes/pages/admin_groups.php'); - $content = admin_groups(); - } - elseif ($p == "admin_faq") { - require_once ('includes/pages/admin_faq.php'); - $content = admin_faq(); - } - elseif ($p == "admin_language") { - require_once ('includes/pages/admin_language.php'); - $content = admin_language(); - } - elseif ($p == "admin_import") { - require_once ('includes/pages/admin_import.php'); - $content = admin_import(); - } - elseif ($p == "admin_shifts") { - require_once ('includes/pages/admin_shifts.php'); - $content = admin_shifts(); - } - elseif ($p == "admin_log") { - require_once ('includes/pages/admin_log.php'); - $content = admin_log(); - } else { - require_once ('includes/pages/guest_start.php'); - $content = guest_start(); - } + if ($p == "news") { + require_once ('includes/pages/user_news.php'); + $content = user_news(); + } + elseif ($p == "news_comments") { + require_once ('includes/pages/user_news.php'); + $content = user_news_comments(); + } + elseif ($p == "user_meetings") { + require_once ('includes/pages/user_news.php'); + $content = user_meetings(); + } + elseif ($p == "user_myshifts") { + require_once ('includes/pages/user_myshifts.php'); + $content = user_myshifts(); + } + elseif ($p == "user_shifts") { + require_once ('includes/pages/user_shifts.php'); + $content = user_shifts(); + } + elseif ($p == "user_messages") { + $content = user_messages(); + } + elseif ($p == "user_questions") { + require_once ('includes/pages/user_questions.php'); + $content = user_questions(); + } + elseif ($p == "user_wakeup") { + require_once ('includes/pages/user_wakeup.php'); + $content = user_wakeup(); + } + elseif ($p == "user_settings") { + require_once ('includes/pages/user_settings.php'); + $content = user_settings(); + } + elseif ($p == "login") { + require_once ('includes/pages/guest_login.php'); + $content = guest_login(); + } + elseif ($p == "register") { + require_once ('includes/pages/guest_login.php'); + $content = guest_register(); + } + elseif ($p == "logout") { + require_once ('includes/pages/guest_login.php'); + $content = guest_logout(); + } + elseif ($p == "admin_questions") { + $content = admin_questions(); + } + elseif ($p == "admin_user") { + require_once ('includes/pages/admin_user.php'); + $content = admin_user(); + } + elseif ($p == "admin_user_angeltypes") { + require_once ('includes/pages/admin_user_angeltypes.php'); + $content = admin_user_angeltypes(); + } + elseif ($p == "admin_arrive") { + require_once ('includes/pages/admin_arrive.php'); + $content = admin_arrive(); + } + elseif ($p == "admin_active") { + require_once ('includes/pages/admin_active.php'); + $content = admin_active(); + } + elseif ($p == "admin_free") { + require_once ('includes/pages/admin_free.php'); + $content = admin_free(); + } + elseif ($p == "admin_news") { + require_once ('includes/pages/admin_news.php'); + $content = admin_news(); + } + elseif ($p == "admin_angel_types") { + require_once ('includes/pages/admin_angel_types.php'); + $content = admin_angel_types(); + } + elseif ($p == "admin_rooms") { + require_once ('includes/pages/admin_rooms.php'); + $content = admin_rooms(); + } + elseif ($p == "admin_groups") { + require_once ('includes/pages/admin_groups.php'); + $content = admin_groups(); + } + elseif ($p == "admin_faq") { + require_once ('includes/pages/admin_faq.php'); + $content = admin_faq(); + } + elseif ($p == "admin_language") { + require_once ('includes/pages/admin_language.php'); + $content = admin_language(); + } + elseif ($p == "admin_import") { + require_once ('includes/pages/admin_import.php'); + $content = admin_import(); + } + elseif ($p == "admin_shifts") { + require_once ('includes/pages/admin_shifts.php'); + $content = admin_shifts(); + } + elseif ($p == "admin_log") { + require_once ('includes/pages/admin_log.php'); + $content = admin_log(); + } else { + require_once ('includes/pages/guest_start.php'); + $content = guest_start(); + } } elseif ($p == "credits") { - require_once ('includes/pages/guest_credits.php'); - $content = guest_credits(); + require_once ('includes/pages/guest_credits.php'); + $content = guest_credits(); } elseif ($p == "faq") { - require_once ('includes/pages/guest_faq.php'); - $content = guest_faq(); + require_once ('includes/pages/guest_faq.php'); + $content = guest_faq(); } else { - // Wenn schon eingeloggt, keine-Berechtigung-Seite anzeigen - if (isset ($user)) { - $title = Get_Text("no_access_title"); - $content = Get_Text("no_access_text"); - } else { - // Sonst zur Loginseite leiten - redirect(page_link_to("login")); - } + // Wenn schon eingeloggt, keine-Berechtigung-Seite anzeigen + if (isset ($user)) { + $title = Get_Text("no_access_title"); + $content = Get_Text("no_access_text"); + } else { + // Sonst zur Loginseite leiten + redirect(page_link_to("login")); + } } // Hinweis für ungelesene Nachrichten if (isset ($user) && $p != "user_messages") - $content = user_unread_messages() . $content; + $content = user_unread_messages() . $content; // Hinweis für Engel, die noch nicht angekommen sind if(isset($user) && $user['Gekommen'] == 0) @@ -191,18 +195,18 @@ if(isset($user) && $user['Gekommen'] == 0) // Erzengel Hinweis für unbeantwortete Fragen if (isset ($user) && $p != "admin_questions") - $content = admin_new_questions() . $content; + $content = admin_new_questions() . $content; // Erzengel Hinweis für freizuschaltende Engeltypen if (isset ($user) && $p != "admin_user_angeltypes") - $content = admin_new_user_angeltypes() . $content; + $content = admin_new_user_angeltypes() . $content; echo template_render('../templates/layout.html', array ( - 'theme' => isset ($user) ? $user['color'] : $default_theme, - 'title' => $title, - 'atom_link' => ($p == 'news' || $p == 'user_meetings')? '<link href="' . page_link_to('atom') . (($p == 'user_meetings')? '&meetings=1' : '') . '&key=' . $user['ical_key'] . '" type="application/atom+xml" rel="alternate" title="Atom Feed">' : '', - 'menu' => make_menu(), - 'content' => $content + 'theme' => isset ($user) ? $user['color'] : $default_theme, + 'title' => $title, + 'atom_link' => ($p == 'news' || $p == 'user_meetings')? '<link href="' . page_link_to('atom') . (($p == 'user_meetings')? '&meetings=1' : '') . '&key=' . $user['api_key'] . '" type="application/atom+xml" rel="alternate" title="Atom Feed">' : '', + 'menu' => make_menu(), + 'content' => $content )); counter(); |