4 function settings_init(&$a) {
6 if((! x($_SESSION,'authenticated')) && (x($_SESSION,'uid'))) {
7 $_SESSION['sysmsg'] .= "Permission denied." . EOL;
11 require_once("mod/profile.php");
12 profile_load($a,$_SESSION['uid']);
16 function settings_post(&$a) {
18 if((! x($_SESSION['authenticated'])) && (! (x($_SESSION,'uid')))) {
19 $_SESSION['sysmsg'] .= "Permission denied." . EOL;
22 if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != $_SESSION['uid']) {
23 $_SESSION['sysmsg'] .= "Permission denied." . EOL;
26 if((x($_POST,'password')) || (x($_POST,'confirm'))) {
28 $newpass = trim($_POST['password']);
29 $confirm = trim($_POST['confirm']);
32 if($newpass != $confirm ) {
33 $_SESSION['sysmsg'] .= "Passwords do not match. Password unchanged." . EOL;
37 if((! x($newpass)) || (! x($confirm))) {
38 $_SESSION['sysmsg'] .= "Empty passwords are not allowed. Password unchanged." . EOL;
43 $password = hash('whirlpool',$newpass);
44 $r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1",
46 intval($_SESSION['uid']));
48 $_SESSION['sysmsg'] .= "Password changed." . EOL;
50 $_SESSION['sysmsg'] .= "Password update failed. Please try again." . EOL;
54 $username = notags(trim($_POST['username']));
55 $email = notags(trim($_POST['email']));
56 $timezone = notags(trim($_POST['timezone']));
58 $username_changed = false;
59 $email_changed = false;
60 $zone_changed = false;
63 if($username != $a->user['username']) {
64 $username_changed = true;
65 if(strlen($username) > 40)
66 $err .= " Please use a shorter name.";
67 if(strlen($username) < 3)
68 $err .= " Name too short.";
70 if($email != $a->user['email']) {
71 $email_changed = true;
72 if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email))
73 $err .= " Not valid email.";
74 $r = q("SELECT `uid` FROM `user`
75 WHERE `email` = '%s' LIMIT 1",
78 if($r !== NULL && count($r))
79 $err .= " This email address is already registered." . EOL;
83 $_SESSION['sysmsg'] .= $err . EOL;
86 if($timezone != $a->user['timezone']) {
89 date_default_timezone_set($timezone);
91 if($email_changed || $username_changed || $zone_changed ) {
92 $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `timezone` = '%s' WHERE `uid` = %d LIMIT 1",
96 intval($_SESSION['uid']));
98 $_SESSION['sysmsg'] .= "Settings updated." . EOL;
100 if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
102 // FIXME - set to un-verified, blocked and redirect to logout
107 // Refresh the content display with new data
109 $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
110 intval($_SESSION['uid']));
116 if(! function_exists('settings_content')) {
117 function settings_content(&$a) {
119 if((! x($_SESSION['authenticated'])) && (! (x($_SESSION,'uid')))) {
120 $_SESSION['sysmsg'] .= "Permission denied." . EOL;
125 $username = $a->user['username'];
126 $email = $a->user['email'];
127 $nickname = $a->user['nickname'];
128 $timezone = $a->user['timezone'];
132 $nickname_block = file_get_contents("view/settings_nick_set.tpl");
134 $nickname_block = file_get_contents("view/settings_nick_unset.tpl");
136 $nickname_block = replace_macros($nickname_block,array(
137 '$nickname' => $nickname,
138 '$uid' => $_SESSION['uid'],
139 '$basepath' => substr($a->get_baseurl(),strpos($a->get_baseurl(),'://') + 3),
140 '$baseurl' => $a->get_baseurl()));
142 $o = file_get_contents('view/settings.tpl');
144 $o = replace_macros($o,array(
145 '$baseurl' => $a->get_baseurl(),
146 '$uid' => $_SESSION['uid'],
147 '$username' => $username,
149 '$nickname_block' => $nickname_block,
150 '$timezone' => $timezone,
151 '$zoneselect' => select_timezone($timezone)