| [ Index ] |
|
Code source de Phorum 5.1.25 |
1 <?php 2 3 //////////////////////////////////////////////////////////////////////////////// 4 // // 5 // Copyright (C) 2006 Phorum Development Team // 6 // http://www.phorum.org // 7 // // 8 // This program is free software. You can redistribute it and/or modify // 9 // it under the terms of either the current Phorum License (viewable at // 10 // phorum.org) or the Phorum License that was distributed with this file // 11 // // 12 // This program is distributed in the hope that it will be useful, // 13 // but WITHOUT ANY WARRANTY, without even the implied warranty of // 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // 15 // // 16 // You should have received a copy of the Phorum License // 17 // along with this program. // 18 //////////////////////////////////////////////////////////////////////////////// 19 define('phorum_page','read'); 20 21 include_once ("./common.php"); 22 include_once ("./include/email_functions.php"); 23 include_once ("./include/format_functions.php"); 24 25 26 // set all our URL's ... we need these earlier 27 phorum_build_common_urls(); 28 29 // checking read-permissions 30 if(!phorum_check_read_common()) { 31 return; 32 } 33 34 // somehow we got to a folder 35 if(empty($PHORUM["forum_id"]) || $PHORUM["folder_flag"]){ 36 $dest_url = phorum_get_url(PHORUM_INDEX_URL, $PHORUM["forum_id"]); 37 phorum_redirect_by_url($dest_url); 38 exit(); 39 } 40 41 if ($PHORUM["DATA"]["LOGGEDIN"]) { // reading newflags in 42 $PHORUM['user']['newinfo']=phorum_db_newflag_get_flags(); 43 } 44 45 $PHORUM["DATA"]["MODERATOR"] = phorum_user_access_allowed(PHORUM_USER_ALLOW_MODERATE_MESSAGES); 46 47 if($PHORUM["DATA"]["MODERATOR"]) { 48 // find out how many forums this user can moderate 49 $forums=phorum_db_get_forums(0,-1,$PHORUM['vroot']); 50 51 $modforums=0; 52 foreach($forums as $id=>$forum){ 53 if($forum["folder_flag"]==0 && phorum_user_moderate_allowed($id)){ 54 $modforums++; 55 } 56 } 57 if($modforums > 1) { 58 $build_move_url=true; 59 } else { 60 $build_move_url=false; 61 } 62 } 63 64 // setup some stuff based on the url passed 65 if(empty($PHORUM["args"][1])) { 66 phorum_redirect_by_url(phorum_get_url(PHORUM_LIST_URL)); 67 exit(); 68 } elseif(empty($PHORUM["args"][2])) { 69 $thread = (int)$PHORUM["args"][1]; 70 $message_id = (int)$PHORUM["args"][1]; 71 } else{ 72 if(!is_numeric($PHORUM["args"][2])) { 73 $dest_url=""; 74 $newervar=(int)$PHORUM["args"][1]; 75 76 switch($PHORUM["args"][2]) { 77 case "newer": 78 $thread = phorum_db_get_newer_thread($newervar); 79 break; 80 case "older": 81 $thread = phorum_db_get_older_thread($newervar); 82 break; 83 case "markthreadread": 84 // thread needs to be in $thread for the redirection 85 $thread = (int)$PHORUM["args"][1]; 86 $thread_message=phorum_db_get_message($thread,'message_id'); 87 88 $mids=array(); 89 foreach($thread_message['meta']['message_ids'] as $mid) { 90 if(!isset($PHORUM['user']['newinfo'][$mid]) && $mid > $PHORUM['user']['newinfo']['min_id']) { 91 $mids[]=$mid; 92 } 93 } 94 95 $msg_count=count($mids); 96 97 // any messages left to update newinfo with? 98 if($msg_count > 0){ 99 phorum_db_newflag_add_read($mids); 100 unset($mids); 101 } 102 break; 103 case "gotonewpost": 104 // thread needs to be in $thread for the redirection 105 $thread = (int)$PHORUM["args"][1]; 106 $thread_message=phorum_db_get_message($thread,'message_id'); 107 $message_ids=$thread_message['meta']['message_ids']; 108 109 foreach($message_ids as $mkey => $mid) { 110 // if already read, remove it from message-array 111 if(isset($PHORUM['user']['newinfo'][$mid]) || $mid <= $PHORUM['user']['newinfo']['min_id']) { 112 unset($message_ids[$mkey]); 113 } 114 115 } 116 117 // it could happen that they are all read 118 if(count($message_ids)) { 119 asort($message_ids,SORT_NUMERIC); // make sure they are sorted 120 121 122 $new_message=array_shift($message_ids); // get the first element 123 124 if(!$PHORUM['threaded_read']) { // get new page 125 $new_page=ceil(phorum_db_get_message_index($thread,$new_message)/$PHORUM['read_length']); 126 $dest_url=phorum_get_url(PHORUM_READ_URL,$thread,$new_message,"page=$new_page"); 127 } else { // for threaded 128 $dest_url=phorum_get_url(PHORUM_READ_URL,$thread,$new_message); 129 } 130 } else { 131 // lets go back to the index if they are all read 132 $dest_url=phorum_get_url(PHORUM_LIST_URL); 133 } 134 135 break; 136 137 138 } 139 140 if(empty($dest_url)) { 141 if($thread > 0) { 142 $dest_url = phorum_get_url(PHORUM_READ_URL, $thread); 143 } else{ 144 // we are either at the top or the bottom, go back to the list. 145 $dest_url = phorum_get_url(PHORUM_LIST_URL); 146 } 147 } 148 149 phorum_redirect_by_url($dest_url); 150 exit(); 151 } 152 153 $thread = (int)$PHORUM["args"][1]; 154 $message_id = (int)$PHORUM["args"][2]; 155 } 156 157 // determining the page if page isn't given and message_id != thread 158 $page=0; 159 if(!$PHORUM["threaded_read"]) { 160 if(isset($PHORUM['args']['page']) && is_numeric($PHORUM["args"]["page"]) && $PHORUM["args"]["page"] > 0) { 161 $page=(int)$PHORUM["args"]["page"]; 162 } elseif($message_id != $thread) { 163 $page=ceil(phorum_db_get_message_index($thread,$message_id)/$PHORUM['read_length']); 164 } else { 165 $page=1; 166 } 167 if(empty($page)) { 168 $page=1; 169 } 170 } 171 172 // Get the thread 173 $data = phorum_db_get_messages($thread,$page); 174 175 176 if(!empty($data) && isset($data[$thread]) && isset($data[$message_id])) { 177 178 $fetch_user_ids = $data['users']; 179 unset($data['users']); 180 181 // remove the unneeded message bodies in threaded view 182 // to avoid unnecessary formatting of bodies 183 if ($PHORUM["threaded_read"] && 184 !(isset($PHORUM['TMP']['all_bodies_in_threaded_read']) && 185 !empty($PHORUM['TMP']['all_bodies_in_threaded_read']) ) ) { 186 187 $remove_threaded_bodies=1; 188 // the flag is used in the foreach-loop later on 189 } else { 190 $remove_threaded_bodies=0; 191 } 192 193 // build URL's that apply only here. 194 if($PHORUM["float_to_top"]) { 195 $PHORUM["DATA"]["URL"]["OLDERTHREAD"] = phorum_get_url(PHORUM_READ_URL, $data[$thread]["modifystamp"], "older"); 196 $PHORUM["DATA"]["URL"]["NEWERTHREAD"] = phorum_get_url(PHORUM_READ_URL, $data[$thread]["modifystamp"], "newer"); 197 } else{ 198 $PHORUM["DATA"]["URL"]["OLDERTHREAD"] = phorum_get_url(PHORUM_READ_URL, $thread, "older"); 199 $PHORUM["DATA"]["URL"]["NEWERTHREAD"] = phorum_get_url(PHORUM_READ_URL, $thread, "newer"); 200 } 201 202 $PHORUM["DATA"]["URL"]["MARKTHREADREAD"] = phorum_get_url(PHORUM_READ_URL, $thread, "markthreadread"); 203 $PHORUM["DATA"]["POST"]["thread"] = $thread; 204 $PHORUM["DATA"]["POST"]["parentid"] = $message_id; 205 $PHORUM["DATA"]["POST"]["subject"] = $data[$message_id]["subject"]; 206 207 $thread_is_closed = (bool)$data[$thread]["closed"]; 208 $thread_is_announcement = ($data[$thread]["sort"]==PHORUM_SORT_ANNOUNCEMENT)?1:0; 209 210 // we might have more messages for mods 211 if($PHORUM["DATA"]["MODERATOR"] && isset($data[$thread]["meta"]["message_ids_moderator"])) { 212 $threadnum=count($data[$thread]['meta']['message_ids_moderator']); 213 } else { 214 $threadnum=$data[$thread]['thread_count']; 215 } 216 217 if(!$PHORUM["threaded_read"] && $threadnum > $PHORUM["read_length"]){ 218 $pages=ceil($threadnum/$PHORUM["read_length"]); 219 220 if($pages<=11){ 221 $page_start=1; 222 } elseif($pages-$page<5) { 223 $page_start=$pages-10; 224 } elseif($pages>11 && $page>6){ 225 $page_start=$page-5; 226 } else { 227 $page_start=1; 228 } 229 230 for($x=0;$x<11 && $x<$pages;$x++){ 231 $pageno=$x+$page_start; 232 $PHORUM["DATA"]["PAGES"][] = array( 233 "pageno"=>$pageno, 234 "url"=>phorum_get_url(PHORUM_READ_URL, $thread, "page=$pageno") 235 ); 236 } 237 238 $PHORUM["DATA"]["CURRENTPAGE"]=$page; 239 $PHORUM["DATA"]["TOTALPAGES"]=$pages; 240 241 if($page_start>1){ 242 $PHORUM["DATA"]["URL"]["FIRSTPAGE"]=phorum_get_url(PHORUM_READ_URL, $thread, "page=1"); 243 } 244 245 if($pageno<$pages){ 246 $PHORUM["DATA"]["URL"]["LASTPAGE"]=phorum_get_url(PHORUM_READ_URL, $thread, "page=$pages"); 247 } 248 249 if($pages>$page){ 250 $nextpage=$page+1; 251 $PHORUM["DATA"]["URL"]["NEXTPAGE"]=phorum_get_url(PHORUM_READ_URL, $thread, "page=$nextpage"); 252 } 253 if($page>1){ 254 $prevpage=$page-1; 255 $PHORUM["DATA"]["URL"]["PREVPAGE"]=phorum_get_url(PHORUM_READ_URL, $thread, "page=$prevpage"); 256 } 257 } 258 259 // fetch_user_ids filled from phorum_db_get_messages 260 if(isset($fetch_user_ids) && count($fetch_user_ids)){ 261 $user_info=phorum_user_get($fetch_user_ids, false); 262 // hook to modify user info 263 $user_info = phorum_hook("read_user_info", $user_info); 264 } 265 266 // URLS which are common for the thread 267 if($PHORUM["DATA"]["MODERATOR"]) { 268 if($build_move_url) { 269 $URLS["move_url"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_MOVE_THREAD, $thread); 270 } 271 $URLS["merge_url"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_MERGE_THREAD, $thread); 272 $URLS["close_url"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_CLOSE_THREAD, $thread); 273 $URLS["reopen_url"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_REOPEN_THREAD, $thread); 274 } 275 276 277 278 279 // main loop for template setup 280 $read_messages=array(); // needed for newinfo 281 foreach($data as $key => $row) { 282 283 // should we remove the bodies in threaded view 284 if($remove_threaded_bodies) { 285 if ($row["message_id"] != $message_id) { 286 unset($row["body"]); // strip body 287 } 288 } 289 290 // assign user data to the row 291 if($row["user_id"] && isset($user_info[$row["user_id"]])){ 292 $row["user"]=$user_info[$row["user_id"]]; 293 unset($row["user"]["password"]); 294 unset($row["user"]["password_tmp"]); 295 } 296 if(!$PHORUM["threaded_read"] && $PHORUM["DATA"]["LOGGEDIN"] && $row['message_id'] > $PHORUM['user']['newinfo']['min_id'] && !isset($PHORUM['user']['newinfo'][$row['message_id']])) { // set this message as read 297 $read_messages[] = array("id"=>$row['message_id'],"forum"=>$row['forum_id']); 298 } 299 // is the message unapproved? 300 $row["is_unapproved"] = ($row['status'] < 0) ? 1 : 0; 301 302 // all stuff that makes only sense for moderators or admin 303 if($PHORUM["DATA"]["MODERATOR"]) { 304 305 $row["delete_url1"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_DELETE_MESSAGE, $row["message_id"]); 306 $row["delete_url2"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_DELETE_TREE, $row["message_id"]); 307 $row["edit_url"]=phorum_get_url(PHORUM_POSTING_URL, "moderation", $row["message_id"]); 308 $row["split_url"]=phorum_get_url(PHORUM_MODERATION_URL, PHORUM_SPLIT_THREAD, $row["message_id"]); 309 if($row['is_unapproved']) { 310 $row["approve_url"]=phorum_get_url(PHORUM_MODERATION_URL, PHORUM_APPROVE_MESSAGE, $row["message_id"]); 311 } else { 312 $row["hide_url"]=phorum_get_url(PHORUM_MODERATION_URL, PHORUM_HIDE_POST, $row["message_id"]); 313 } 314 if($build_move_url) { 315 $row["move_url"] = $URLS["move_url"]; 316 } 317 $row["merge_url"] = $URLS["merge_url"]; 318 $row["close_url"] = $URLS["close_url"]; 319 $row["reopen_url"] = $URLS["reopen_url"]; 320 } 321 322 // allow editing only if logged in, allowed for forum, the thread is open, 323 // its the same user, and its within the time restriction 324 if($PHORUM["user"]["user_id"]==$row["user_id"] && phorum_user_access_allowed(PHORUM_USER_ALLOW_EDIT) && 325 !$thread_is_closed &&($PHORUM["user_edit_timelimit"] == 0 || $row["datestamp"] + ($PHORUM["user_edit_timelimit"] * 60) >= time())) { 326 $row["edit"]=1; 327 if($PHORUM["DATA"]["MODERATOR"]) { 328 $row["edituser_url"]=$row["edit_url"]; 329 } else { 330 $row["edituser_url"]=phorum_get_url(PHORUM_POSTING_URL, "edit", $row["message_id"]); 331 } 332 } 333 334 // this stuff is used in threaded and non threaded. 335 $row["short_datestamp"] = phorum_date($PHORUM["short_date"], $row["datestamp"]); 336 $row["datestamp"] = phorum_date($PHORUM["long_date"], $row["datestamp"]); 337 $row["url"] = phorum_get_url(PHORUM_READ_URL, $row["thread"], $row["message_id"]); 338 $row["reply_url"] = phorum_get_url(PHORUM_REPLY_URL, $row["thread"], $row["message_id"]); 339 $row["quote_url"] = phorum_get_url(PHORUM_REPLY_URL, $row["thread"], $row["message_id"], "quote=1"); 340 $row["report_url"] = phorum_get_url(PHORUM_REPORT_URL, $row["message_id"]); 341 $row["follow_url"] = phorum_get_url(PHORUM_FOLLOW_URL, $row["thread"]); 342 343 // can only send private replies if the author is a registered user 344 if ($PHORUM["enable_pm"] && $row["user_id"]) { 345 $row["private_reply_url"] = phorum_get_url(PHORUM_PM_URL, "page=send", "message_id=".$row["message_id"]); 346 } else { 347 $row["private_reply_url"] = false; 348 } 349 350 // check if its the first message in the thread 351 if($row["message_id"] == $row["thread"]) { 352 $row["threadstart"] = true; 353 } else{ 354 $row["threadstart"] = false; 355 } 356 357 // should we show the signature? 358 if(isset($row['body'])) { 359 if(isset($row["user"]["signature"]) 360 && isset($row['meta']['show_signature']) && $row['meta']['show_signature']==1){ 361 362 $phorum_sig=trim($row["user"]["signature"]); 363 if(!empty($phorum_sig)){ 364 $row["body"].="\n\n$phorum_sig"; 365 } 366 } 367 368 // add the edited-message to a post if its edited 369 if(isset($row['meta']['edit_count']) && $row['meta']['edit_count'] > 0) { 370 $editmessage = str_replace ("%count%", $row['meta']['edit_count'], $PHORUM["DATA"]["LANG"]["EditedMessage"]); 371 $editmessage = str_replace ("%lastedit%", phorum_date($PHORUM["short_date"],$row['meta']['edit_date']), $editmessage); 372 $editmessage = str_replace ("%lastuser%", $row['meta']['edit_username'], $editmessage); 373 $row["body"].="\n\n\n\n$editmessage"; 374 } 375 } 376 377 378 if(!empty($row["user_id"])) { 379 $row["profile_url"] = phorum_get_url(PHORUM_PROFILE_URL, $row["user_id"]); 380 // we don't normally put HTML in this code, but this makes it easier on template builders 381 $row["linked_author"] = "<a href=\"".$row["profile_url"]."\">".htmlspecialchars($row["author"])."</a>"; 382 } elseif(!empty($row["email"])) { 383 $row["email_url"] = phorum_html_encode("mailto:$row[email]"); 384 // we don't normally put HTML in this code, but this makes it easier on template builders 385 $row["linked_author"] = "<a href=\"".$row["email_url"]."\">".htmlspecialchars($row["author"])."</a>"; 386 } else { 387 $row["linked_author"] = htmlspecialchars($row["author"]); 388 } 389 390 // mask host if not a moderator 391 if(empty($PHORUM["user"]["admin"]) && (empty($PHORUM["DATA"]["MODERATOR"]) || !PHORUM_MOD_IP_VIEW)){ 392 if($PHORUM["display_ip_address"]){ 393 if($row["moderator_post"]){ 394 $row["ip"]=$PHORUM["DATA"]["LANG"]["Moderator"]; 395 } elseif(is_numeric(str_replace(".", "", $row["ip"]))){ 396 $row["ip"]=substr($row["ip"],0,strrpos($row["ip"],'.')).'.---'; 397 } else { 398 $row["ip"]="---".strstr($row["ip"], "."); 399 } 400 401 } else { 402 $row["ip"]=$PHORUM["DATA"]["LANG"]["IPLogged"]; 403 } 404 } 405 406 if($PHORUM["max_attachments"]>0 && isset($row["meta"]["attachments"])){ 407 $PHORUM["DATA"]["ATTACHMENTS"]=true; 408 $row["attachments"]=$row["meta"]["attachments"]; 409 // unset($row["meta"]["attachments"]); 410 foreach($row["attachments"] as $key=>$file){ 411 $row["attachments"][$key]["size"]=phorum_filesize($file["size"]); 412 $row["attachments"][$key]["name"]=htmlentities($file['name'], ENT_COMPAT, $PHORUM["DATA"]["CHARSET"]); // clear all special chars from name to avoid XSS 413 $row["attachments"][$key]["url"]=phorum_get_url(PHORUM_FILE_URL, "file={$file['file_id']}"); 414 } 415 } 416 417 // newflag, if its NOT in newinfo AND newer than min_id, then its a new message 418 $row["new"]=""; 419 if ($PHORUM["DATA"]["LOGGEDIN"]){ 420 if (!isset($PHORUM['user']['newinfo'][$row['message_id']]) && $row['message_id'] > $PHORUM['user']['newinfo']['min_id']) { 421 $row["new"]= $PHORUM["DATA"]["LANG"]["newflag"]; 422 } 423 } 424 425 $messages[$row["message_id"]]=$row; 426 } 427 428 if($PHORUM["threaded_read"]) { 429 // don't move this up. We want it to be conditional. 430 include_once ("./include/thread_sort.php"); 431 432 // run read-threads mods 433 $messages = phorum_hook("readthreads", $messages); 434 435 $messages = phorum_sort_threads($messages); 436 437 if($PHORUM["DATA"]["LOGGEDIN"] && !isset($PHORUM['user']['newinfo'][$message_id]) && $message_id > $PHORUM['user']['newinfo']['min_id']) { 438 $read_messages[] = array("id"=>$message_id,"forum"=>$messages[$message_id]['forum_id']); 439 } 440 441 // we have to loop again and create the urls for the Next and Previous links. 442 foreach($messages as $key => $row) { 443 444 if($PHORUM["count_views"]) { // show viewcount if enabled 445 if($PHORUM["count_views"] == 2) { // viewcount as column 446 $PHORUM["DATA"]["VIEWCOUNT_COLUMN"]=true; 447 $messages[$key]["viewcount"]=$row['viewcount']; 448 } else { // viewcount added to the subject 449 $messages[$key]["subject"]=$row["subject"]." ({$row['viewcount']} {$PHORUM['DATA']['LANG']['Views']})"; 450 } 451 } 452 453 454 $messages[$key]["next_url"] = $PHORUM["DATA"]["URL"]["NEWERTHREAD"]; 455 if(empty($last_key)) { 456 $messages[$key]["prev_url"] = $PHORUM["DATA"]["URL"]["OLDERTHREAD"]; 457 } else{ 458 $messages[$key]["prev_url"] = phorum_get_url(PHORUM_READ_URL, $row["thread"], $last_key); 459 $messages[$last_key]["next_url"] = phorum_get_url(PHORUM_READ_URL, $row["thread"], $row["message_id"]); 460 } 461 462 $last_key = $key; 463 } 464 } 465 466 // run read mods 467 $messages = phorum_hook("read", $messages); 468 469 // increment viewcount if enabled 470 if($PHORUM['count_views'] && (empty($PHORUM["status"]) || $PHORUM["status"]=="normal")) { 471 phorum_db_viewcount_inc($message_id); 472 } 473 474 // format messages 475 $messages = phorum_format_messages($messages); 476 477 // set up the data 478 $PHORUM["DATA"]["MESSAGE"] = $messages[$message_id]; 479 480 // we need to remove the thread-starter from the data if we are not on the first page 481 $threadsubject = $messages[$thread]["subject"]; 482 if($page > 1) 483 unset($messages[$thread]); 484 485 $PHORUM["DATA"]["MESSAGES"] = $messages; 486 487 488 // alter the HTML_TITLE 489 if(!empty($PHORUM["DATA"]["HTML_TITLE"])){ 490 $PHORUM["DATA"]["HTML_TITLE"].=htmlentities(PHORUM_SEPARATOR, ENT_COMPAT, $PHORUM["DATA"]["CHARSET"] );; 491 } 492 // No htmlentities() needed. The subject is already escaped. 493 // Strip HTML tags from the HTML title. There might be HTML in 494 // here, because of modules adding images and formatting. 495 $PHORUM["DATA"]["HTML_TITLE"] .= trim(strip_tags($PHORUM["threaded_read"] ? $PHORUM["DATA"]["MESSAGE"]["subject"] : $threadsubject)); 496 497 // include the correct template 498 499 include phorum_get_template("header"); 500 phorum_hook("after_header"); 501 502 if($PHORUM["threaded_read"]) { 503 include phorum_get_template("read_threads"); 504 } else{ 505 include phorum_get_template("read"); 506 } 507 if($PHORUM["DATA"]["LOGGEDIN"]) { // setting read messages really read 508 if(count($read_messages)) { 509 phorum_db_newflag_add_read($read_messages); 510 } 511 } 512 513 // An anchor so clicking on a reply button can let the browser 514 // jump to the editor or the closed thread message. 515 if(isset($PHORUM["reply_on_read_page"]) && $PHORUM["reply_on_read_page"]) { 516 print '<a name="REPLY"></a>'; 517 } 518 519 // Never show the reply box if the message is closed. 520 if($thread_is_closed) { 521 522 // Closed announcements have their own specific message. 523 $key = $thread_is_announcement ? "ThreadAnnouncement" : "ThreadClosed"; 524 $PHORUM["DATA"]["MESSAGE"]=$PHORUM["DATA"]["LANG"][$key]; 525 include phorum_get_template("message"); 526 527 } elseif (isset($PHORUM["reply_on_read_page"]) && $PHORUM["reply_on_read_page"]) { 528 529 // Prepare the arguments for the posting.php script. 530 $goto_mode = "reply"; 531 if (isset($PHORUM["args"]["quote"]) && $PHORUM["args"]["quote"]) { 532 $goto_mode = "quote"; 533 } 534 535 $PHORUM["postingargs"] = array( 536 1 => $goto_mode, 537 2 => $message_id, 538 "as_include" => true 539 ); 540 541 include ("./posting.php"); 542 } 543 544 phorum_hook("before_footer"); 545 include phorum_get_template("footer"); 546 547 548 } elseif($toforum=phorum_check_moved_message($thread)) { // is it a moved thread? 549 550 $PHORUM["DATA"]["MESSAGE"]=$PHORUM["DATA"]["LANG"]["MovedMessage"]; 551 $PHORUM['DATA']["URL"]["REDIRECT"]=phorum_get_url(PHORUM_FOREIGN_READ_URL, $toforum, $thread); 552 $PHORUM['DATA']["BACKMSG"]=$PHORUM["DATA"]["LANG"]["MovedMessageTo"]; 553 554 $PHORUM["DATA"]["HTML_TITLE"] = htmlentities( $PHORUM["DATA"]["HTML_TITLE"], ENT_COMPAT, $PHORUM["DATA"]["CHARSET"] ); 555 // have to include the header here for the Redirect 556 include phorum_get_template("header"); 557 phorum_hook("after_header"); 558 include phorum_get_template("message"); 559 phorum_hook("before_footer"); 560 include phorum_get_template("footer"); 561 562 } else { // message not found 563 $PHORUM["DATA"]["ERROR"]=$PHORUM["DATA"]["LANG"]["MessageNotFound"]; 564 $PHORUM['DATA']["URL"]["REDIRECT"]=$PHORUM["DATA"]["URL"]["TOP"]; 565 $PHORUM['DATA']["BACKMSG"]=$PHORUM["DATA"]["LANG"]["BackToList"]; 566 567 $PHORUM["DATA"]["HTML_TITLE"] = htmlentities( $PHORUM["DATA"]["HTML_TITLE"], ENT_COMPAT, $PHORUM["DATA"]["CHARSET"] ); 568 // have to include the header here for the Redirect 569 include phorum_get_template("header"); 570 phorum_hook("after_header"); 571 include phorum_get_template("message"); 572 phorum_hook("before_footer"); 573 include phorum_get_template("footer"); 574 } 575 576 // find out if the given thread has been moved to another forum 577 function phorum_check_moved_message($thread) { 578 $forum_id=$GLOBALS['PHORUM']['forum_id']; 579 $message=phorum_db_get_message($thread,'message_id',true); 580 581 if(!empty($message) && $message['forum_id'] != $forum_id) { 582 $ret=$message['forum_id']; 583 } else { 584 $ret=false; 585 } 586 return $ret; 587 } 588 589 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Thu Nov 29 12:22:27 2007 | par Balluche grâce à PHPXref 0.7 |
|