author | Dan |
Mon, 01 Feb 2010 02:15:04 -0500 | |
changeset 1216 | 4125e19d3b27 |
parent 1169 | d5474f54a525 |
child 1227 | bdac73ed481e |
permissions | -rw-r--r-- |
0 | 1 |
<?php |
519
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
2 |
/**!info** |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
3 |
{ |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
4 |
"Plugin Name" : "plugin_specialuserprefs_title", |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
5 |
"Plugin URI" : "http://enanocms.org/", |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
6 |
"Description" : "plugin_specialuserprefs_desc", |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
7 |
"Author" : "Dan Fuhry", |
960
e74741b8360b
Added register_special_page() function, to make it much easier to create special pages. Also, rewrote Special:Memberlist to use more efficient fetch method and not use an unbuffered whole-table query.
Dan
parents:
953
diff
changeset
|
8 |
"Version" : "1.1.6", |
519
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
9 |
"Author URI" : "http://enanocms.org/" |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
10 |
} |
94214ec0871c
Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents:
504
diff
changeset
|
11 |
**!*/ |
0 | 12 |
|
13 |
/* |
|
14 |
* Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between |
|
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
15 |
* Copyright (C) 2006-2009 Dan Fuhry |
0 | 16 |
* |
17 |
* This program is Free Software; you can redistribute it and/or modify it under the terms of the GNU General Public License |
|
18 |
* as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
|
19 |
* |
|
20 |
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied |
|
21 |
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
|
22 |
*/ |
|
23 |
||
24 |
$userprefs_menu = Array(); |
|
25 |
$userprefs_menu_links = Array(); |
|
26 |
function userprefs_menu_add($section, $text, $link) |
|
27 |
{ |
|
28 |
global $userprefs_menu; |
|
286
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
parents:
224
diff
changeset
|
29 |
if ( isset($userprefs_menu[$section]) && is_array($userprefs_menu[$section]) ) |
0 | 30 |
{ |
31 |
$userprefs_menu[$section][] = Array( |
|
32 |
'text' => $text, |
|
33 |
'link' => $link |
|
34 |
); |
|
35 |
} |
|
36 |
else |
|
37 |
{ |
|
38 |
$userprefs_menu[$section] = Array(Array( |
|
39 |
'text' => $text, |
|
40 |
'link' => $link |
|
41 |
)); |
|
42 |
} |
|
43 |
} |
|
44 |
||
953
323c4cd1aa37
Made some more changes to the way namespaces are handled, for optimization purposes. This is a bit of a structural reorganization: $paths->pages is obsoleted in its entirety; calculating page existence and metadata is now the job of the Namespace_* backend class. There are many things in PageProcessor that should be reorganized, and page actions in general should really be rethought. This is probably the beginning of a long process that will be taking place over the course of the betas.
Dan
parents:
922
diff
changeset
|
45 |
$plugins->attachHook('tpl_compile_sidebar', 'userprefs_jbox_setup($button, $tb, $menubtn);'); |
103
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
46 |
|
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
47 |
function userprefs_jbox_setup(&$button, &$tb, &$menubtn) |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
48 |
{ |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
49 |
global $db, $session, $paths, $template, $plugins; // Common objects |
388
9829ca63b53a
Localized stray string "list of registered members" in UCP
Dan
parents:
372
diff
changeset
|
50 |
global $lang; |
103
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
51 |
|
322
5f1cd51bf1be
Many changes. Installer with PostgreSQL is broken badly and will be for some time.
Dan
parents:
317
diff
changeset
|
52 |
if ( $paths->namespace != 'Special' || $paths->page_id != 'Preferences' ) |
103
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
53 |
return false; |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
54 |
|
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
55 |
$tb .= "<ul>$template->toolbar_menu</ul>"; |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
56 |
$template->toolbar_menu = ''; |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
57 |
|
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
58 |
$button->assign_vars(array( |
388
9829ca63b53a
Localized stray string "list of registered members" in UCP
Dan
parents:
372
diff
changeset
|
59 |
'TEXT' => $lang->get('usercp_btn_memberlist'), |
103
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
60 |
'FLAGS' => '', |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
61 |
'PARENTFLAGS' => '', |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
62 |
'HREF' => makeUrlNS('Special', 'Memberlist') |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
63 |
)); |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
64 |
|
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
65 |
$tb .= $button->run(); |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
66 |
} |
a8891e108c95
Several major improvements: Memberlist page added (planned since about beta 2), page group support added for non-JS ACL editor (oops!), and attempting to view a page for which you lack read permissions will get you logged.
Dan
parents:
85
diff
changeset
|
67 |
|
0 | 68 |
function userprefs_menu_html() |
69 |
{ |
|
70 |
global $userprefs_menu; |
|
71 |
global $userprefs_menu_links; |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
72 |
global $lang; |
0 | 73 |
|
74 |
$html = ''; |
|
75 |
$quot = '"'; |
|
76 |
||
77 |
foreach ( $userprefs_menu as $section => $buttons ) |
|
78 |
{ |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
79 |
$section_name = $section; |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
80 |
if ( preg_match('/^[a-z]+_[a-z_]+$/', $section) ) |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
81 |
{ |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
82 |
$section_name = $lang->get($section_name); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
83 |
} |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
84 |
$html .= ( isset($userprefs_menu_links[$section]) ) ? "<a href={$quot}{$userprefs_menu_links[$section]}{$quot}>{$section_name}</a>\n " : "<a>{$section_name}</a>\n "; |
0 | 85 |
$html .= "<ul>\n "; |
86 |
foreach ( $buttons as $button ) |
|
87 |
{ |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
88 |
$buttontext = $button['text']; |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
89 |
if ( preg_match('/^[a-z]+_[a-z_]+$/', $buttontext) ) |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
90 |
{ |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
91 |
$buttontext = $lang->get($buttontext); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
92 |
} |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
93 |
$html .= " <li><a href={$quot}{$button['link']}{$quot}>{$buttontext}</a></li>\n "; |
0 | 94 |
} |
95 |
$html .= "</ul>\n "; |
|
96 |
} |
|
97 |
||
98 |
return $html; |
|
99 |
} |
|
100 |
||
101 |
function userprefs_show_menu() |
|
102 |
{ |
|
103 |
echo '<div class="menu_nojs"> |
|
104 |
' . userprefs_menu_html() . ' |
|
105 |
<span class="menuclear"></span> |
|
106 |
</div> |
|
107 |
<br /> |
|
108 |
'; |
|
109 |
} |
|
110 |
||
111 |
function userprefs_menu_init() |
|
112 |
{ |
|
113 |
global $db, $session, $paths, $template, $plugins; // Common objects |
|
114 |
global $userprefs_menu_links; |
|
115 |
||
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
116 |
userprefs_menu_add('usercp_sec_profile', 'usercp_sec_profile_emailpassword', makeUrlNS('Special', 'Preferences/EmailPassword') . '" onclick="ajaxLoginNavTo(\'Special\', \'Preferences/EmailPassword\', '.USER_LEVEL_CHPREF.'); return false;'); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
117 |
userprefs_menu_add('usercp_sec_profile', 'usercp_sec_profile_signature', makeUrlNS('Special', 'Preferences/Signature')); |
1064
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
118 |
// userprefs_menu_add('usercp_sec_profile', 'usercp_sec_profile_publicinfo', makeUrlNS('Special', 'Preferences/Profile')); |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
119 |
userprefs_menu_add('usercp_sec_profile', 'usercp_sec_profile_usergroups', makeUrlNS('Special', 'Usergroups')); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
120 |
if ( getConfig('avatar_enable') == '1' ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
121 |
{ |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
122 |
userprefs_menu_add('usercp_sec_profile', 'usercp_sec_profile_avatar', makeUrlNS('Special', 'Preferences/Avatar')); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
123 |
} |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
124 |
userprefs_menu_add('usercp_sec_pm', 'usercp_sec_pm_inbox', makeUrlNS('Special', 'PrivateMessages/Folder/Inbox')); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
125 |
userprefs_menu_add('usercp_sec_pm', 'usercp_sec_pm_outbox', makeUrlNS('Special', 'PrivateMessages/Folder/Outbox')); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
126 |
userprefs_menu_add('usercp_sec_pm', 'usercp_sec_pm_sent', makeUrlNS('Special', 'PrivateMessages/Folder/Sent')); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
127 |
userprefs_menu_add('usercp_sec_pm', 'usercp_sec_pm_drafts', makeUrlNS('Special', 'PrivateMessages/Folder/Drafts')); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
128 |
userprefs_menu_add('usercp_sec_pm', 'usercp_sec_pm_archive', makeUrlNS('Special', 'PrivateMessages/Folder/Archive')); |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
129 |
|
334
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
130 |
/* |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
131 |
// Reserved for Enano's Next Big Innovation.(TM) |
334
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
132 |
userprefs_menu_add('Private messages', 'Inbox', makeUrlNS('Special', 'Private_Messages#folder:inbox')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
133 |
userprefs_menu_add('Private messages', 'Starred', makeUrlNS('Special', 'Private_Messages#folder:starred')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
134 |
userprefs_menu_add('Private messages', 'Sent items', makeUrlNS('Special', 'Private_Messages#folder:sent')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
135 |
userprefs_menu_add('Private messages', 'Drafts', makeUrlNS('Special', 'Private_Messages#folder:drafts')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
136 |
userprefs_menu_add('Private messages', 'Archive', makeUrlNS('Special', 'Private_Messages#folder:archive')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
137 |
userprefs_menu_add('Private messages', 'Trash', makeUrlNS('Special', 'Private_Messages#folder:trash')); |
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
138 |
*/ |
0 | 139 |
|
670
5e67afb31138
Fixed non-localized buttons in navbar on user CP, top menu trigger buttons should act as links again
Dan
parents:
621
diff
changeset
|
140 |
$userprefs_menu_links['usercp_sec_profile'] = makeUrlNS('Special', 'Preferences'); |
5e67afb31138
Fixed non-localized buttons in navbar on user CP, top menu trigger buttons should act as links again
Dan
parents:
621
diff
changeset
|
141 |
$userprefs_menu_links['usercp_sec_pm'] = makeUrlNS('Special', 'PrivateMessages'); |
0 | 142 |
|
143 |
$code = $plugins->setHook('userprefs_jbox'); |
|
144 |
foreach ( $code as $cmd ) |
|
145 |
{ |
|
146 |
eval($cmd); |
|
147 |
} |
|
148 |
} |
|
149 |
||
334
c72b545f1304
More localization work. Resolved major issue with JSON parser not parsing files over ~50KB. Switched JSON parser to the one from the Zend Framework (BSD licensed). Forced to split enano.json into five different files.
Dan
parents:
329
diff
changeset
|
150 |
$plugins->attachHook('common_post', 'userprefs_menu_init();'); |
0 | 151 |
|
152 |
function page_Special_Preferences() |
|
153 |
{ |
|
154 |
global $db, $session, $paths, $template, $plugins; // Common objects |
|
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
155 |
global $lang; |
406
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
156 |
global $timezone; |
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
157 |
global $cache; |
0 | 158 |
|
159 |
// We need a login to continue |
|
160 |
if ( !$session->user_logged_in ) |
|
161 |
redirect(makeUrlNS('Special', 'Login/' . $paths->page), 'Login required', 'You need to be logged in to access this page. Please wait while you are redirected to the login page.'); |
|
162 |
||
163 |
// User ID - later this will be specified on the URL, but hardcoded for now |
|
164 |
$uid = intval($session->user_id); |
|
165 |
||
166 |
// Instanciate the AES encryptor |
|
286
b2f985e4cef3
Fixed a number of issues with SQL query readability and some undefined index-ish errors; consequently the SQL report feature was added
Dan
parents:
224
diff
changeset
|
167 |
$aes = AESCrypt::singleton(AES_BITS, AES_BLOCKSIZE); |
0 | 168 |
|
169 |
// Basic user info |
|
170 |
$q = $db->sql_query('SELECT username, password, email, real_name, signature, theme, style FROM '.table_prefix.'users WHERE user_id='.$uid.';'); |
|
171 |
if ( !$q ) |
|
172 |
$db->_die(); |
|
173 |
||
174 |
$row = $db->fetchrow(); |
|
175 |
$db->free_result(); |
|
176 |
||
177 |
$section = $paths->getParam(0); |
|
178 |
if ( !$section ) |
|
179 |
{ |
|
180 |
$section = 'Home'; |
|
181 |
} |
|
182 |
||
183 |
$errors = ''; |
|
184 |
||
185 |
switch ( $section ) |
|
186 |
{ |
|
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
187 |
case 'Avatar': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
188 |
$template->preload_js('jquery'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
189 |
$template->preload_js('jquery-ui'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
190 |
break; |
0 | 191 |
case 'EmailPassword': |
192 |
// Require elevated privileges (well sortof) |
|
193 |
if ( $session->auth_level < USER_LEVEL_CHPREF ) |
|
194 |
{ |
|
195 |
redirect(makeUrlNS('Special', 'Login/' . $paths->fullpage, 'level=' . USER_LEVEL_CHPREF, true), 'Authentication required', 'You need to re-authenticate to access this page.', 0); |
|
196 |
} |
|
197 |
||
198 |
if ( isset($_POST['submit']) ) |
|
199 |
{ |
|
200 |
$email_changed = false; |
|
201 |
// First do the e-mail address |
|
202 |
if ( strlen($_POST['newemail']) > 0 ) |
|
203 |
{ |
|
204 |
switch('foo') // Same reason as in the password code... |
|
205 |
{ |
|
206 |
case 'foo': |
|
207 |
if ( $_POST['newemail'] != $_POST['newemail_conf'] ) |
|
208 |
{ |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
209 |
$errors .= '<div class="error-box">' . $lang->get('usercp_emailpassword_err_email_no_match') . '</div>'; |
0 | 210 |
break; |
211 |
} |
|
212 |
} |
|
213 |
$q = $db->sql_query('SELECT password FROM '.table_prefix.'users WHERE user_id='.$session->user_id.';'); |
|
214 |
if ( !$q ) |
|
215 |
$db->_die(); |
|
216 |
$row = $db->fetchrow(); |
|
217 |
$db->free_result(); |
|
218 |
||
219 |
$new_email = $_POST['newemail']; |
|
220 |
||
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
221 |
$result = $session->change_email($session->user_id, $new_email); |
0 | 222 |
if ( $result != 'success' ) |
223 |
{ |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
224 |
$message = '<p>' . $lang->get('usercp_emailpassword_err_list') . '</p>'; |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
225 |
$message .= '<ul><li>' . implode("</li>\n<li>", $result) . '</li></ul>'; |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
226 |
die_friendly($lang->get('usercp_emailpassword_err_title'), $message); |
0 | 227 |
} |
228 |
$email_changed = true; |
|
229 |
} |
|
230 |
// Obtain password |
|
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
231 |
if ( !empty($_POST['crypt_data']) || !empty($_POST['newpass']) || $session->password_change_disabled ) |
0 | 232 |
{ |
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
233 |
$newpass = $session->password_change_disabled ? '' : $session->get_aes_post('newpass'); |
0 | 234 |
// At this point we know if we _want_ to change the password... |
235 |
||
236 |
// We can't check the password to see if it matches the confirmation |
|
237 |
// because the confirmation was destroyed during the encryption. I figured |
|
238 |
// this wasn't a big deal because if the encryption worked, then either |
|
239 |
// the Javascript validated it or the user hacked the form. In the latter |
|
240 |
// case, if he's smart enough to hack the encryption code, he's probably |
|
241 |
// smart enough to remember his password. |
|
242 |
||
243 |
if ( strlen($newpass) > 0 ) |
|
244 |
{ |
|
224
6a4573507ff8
Fixed: invalid smartform input to Admin:UserManager when errors present and changing own account; [demo mode] default user can no longer change password
Dan
parents:
192
diff
changeset
|
245 |
if ( defined('ENANO_DEMO_MODE') ) |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
246 |
$errors .= '<div class="error-box" style="margin: 0 0 10px 0;">' . $lang->get('usercp_emailpassword_err_demo') . '</div>'; |
0 | 247 |
// Perform checks |
248 |
if ( strlen($newpass) < 6 ) |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
249 |
$errors .= '<div class="error-box" style="margin: 0 0 10px 0;">' . $lang->get('usercp_emailpassword_err_password_too_short') . '</div>'; |
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
250 |
if ( getConfig('pw_strength_enable') == '1' ) |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
251 |
{ |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
252 |
$score_inp = password_score($newpass); |
1169
d5474f54a525
Fixed undefined $score_min in password change. Potential security concern?
Dan
parents:
1095
diff
changeset
|
253 |
$score_min = getConfig('pw_strength_minimum', -10); |
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
254 |
if ( $score_inp < $score_min ) |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
255 |
$errors .= '<div class="error-box" style="margin: 0 0 10px 0;">' . $lang->get('usercp_emailpassword_err_password_too_weak', array('score' => $score_inp)) . '</div>'; |
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
256 |
} |
801
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
257 |
if ( $_POST['use_crypt'] == 'no' && $newpass != $_POST['newpass_confirm'] ) |
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
258 |
{ |
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
259 |
$errors .= '<div class="error-box">' . $lang->get('usercp_emailpassword_err_password_no_match') . '</div>'; |
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
260 |
} |
0 | 261 |
// Encrypt new password |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
262 |
if ( empty($errors) ) |
0 | 263 |
{ |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
264 |
// Perform the swap |
801
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
265 |
$session->set_password($session->username, $newpass); |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
266 |
// Log out and back in |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
267 |
$username = $session->username; |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
268 |
$session->logout(); |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
269 |
if ( $email_changed ) |
0 | 270 |
{ |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
271 |
if ( getConfig('account_activation') == 'user' ) |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
272 |
{ |
741 | 273 |
redirect(makeUrl(get_main_page()), $lang->get('usercp_emailpassword_msg_profile_success'), $lang->get('usercp_emailpassword_msg_need_activ_user'), 20); |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
274 |
} |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
275 |
else if ( getConfig('account_activation') == 'admin' ) |
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
276 |
{ |
741 | 277 |
redirect(makeUrl(get_main_page()), $lang->get('usercp_emailpassword_msg_profile_success'), $lang->get('usercp_emailpassword_msg_need_activ_admin'), 20); |
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
278 |
} |
0 | 279 |
} |
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
280 |
$session->login_without_crypto($username, $newpass); |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
281 |
redirect(makeUrlNS('Special', 'Preferences'), $lang->get('usercp_emailpassword_msg_pass_success'), $lang->get('usercp_emailpassword_msg_password_changed'), 5); |
0 | 282 |
} |
283 |
} |
|
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
284 |
else if ( $email_changed ) |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
285 |
{ |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
286 |
$session->logout(USER_LEVEL_CHPREF); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
287 |
$activation = $session->user_level >= USER_LEVEL_MOD ? 'none' : getConfig('account_activation', 'none'); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
288 |
switch($activation) |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
289 |
{ |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
290 |
default: |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
291 |
$message_body = $lang->get('usercp_emailpassword_msg_password_changed'); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
292 |
$timeout = 5; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
293 |
break; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
294 |
case 'admin': |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
295 |
$message_body = $lang->get('usercp_emailpassword_msg_need_activ_user'); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
296 |
$timeout = 20; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
297 |
break; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
298 |
case 'user': |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
299 |
$message_body = $lang->get('usercp_emailpassword_msg_need_activ_admin'); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
300 |
$timeout = 20; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
301 |
break; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
302 |
} |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
303 |
redirect(makeUrlNS('Special', 'Preferences'), $lang->get('usercp_emailpassword_msg_email_success'), $message_body, $timeout); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
304 |
} |
0 | 305 |
} |
306 |
} |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
307 |
$template->tpl_strings['PAGE_NAME'] = $lang->get('usercp_emailpassword_title'); |
0 | 308 |
break; |
309 |
case 'Signature': |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
310 |
$template->tpl_strings['PAGE_NAME'] = $lang->get('usercp_signature_title'); |
0 | 311 |
break; |
312 |
case 'Profile': |
|
1083
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
313 |
case 'Home': |
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
314 |
if ( isset($_POST['submit']) ) |
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
315 |
csrf_request_confirm(); |
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
316 |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
317 |
$template->tpl_strings['PAGE_NAME'] = $lang->get('usercp_publicinfo_title'); |
0 | 318 |
break; |
319 |
} |
|
320 |
||
321 |
$template->header(); |
|
322 |
||
323 |
// Output the menu |
|
324 |
// This is not templatized because it conforms to the jBox menu standard. |
|
325 |
||
326 |
userprefs_show_menu(); |
|
1055
15ef8d2147c2
Here we go, preload_js() officially added to admin panel. Pray with me.
Dan
parents:
960
diff
changeset
|
327 |
|
0 | 328 |
switch ( $section ) |
329 |
{ |
|
330 |
case 'EmailPassword': |
|
331 |
||
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
332 |
$errors = trim($errors); |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
333 |
if ( !empty($errors) ) |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
334 |
{ |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
335 |
echo $errors; |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
336 |
} |
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
337 |
|
0 | 338 |
echo '<form action="' . makeUrlNS('Special', 'Preferences/EmailPassword') . '" method="post" onsubmit="return runEncryption();" name="empwform" >'; |
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
339 |
echo '<fieldset>'; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
340 |
echo '<legend>' . $lang->get('usercp_emailpassword_grp_chpasswd') . '</legend>'; |
0 | 341 |
|
342 |
// Password change form |
|
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
343 |
if ( $session->password_change_disabled ) |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
344 |
{ |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
345 |
echo '<p>' . $lang->get('usercp_emailpassword_msg_change_disabled') . '</p>'; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
346 |
if ( $session->password_change_dest['url'] ) |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
347 |
{ |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
348 |
echo '<p>' . $lang->get('usercp_emailpassword_msg_change_disabled_url') . ' |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
349 |
<a onclick="window.open(this.href); return false;" href="' . htmlspecialchars($session->password_change_dest['url']) . '">' . htmlspecialchars($session->password_change_dest['title']) . '</a></p>'; |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
350 |
} |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
351 |
} |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
352 |
else |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
353 |
{ |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
354 |
echo $lang->get('usercp_emailpassword_field_newpass') . '<br /> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
355 |
<input type="password" name="newpass" size="30" tabindex="1" ' . ( getConfig('pw_strength_enable') == '1' ? 'onkeyup="password_score_field(this);" ' : '' ) . '/>' . ( getConfig('pw_strength_enable') == '1' ? '<span class="password-checker" style="font-weight: bold; color: #aaaaaa;"> Loading...</span>' : '' ) . ' |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
356 |
<br /> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
357 |
<br /> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
358 |
' . $lang->get('usercp_emailpassword_field_newpass_confirm') . '<br /> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
359 |
<input type="password" name="newpass_confirm" size="30" tabindex="2" /> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
360 |
' . ( getConfig('pw_strength_enable') == '1' ? '<br /><br /><div id="pwmeter"></div> |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
361 |
<small>' . $lang->get('usercp_emailpassword_msg_password_min_score') . '</small>' : '' ); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
362 |
} |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
363 |
echo '</fieldset><br />'; |
0 | 364 |
echo '<fieldset> |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
365 |
<legend>' . $lang->get('usercp_emailpassword_grp_chemail') . '</legend> |
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
366 |
' . $lang->get('usercp_emailpassword_field_newemail') . '<br /> |
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
367 |
<input type="text" value="' . ( isset($_POST['newemail']) ? htmlspecialchars($_POST['newemail']) : '' ) . '" name="newemail" size="30" tabindex="3" /> |
0 | 368 |
<br /> |
369 |
<br /> |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
370 |
' . $lang->get('usercp_emailpassword_field_newemail_confirm') . '<br /> |
133
af0f6ec48de3
Fully implemented password complexity enforcement; added encryption for passwords on registration form; some baby steps taken towards supporting international usernames - this is not working very well, we might need a hackish fix; TODO: implement password strength meter into installer UI and get international usernames 100% working
Dan
parents:
103
diff
changeset
|
371 |
<input type="text" value="' . ( isset($_POST['newemail']) ? htmlspecialchars($_POST['newemail']) : '' ) . '" name="newemail_conf" size="30" tabindex="4" /> |
0 | 372 |
</fieldset> |
373 |
<br /> |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
374 |
<div style="text-align: right;"><input type="submit" name="submit" value="' . $lang->get('etc_save_changes') . '" tabindex="5" /></div>'; |
0 | 375 |
|
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
376 |
if ( !$session->password_change_disabled ) |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
377 |
echo $session->generate_aes_form(); |
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
378 |
|
0 | 379 |
echo '</form>'; |
380 |
||
381 |
// ENCRYPTION CODE |
|
382 |
?> |
|
1079
fcc42560afe6
Added ability for authentication plugins to modify session keys (to allow invalidation when their own authentication data is changed) as well as the ability to disable the built-in password change facility
Dan
parents:
1064
diff
changeset
|
383 |
<?php if ( !$session->password_change_disabled && getConfig('pw_strength_enable') == '1' ): ?> |
0 | 384 |
<script type="text/javascript"> |
586
234ddd896555
Made encryption work in form-based logon again; modified load_component() to fetch compressed versions when possible
Dan
parents:
573
diff
changeset
|
385 |
addOnloadHook(function() |
0 | 386 |
{ |
586
234ddd896555
Made encryption work in form-based logon again; modified load_component() to fetch compressed versions when possible
Dan
parents:
573
diff
changeset
|
387 |
password_score_field(document.forms.empwform.newpass); |
234ddd896555
Made encryption work in form-based logon again; modified load_component() to fetch compressed versions when possible
Dan
parents:
573
diff
changeset
|
388 |
}); |
801
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
389 |
</script> |
586
234ddd896555
Made encryption work in form-based logon again; modified load_component() to fetch compressed versions when possible
Dan
parents:
573
diff
changeset
|
390 |
<?php endif; ?> |
0 | 391 |
<?php |
801
eb8b23f11744
Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents:
770
diff
changeset
|
392 |
echo $session->aes_javascript('empwform', 'newpass'); |
0 | 393 |
break; |
394 |
case 'Signature': |
|
395 |
if ( isset($_POST['new_sig']) ) |
|
396 |
{ |
|
397 |
$sig = $_POST['new_sig']; |
|
398 |
$sig = RenderMan::preprocess_text($sig, true, false); |
|
399 |
$sql_sig = $db->escape($sig); |
|
400 |
$q = $db->sql_query('UPDATE '.table_prefix.'users SET signature=\'' . $sql_sig . '\' WHERE user_id=' . $session->user_id . ';'); |
|
401 |
if ( !$q ) |
|
402 |
$db->_die(); |
|
403 |
$session->signature = $sig; |
|
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
404 |
echo '<div class="info-box" style="margin: 0 0 10px 0;">' . $lang->get('usercp_signature_msg_saved') . '</div>'; |
0 | 405 |
} |
406 |
echo '<form action="'.makeUrl($paths->fullpage).'" method="post">'; |
|
74
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
36
diff
changeset
|
407 |
echo $template->tinymce_textarea('new_sig', htmlspecialchars($session->signature)); |
362
02d315d1cc58
Started localization on User CP. Localized pagination, password strength, and various other small widgets. Fixed bug in path manager causing return of fullpage from get_page_id_from_url() even when namespace is Special.
Dan
parents:
343
diff
changeset
|
408 |
echo '<input type="submit" value="' . $lang->get('usercp_signature_btn_save') . '" />'; |
0 | 409 |
echo '</form>'; |
410 |
break; |
|
411 |
case "Profile": |
|
1064
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
412 |
case 'Home': |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
413 |
|
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
414 |
global $email; |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
415 |
$userpage_id = $paths->nslist['User'] . sanitize_page_id($session->username); |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
416 |
$userpage_exists = ( isPage($userpage_id) ) ? '' : ' class="wikilink-nonexistent"'; |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
417 |
$user_page = makeUrlNS('User', sanitize_page_id($session->username)); |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
418 |
$site_admin = $email->encryptEmail(getConfig('contact_email'), '', '', $lang->get('usercp_intro_para3_admin_link')); |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
419 |
|
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
420 |
echo '<h3 style="margin-top: 0;">' . $lang->get('usercp_intro_heading_main', array('username' => $session->username)) . '</h3>'; |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
421 |
|
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
422 |
echo $lang->get('usercp_intro', array('userpage_link' => $user_page)); |
5a34101dfcf9
Moved User CP profile settings to front page of CP, and changed associated language
Dan
parents:
1055
diff
changeset
|
423 |
|
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
424 |
$available_ranks = $session->get_user_possible_ranks($session->user_id); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
425 |
$current_rank = $session->get_user_rank($session->user_id); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
426 |
|
0 | 427 |
if ( isset($_POST['submit']) ) |
428 |
{ |
|
429 |
$real_name = htmlspecialchars($_POST['real_name']); |
|
430 |
$real_name = $db->escape($real_name); |
|
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
431 |
|
406
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
432 |
$timezone = intval($_POST['timezone']); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
433 |
$tz_local = $timezone + 1440; |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
434 |
|
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
435 |
$dst = $db->escape($_POST['dst']); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
436 |
if ( !preg_match('/^[0-9]+;[0-9]+;[0-9]+;[0-9]+;[0-9]+$/', $dst) ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
437 |
$dst = '0;0;0;0;60'; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
438 |
|
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
439 |
$GLOBALS['dst_params'] = explode(';', $dst); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
440 |
|
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
441 |
$imaddr_aim = htmlspecialchars($_POST['imaddr_aim']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
442 |
$imaddr_aim = $db->escape($imaddr_aim); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
443 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
444 |
$imaddr_msn = htmlspecialchars($_POST['imaddr_msn']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
445 |
$imaddr_msn = $db->escape($imaddr_msn); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
446 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
447 |
$imaddr_yahoo = htmlspecialchars($_POST['imaddr_yahoo']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
448 |
$imaddr_yahoo = $db->escape($imaddr_yahoo); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
449 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
450 |
$imaddr_xmpp = htmlspecialchars($_POST['imaddr_xmpp']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
451 |
$imaddr_xmpp = $db->escape($imaddr_xmpp); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
452 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
453 |
$homepage = htmlspecialchars($_POST['homepage']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
454 |
$homepage = $db->escape($homepage); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
455 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
456 |
$location = htmlspecialchars($_POST['location']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
457 |
$location = $db->escape($location); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
458 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
459 |
$occupation = htmlspecialchars($_POST['occupation']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
460 |
$occupation = $db->escape($occupation); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
461 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
462 |
$hobbies = htmlspecialchars($_POST['hobbies']); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
463 |
$hobbies = $db->escape($hobbies); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
464 |
|
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
465 |
$date_format = $db->escape(htmlspecialchars($_POST['date_format'])); |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
466 |
$time_format = $db->escape(htmlspecialchars($_POST['time_format'])); |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
467 |
|
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
468 |
$email_public = ( isset($_POST['email_public']) ) ? '1' : '0'; |
555
ac4c6a7f01d8
Added user preference for disabling visual effects in Javascript applets; added re-import button to installed plugins
Dan
parents:
541
diff
changeset
|
469 |
$disable_js_fx = ( isset($_POST['disable_js_fx']) ) ? '1' : '0'; |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
470 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
471 |
$session->real_name = $real_name; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
472 |
|
32
4d87aad3c4c0
Finished everything on the TODO list (yay!); several CSS cleanups; tons more changes in this commit - see the patch for details
Dan
parents:
31
diff
changeset
|
473 |
if ( !preg_match('/@([a-z0-9-]+)(\.([a-z0-9-\.]+))?/', $imaddr_msn) && !empty($imaddr_msn) ) |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
474 |
{ |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
475 |
$imaddr_msn = "$imaddr_msn@hotmail.com"; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
476 |
} |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
477 |
|
829
87fcc7175c61
Fixed https urls not allowed in user_extra CPs; fixed nonworking password reset in admin CP
Dan
parents:
801
diff
changeset
|
478 |
if ( !preg_match('#^https?://#', $homepage) ) |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
479 |
{ |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
480 |
$homepage = "http://$homepage"; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
481 |
} |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
482 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
483 |
if ( !preg_match('/^http:\/\/([a-z0-9-.]+)([A-z0-9@#\$%\&:;<>,\.\?=\+\(\)\[\]_\/\\\\]*?)$/i', $homepage) ) |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
484 |
{ |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
485 |
$homepage = ''; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
486 |
} |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
487 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
488 |
$session->user_extra['user_aim'] = $imaddr_aim; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
489 |
$session->user_extra['user_msn'] = $imaddr_msn; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
490 |
$session->user_extra['user_xmpp'] = $imaddr_xmpp; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
491 |
$session->user_extra['user_yahoo'] = $imaddr_yahoo; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
492 |
$session->user_extra['user_homepage'] = $homepage; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
493 |
$session->user_extra['user_location'] = $location; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
494 |
$session->user_extra['user_job'] = $occupation; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
495 |
$session->user_extra['user_hobbies'] = $hobbies; |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
496 |
$session->user_extra['email_public'] = intval($email_public); |
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
497 |
$session->date_format = $date_format; |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
498 |
$session->time_format = $time_format; |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
499 |
|
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
500 |
// user title |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
501 |
$user_title_col = ''; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
502 |
if ( $session->get_permissions('custom_user_title') && isset($_POST['user_title']) ) |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
503 |
{ |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
504 |
$user_title = trim($_POST['user_title']); |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
505 |
if ( empty($user_title) ) |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
506 |
{ |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
507 |
$colval = 'NULL'; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
508 |
$session->user_title = null; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
509 |
} |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
510 |
else |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
511 |
{ |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
512 |
$colval = "'" . $db->escape($user_title) . "'"; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
513 |
$session->user_title = $user_title; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
514 |
} |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
515 |
$user_title_col = ", user_title = $colval"; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
516 |
} |
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
517 |
$user_rank_col = ''; |
953
323c4cd1aa37
Made some more changes to the way namespaces are handled, for optimization purposes. This is a bit of a structural reorganization: $paths->pages is obsoleted in its entirety; calculating page existence and metadata is now the job of the Namespace_* backend class. There are many things in PageProcessor that should be reorganized, and page actions in general should really be rethought. This is probably the beginning of a long process that will be taking place over the course of the betas.
Dan
parents:
922
diff
changeset
|
518 |
if ( isset($_POST['user_rank']) && intval($_POST['user_rank']) != $current_rank['rank_id'] && count($available_ranks) > 1 ) |
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
519 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
520 |
if ( $_POST['user_rank'] == 'NULL' ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
521 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
522 |
$user_rank_col = ", user_rank = NULL, user_rank_userset = 0"; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
523 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
524 |
else |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
525 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
526 |
$new_rank = intval($_POST['user_rank']); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
527 |
$rank_allowed = false; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
528 |
foreach ( $available_ranks as $rank ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
529 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
530 |
if ( $rank['rank_id'] == $new_rank ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
531 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
532 |
$rank_allowed = true; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
533 |
break; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
534 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
535 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
536 |
if ( $rank_allowed ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
537 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
538 |
$user_rank_col = ", user_rank = $new_rank, user_rank_userset = 1"; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
539 |
// hack |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
540 |
$current_rank['rank_id'] = $new_rank; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
541 |
$cache->purge('ranks'); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
542 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
543 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
544 |
} |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
545 |
|
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
546 |
$q = $db->sql_query('UPDATE '.table_prefix."users SET real_name='$real_name', user_timezone = {$tz_local}, user_dst = '$dst'{$user_title_col}{$user_rank_col} WHERE user_id=$session->user_id;"); |
0 | 547 |
if ( !$q ) |
548 |
$db->_die(); |
|
549 |
||
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
550 |
$q = $db->sql_query('UPDATE '.table_prefix."users_extra SET user_aim='$imaddr_aim',user_yahoo='$imaddr_yahoo',user_msn='$imaddr_msn', |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
551 |
user_xmpp='$imaddr_xmpp',user_homepage='$homepage',user_location='$location',user_job='$occupation', |
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
552 |
user_hobbies='$hobbies',email_public=$email_public,disable_js_fx=$disable_js_fx,date_format='$date_format', |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
553 |
time_format='$time_format' |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
554 |
WHERE user_id=$session->user_id;"); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
555 |
|
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
556 |
if ( !$q ) |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
557 |
$db->_die(); |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
558 |
|
372
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
559 |
// verify language id |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
560 |
$lang_id = strval(intval($_POST['lang_id'])); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
561 |
$q = $db->sql_query('SELECT 1 FROM ' . table_prefix . 'language WHERE lang_id = ' . $lang_id . ';'); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
562 |
if ( !$q ) |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
563 |
$db->_die(); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
564 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
565 |
if ( $db->numrows() > 0 ) |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
566 |
{ |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
567 |
$db->free_result(); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
568 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
569 |
// unload / reload $lang, this verifies that the selected language works |
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
570 |
// enano should die a violent death if the language fails to load |
372
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
571 |
unset($GLOBALS['lang']); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
572 |
unset($lang); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
573 |
$lang_id = intval($lang_id); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
574 |
$GLOBALS['lang'] = new Language($lang_id); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
575 |
global $lang; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
576 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
577 |
$q = $db->sql_query('UPDATE ' . table_prefix . 'users SET user_lang = ' . $lang_id . " WHERE user_id = {$session->user_id};"); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
578 |
if ( !$q ) |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
579 |
$db->_die(); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
580 |
} |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
581 |
else |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
582 |
{ |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
583 |
$db->free_result(); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
584 |
} |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
585 |
|
573
43e7254afdb4
Renamed some functions (that were new in this release anyway) due to compatibility broken with PunBB bridge
Dan
parents:
564
diff
changeset
|
586 |
generate_cache_userranks(); |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
587 |
|
364 | 588 |
echo '<div class="info-box" style="margin: 0 0 10px 0;">' . $lang->get('usercp_publicinfo_msg_save_success') . '</div>'; |
0 | 589 |
} |
372
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
590 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
591 |
$lang_box = '<select name="lang_id">'; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
592 |
$q = $db->sql_query('SELECT lang_id, lang_name_native FROM ' . table_prefix . "language;"); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
593 |
if ( !$q ) |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
594 |
$db->_die(); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
595 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
596 |
while ( $row = $db->fetchrow_num() ) |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
597 |
{ |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
598 |
list($lang_id, $lang_name) = $row; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
599 |
$lang_name = htmlspecialchars($lang_name); |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
600 |
$selected = ( $lang->lang_id == $lang_id ) ? ' selected="selected"' : ''; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
601 |
$lang_box .= "<option value=\"$lang_id\"$selected>$lang_name</option>"; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
602 |
} |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
603 |
|
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
604 |
$lang_box .= '</select>'; |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
605 |
|
406
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
606 |
$tz_select = '<select name="timezone">'; |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
607 |
$tz_list = $lang->get('tz_list'); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
608 |
try |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
609 |
{ |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
610 |
$tz_list = enano_json_decode($tz_list); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
611 |
} |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
612 |
catch(Exception $e) |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
613 |
{ |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
614 |
die("Caught exception decoding timezone data: <pre>$e</pre>"); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
615 |
} |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
616 |
foreach ( $tz_list as $key => $i ) |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
617 |
{ |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
618 |
$i = ($i * 60); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
619 |
$title = $lang->get("tz_title_{$key}"); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
620 |
$hrs = $lang->get("tz_hrs_{$key}"); |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
621 |
$selected = ( $i == $timezone ) ? ' selected="selected"' : ''; |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
622 |
$tz_select .= "<option value=\"$i\"$selected>$title</option>"; |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
623 |
} |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
624 |
$tz_select .= '</select>'; |
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
625 |
|
0 | 626 |
echo '<form action="'.makeUrl($paths->fullpage).'" method="post">'; |
627 |
?> |
|
628 |
<div class="tblholder"> |
|
629 |
<table border="0" cellspacing="1" cellpadding="4"> |
|
630 |
<tr> |
|
364 | 631 |
<th colspan="2"><?php echo $lang->get('usercp_publicinfo_heading_main'); ?></th> |
0 | 632 |
</tr> |
633 |
<tr> |
|
364 | 634 |
<td colspan="2" class="row3"><?php echo $lang->get('usercp_publicinfo_note_optional'); ?></td> |
0 | 635 |
</tr> |
636 |
<tr> |
|
364 | 637 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_realname'); ?></td> |
0 | 638 |
<td class="row1" style="width: 50%;"><input type="text" name="real_name" value="<?php echo $session->real_name; ?>" size="30" /></td> |
639 |
</tr> |
|
640 |
<tr> |
|
372
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
641 |
<td class="row2"><?php echo $lang->get('usercp_publicinfo_field_language') . '<br /><small>' . $lang->get('usercp_publicinfo_field_language_hint') . '</small>'; ?></td> |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
642 |
<td class="row1"><?php echo $lang_box; ?></td> |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
643 |
</tr> |
5bd429428101
A number of scattered changes. Profiler added and only enabled in debug mode (currently on), but awfully useful for fixing performance in the future. Started work on Admin:LangManager
Dan
parents:
364
diff
changeset
|
644 |
<tr> |
364 | 645 |
<td class="row2"><?php echo $lang->get('usercp_publicinfo_field_changetheme_title'); ?></td> |
646 |
<td class="row1"><?php echo $lang->get('usercp_publicinfo_field_changetheme_hint'); ?> <a href="<?php echo makeUrlNS('Special', 'ChangeStyle/' . $paths->page); ?>" onclick="ajaxChangeStyle(); return false;"><?php echo $lang->get('usercp_publicinfo_field_changetheme'); ?></a></td> |
|
0 | 647 |
</tr> |
648 |
<tr> |
|
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
649 |
<td class="row2"><?php echo $lang->get('usercp_publicinfo_field_dateformat'); ?></td> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
650 |
<td class="row1"> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
651 |
<select name="date_format"> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
652 |
<?php |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
653 |
foreach ( array(DATE_1, DATE_2, DATE_3, DATE_4) as $format ) |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
654 |
{ |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
655 |
$selected = $format === $session->date_format ? ' selected="selected"' : ''; |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
656 |
echo '<option value="' . $format . '"' . $selected . '>' . enano_date($format) . '</option>'; |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
657 |
} |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
658 |
?> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
659 |
</select> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
660 |
</td> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
661 |
</tr> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
662 |
<tr> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
663 |
<td class="row2"><?php echo $lang->get('usercp_publicinfo_field_timeformat'); ?></td> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
664 |
<td class="row1"> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
665 |
<select name="time_format"> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
666 |
<?php |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
667 |
foreach ( array(TIME_12_NS, TIME_12_S, TIME_24_NS, TIME_24_S) as $format ) |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
668 |
{ |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
669 |
$selected = $format === $session->time_format ? ' selected="selected"' : ''; |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
670 |
echo '<option value="' . $format . '"' . $selected . '>' . enano_date($format) . '</option>'; |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
671 |
} |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
672 |
?> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
673 |
</select> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
674 |
</td> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
675 |
</tr> |
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
parents:
1079
diff
changeset
|
676 |
<tr> |
922
d6f391475bb9
[QA] User CP: rearranged some things to fix overly tall cells and/or sidescrolling
Dan
parents:
893
diff
changeset
|
677 |
<td class="row3" colspan="2"><?php echo $lang->get('usercp_publicinfo_field_timezone'); ?> <?php echo $tz_select; ?><br /><small><?php echo $lang->get('usercp_publicinfo_field_timezone_hint'); ?></small></td> |
406
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
678 |
</tr> |
711
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
679 |
<tr> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
680 |
<td class="row2"><?php echo $lang->get('usercp_publicinfo_field_dst'); ?></td> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
681 |
<td class="row1"> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
682 |
<select name="dst"> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
683 |
<?php |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
684 |
global $dst_profiles, $dst_params; |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
685 |
$user_dst = implode(';', $dst_params); |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
686 |
foreach ( $dst_profiles as $region => $data ) |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
687 |
{ |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
688 |
$selected = ( $data === $user_dst ) ? ' selected="selected"' : ''; |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
689 |
echo '<option value="' . $data . '"' . $selected . '>' . $lang->get("tz_dst_$region") . '</option>'; |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
690 |
} |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
691 |
?> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
692 |
</select> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
693 |
</td> |
f70d764aab33
Added initial support for DST. Rules are defined in constants.php and are extensible.
Dan
parents:
685
diff
changeset
|
694 |
</tr> |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
695 |
<?php |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
696 |
if ( $session->get_permissions('custom_user_title') ): |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
697 |
?> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
698 |
<tr> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
699 |
<td class="row2"> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
700 |
<?php echo $lang->get('usercp_publicinfo_field_usertitle_title'); ?><br /> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
701 |
<small><?php echo $lang->get('usercp_publicinfo_field_usertitle_hint'); ?></small> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
702 |
</td> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
703 |
<td class="row1"> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
704 |
<input type="text" name="user_title" value="<?php echo htmlspecialchars($session->user_title); ?>" /> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
705 |
</td> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
706 |
</tr> |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
707 |
<?php |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
708 |
endif; |
770
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
709 |
if ( count($available_ranks) > 1 ): |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
710 |
?> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
711 |
<tr> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
712 |
<td class="row2"> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
713 |
<?php echo $lang->get('usercp_publicinfo_field_rank_title'); ?><br /> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
714 |
<small><?php echo $lang->get('usercp_publicinfo_field_rank_hint'); ?></small> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
715 |
</td> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
716 |
<td class="row1"> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
717 |
<select name="user_rank"> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
718 |
<?php |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
719 |
foreach ( $available_ranks as $rank ) |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
720 |
{ |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
721 |
$sel = ( $rank['rank_id'] == $current_rank['rank_id'] ) ? ' selected="selected"' : ''; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
722 |
echo '<option' . $sel . ' value="' . $rank['rank_id'] . '" style="' . htmlspecialchars($rank['rank_style']) . '">'; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
723 |
echo htmlspecialchars($lang->get($rank['rank_title'])); |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
724 |
echo '</option>'; |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
725 |
} |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
726 |
?> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
727 |
</select> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
728 |
</td> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
729 |
</tr> |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
730 |
<?php |
62fed244fa1c
Fixed timezone preference setting not fully implemented; added ability for users to select their own rank from a list of possible ranks based on group membership and user level
Dan
parents:
741
diff
changeset
|
731 |
endif; |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
536
diff
changeset
|
732 |
?> |
406
7468a663315f
Added some basic timezone support; DST support is still to come.
Dan
parents:
389
diff
changeset
|
733 |
<tr> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
734 |
<th class="subhead" colspan="2"> |
364 | 735 |
<?php echo $lang->get('usercp_publicinfo_th_im'); ?> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
736 |
</th> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
737 |
<tr> |
364 | 738 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_aim'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
739 |
<td class="row1" style="width: 50%;"><input type="text" name="imaddr_aim" value="<?php echo $session->user_extra['user_aim']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
740 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
741 |
<tr> |
364 | 742 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_wlm'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
743 |
<td class="row1" style="width: 50%;"><input type="text" name="imaddr_msn" value="<?php echo $session->user_extra['user_msn']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
744 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
745 |
<tr> |
364 | 746 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_yim'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
747 |
<td class="row1" style="width: 50%;"><input type="text" name="imaddr_yahoo" value="<?php echo $session->user_extra['user_yahoo']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
748 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
749 |
<tr> |
364 | 750 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_xmpp'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
751 |
<td class="row1" style="width: 50%;"><input type="text" name="imaddr_xmpp" value="<?php echo $session->user_extra['user_xmpp']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
752 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
753 |
<tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
754 |
<th class="subhead" colspan="2"> |
364 | 755 |
<?php echo $lang->get('usercp_publicinfo_th_contact'); ?> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
756 |
</th> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
757 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
758 |
<tr> |
364 | 759 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_homepage'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
760 |
<td class="row1" style="width: 50%;"><input type="text" name="homepage" value="<?php echo $session->user_extra['user_homepage']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
761 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
762 |
<tr> |
364 | 763 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_location'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
764 |
<td class="row1" style="width: 50%;"><input type="text" name="location" value="<?php echo $session->user_extra['user_location']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
765 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
766 |
<tr> |
364 | 767 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_job'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
768 |
<td class="row1" style="width: 50%;"><input type="text" name="occupation" value="<?php echo $session->user_extra['user_job']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
769 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
770 |
<tr> |
364 | 771 |
<td class="row2" style="width: 50%;"><?php echo $lang->get('usercp_publicinfo_field_hobbies'); ?></td> |
31
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
772 |
<td class="row1" style="width: 50%;"><input type="text" name="hobbies" value="<?php echo $session->user_extra['user_hobbies']; ?>" size="30" /></td> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
773 |
</tr> |
dc8741857bde
Finished Special:Preferences/Profile page! Only the wikitext parser cleanup left, yay!
Dan
parents:
0
diff
changeset
|
774 |
<tr> |
922
d6f391475bb9
[QA] User CP: rearranged some things to fix overly tall cells and/or sidescrolling
Dan
parents:
893
diff
changeset
|
775 |
<td class="row2" style="width: 50%;"><label for="chk_email_public"><?php echo $lang->get('usercp_publicinfo_field_email_public'); ?></label></td> |
d6f391475bb9
[QA] User CP: rearranged some things to fix overly tall cells and/or sidescrolling
Dan
parents:
893
diff
changeset
|
776 |
<td class="row1" style="width: 50%;"><label><input type="checkbox" id="chk_email_public" name="email_public" <?php if ($session->user_extra['email_public'] == 1) echo 'checked="checked"'; ?> size="30" /> <small><?php echo $lang->get('usercp_publicinfo_field_email_public_hint'); ?></small></label></td> |
0 | 777 |
</tr> |
778 |
<tr> |
|
922
d6f391475bb9
[QA] User CP: rearranged some things to fix overly tall cells and/or sidescrolling
Dan
parents:
893
diff
changeset
|
779 |
<td class="row2" style="width: 50%;"><label for="chk_jsfx"><?php echo $lang->get('usercp_publicinfo_field_jsfx'); ?></label></td> |
d6f391475bb9
[QA] User CP: rearranged some things to fix overly tall cells and/or sidescrolling
Dan
parents:
893
diff
changeset
|
780 |
<td class="row1" style="width: 50%;"><label><input type="checkbox" id="chk_jsfx" name="disable_js_fx" <?php if ($session->user_extra['disable_js_fx'] == 1) echo 'checked="checked"'; ?> size="30" /> <small><?php echo $lang->get('usercp_publicinfo_field_jsfx_hint'); ?></small></label></td> |
555
ac4c6a7f01d8
Added user preference for disabling visual effects in Javascript applets; added re-import button to installed plugins
Dan
parents:
541
diff
changeset
|
781 |
</tr> |
ac4c6a7f01d8
Added user preference for disabling visual effects in Javascript applets; added re-import button to installed plugins
Dan
parents:
541
diff
changeset
|
782 |
<tr> |
0 | 783 |
<th class="subhead" colspan="2"> |
364 | 784 |
<input type="submit" name="submit" value="<?php echo $lang->get('usercp_publicinfo_btn_save'); ?>" /> |
0 | 785 |
</th> |
786 |
</tr> |
|
787 |
</table> |
|
788 |
</div> |
|
789 |
<?php |
|
1083
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
790 |
// CSRF protection |
ef2dbcac5d56
SECURITY: UCP: Added CSRF protection on Profile (unneeded on EmailPassword due to USER_LEVEL_CHPREF requirement)
Dan
parents:
1081
diff
changeset
|
791 |
echo '<input type="hidden" name="cstok" value="' . $session->csrf_token . '" />'; |
0 | 792 |
echo '</form>'; |
793 |
break; |
|
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
794 |
case 'Avatar': |
835 | 795 |
if ( getConfig('avatar_enable', 0) !== 1 ) |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
796 |
{ |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
797 |
echo '<div class="error-box"><b>' . $lang->get('usercp_avatar_err_disabled_title') . '</b><br />' . $lang->get('usercp_avatar_err_disabled_body') . '</div>'; |
835 | 798 |
break; |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
799 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
800 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
801 |
if ( isset($_POST['submit']) ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
802 |
{ |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
803 |
list($has_avi, $avi_type) = avatar_post($session->user_id); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
804 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
805 |
else |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
806 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
807 |
// Determine current avatar |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
808 |
$q = $db->sql_query('SELECT user_has_avatar, avatar_type FROM ' . table_prefix . 'users WHERE user_id = ' . $session->user_id . ';'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
809 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
810 |
$db->_die('Avatar CP selecting user\'s avatar data'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
811 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
812 |
list($has_avi, $avi_type) = $db->fetchrow_num(); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
813 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
814 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
815 |
?> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
816 |
<script type="text/javascript"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
817 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
818 |
function avatar_select_field(elParent) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
819 |
{ |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
820 |
$('td#avatar_upload_btns > div:visible').hide('blind'); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
821 |
switch(elParent.value) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
822 |
{ |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
823 |
case 'set_http': |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
824 |
$('#avatar_upload_http').show('blind'); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
825 |
break; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
826 |
case 'set_file': |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
827 |
$('#avatar_upload_file').show('blind'); |
621
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
828 |
break; |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
829 |
case 'set_gravatar': |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
830 |
$('#avatar_upload_gravatar').show('blind'); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
831 |
break; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
832 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
833 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
834 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
835 |
</script> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
836 |
<?php |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
837 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
838 |
echo '<form action="' . makeUrl($paths->fullpage) . '" method="post" enctype="multipart/form-data">'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
839 |
echo '<div class="tblholder">'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
840 |
echo '<table border="0" cellspacing="1" cellpadding="4">'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
841 |
echo '<tr> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
842 |
<th colspan="2"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
843 |
' . $lang->get('usercp_avatar_table_title') . ' |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
844 |
</th> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
845 |
</tr>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
846 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
847 |
echo '<tr> |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
848 |
<td class="row2" style="width: 150px;"> |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
849 |
' . $lang->get('usercp_avatar_label_current') . ' |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
850 |
</td> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
851 |
<td class="row1" style="text-align: center;">'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
852 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
853 |
if ( $has_avi == 1 ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
854 |
{ |
621
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
855 |
echo '<img alt="' . $lang->get('usercp_avatar_image_alt', array('username' => $session->username)) . '" src="' . make_avatar_url($session->user_id, $avi_type, $session->email) . '" />'; |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
856 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
857 |
else |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
858 |
{ |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
859 |
echo $lang->get('usercp_avatar_image_none'); |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
860 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
861 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
862 |
echo ' </td> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
863 |
</tr>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
864 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
865 |
echo ' <tr> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
866 |
<td class="row2"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
867 |
' . $lang->get('usercp_avatar_lbl_change') . ' |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
868 |
</td> |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
869 |
<td class="row1" id="avatar_upload_btns"> |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
870 |
<label><input type="radio" name="avatar_action" value="keep" onclick="avatar_select_field(this);" checked="checked" /> ' . $lang->get('usercp_avatar_lbl_keep') . '</label><br /> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
871 |
<label><input type="radio" name="avatar_action" value="remove" onclick="avatar_select_field(this);" /> ' . $lang->get('usercp_avatar_lbl_remove') . '</label><br />'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
872 |
if ( getConfig('avatar_upload_http') == '1' ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
873 |
{ |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
874 |
echo ' <label><input type="radio" name="avatar_action" value="set_http" onclick="avatar_select_field(this);" /> ' . $lang->get('usercp_avatar_lbl_set_http') . '</label><br /> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
875 |
<div id="avatar_upload_http" style="display: none; margin: 10px 0 0 2.2em;"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
876 |
' . $lang->get('usercp_avatar_lbl_url') . ' <input type="text" name="avatar_http_url" size="40" value="http://" /><br /> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
877 |
<small>' . $lang->get('usercp_avatar_lbl_url_desc') . ' ' . $lang->get('usercp_avatar_limits') . '</small> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
878 |
</div>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
879 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
880 |
if ( getConfig('avatar_upload_file') == '1' ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
881 |
{ |
621
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
882 |
echo ' <label><input type="radio" name="avatar_action" value="set_file" onclick="avatar_select_field(this);" /> ' . $lang->get('usercp_avatar_lbl_set_file') . '</label><br /> |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
883 |
<div id="avatar_upload_file" style="display: none; margin: 10px 0 0 2.2em;"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
884 |
' . $lang->get('usercp_avatar_lbl_file') . ' <input type="file" name="avatar_file" size="40" /><br /> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
885 |
<small>' . $lang->get('usercp_avatar_lbl_file_desc') . ' ' . $lang->get('usercp_avatar_limits') . '</small> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
886 |
</div>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
887 |
} |
621
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
888 |
if ( getConfig('avatar_upload_gravatar') == '1' ) |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
889 |
{ |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
890 |
$rating_images = array('g' => '0', 'pg' => '1', 'r' => '2', 'x' => '3'); |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
891 |
$rating_id = $rating_images[ getConfig('gravatar_rating', 'g') ]; |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
892 |
$rating_image = "http://s.gravatar.com/images/gravatars/ratings/$rating_id.gif"; |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
893 |
$max_rating = getConfig('gravatar_rating', 'g'); |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
894 |
echo ' <label><input type="radio" name="avatar_action" value="set_gravatar" onclick="avatar_select_field(this);" /> ' . $lang->get('usercp_avatar_lbl_set_gravatar') . ' <img alt=" " src="' . make_gravatar_url($session->email, 16) . '" /></label> (<a href="http://www.gravatar.com/" onclick="window.open(this); return false;">' . $lang->get('usercp_avatar_link_gravatar_info') . '</a>) |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
895 |
<div id="avatar_upload_gravatar" style="display: none; margin: 10px 0 0 2.2em;"> |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
896 |
<div style="float: left; margin-right: 5px; margin-bottom: 20px;"> |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
897 |
<img alt=" " src="' . $rating_image . '" /> |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
898 |
</div> |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
899 |
' . $lang->get("usercp_avatar_gravatar_rating_$max_rating") . ' |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
900 |
</div>'; |
68f8a9cc0a18
Added Gravatar support! And it's really configurable too.
Dan
parents:
591
diff
changeset
|
901 |
} |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
902 |
echo ' </td> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
903 |
</tr>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
904 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
905 |
echo ' <tr> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
906 |
<th class="subhead" colspan="2"> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
907 |
<input type="submit" name="submit" value="' . $lang->get('etc_save_changes') . '" /> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
908 |
</th> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
909 |
</tr>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
910 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
911 |
echo '</table> |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
912 |
</div>'; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
913 |
|
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
322
diff
changeset
|
914 |
break; |
0 | 915 |
default: |
916 |
$good = false; |
|
893
b24601274cd2
SpecialUserPrefs: fixed: userprefs_body hook only allowed first loaded plugin to work
Dan
parents:
836
diff
changeset
|
917 |
$code = $plugins->setHook('userprefs_body', true); |
0 | 918 |
foreach ( $code as $cmd ) |
919 |
{ |
|
315
f49e3c8b638c
Fixed focus of AJAX login form fields in IE; removed stale/unused call to $template->makeParserText() in paginate_array(); added hook page_create_request to possibly help control creation of pages of certain namespaces from plugins; fixed critical bug in user CP that prevented plugins from adding custom CP modules
Dan
parents:
286
diff
changeset
|
920 |
if ( eval($cmd) ) |
0 | 921 |
$good = true; |
922 |
} |
|
923 |
if ( !$good ) |
|
924 |
{ |
|
925 |
echo '<h3>Invalid module</h3> |
|
926 |
<p>Userprefs module "'.$section.'" not found.</p>'; |
|
927 |
} |
|
928 |
break; |
|
929 |
} |
|
930 |
||
931 |
$template->footer(); |
|
932 |
} |
|
933 |
||
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
934 |
// Avatar POST processor |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
935 |
function avatar_post($user_id, $quiet = false) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
936 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
937 |
global $db, $session, $paths, $template, $plugins; // Common objects |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
938 |
global $lang; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
939 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
940 |
$had_a_boo_boo = true; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
941 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
942 |
// Determine current avatar |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
943 |
$q = $db->sql_query('SELECT user_has_avatar, avatar_type FROM ' . table_prefix . 'users WHERE user_id = ' . $session->user_id . ';'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
944 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
945 |
$db->_die('Avatar CP selecting user\'s avatar data'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
946 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
947 |
list($has_avi, $avi_type) = $db->fetchrow_num(); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
948 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
949 |
$action = ( isset($_POST['avatar_action']) ) ? $_POST['avatar_action'] : 'keep'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
950 |
$avi_path = ENANO_ROOT . '/' . getConfig('avatar_directory') . '/' . $user_id . '.' . $avi_type; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
951 |
switch($action) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
952 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
953 |
case 'keep': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
954 |
default: |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
955 |
$had_a_boo_boo = false; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
956 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
957 |
case 'remove': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
958 |
if ( $has_avi ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
959 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
960 |
// First switch the avatar off |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
961 |
$q = $db->sql_query('UPDATE ' . table_prefix . 'users SET user_has_avatar = 0 WHERE user_id = ' . $user_id . ';'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
962 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
963 |
$db->_die('Avatar CP switching user avatar off'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
964 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
965 |
if ( @unlink($avi_path) ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
966 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
967 |
$quiet || print '<div class="info-box">' . $lang->get('usercp_avatar_delete_success') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
968 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
969 |
$has_avi = 0; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
970 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
971 |
$had_a_boo_boo = false; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
972 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
973 |
case 'set_http': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
974 |
case 'set_file': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
975 |
// Hackish way to preserve the UNIX philosophy of reusing as much code as possible |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
976 |
if ( $action == 'set_http' ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
977 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
978 |
// Check if this action is enabled |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
979 |
if ( getConfig('avatar_upload_http', 1) !== 1 ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
980 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
981 |
// non-localized, only appears on hack attempt |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
982 |
echo '<div class="error-box">Uploads over HTTP are disabled.</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
983 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
984 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
985 |
// Download the file |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
986 |
require_once( ENANO_ROOT . '/includes/http.php' ); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
987 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
988 |
if ( !preg_match('/^http:\/\/((?:[a-z0-9-\.]+|\[[a-f0-9:]+\]))(:([0-9]+))?\/(.+)$/', $_POST['avatar_http_url'], $match) ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
989 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
990 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_invalid_url') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
991 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
992 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
993 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
994 |
$hostname = $match[1]; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
995 |
$uri = '/' . $match[4]; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
996 |
$port = ( $match[3] ) ? intval($match[3]) : 80; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
997 |
$max_size = intval(getConfig('avatar_max_size')); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
998 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
999 |
// Get temporary file |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1000 |
$tempfile = tempnam(false, "enanoavatar_{$user_id}"); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1001 |
if ( !$tempfile ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1002 |
echo '<div class="error-box">Error getting temp file.</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1003 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1004 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1005 |
$request = new Request_HTTP($hostname, $uri, 'GET', $port); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1006 |
// max download size: 2MB, keeps things reasonable |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1007 |
// note: we'll try to scale the image down before checking filesize |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1008 |
$result = $request->write_response_to_file($tempfile, 1160, 2097152); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1009 |
if ( !$result || $request->response_code != HTTP_OK ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1010 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1011 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1012 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_bad_write') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1013 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1014 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1015 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1016 |
// Response written. Proceed to validation... |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1017 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1018 |
else |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1019 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1020 |
// Check if this action is enabled |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1021 |
if ( getConfig('avatar_upload_file', 1) !== 1 ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1022 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1023 |
// non-localized, only appears on hack attempt |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1024 |
echo '<div class="error-box">Uploads from the browser are disabled.</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1025 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1026 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1027 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1028 |
$max_size = intval(getConfig('avatar_max_size')); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1029 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1030 |
$file =& $_FILES['avatar_file']; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1031 |
$tempfile =& $file['tmp_name']; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1032 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1033 |
$file_type = get_image_filetype($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1034 |
if ( !$file_type ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1035 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1036 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1037 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_bad_filetype') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1038 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1039 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1040 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1041 |
$avi_path_new = ENANO_ROOT . '/' . getConfig('avatar_directory') . '/' . $user_id . '.' . $file_type; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1042 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1043 |
// The file type is good - validate dimensions and animation |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1044 |
switch($file_type) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1045 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1046 |
case 'png': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1047 |
$is_animated = is_png_animated($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1048 |
$dimensions = png_get_dimensions($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1049 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1050 |
case 'gif': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1051 |
$is_animated = is_gif_animated($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1052 |
$dimensions = gif_get_dimensions($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1053 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1054 |
case 'jpg': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1055 |
$is_animated = false; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1056 |
$dimensions = jpg_get_dimensions($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1057 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1058 |
default: |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1059 |
echo '<div class="error-box">API mismatch</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1060 |
break 2; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1061 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1062 |
// Did we get invalid size data? If so the image is probably corrupt. |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1063 |
if ( !$dimensions ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1064 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1065 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1066 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_corrupt_image') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1067 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1068 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1069 |
// Is the image animated? |
1095
5f623b0de18e
Avatars: fixed animated avatars rejected even when allowed in ACP
Dan
parents:
1086
diff
changeset
|
1070 |
if ( $is_animated && getConfig('avatar_enable_anim', 0) !== 1 ) |
1086
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1071 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1072 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1073 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_disallowed_animation') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1074 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1075 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1076 |
// Check image dimensions |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1077 |
list($image_x, $image_y) = $dimensions; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1078 |
$max_x = intval(getConfig('avatar_max_width')); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1079 |
$max_y = intval(getConfig('avatar_max_height')); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1080 |
if ( $image_x > $max_x || $image_y > $max_y ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1081 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1082 |
// try to scale the image |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1083 |
try |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1084 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1085 |
@rename($tempfile, "$tempfile-unscaled.$file_type"); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1086 |
$scale_result = scale_image("$tempfile-unscaled.$file_type", "$tempfile.$file_type", $max_x, $max_y, true); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1087 |
if ( $scale_result ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1088 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1089 |
if ( !(@unlink("$tempfile-unscaled.$file_type") && @rename("$tempfile.$file_type", $tempfile)) ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1090 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1091 |
// scale failed |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1092 |
@unlink("$tempfile-scale.$file_type"); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1093 |
echo '<div class="error-box">Rename failure: ' . $lang->get('usercp_avatar_too_large') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1094 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1095 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1096 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1097 |
else |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1098 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1099 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1100 |
@unlink("$tempfile-unscaled.$file_type"); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1101 |
echo '<div class="error-box">Scale failure: ' . $lang->get('usercp_avatar_too_large') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1102 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1103 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1104 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1105 |
catch ( Exception $e ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1106 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1107 |
// If we get here, the scaling process most definitely failed. |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1108 |
echo '<div class="error-box">EXCEPTION: ' . $lang->get('usercp_avatar_too_large') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1109 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1110 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1111 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1112 |
// Check file size last, so that the scale operation is considered |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1113 |
if ( filesize($tempfile) > $max_size ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1114 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1115 |
@unlink($tempfile); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1116 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_file_too_large') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1117 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1118 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1119 |
// All good! |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1120 |
@unlink($avi_path); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1121 |
if ( rename($tempfile, $avi_path_new) ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1122 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1123 |
$q = $db->sql_query('UPDATE ' . table_prefix . "users SET user_has_avatar = 1, avatar_type = '$file_type' WHERE user_id = {$user_id};"); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1124 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1125 |
$db->_die('Avatar CP updating users table after successful avatar upload'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1126 |
$has_avi = 1; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1127 |
$avi_type = $file_type; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1128 |
$quiet || print '<div class="info-box">' . $lang->get('usercp_avatar_upload_success') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1129 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1130 |
else |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1131 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1132 |
echo '<div class="error-box">' . $lang->get('usercp_avatar_move_failed') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1133 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1134 |
$had_a_boo_boo = false; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1135 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1136 |
case 'set_gravatar': |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1137 |
// set avatar to use Gravatar |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1138 |
// make sure we're allowed to do this |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1139 |
if ( getConfig('avatar_upload_gravatar') != '1' ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1140 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1141 |
// access denied |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1142 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1143 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1144 |
// first, remove old image |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1145 |
if ( $has_avi ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1146 |
{ |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1147 |
// First switch the avatar off |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1148 |
$q = $db->sql_query('UPDATE ' . table_prefix . 'users SET user_has_avatar = 0 WHERE user_id = ' . $user_id . ';'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1149 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1150 |
$db->_die('Avatar CP switching user avatar off'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1151 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1152 |
@unlink($avi_path); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1153 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1154 |
// set to gravatar mode |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1155 |
$q = $db->sql_query('UPDATE ' . table_prefix . 'users SET user_has_avatar = 1, avatar_type = \'grv\' WHERE user_id = ' . $user_id . ';'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1156 |
if ( !$q ) |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1157 |
$db->_die('Avatar CP switching user avatar off'); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1158 |
|
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1159 |
$has_avi = 1; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1160 |
$quiet || print '<div class="info-box">' . $lang->get('usercp_avatar_gravatar_success') . '</div>'; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1161 |
$had_a_boo_boo = false; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1162 |
break; |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1163 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1164 |
return array($has_avi, $avi_type, $had_a_boo_boo); |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1165 |
} |
6a59951b70e4
Avatar UCP and ACP: Ported Dynano -> jQuery; merged POST processing code. Added support for IPv6 URLs (avatar UCP and RequestHTTP).
Dan
parents:
1083
diff
changeset
|
1166 |
|
0 | 1167 |
?> |