summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Häusler <msquare@notrademark.de>2013-09-10 14:27:31 +0200
committerPhilip Häusler <msquare@notrademark.de>2013-09-10 14:27:31 +0200
commita47b1935cb6310e05e4e6b15512b21b7cd4eec3c (patch)
treec966f9f44aace4f40baf2d55bd7c9ffc6c45a85f
parent4b2284797641c7c824a6d5efe32bd48884223d94 (diff)
#119 added basic shift json export support using same pattern like ical export
-rw-r--r--db/install.sql129
-rw-r--r--includes/controller/shifts_controller.php34
-rw-r--r--includes/model/User_model.php24
-rw-r--r--includes/pages/admin_shifts.php3
-rw-r--r--includes/pages/user_atom.php23
-rw-r--r--includes/pages/user_ical.php10
-rw-r--r--includes/pages/user_myshifts.php4
-rw-r--r--includes/pages/user_shifts.php6
-rw-r--r--includes/sys_user.php6
-rw-r--r--public/index.php278
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') . '&amp;reset'),
+ 'ical_text' => sprintf(Get_Text('inc_schicht_ical_text'), htmlspecialchars(make_user_shifts_ical_link($user['api_key'])), page_link_to('user_myshifts') . '&amp;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')? '&amp;meetings=1' : '') . '&amp;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')? '&amp;meetings=1' : '') . '&amp;key=' . $user['api_key'] . '" type="application/atom+xml" rel="alternate" title="Atom Feed">' : '',
+ 'menu' => make_menu(),
+ 'content' => $content
));
counter();