-
Notifications
You must be signed in to change notification settings - Fork 0
/
edit_forum_preferences_action.php
127 lines (113 loc) · 5.14 KB
/
edit_forum_preferences_action.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// BOINC is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
require_once("../inc/util.inc");
require_once("../inc/forum.inc");
require_once("../inc/image.inc"); // Avatar scaling
if (post_str("account_key", true) != null) {
$user = BoincUser::lookup_auth(post_str("account_key"));
$rpc = true;
} else {
$user = get_logged_in_user();
$rpc = false;
}
BoincForumPrefs::lookup($user);
if (post_str("action", true)=="reset_confirm"){
page_head(tra("Confirm reset"));
echo tra("This action will erase any changes you have made in your community preferences. To cancel, click your browser's Back button.")."
<p>
<form action=edit_forum_preferences_action.php method=post>
<input type=hidden name=action value=reset>
<input class=\"btn btn-warning\" type=submit value=\"".tra("Reset preferences")."\">
</form>
";
page_tail();
exit();
}
// If the user has requested a reset of preferences;
// preserve a few fields.
//
if (post_str("action", true)=="reset"){
$posts = $user->prefs->posts;
$last_post = $user->prefs->last_post;
$rated_posts = $user->prefs->rated_posts;
$banished_until = $user->prefs->banished_until;
$special_user = $user->prefs->special_user;
$user->prefs->delete();
unset($user->prefs);
BoincForumPrefs::lookup($user, true);
$user->prefs->update("posts=$posts, last_post=$last_post, rated_posts='$rated_posts', banished_until=$banished_until, special_user='$special_user'");
Header("Location: edit_forum_preferences_form.php");
exit;
}
if (!DISABLE_FORUMS) {
$images_as_links = (isset($_POST["forum_images_as_links"]) && $_POST["forum_images_as_links"]!="")?1:0;
$link_popup = (isset($_POST["forum_link_popup"]) && $_POST["forum_link_popup"]!="")?1:0;
$hide_avatars = (isset($_POST["forum_hide_avatars"]) && $_POST["forum_hide_avatars"]!="")?1:0;
$hide_signatures = (isset($_POST["forum_hide_signatures"]) && $_POST["forum_hide_signatures"]!="")?1:0;
$highlight_special = (isset($_POST["forum_highlight_special"]) && $_POST["forum_highlight_special"]!="")?1:0;
$jump_to_unread = (isset($_POST["forum_jump_to_unread"]) && $_POST["forum_jump_to_unread"]!="")?1:0;
$ignore_sticky_posts = (isset($_POST["forum_ignore_sticky_posts"]) && $_POST["forum_ignore_sticky_posts"]!="")?1:0;
$no_signature_by_default = (isset($_POST["signature_by_default"]) && $_POST["signature_by_default"]!="")?0:1;
$signature = post_str("signature", true);
if (strlen($signature)>250) {
error_page(tra("Your signature was too long, please keep it less than 250 characters."));
}
$forum_sort = post_int("forum_sort");
$thread_sort = post_int("thread_sort");
$display_wrap_postcount = post_int("forum_display_wrap_postcount");
if ($display_wrap_postcount<1) $display_wrap_postcount=1;
$signature = BoincDb::escape_string($signature);
$user->prefs->update("images_as_links=$images_as_links, link_popup=$link_popup, hide_avatars=$hide_avatars, hide_signatures=$hide_signatures, highlight_special=$highlight_special, jump_to_unread=$jump_to_unread, ignore_sticky_posts=$ignore_sticky_posts, no_signature_by_default=$no_signature_by_default, avatar='$avatar_url', signature='$signature', forum_sorting=$forum_sort, thread_sorting=$thread_sort, display_wrap_postcount=$display_wrap_postcount");
} // DISABLE_FORUMS
$add_user_to_filter = (isset($_POST["add_user_to_filter"]) && $_POST["add_user_to_filter"]!="");
if ($add_user_to_filter){
$user_to_add = trim($_POST["forum_filter_user"]);
if ($user_to_add!="" and $user_to_add==strval(intval($user_to_add))){
$other_user = BoincUser::lookup_id($user_to_add);
if (!$other_user) {
echo tra("No such user:")." ".$user_to_add;
} else {
add_ignored_user($user, $other_user);
}
}
}
// Or remove some from the ignore list
//
$ignored_users = get_ignored_list($user);
for ($i=0;$i<sizeof($ignored_users);$i++){
$remove = "remove".trim($ignored_users[$i]);
if (isset($_POST[$remove]) && $_POST[$remove]!=""){
$other_user = BoincUser::lookup_id($ignored_users[$i]);
if (!$other_user) {
echo tra("No such user:")." ".$ignored_users[$j];
} else {
remove_ignored_user($user, $other_user);
}
}
}
if ($rpc == false) {
// If we get down here everything went ok
// redirect the user to the setup page again
//
Header("Location: edit_forum_preferences_form.php");
} else {
echo "<status>\n";
echo " <success>1</success>\n";
echo "</status>\n";
}
?>