Changeset 9
- Timestamp:
- 2007-11-21 19:14:26 (5 years ago)
- Files:
-
- trunk/admin/classes/pages/Editmember.php (modified) (1 diff)
- trunk/classes/misc/Member.php (modified) (1 diff)
- trunk/classes/misc/Post.php (modified) (2 diffs)
- trunk/classes/pages/Editprofile.php (deleted)
- trunk/classes/pages/Page.php (modified) (3 diffs)
- trunk/classes/pages/Register.php (modified) (1 diff)
- trunk/classes/pages/Reply.php (modified) (1 diff)
- trunk/classes/pages/Userpanel.php (added)
- trunk/db/spamboard.sql (modified) (8 diffs)
- trunk/includes/input.php (modified) (2 diffs)
- trunk/includes/lang/en.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/admin/classes/pages/Editmember.php
r1 r9 181 181 $q->bindParam(':id', $id, PDO::PARAM_INT, 12); 182 182 $q->execute(); 183 // delete subscriptions 184 $q = $C->prepare('DELETE FROM ' . $SETTINGS['dbtableprefix'] . 'subscriptions WHERE member = :id'); 185 $q->bindParam(':id', $id, PDO::PARAM_INT, 12); 186 $q->execute(); 187 // done 183 188 $div = $this->html->body->addChild('div', $LANG['member_deleted']); 184 189 $div->addAttribute('id', 'admin_main'); trunk/classes/misc/Member.php
r8 r9 597 597 return $_permit; 598 598 } elseif ($page == 'Reply' || $page == 'Newtopic' || $page == 'Newpoll') { 599 if ($page == 'Reply') { 600 // $id is given as topic id, but forum id is required 601 $q2 = $C->prepare('SELECT forum FROM ' . $SETTINGS['dbtableprefix'] . 'topics WHERE topicid=:id'); 602 $q2->bindParam(':id', $id, PDO::PARAM_INT, 12); 603 $q2->execute(); 604 $row = $q2->fetchObject(); 605 $id = $row->forum; 606 } 599 607 // check for each of the user's groups 600 608 foreach ($_groups as $key=>$val) { trunk/classes/misc/Post.php
r1 r9 372 372 $q->execute(); 373 373 // topic subscription 374 $q = $C->prepare('SELECT subscribed FROM ' . $SETTINGS['dbtableprefix'] . 'topics WHERE topicid=:id'); 374 if (isset($_SESSION['memberid']) && $_SESSION['memberid'] > 0) { 375 // delete previous subscription of this member (if there was any) 376 $q = $C->prepare('DELETE FROM ' . $SETTINGS['dbtableprefix'] . 'subscriptions WHERE topic = :topic AND member = :member'); 377 $q->bindParam(':topic', $reply, PDO::PARAM_INT, 12); 378 $q->bindParam(':member', $_SESSION['memberid'], PDO::PARAM_INT, 12); 379 $q->execute(); 380 // if subscription flag set, insert 381 if ($subscribe == '1') { 382 $q = $C->prepare('INSERT INTO ' . $SETTINGS['dbtableprefix'] . 'subscriptions (topic, member) VALUES (:topic, :member)'); 383 $q->bindParam(':topic', $reply, PDO::PARAM_INT, 12); 384 $q->bindParam(':member', $_SESSION['memberid'], PDO::PARAM_INT, 12); 385 $q->execute(); 386 } 387 } 388 /* 389 $q = $C->prepare('SELECT member FROM ' . $SETTINGS['dbtableprefix'] . 'subscriptions WHERE topic=:id'); 375 390 $q->bindParam(':id', $reply, PDO::PARAM_INT, 12); 376 391 $q->execute(); 377 $row = $q->fetchObject(); 378 $subscribed = explode(',', $row->subscribed); 392 $subscribed = Array(); 393 while ($row = $q->fetchObject()) { 394 $subscribed[] = $row->member; 395 } 379 396 // check if this user has already been subscribed 380 397 $found = 0; … … 409 426 $q->execute(); 410 427 } 428 */ 411 429 // get last page of topic 412 430 $q = $C->prepare('SELECT COUNT(postid) FROM ' . $SETTINGS['dbtableprefix'] . 'posts WHERE topic=:id'); trunk/classes/pages/Page.php
r8 r9 52 52 $this->exec_time_start = microtime(TRUE); 53 53 /* Have some kind of manual per-page login credentials been posted? 54 * This shouldn't be checked on ' Editprofile' page, because there is a special handling of that there. */55 if ($show != ' editprofile' && isset($user) && $user != '' && isset($password) && $password !='') {54 * This shouldn't be checked on 'Userpanel' page, because there is a special handling of that there. */ 55 if ($show != 'userpanel' && isset($user) && $user != '' && isset($password) && $password !='') { 56 56 if (Member::authenticate($user, $password)) { 57 57 // authenticated for this step … … 183 183 } 184 184 // the rest is always the same 185 $_str .= '<a href="' . $F->link(' editprofile') . '">' . $LANG['Profile'] . '</a> <a href="' . $F->link('messenger') . '">' . $LANG['Messenger'] . '</a> <a href="redirectors/markasread.php">' . $LANG['Mark_as_read'] . '</a></div>';185 $_str .= '<a href="' . $F->link('userpanel') . '">' . $LANG['User_Panel'] . '</a> <a href="' . $F->link('messenger') . '">' . $LANG['Messenger'] . '</a> <a href="redirectors/markasread.php">' . $LANG['Mark_as_read'] . '</a></div>'; 186 186 $_span = new XMLElement($_str); 187 187 $div->addElement($_span); … … 190 190 $this->locationbar = $this->html->body->addChild('div'); 191 191 $this->locationbar->addAttribute('id', 'location'); 192 // user panel menu 193 if ($show == 'userpanel') { 194 $this->html->body->addChild('h2', $LANG['User_Panel']); 195 $div = $this->html->body->addChild('div'); 196 $div->addAttribute('class', 'message'); 197 $div->addAttribute('align', 'center'); 198 $_str = '<span><a href="' . $F->link('userpanel') . 'action=password">' . $LANG['Password'] . '</a> - <a href="' . $F->link('userpanel') . 'action=email">' . $LANG['E-Mail'] . '</a> - <a href="' . $F->link('userpanel') . 'action=profile">' . $LANG['Profile'] . '</a> - <a href="' . $F->link('userpanel') . 'action=subscriptions">' . $LANG['Subscriptions'] . '</a> - <a href="' . $F->link('userpanel') . 'action=groups">' . $LANG['User_Groups'] . '</a></span>'; 199 $div->addElement(new XMLElement($_str)); 200 } 192 201 } /* constructor */ 193 202 trunk/classes/pages/Register.php
r1 r9 127 127 @mail($email, $SETTINGS['forumname'] . ' - ' . $LANG['Registration'], str_replace('%password%', $p->get(), $LANG['welcome_mail']), 'From: ' . $SETTINGS['forumadminemail']); 128 128 $div = $this->html->body->addChild('div', $LANG['registration_success']); 129 $div->addAttribute(' message');129 $div->addAttribute('class', 'message'); 130 130 } 131 131 } else { trunk/classes/pages/Reply.php
r1 r9 70 70 // default: not previously subscribed 71 71 $subscribed = FALSE; 72 if ($ SESSION['memberid'] > 0) {72 if ($_SESSION['memberid'] > 0) { 73 73 // check if member is subscribed to topic 74 $q = $C->prepare('SELECT subscribed FROM ' . $SETTINGS['dbtableprefix'] . 'topics WHERE topicid=:id');74 $q = $C->prepare('SELECT COUNT(*) FROM ' . $SETTINGS['dbtableprefix'] . 'subscriptions WHERE topic = :id AND member = :member'); 75 75 $q->bindParam(':id', $id, PDO::PARAM_INT, 12); 76 $q->bindParam(':member', $_SESSION['memberid'], PDO::PARAM_INT, 12); 76 77 $q->execute(); 77 $row3 = $q->fetchObject(); 78 $_subscribers = explode(',', $row3->subscribed); 79 if (in_array($SESSION['memberid'], $_subscribers)) { 80 // previous subscription found 78 if ($q->fetchColumn() == 1) { 81 79 $subscribed = TRUE; 82 80 } trunk/db/spamboard.sql
r7 r9 64 64 closed INTEGER NOT NULL DEFAULT 0, 65 65 pinned INTEGER NOT NULL DEFAULT 0, 66 subscribed TEXT NOT NULL,67 66 poll INTEGER NOT NULL DEFAULT 0, 68 67 topic_views INTEGER NOT NULL, … … 99 98 INSERT INTO "sb_rights" VALUES('Calendar',4,1,1); 100 99 INSERT INTO "sb_rights" VALUES('Calendar',5,1,1); 101 INSERT INTO "sb_rights" VALUES('Editprofile',1,1,1);102 100 INSERT INTO "sb_rights" VALUES('Register',1,1,1); 103 101 INSERT INTO "sb_rights" VALUES('Register',2,1,1); 104 102 INSERT INTO "sb_rights" VALUES('Register',4,1,1); 105 103 INSERT INTO "sb_rights" VALUES('Register',5,1,1); 106 INSERT INTO "sb_rights" VALUES('Editprofile',2,1,1);107 INSERT INTO "sb_rights" VALUES('Editprofile',4,1,1);108 INSERT INTO "sb_rights" VALUES('Editprofile',5,0,0);109 104 INSERT INTO "sb_rights" VALUES('Members',1,1,0); 110 105 INSERT INTO "sb_rights" VALUES('Members',2,1,0); … … 204 199 INSERT INTO "sb_rights" VALUES('Calendar',3,1,1); 205 200 INSERT INTO "sb_rights" VALUES('Register',3,1,1); 206 INSERT INTO "sb_rights" VALUES('Editprofile',3,1,1);207 201 INSERT INTO "sb_rights" VALUES('Members',3,1,0); 208 202 INSERT INTO "sb_rights" VALUES('Search',3,1,1); … … 233 227 INSERT INTO "sb_rights" VALUES('Uploadavatar',4,1,1); 234 228 INSERT INTO "sb_rights" VALUES('Uploadavatar',5,0,0); 229 INSERT INTO "sb_rights" VALUES('Userpanel',1,1,1); 230 INSERT INTO "sb_rights" VALUES('Userpanel',2,1,1); 231 INSERT INTO "sb_rights" VALUES('Userpanel',3,1,1); 232 INSERT INTO "sb_rights" VALUES('Userpanel',4,1,1); 233 INSERT INTO "sb_rights" VALUES('Userpanel',5,0,0); 235 234 236 235 CREATE TABLE sb_rights_default ( … … 258 257 INSERT INTO "sb_rights_default" VALUES('Calendar',4,1,1); 259 258 INSERT INTO "sb_rights_default" VALUES('Calendar',5,1,1); 260 INSERT INTO "sb_rights_default" VALUES('Editprofile',1,1,1);261 259 INSERT INTO "sb_rights_default" VALUES('Register',1,1,1); 262 260 INSERT INTO "sb_rights_default" VALUES('Register',2,1,1); 263 261 INSERT INTO "sb_rights_default" VALUES('Register',4,1,1); 264 262 INSERT INTO "sb_rights_default" VALUES('Register',5,1,1); 265 INSERT INTO "sb_rights_default" VALUES('Editprofile',2,1,1);266 INSERT INTO "sb_rights_default" VALUES('Editprofile',4,1,1);267 INSERT INTO "sb_rights_default" VALUES('Editprofile',5,0,0);268 263 INSERT INTO "sb_rights_default" VALUES('Members',1,1,0); 269 264 INSERT INTO "sb_rights_default" VALUES('Members',2,1,0); … … 363 358 INSERT INTO "sb_rights_default" VALUES('Calendar',3,1,1); 364 359 INSERT INTO "sb_rights_default" VALUES('Register',3,1,1); 365 INSERT INTO "sb_rights_default" VALUES('Editprofile',3,1,1);366 360 INSERT INTO "sb_rights_default" VALUES('Members',3,1,0); 367 361 INSERT INTO "sb_rights_default" VALUES('Search',3,1,1); … … 392 386 INSERT INTO "sb_rights_default" VALUES('Uploadavatar',4,1,1); 393 387 INSERT INTO "sb_rights_default" VALUES('Uploadavatar',5,0,0); 388 INSERT INTO "sb_rights_default" VALUES('Userpanel',1,1,1); 389 INSERT INTO "sb_rights_default" VALUES('Userpanel',2,1,1); 390 INSERT INTO "sb_rights_default" VALUES('Userpanel',3,1,1); 391 INSERT INTO "sb_rights_default" VALUES('Userpanel',4,1,1); 392 INSERT INTO "sb_rights_default" VALUES('Userpanel',5,0,0); 394 393 395 394 CREATE TABLE sb_usergroups ( … … 446 445 member INTEGER NOT NULL 447 446 ); 447 448 CREATE TABLE sb_subscriptions ( 449 topic INTEGER NOT NULL, 450 member INTEGER NOT NULL 451 ); trunk/includes/input.php
r8 r9 461 461 $changegrouppublic = $_POST['changegrouppublic']; 462 462 if (is_array($changegrouppublic)) { 463 foreach ($changegrouppublic as $ _public) {464 if (preg_match('/^[1]?$/', $_public) != 1 ) {463 foreach ($changegrouppublic as $key=>$_public) { 464 if (preg_match('/^[1]?$/', $_public) != 1 || preg_match('/^[0-9]+$/', $key) != 1) { 465 465 die($LANG['error_input']); 466 466 } … … 554 554 } 555 555 556 $subscribe = $_POST['subscribe']; 557 if (preg_match('/^[0-1]?$/', $subscribe) != 1) { 558 die($LANG['error_input']); 559 } 560 561 $newsubscribed = $_POST['newsubscribed']; 562 if (is_array($newsubscribed)) { 563 foreach ($newsubscribed as $key=>$val) { 564 if (preg_match('/^[0-9]+$/', $val) != 1 || preg_match('/^[0-9]+$/', $key) != 1) { 565 die($LANG['error_input']); 566 } 567 } 568 } 569 556 570 ?> trunk/includes/lang/en.php
r8 r9 72 72 $LANG['none'] = 'none'; 73 73 $LANG['Profile'] = 'Profile'; 74 $LANG['User_Panel'] = 'User Panel'; 74 75 $LANG['Forum'] = 'Forum'; 75 76 $LANG['Topic'] = 'Topic'; … … 184 185 $LANG['Suggestion'] = 'Suggestion'; 185 186 $LANG['Polls'] = 'Polls'; 187 $LANG['Subscriptions'] = 'Subscriptions'; 188 $LANG['Error'] = 'Error'; 189 $LANG['Subscribed'] = 'Subscribed'; 186 190 187 191 /* multi-word statements */ … … 301 305 $LANG['Filesystem_Path'] = 'Filesystem Path'; 302 306 $LANG['Webserver_Path'] = 'Webserver Path'; 307 $LANG['New_Subscription'] = 'New Subscription'; 303 308 304 309 /* actual sentences */ … … 370 375 $LANG['upload_avatar_hints'] = "<ul><li>File size must be smaller or equal 50KB</li><li>Width and height of the image mustn't exceed " . $SETTINGS['maxavatarsize'] . " pixels each</li><li>Allow file types are PNG, JPEG and GIF</li></ul>"; 371 376 $LANG['upload_avatar_success'] = 'Your avatar has been uploaded successfully. You can now safely close this window, then reload the page from which you opened it and the new file should appear in the list.'; 377 $LANG['password_updated'] = 'Your password has been changed successfully.'; 378 $LANG['email_changed'] = 'Your e-mail address has been changed successfully.'; 379 $LANG['subscriptions_updated'] = 'Your subscriptions have been updated successfully.'; 380 $LANG['group_memberships_updated'] = 'Your group memberships have been updated successfully.'; 372 381 373 382 /* error messages */
