diff --git a/DB/db_rewrite.sql b/DB/db_rewrite.sql
index 64fe75e8..71b968e7 100644
--- a/DB/db_rewrite.sql
+++ b/DB/db_rewrite.sql
@@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net
--
-- Host: localhost
--- Erstellungszeit: 02. Juni 2011 um 15:48
+-- Erstellungszeit: 02. Juni 2011 um 18:17
-- Server Version: 5.1.44
-- PHP-Version: 5.3.1
@@ -25,7 +25,7 @@ CREATE TABLE IF NOT EXISTS `AngelTypes` (
`Man` text,
PRIMARY KEY (`TID`),
UNIQUE KEY `Name` (`Name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Daten für Tabelle `AngelTypes`
@@ -33,7 +33,8 @@ CREATE TABLE IF NOT EXISTS `AngelTypes` (
INSERT INTO `AngelTypes` (`TID`, `Name`, `Man`) VALUES
(1, 'Sex', ''),
-(4, 'Audio', '');
+(4, 'Audio', ''),
+(5, 'Massage', '');
-- --------------------------------------------------------
@@ -70,15 +71,16 @@ CREATE TABLE IF NOT EXISTS `Counter` (
--
INSERT INTO `Counter` (`URL`, `Anz`) VALUES
-('news', 39),
-('login', 5),
-('logout', 2),
-('start', 8),
+('news', 44),
+('login', 12),
+('logout', 5),
+('start', 13),
('faq', 4),
-('credits', 2),
-('register', 1),
-('admin_rooms', 64),
-('admin_angel_types', 58);
+('credits', 3),
+('register', 3),
+('admin_rooms', 70),
+('admin_angel_types', 68),
+('user_settings', 109);
-- --------------------------------------------------------
@@ -122,7 +124,7 @@ CREATE TABLE IF NOT EXISTS `GroupPrivileges` (
`privilege_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `group_id` (`group_id`,`privilege_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Daten für Tabelle `GroupPrivileges`
@@ -135,7 +137,8 @@ INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES
(4, -2, 4),
(5, -1, 5),
(6, -4, 6),
-(7, -4, 7);
+(7, -4, 7),
+(8, -2, 8);
-- --------------------------------------------------------
@@ -241,7 +244,7 @@ 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=8 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Daten für Tabelle `Privileges`
@@ -254,7 +257,8 @@ INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES
(4, 'logout', 'User darf sich ausloggen'),
(5, 'register', 'Einen neuen Engel registerieren'),
(6, 'admin_rooms', 'Räume administrieren'),
-(7, 'admin_angel_types', 'Engel Typen administrieren');
+(7, 'admin_angel_types', 'Engel Typen administrieren'),
+(8, 'user_settings', 'User profile settings');
-- --------------------------------------------------------
@@ -606,7 +610,7 @@ INSERT INTO `Sprache` (`TextID`, `Sprache`, `Text`) VALUES
('pub_menu_Wecken', 'DE', 'Wecken'),
('pub_menu_mySchichtplan', 'DE', 'Mein Schichtplan'),
('pub_menu_questionEngel', 'DE', 'Anfragen an die Dispatcher'),
-('pub_menu_Einstellungen', 'DE', 'Einstellungen'),
+('user_settings', 'DE', 'Einstellungen'),
('pub_menu_Engelbesprechung', 'EN', 'Drone meeting'),
('logout', 'DE', 'Abmelden'),
('pub_menu_Schichtplan', 'EN', 'Available Shifts'),
@@ -615,7 +619,7 @@ INSERT INTO `Sprache` (`TextID`, `Sprache`, `Text`) VALUES
('pub_menu_mySchichtplan', 'EN', 'My Shifts'),
('pub_menu_questionEngel', 'EN', 'Questions for the Dispatcher'),
('logout', 'EN', 'Logout'),
-('pub_menu_Einstellungen', 'EN', 'Options'),
+('user_settings', 'EN', 'Settings'),
('menu_Name', 'DE', 'Garage'),
('menu_Name', 'EN', 'Garage'),
('menu_MakeUser', 'DE', 'Benutzer anlegen'),
@@ -1022,7 +1026,7 @@ CREATE TABLE IF NOT EXISTS `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`) VALUES
-(1, 'admin', '', '', 0, '', '', '', '', NULL, NULL, '', '21232f297a57a5a743894a0e4a801fc3', 0, 0, 0, 10, 'DE', 115, 'L', 1307029663, '0000-00-00 00:00:00', '', '', ''),
+(1, 'admin', '', '', 0, '', '', '', '', '', '', 'L', '21232f297a57a5a743894a0e4a801fc3', 0, 0, 0, 10, 'DE', 115, 'L', 1307038600, '0000-00-00 00:00:00', '', '', ''),
(147, 'msquare', '', '', 23, '', '', '', 'msquare@notrademark.de', '', '', 'L', 'e10adc3949ba59abbe56e057f20f883e', 0, 0, 0, 6, 'EN', 0, 'L', 1306971362, '2011-06-02 00:55:09', '', '', '');
-- --------------------------------------------------------
diff --git a/includes/pages/user_settings.php b/includes/pages/user_settings.php
new file mode 100644
index 00000000..97c8626f
--- /dev/null
+++ b/includes/pages/user_settings.php
@@ -0,0 +1,252 @@
+ Get_Text("makeuser_T-Shirt"),
+ 'size_select' => ($user['Tshirt'] == 0) ? html_select_key('size', array (
+ 'S' => "S",
+ 'M' => "M",
+ 'L' => "L",
+ 'XL' => "XL",
+ '2XL' => "2XL",
+ '3XL' => "3XL",
+ '4XL' => "4XL",
+ '5XL' => "5XL",
+ 'S-G' => "S Girl",
+ 'M-G' => "M Girl",
+ 'L-G' => "L Girl",
+ 'XL-G' => "XL Girl"
+ ), $user['Size']) : $user['Size']
+ ));
+
+ return template_render('../templates/user_settings.html', array (
+ 'link' => page_link_to("user_settings"),
+ 'greeting' => Get_Text("Hallo") . $user['Nick'] . ",
" . Get_Text(13),
+ 'text_user_data' => Get_Text("pub_einstellungen_Text_UserData"),
+ 'label_nick' => Get_Text("pub_einstellungen_Nick"),
+ 'label_name' => Get_Text("pub_einstellungen_Name"),
+ 'label_prename' => Get_Text("pub_einstellungen_Vorname"),
+ 'label_age' => Get_Text("pub_einstellungen_Alter"),
+ 'label_tel' => Get_Text("pub_einstellungen_Telefon"),
+ 'label_mobile' => Get_Text("pub_einstellungen_Handy"),
+ 'label_dect' => Get_Text("pub_einstellungen_DECT"),
+ 'label_mail' => Get_Text("pub_einstellungen_Email"),
+ 'label_hometown' => Get_Text("pub_einstellungen_Hometown"),
+ 'nick' => $user['Nick'],
+ 'name' => $user['Name'],
+ 'prename' => $user['Vorname'],
+ 'age' => $user['Alter'],
+ 'tel' => $user['Telefon'],
+ 'mobile' => $user['Handy'],
+ 'dect' => $user['DECT'],
+ 'mail' => $user['email'],
+ 'icq' => $user['ICQ'],
+ 'jabber' => $user['jabber'],
+ 'hometown' => $user['Hometown'],
+ 'label_save' => Get_Text("save"),
+ 'tshirts' => $tshirt_html,
+ 'text_password' => Get_Text(14),
+ 'current_pw_label' => Get_Text(15),
+ 'new_pw_label' => Get_Text(16),
+ 'new_pw2_label' => Get_Text(17),
+ 'text_theme' => Get_Text(18),
+ 'theme_label' => Get_Text(19),
+ 'theme_select' => html_select_key('theme', array (
+ "1" => "Standard-Style",
+ "2" => "ot/Gelber Style",
+ "3" => "Club-Mate Style",
+ "5" => "Debian Style",
+ "6" => "c-base Style",
+ "7" => "Blau/Gelber Style",
+ "8" => "Pastel Style",
+ "4" => "Test Style",
+ "9" => "Test Style 21c3",
+ "10" => "msquare (cccamp2011)"
+ ), $user['color']),
+ 'text_language' => Get_Text(20),
+ 'language_label' => Get_Text(21),
+ 'language_select' => html_select_key('language', array (
+ 'DE' => "Deutsch",
+ 'EN' => "English"
+ ), $user['Sprache'])
+ ));
+ } else {
+ switch ($_REQUEST['action']) {
+ case 'sprache' :
+ if (isset ($_REQUEST['language']) && preg_match("/^DE|EN$/", $_REQUEST['language']))
+ $language = $_REQUEST['language'];
+ else
+ $language = "EN";
+ sql_query("UPDATE `User` SET " . "`Sprache`='" . sql_escape($language) . "' WHERE `UID`=" . sql_escape($user['UID']) . " LIMIT 1");
+ $_SESSION['Sprache'] = $language;
+ header("Location: " . page_link_to("user_settings"));
+ break;
+
+ case 'colour' :
+ $theme = preg_replace("/([^0-9]{1,})/ui", '', strip_tags($_REQUEST['theme']));
+ sql_query("UPDATE `User` SET " . "`color`='" . sql_escape($theme) . "' WHERE `UID`=" . sql_escape($user['UID']) . " LIMIT 1");
+ header("Location: " . page_link_to("user_settings"));
+ break;
+
+ case 'set' :
+ $html = "";
+ if ($_REQUEST["new_pw"] == $_REQUEST["new_pw2"]) {
+ if (PassCrypt($_REQUEST["current_pw"]) == $user['Passwort']) {
+ sql_query("UPDATE `User` SET `Passwort`='" . sql_escape(PassCrypt($_REQUEST['new_pw'])) . "' WHERE `UID`=" . sql_escape($user['UID']) . " LIMIT 1");
+ header("Location: " . page_link_to("user_settings"));
+ } else {
+ $html .= error(Get_Text(30));
+ }
+ } else {
+ $html .= error(Get_Text(31));
+ }
+ return $html;
+ break;
+
+ case "setUserData" :
+ $nick = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['nick']));
+ $name = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['name']));
+ $prename = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['prename']));
+ $age = preg_replace("/([^0-9]{1,})/ui", '', strip_tags($_REQUEST['age']));
+ $tel = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['tel']));
+ $mobile = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['mobile']));
+ $dect = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['dect']));
+ $mail = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['mail']));
+ $icq = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['icq']));
+ $jabber = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['jabber']));
+ $hometown = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['hometown']));
+ $size = ($user['TShirt'] == 0) ? preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}]{1,})/ui", '', strip_tags($_REQUEST['size'])) : $user['Size'];
+
+ sql_query("UPDATE `User` SET " .
+ "`Nick`='" . sql_escape($nick) . "', " .
+ "`Name`='" . sql_escape($name) . "', " .
+ "`Vorname`='" . sql_escape($prename) . "', " .
+ "`Alter`='" . sql_escape($age) . "', " .
+ "`Telefon`='" . sql_escape($tel) . "', " .
+ "`Handy`='" . sql_escape($mobile) . "', " .
+ "`DECT`='" . sql_escape($dect) . "', " .
+ "`email`='" . sql_escape($mail) . "', " .
+ "`ICQ`='" . sql_escape($icq) . "', " .
+ "`jabber`='" . sql_escape($jabber) . "', " .
+ "`Hometown`='" . sql_escape($hometown) . "', " .
+ "`Size`='" . sql_escape($size) . "' " .
+ "WHERE `UID`=" . sql_escape($user['UID']) . " LIMIT 1");
+ header("Location: " . page_link_to("user_settings"));
+ break;
+ }
+ }
+
+ // AVATARE
+ /*
+ if (get_cfg_var("file_uploads")) {
+ echo "
\n