4 function settings_init(&$a) {
7 notice("Permission denied." . EOL);
11 require_once("mod/profile.php");
12 profile_load($a,$a->user['nickname']);
16 function settings_post(&$a) {
19 notice( "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");
135 $nickname_subdir = '';
136 if(strlen($a->get_path())) {
137 $subdir_tpl = file_get_contents('view/settings_nick_subdir.tpl');
138 $nickname_subdir = replace_macros($subdir_tpl, array(
139 '$baseurl' => $a->get_baseurl(),
140 '$nickname' => $nickname,
141 '$hostname' => $a->get_hostname()
146 $nickname_block = replace_macros($nickname_block,array(
147 '$nickname' => $nickname,
148 '$uid' => $_SESSION['uid'],
149 '$subdir' => $nickname_subdir,
150 '$basepath' => $a->get_hostname(),
151 '$baseurl' => $a->get_baseurl()));
153 $o = file_get_contents('view/settings.tpl');
155 $o = replace_macros($o,array(
156 '$baseurl' => $a->get_baseurl(),
157 '$uid' => $_SESSION['uid'],
158 '$username' => $username,
160 '$nickname_block' => $nickname_block,
161 '$timezone' => $timezone,
162 '$zoneselect' => select_timezone($timezone)