]> git.wh0rd.org Git - tt-rss.git/blob - modules/pref-prefs.php
disable new version notifier in prefs
[tt-rss.git] / modules / pref-prefs.php
1 <?php
2         function prefs_js_redirect() {
3                 print "<html><body>
4                         <script type=\"text/javascript\">
5                                 window.location = 'prefs.php';
6                         </script>
7                         </body></html>";
8         }
9
10         function module_pref_prefs($link) {
11                 $subop = $_REQUEST["subop"];
12
13                 if ($subop == "Save configuration") {
14
15                         $_SESSION["prefs_op_result"] = "save-config";
16
17                         $_SESSION["prefs_cache"] = false;
18
19                         foreach (array_keys($_POST) as $pref_name) {
20                         
21                                 $pref_name = db_escape_string($pref_name);
22                                 $value = db_escape_string($_POST[$pref_name]);
23
24                                 $result = db_query($link, "SELECT type_name 
25                                         FROM ttrss_prefs,ttrss_prefs_types 
26                                         WHERE pref_name = '$pref_name' AND type_id = ttrss_prefs_types.id");
27
28                                 if (db_num_rows($result) > 0) {
29
30                                         $type_name = db_fetch_result($result, 0, "type_name");
31
32 //                                      print "$pref_name : $type_name : $value<br>";
33
34                                         if ($type_name == "bool") {
35                                                 if ($value == "1") {
36                                                         $value = "true";
37                                                 } else {
38                                                         $value = "false";
39                                                 }
40                                         } else if ($type_name == "integer") {
41                                                 $value = sprintf("%d", $value);
42                                         }
43
44 //                                      print "$pref_name : $type_name : $value<br>";
45
46                                         db_query($link, "UPDATE ttrss_user_prefs SET value = '$value' 
47                                                 WHERE pref_name = '$pref_name' AND owner_uid = ".$_SESSION["uid"]);
48
49                                 }
50
51                         }
52
53                         return prefs_js_redirect();
54
55                 } else if ($subop == "getHelp") {
56
57                         $pref_name = db_escape_string($_GET["pn"]);
58
59                         $result = db_query($link, "SELECT help_text FROM ttrss_prefs
60                                 WHERE pref_name = '$pref_name'");
61
62                         if (db_num_rows($result) > 0) {
63                                 $help_text = db_fetch_result($result, 0, "help_text");
64                                 print $help_text;
65                         } else {
66                                 print "Unknown option: $pref_name";
67                         }
68
69                 } else if ($subop == "Change e-mail") {
70
71                         $email = db_escape_string($_GET["email"]);
72                         $active_uid = $_SESSION["uid"];
73
74                         if ($email) {
75                                 db_query($link, "UPDATE ttrss_users SET email = '$email' 
76                                                 WHERE id = '$active_uid'");                             
77                         }
78
79                         return prefs_js_redirect();
80
81                 } else if ($subop == "Change password") {
82
83                         $old_pw = $_POST["OLD_PASSWORD"];
84                         $new_pw = $_POST["OLD_PASSWORD"];
85
86                         $old_pw_hash = 'SHA1:' . sha1($_POST["OLD_PASSWORD"]);
87                         $new_pw_hash = 'SHA1:' . sha1($_POST["NEW_PASSWORD"]);
88
89                         $active_uid = $_SESSION["uid"];
90
91                         if ($old_pw && $new_pw) {
92
93                                 $login = db_escape_string($_SERVER['PHP_AUTH_USER']);
94
95                                 $result = db_query($link, "SELECT id FROM ttrss_users WHERE 
96                                         id = '$active_uid' AND (pwd_hash = '$old_pw' OR 
97                                                 pwd_hash = '$old_pw_hash')");
98
99                                 if (db_num_rows($result) == 1) {
100                                         db_query($link, "UPDATE ttrss_users SET pwd_hash = '$new_pw_hash' 
101                                                 WHERE id = '$active_uid'");                             
102
103                                         $_SESSION["pwd_change_result"] = "ok";
104                                 } else {
105                                         $_SESSION["pwd_change_result"] = "failed";                                      
106                                 }
107                         }
108
109                         return prefs_js_redirect();
110
111                 } else if ($subop == "Reset to defaults") {
112
113                         $_SESSION["prefs_op_result"] = "reset-to-defaults";
114
115                         if (DB_TYPE == "pgsql") {
116                                 db_query($link,"UPDATE ttrss_user_prefs 
117                                         SET value = ttrss_prefs.def_value 
118                                         WHERE owner_uid = '".$_SESSION["uid"]."' AND
119                                         ttrss_prefs.pref_name = ttrss_user_prefs.pref_name");
120                         } else {
121                                 db_query($link, "DELETE FROM ttrss_user_prefs 
122                                         WHERE owner_uid = ".$_SESSION["uid"]);
123                                 initialize_user_prefs($link, $_SESSION["uid"]);
124                         }
125
126                         return prefs_js_redirect();
127
128                 } else if ($subop == "Change theme") {
129
130                         $theme = db_escape_string($_POST["theme"]);
131
132                         if ($theme == "Default") {
133                                 $theme_qpart = 'NULL';
134                         } else {
135                                 $theme_qpart = "'$theme'";
136                         }
137
138                         $result = db_query($link, "SELECT id,theme_path FROM ttrss_themes
139                                 WHERE theme_name = '$theme'");
140
141                         if (db_num_rows($result) == 1) {
142                                 $theme_id = db_fetch_result($result, 0, "id");
143                                 $theme_path = db_fetch_result($result, 0, "theme_path");
144                         } else {
145                                 $theme_id = "NULL";
146                                 $theme_path = "";
147                         }
148
149                         db_query($link, "UPDATE ttrss_users SET
150                                 theme_id = $theme_id WHERE id = " . $_SESSION["uid"]);
151
152                         $_SESSION["theme"] = $theme_path;
153
154                         return prefs_js_redirect();
155
156                 } else {
157
158 //                      print check_for_update($link);
159
160                         if (!SINGLE_USER_MODE) {
161
162                                 $result = db_query($link, "SELECT id,email FROM ttrss_users
163                                         WHERE id = ".$_SESSION["uid"]." AND (pwd_hash = 'password' OR
164                                                 pwd_hash = 'SHA1:".sha1("password")."')");
165
166                                 if (db_num_rows($result) != 0) {
167                                         print "<div class=\"warning\"> 
168                                                 Your password is at default value, please change it.
169                                         </div>";
170                                 }
171
172                                 if ($_SESSION["pwd_change_result"] == "failed") {
173                                         print "<div class=\"warning\"> 
174                                                         There was an error while changing your password.
175                                                 </div>";
176                                 }
177
178                                 if ($_SESSION["pwd_change_result"] == "ok") {
179                                         print "<div class=\"notice\"> 
180                                                         Password changed successfully.
181                                                 </div>";
182                                 }
183
184                                 $_SESSION["pwd_change_result"] = "";
185
186                                 if ($_SESSION["prefs_op_result"] == "reset-to-defaults") {
187                                         print "<div class=\"notice\"> 
188                                                         Your configuration was reset to defaults.
189                                                 </div>";
190                                 }
191
192                                 if ($_SESSION["prefs_op_result"] == "save-config") {
193                                         print "<div class=\"notice\"> 
194                                                         Your configuration was saved successfully.
195                                                 </div>";
196                                 }
197
198                                 $_SESSION["prefs_op_result"] = "";
199
200                                 print "<form action=\"backend.php\" method=\"GET\">";
201         
202                                 print "<table width=\"100%\" class=\"prefPrefsList\">";
203                                 print "<tr><td colspan='3'><h3>Personal data</h3></tr></td>";
204
205                                 $result = db_query($link, "SELECT email FROM ttrss_users
206                                         WHERE id = ".$_SESSION["uid"]);
207                                         
208                                 $email = db_fetch_result($result, 0, "email");
209         
210                                 print "<tr><td width=\"40%\">E-mail</td>";
211                                 print "<td><input class=\"editbox\" name=\"email\" 
212                                         value=\"$email\"></td></tr>";
213         
214                                 print "</table>";
215         
216                                 print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
217         
218                                 print "<p><input class=\"button\" type=\"submit\" 
219                                         value=\"Change e-mail\" name=\"subop\">";
220
221                                 print "</form>";
222
223                                 print "<form action=\"backend.php\" method=\"POST\" name=\"changePassForm\">";
224         
225                                 print "<table width=\"100%\" class=\"prefPrefsList\">";
226                                 print "<tr><td colspan='3'><h3>Authentication</h3></tr></td>";
227         
228                                 print "<tr><td width=\"40%\">Old password</td>";
229                                 print "<td><input class=\"editbox\" type=\"password\"
230                                         name=\"OLD_PASSWORD\"></td></tr>";
231         
232                                 print "<tr><td width=\"40%\">New password</td>";
233                                 
234                                 print "<td><input class=\"editbox\" type=\"password\"
235                                         name=\"NEW_PASSWORD\"></td></tr>";
236         
237                                 print "</table>";
238         
239                                 print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
240         
241                                 print "<p><input class=\"button\" type=\"submit\" 
242                                         onclick=\"return validateNewPassword(this.form)\"
243                                         value=\"Change password\" name=\"subop\">";
244         
245                                 print "</form>";
246
247                         }
248
249                         $result = db_query($link, "SELECT
250                                 theme_id FROM ttrss_users WHERE id = " . $_SESSION["uid"]);
251
252                         $user_theme_id = db_fetch_result($result, 0, "theme_id");
253
254                         $result = db_query($link, "SELECT
255                                 id,theme_name FROM ttrss_themes ORDER BY theme_name");
256
257                         if (db_num_rows($result) > 0) {
258
259                                 print "<form action=\"backend.php\" method=\"POST\">";
260                                 print "<table width=\"100%\" class=\"prefPrefsList\">";
261                                 print "<tr><td colspan='3'><h3>Themes</h3></tr></td>";
262                                 print "<tr><td width=\"40%\">Select theme</td>";
263                                 print "<td><select name=\"theme\">";
264                                 print "<option>Default</option>";
265                                 print "<option disabled>--------</option>";                             
266                                 
267                                 while ($line = db_fetch_assoc($result)) {       
268                                         if ($line["id"] == $user_theme_id) {
269                                                 $selected = "selected";
270                                         } else {
271                                                 $selected = "";
272                                         }
273                                         print "<option $selected>" . $line["theme_name"] . "</option>";
274                                 }
275                                 print "</select></td></tr>";
276                                 print "</table>";
277                                 print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
278                                 print "<p><input class=\"button\" type=\"submit\" 
279                                         value=\"Change theme\" name=\"subop\">";
280                                 print "</form>";
281                         }
282
283                         initialize_user_prefs($link, $_SESSION["uid"]);
284
285                         $result = db_query($link, "SELECT 
286                                 ttrss_user_prefs.pref_name,short_desc,help_text,value,type_name,
287                                 section_name,def_value
288                                 FROM ttrss_prefs,ttrss_prefs_types,ttrss_prefs_sections,ttrss_user_prefs
289                                 WHERE type_id = ttrss_prefs_types.id AND 
290                                         section_id = ttrss_prefs_sections.id AND
291                                         ttrss_user_prefs.pref_name = ttrss_prefs.pref_name AND
292                                         owner_uid = ".$_SESSION["uid"]."
293                                 ORDER BY section_id,short_desc");
294
295                         print "<form action=\"backend.php\" method=\"POST\">";
296
297                         $lnum = 0;
298
299                         $active_section = "";
300         
301                         while ($line = db_fetch_assoc($result)) {
302
303                                 if ($active_section != $line["section_name"]) {
304
305                                         if ($active_section != "") {
306                                                 print "</table>";
307                                         }
308
309                                         print "<p><table width=\"100%\" class=\"prefPrefsList\">";
310                                 
311                                         $active_section = $line["section_name"];                                
312                                         
313                                         print "<tr><td colspan=\"3\"><h3>$active_section</h3></td></tr>";
314 //                                      print "<tr class=\"title\">
315 //                                              <td width=\"25%\">Option</td><td>Value</td></tr>";
316
317                                         $lnum = 0;
318                                 }
319
320 //                              $class = ($lnum % 2) ? "even" : "odd";
321
322                                 print "<tr>";
323
324                                 $type_name = $line["type_name"];
325                                 $pref_name = $line["pref_name"];
326                                 $value = $line["value"];
327                                 $def_value = $line["def_value"];
328                                 $help_text = $line["help_text"];
329
330                                 print "<td width=\"40%\" id=\"$pref_name\">" . $line["short_desc"];
331
332                                 if ($help_text) print "<div class=\"prefHelp\">$help_text</div>";
333                                 
334                                 print "</td>";
335
336                                 print "<td>";
337
338                                 if ($type_name == "bool") {
339 //                                      print_select($pref_name, $value, array("true", "false"));
340
341                                         if ($value == "true") {
342                                                 $value = "Yes";
343                                         } else {
344                                                 $value = "No";
345                                         }
346
347                                         print_radio($pref_name, $value, array("Yes", "No"));
348                         
349                                 } else {
350                                         print "<input class=\"editbox\" name=\"$pref_name\" value=\"$value\">";
351                                 }
352
353                                 print "</td>";
354
355                                 print "</tr>";
356
357                                 $lnum++;
358                         }
359
360                         print "</table>";
361
362                         print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
363
364                         print "<p><input class=\"button\" type=\"submit\" 
365                                 name=\"subop\" value=\"Save configuration\">";
366                                 
367                         print "&nbsp;<input class=\"button\" type=\"submit\" 
368                                 name=\"subop\" onclick=\"return validatePrefsReset()\" 
369                                 value=\"Reset to defaults\"></p>";
370
371                         print "</form>";
372
373                 }
374         }
375 ?>