root / branches / 1.1 / editprofile.php

View | Annotate | Download (9.6 KB)

1 24 eofredj
<?php
2 322 eofredj
/**
3 559 eofredj
 * Project:     Oxygen Bulletin Board
4 559 eofredj
 * File :       $HeadURL$
5 559 eofredj
 * Revision :   $Revision$
6 559 eofredj
 * Author :     $Author$
7 559 eofredj
 * Date :       $Date$
8 559 eofredj
 * Id :         $Id$
9 559 eofredj
 *
10 559 eofredj
 * Oxygen is free software; you can redistribute it and/or modify it
11 559 eofredj
 * under the terms of the GNU General Public License as published
12 559 eofredj
 * by the Free Software Foundation; either version 2 of the License,
13 559 eofredj
 * or (at your option) any later version.
14 559 eofredj
 *
15 559 eofredj
 * Oxygen is distributed in the hope that it will be useful, but
16 559 eofredj
 * WITHOUT ANY WARRANTY; without even the implied warranty of
17 559 eofredj
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 559 eofredj
 * GNU General Public License for more details.
19 559 eofredj
 *
20 559 eofredj
 * You should have received a copy of the GNU General Public License
21 559 eofredj
 * along with this program; if not, write to the Free Software
22 559 eofredj
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 559 eofredj
 * MA  02111-1307  USA
24 559 eofredj
 *
25 559 eofredj
 * @link http://www.o2php.com/
26 559 eofredj
 * @copyright 2002-2006 Oxygen Team.
27 559 eofredj
 * @author Eric Fredj <heltem at o2php dot com>
28 559 eofredj
 * @package o2php
29 559 eofredj
 * @version [VERSION]
30 323 eofredj
 */
31 568 eofredj
$TPL_LOAD = 'header, footer, memcp_profile_avatarurl, memcp_profile_avatarlist, tzoneselect, cp_profile, memcp_profile_notify';
32 338 eofredj
require('./header.php');
33 2 eofredj
34 27 eofredj
if($status != "Administrator") {
35 18 eofredj
        redirect("javascript:history.go(-1)");
36 2 eofredj
        message($lang['notadmin']);
37 2 eofredj
        exit;
38 2 eofredj
}
39 2 eofredj
40 27 eofredj
if($action == "profile") {
41 27 eofredj
        if(!isset($submit)) {
42 323 eofredj
                $query = $db->query(sprintf('SELECT * FROM %s WHERE uid=%d', $table['members'], $user));
43 27 eofredj
                $member = $db->fetch_assoc($query);
44 2 eofredj
45 27 eofredj
                if($member['showemail'] == "yes") {
46 27 eofredj
                        $checked['showemail'] = 'checked="checked"';
47 2 eofredj
                }
48 2 eofredj
49 27 eofredj
                if($allownotify == "yes") {
50 27 eofredj
                        if($member['emailnotify'] == "yes") {
51 27 eofredj
                                $checked['notify'] = 'checked="checked"';
52 14 eofredj
                        }
53 18 eofredj
                        eval("\$memcp_profile_notify = \"" . template("memcp_profile_notify")."\";");
54 2 eofredj
                }
55 2 eofredj
56 27 eofredj
                if($member['newsletter'] == "yes") {
57 27 eofredj
                        $checked['news'] = 'checked="checked"';
58 2 eofredj
                }
59 2 eofredj
60 27 eofredj
                if($member['u2upopup'] == "yes") {
61 27 eofredj
                        $checked['u2upopup'] = 'checked="checked"';
62 2 eofredj
                }
63 2 eofredj
64 27 eofredj
                if($member['hidden'] == "yes") {
65 27 eofredj
                        $checked['hidden'] = 'checked="checked"';
66 18 eofredj
                }
67 18 eofredj
68 27 eofredj
                if($member['hidesig'] == "yes") {
69 27 eofredj
                        $checked['hidesig'] = 'checked="checked"';
70 18 eofredj
                }
71 18 eofredj
72 27 eofredj
                if($member['hideavatar'] == "yes") {
73 27 eofredj
                        $checked['hideavatar'] = 'checked="checked"';
74 18 eofredj
                }
75 18 eofredj
76 18 eofredj
                $coochk[$member['logintime']] = "selected=\"selected\"";
77 18 eofredj
78 565 eofredj
                $currdate = gmdate($huser['timecode']);
79 2 eofredj
                eval($lang['evaloffset']);
80 2 eofredj
81 323 eofredj
                $timeseloffset = array('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4', '-3.5', '-3', '-2', '-1', '0', '1', '2', '3', '3.5', '4', '4.5', '5', '5.5', '6', '7', '8', '9', '9.5', '10', '11', '12');
82 2 eofredj
83 14 eofredj
                $tzindex = array_search($member['timeoffset'], $timeseloffset) + 1;
84 14 eofredj
85 565 eofredj
                $timesel[$tzindex] = 'selected="selected"';
86 14 eofredj
87 605 eofredj
                $pop = new wdgPopup('thememem');
88 605 eofredj
                $pop->setKeyName('id');
89 605 eofredj
                $pop->setValueName('name');
90 605 eofredj
                $pop->setValues(getThemes());
91 605 eofredj
                $pop->selected = $member['theme_id'];
92 605 eofredj
                $pop->setBlank($lang['textusedefault'], 0);
93 605 eofredj
                $themelist = $pop->render();
94 2 eofredj
95 45 eofredj
                if($dir = @opendir("lang")) {
96 45 eofredj
                        while ($thafile = readdir($dir)) {
97 45 eofredj
                                if(is_file("lang/$thafile") && preg_match('/\.lang\.php$/', $thafile)) {
98 45 eofredj
                                        $temparray[] = str_replace(".lang.php", "", $thafile);
99 2 eofredj
                                }
100 2 eofredj
                        }
101 45 eofredj
                        closedir($dir);
102 2 eofredj
                }
103 45 eofredj
                $langfileselect = popup("langfilenew", $temparray, false, "", $member['langfile']);
104 2 eofredj
105 565 eofredj
                $listday = implode('", "', array($lang['timesunprfx'], $lang['timemonprfx'], $lang['timetueprfx'], $lang['timewedprfx'], $lang['timethuprfx'], $lang['timefriprfx'], $lang['timesatprfx']));
106 565 eofredj
                $listmonth = implode('", "', $month_names);
107 565 eofredj
108 27 eofredj
                if(isset($member['bmonth'])) {
109 27 eofredj
                        $member['bmonth'] = (int) $member['bmonth'];
110 27 eofredj
                }
111 2 eofredj
112 27 eofredj
                if(isset($member['bday'])) {
113 27 eofredj
                        $member['bday'] = (int) $member['bday'];
114 27 eofredj
                }
115 565 eofredj
116 565 eofredj
                $day_names = array();
117 565 eofredj
                for($i = 1; $i < 32; $i++) {
118 565 eofredj
                        $day_names[] = $i;
119 2 eofredj
                }
120 565 eofredj
                $dayselect = newpopup('day', $day_names, array('blank' => true, 'attr' => '', 'usekey' => false), $member['bday']);
121 565 eofredj
                $monthselect = newpopup('month', $month_names, array('blank' => true, 'attr' => '', 'usekey' => true), $member['bmonth']);
122 2 eofredj
123 565 eofredj
124 565 eofredj
                if('24' == $member['timeformat']) {
125 27 eofredj
                        $check24 = 'checked="checked"';
126 27 eofredj
                } else {
127 27 eofredj
                        $check12 = 'checked="checked"';
128 2 eofredj
                }
129 2 eofredj
130 565 eofredj
                if('yes' == $settings['sigbbcode']) {
131 10 eofredj
                        $bbcodeis = $lang['textyes'];
132 27 eofredj
                } else {
133 10 eofredj
                        $bbcodeis = $lang['textno'];
134 2 eofredj
                }
135 2 eofredj
136 565 eofredj
                if('yes' == $settings['sightml']) {
137 10 eofredj
                        $htmlis = $lang['textyes'];
138 27 eofredj
                } else {
139 10 eofredj
                        $htmlis = $lang['textno'];
140 2 eofredj
                }
141 2 eofredj
142 18 eofredj
                // Change username code
143 111 eofredj
                $newname = '<input type="text" name="newusername" size="25" value="' . $member['username'] . '" />';
144 2 eofredj
145 18 eofredj
                // Custom status code
146 111 eofredj
                $custom = '<input type="text" name="newcstatus" size="40" value="' . $member['customstatus'] . '" />';
147 2 eofredj
148 18 eofredj
                $avatars = " <option value=\"\" />$lang[textnone]</option>  ";
149 111 eofredj
                if(false !== ($dir = @opendir("images/avatars"))) {
150 111 eofredj
                        while($avatar1 = readdir($dir)) {
151 111 eofredj
                                if(is_file("images/avatars/$avatar1")) {
152 111 eofredj
                                        $avatars .= " <option value=\"images/avatars/$avatar1\" />$avatar1</option>  ";
153 111 eofredj
                                }
154 2 eofredj
                        }
155 111 eofredj
                        closedir($dir);
156 2 eofredj
                }
157 24 eofredj
158 18 eofredj
                $avatars = str_replace("value=\"$member[avatar]\"", "value=\"$member[avatar]\" selected=\"selected\"", $avatars);
159 2 eofredj
160 18 eofredj
                $avatarbox = "<select name=\"avatarlist\" onchange='setimage(this);'>$avatars</select>";
161 2 eofredj
162 18 eofredj
                eval("\$cp_avatar = \"".template("memcp_profile_avatarlist")."\";");
163 18 eofredj
                eval("\$cp_avatar .= \"".template("memcp_profile_avatarurl")."\";");
164 2 eofredj
165 18 eofredj
                $navigation = "&raquo; <a href=\"cp.php\">$lang[textcp]</a> &raquo; $lang[textprofor] $member[username]";
166 18 eofredj
167 565 eofredj
                setCSS('CalendarPopup.css', 'calendar');
168 18 eofredj
                eval("\$header = \"".template("header")."\";");
169 18 eofredj
                echo $header;
170 18 eofredj
171 2 eofredj
                eval("\$offset = \"".template("tzoneselect")."\";");
172 2 eofredj
173 2 eofredj
                eval("\$profile = \"".template("cp_profile")."\";");
174 2 eofredj
                echo $profile;
175 27 eofredj
        } else {
176 111 eofredj
                $query = $db->query("SELECT * FROM $table[members] WHERE uid=" . (int) $user);
177 18 eofredj
                $member = $db->fetch_assoc($query);
178 2 eofredj
179 27 eofredj
                if(!$member['username']) {
180 2 eofredj
                        message($lang['badname']);
181 2 eofredj
                        exit;
182 2 eofredj
                }
183 2 eofredj
184 111 eofredj
                $clause = array();
185 111 eofredj
186 111 eofredj
                $newusername = addslashes(trim($newusername));
187 111 eofredj
                if('' != $newusername && $newusername != $member['username'] && !preg_match('`("|%|<|,|\||\'|' . chr(160) . ')`', $newusername)) {
188 111 eofredj
                        $query = $db->query("SELECT uid FROM $table[members] WHERE username='$newusername'");
189 111 eofredj
                        if(!$db->fetch_assoc($query)) {
190 111 eofredj
                                $clause['username'] = "username='" . $newusername . "',";
191 111 eofredj
                        } else {
192 111 eofredj
                                redirect("javascript:history.go(-1)");
193 111 eofredj
                                message($lang['alreadyreg']);
194 111 eofredj
                                exit;
195 111 eofredj
                        }
196 111 eofredj
                }
197 111 eofredj
198 27 eofredj
                if($showemail != "yes") {
199 2 eofredj
                        $showemail = "no";
200 2 eofredj
                }
201 2 eofredj
202 27 eofredj
                if($hidden != "yes") {
203 18 eofredj
                        $hidden = "no";
204 18 eofredj
                }
205 18 eofredj
206 27 eofredj
                if($hidesig != "yes") {
207 18 eofredj
                        $hidesig = "no";
208 18 eofredj
                }
209 18 eofredj
210 27 eofredj
                if($hideavatar != "yes") {
211 18 eofredj
                        $hideavatar = "no";
212 18 eofredj
                }
213 18 eofredj
214 27 eofredj
                if($newemailnotifydef != "yes" || $allownotify == "no") {
215 2 eofredj
                        $newemailnotifydef = "no";
216 2 eofredj
                }
217 2 eofredj
218 27 eofredj
                if($newsletter != "yes") {
219 2 eofredj
                        $newsletter = "no";
220 2 eofredj
                }
221 2 eofredj
222 27 eofredj
                $bday = (int) $day;
223 27 eofredj
                $bmonth = (int) $month;
224 27 eofredj
                $byear = (int) $year;
225 45 eofredj
                if(0 === $bday || 0 === $bmonth || !checkdate($bmonth, $bday, $byear)) {
226 27 eofredj
                        $bday = 'NULL';
227 27 eofredj
                        $bmonth = 'NULL';
228 27 eofredj
                        $byear = 'NULL';
229 45 eofredj
                } else if(0 === $byear) {
230 27 eofredj
                        $byear = 'NULL';
231 103 eofredj
                } else {
232 103 eofredj
                        $db->query("UPDATE $table[settings] SET value= '0' WHERE variable='birthdate'");
233 27 eofredj
                }
234 2 eofredj
235 27 eofredj
                if($avatarurl != "") {
236 18 eofredj
                        $avatar = getavatarsetting($avatarurl);
237 27 eofredj
                } else {
238 2 eofredj
                        $avatar = $avatarlist;
239 2 eofredj
                }
240 2 eofredj
241 92 eofredj
                $avatar = addslashes($avatar);
242 92 eofredj
                $memlocation = addslashes($memlocation);
243 565 eofredj
                $icq = addslashes($_POST['icq']);
244 565 eofredj
                $yahoo = addslashes($_POST['yahoo']);
245 565 eofredj
                $aim = addslashes($_POST['aim']);
246 565 eofredj
                $msn = addslashes($_POST['msn']);
247 92 eofredj
                $email = addslashes($email);
248 92 eofredj
                $site = addslashes($site);
249 565 eofredj
                $bio = addslashes($_POST['bio']);
250 111 eofredj
                $newcstatus = addslashes($newcstatus);
251 92 eofredj
                $langilenew = addslashes($langilenew);
252 565 eofredj
                $firstname = addslashes($_POST['firstname']);
253 565 eofredj
                $realname = addslashes($_POST['realname']);
254 565 eofredj
                $timeformatnew = addslashes($_POST['timeformatnew']);
255 565 eofredj
                $dateformatnew = addslashes($_POST['dateformatnew']);
256 24 eofredj
                $pppnew = (int) $pppnew;
257 24 eofredj
                $tppnew = (int) $tppnew;
258 565 eofredj
                $timeoffset = (int) $_POST['timeoffset'];
259 565 eofredj
                $cookielife = (int) $_POST['cookielife'];
260 2 eofredj
261 568 eofredj
                if('yes' == $settings['sightml']) {
262 568 eofredj
                        $bbT->handleTags('html');
263 2 eofredj
                }
264 2 eofredj
265 27 eofredj
                // Cache Smilies
266 27 eofredj
                smcwcache(true, false);
267 27 eofredj
                $smilies = $o2cache['smilies'];
268 27 eofredj
                if($smilies[0] > 0) {
269 27 eofredj
                        $bbT->addSmilies($smilies[1]);
270 27 eofredj
                }
271 27 eofredj
                $signaturehtml = $bbT->processHtml($signature);
272 27 eofredj
                $signaturehtml = $bbT->processWrap($signaturehtml);
273 27 eofredj
                $signaturehtml = $bbT->processTags($signaturehtml, true);
274 565 eofredj
                if('yes' == $settings['sightml']) {
275 565 eofredj
                        $bbT->removeTags('html');
276 565 eofredj
                }
277 27 eofredj
278 565 eofredj
                $signature = $db->textFormat($signature);
279 565 eofredj
                $signaturehtml = $db->textFormat($signaturehtml);
280 27 eofredj
281 111 eofredj
                if(!empty($newpassword)) {
282 111 eofredj
                        $clause['password'] =  "password='" . md5($newpassword) . "',";
283 111 eofredj
                }
284 27 eofredj
285 565 eofredj
                $db->query("UPDATE $table[members] SET $clause[username] $clause[password] customstatus='$newcstatus', email='$email', site='$site', aim='$aim', location='$memlocation', bio='$bio', sig=$signature, sightml=$signaturehtml, showemail='$showemail', timeoffset=$timeoffset, icq='$icq', avatar='$avatar', yahoo='$yahoo', theme='$thememem', bday=$bday, bmonth=$bmonth, byear=$byear, langfile='$langfilenew', tpp=$tppnew, ppp=$pppnew, newsletter='$newsletter', timeformat='$timeformatnew', msn='$msn', dateformat='$dateformatnew', realname='$realname', firstname='$firstname', emailnotify='$newemailnotifydef', u2upopup='$newu2upopup', hidden='$hidden', hidesig='$hidesig', hideavatar='$hideavatar', logintime=$cookielife WHERE uid=$user");
286 100 eofredj
287 629 eofredj
                redirect('member.php?action=viewpro&uid=' . urlencode($member['uid']));
288 2 eofredj
                message($lang['editedpro']);
289 2 eofredj
                exit;
290 2 eofredj
        }
291 2 eofredj
}
292 2 eofredj
293 27 eofredj
if($action == "avatargal") {
294 2 eofredj
        $navigation = "&raquo; <a href=\"cp.php\">$lang[textcp]</a> &raquo; $lang[avatartitle]";
295 2 eofredj
296 2 eofredj
        eval("\$header = \"".template("header")."\";");
297 2 eofredj
        echo $header;
298 2 eofredj
        include("include/avatargal.inc.php");
299 2 eofredj
}
300 2 eofredj
301 24 eofredj
$timing->chrono($now);
302 24 eofredj
$endtime = $timing->getchrono($now);
303 2 eofredj
$totaltime = $endtime[2];
304 2 eofredj
305 2 eofredj
eval("\$footer = \"".template("footer")."\";");
306 2 eofredj
echo $footer;