00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00033 require_once "./include/inc.header.php";
00034 require_once "classes/class.ilObjForum.php";
00035 require_once "./classes/class.ilFileDataForum.php";
00036
00037 $lng->loadLanguageModule("forum");
00038
00039 $forumObj = new ilObjForum($_GET["ref_id"]);
00040 $frm =& $forumObj->Forum;
00041
00042
00043 $forumObj->updateLastAccess($ilUser->getId(),(int) $_GET['thr_pk']);
00044
00045
00046 if($_GET['thr_pk'] and $_GET['pos_pk'])
00047 {
00048 $forumObj->markPostRead($ilUser->getId(),(int) $_GET['thr_pk'],(int) $_GET['pos_pk']);
00049 }
00050 $file_obj =& new ilFileDataForum($forumObj->getId(),$_GET["pos_pk"]);
00051
00052 $frm->setForumId($forumObj->getId());
00053 $frm->setForumRefId($forumObj->getRefId());
00054
00055 $tpl->addBlockFile("CONTENT", "content", "tpl.forums_threads_view.html");
00056
00057 $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00058 $tpl->addBlockFile("BUTTONS", "buttons", "tpl.buttons.html");
00059 $tpl->addBlockFile("LOCATOR", "locator", "tpl.locator.html");
00060
00061
00062 sendInfo();
00063
00064 infoPanel();
00065
00066 if (!$rbacsystem->checkAccess("read,visible", $_GET["ref_id"]))
00067 {
00068 $ilias->raiseError($lng->txt("permission_denied"),$ilias->error_obj->MESSAGE);
00069 }
00070
00071
00072
00073 if(isset($_POST["cmd"]["delete_file"]))
00074 {
00075 $file_obj->unlinkFiles($_POST["del_file"]);
00076 sendInfo("File deleted");
00077 }
00078
00079 if($_GET["file"])
00080 {
00081 if(!$path = $file_obj->getAbsolutePath(urldecode($_GET["file"])))
00082 {
00083 sendInfo("Error reading file!");
00084 }
00085 else
00086 {
00087 ilUtil::deliverFile($path,urldecode($_GET["file"]));
00088 }
00089 }
00090
00091 $tpl->setVariable("TXT_FORUM_ARTICLES", $lng->txt("forums_posts"));
00092 $session_name = "viewmode_".$forumObj->getId();
00093 if($_SESSION[$session_name] == 'flat')
00094 {
00095 $new_order = "answers";
00096 $orderField = "frm_posts_tree.date";
00097 }
00098 else
00099 {
00100 $new_order = "date";
00101 $orderField = "frm_posts_tree.rgt";
00102 }
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 #tpl->setVariable("LINK_SORT", "<b>></b><a href=\"forums_threads_view.php?orderby=".$new_order."&thr_pk=".$_GET["thr_pk"]."&ref_id=".$_GET["ref_id"]."\">".$lng->txt("order_by")." ".$lng->txt($new_order)."</a>");
00127
00128
00129 $frm->setWhereCondition("top_frm_fk = ".$frm->getForumId());
00130
00131 if (is_array($topicData = $frm->getOneTopic()))
00132 {
00133 $frm->setWhereCondition("thr_pk = ".$_GET["thr_pk"]);
00134 $threadData = $frm->getOneThread();
00135
00136 $tpl->setCurrentBlock("header_image");
00137 $tpl->setVariable("IMG_HEADER", ilUtil::getImagePath("icon_frm_b.gif"));
00138 $tpl->parseCurrentBlock();
00139 $tpl->setVariable("TXT_PAGEHEADLINE", $lng->txt("forums_thread")." \"".$threadData["thr_subject"]."\"");
00140
00141
00142 $frm->setDbTable("frm_threads");
00143 $frm->setWhereCondition("thr_pk = ".$_GET["thr_pk"]);
00144 $frm->updateVisits($_GET["thr_pk"]);
00145
00146
00147
00148 include_once("classes/class.ilForumLocatorGUI.php");
00149 $frm_loc =& new ilForumLocatorGUI();
00150 $frm_loc->setRefId($_GET["ref_id"]);
00151 $frm_loc->setForum($frm);
00152 $frm_loc->setThread($_GET["thr_pk"], $threadData["thr_subject"]);
00153 $frm_loc->display();
00154
00155
00156
00157
00158 $session_name = "viewmode_".$forumObj->getId();
00159 $t_frame = ilFrameTargetInfo::_getFrame("MainContent");
00160
00161 $ilTabs->setBackTarget($lng->txt("all_topics"),
00162 "repository.php?ref_id=$_GET[ref_id]",
00163 $t_frame);
00164
00165 $ilTabs->addTarget("order_by_answers",
00166 "forums_frameset.php?viewmode=tree&thr_pk=$_GET[thr_pk]&ref_id=$_GET[ref_id]",
00167 "","", $t_frame);
00168
00169 $ilTabs->addTarget("order_by_date",
00170 "forums_frameset.php?viewmode=flat&thr_pk=$_GET[thr_pk]&ref_id=$_GET[ref_id]",
00171 "","", $t_frame);
00172
00173 if (!isset($_SESSION[$session_name]) or $_SESSION[$session_name] == "flat")
00174 {
00175 $ilTabs->setTabActive("order_by_date");
00176 }
00177 else
00178 {
00179 $ilTabs->setTabActive("order_by_answers");
00180 }
00181
00182 $html = $ilTabs->getHTML();
00183 $tpl->setVariable("TABS", $html);
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 if ($ilias->getSetting("forum_notification") != 0)
00202 {
00203 $tpl->setCurrentBlock("tab");
00204 $tpl->setVariable("TAB_TYPE", "tabinactive");
00205 $tpl->setVariable("TAB_LINK", "forums_threads_notification.php?thr_pk=$_GET[thr_pk]&ref_id=$_GET[ref_id]");
00206 $tpl->setVariable("TAB_TEXT", $lng->txt("forums_notification"));
00207 $tpl->setVariable("TAB_TARGET", "_self");
00208 $tpl->parseCurrentBlock();
00209 }
00210
00211
00212 $menutpl =& new ilTemplate("tpl.forums_threads_menu.html", true, true);
00213
00214 if($forumObj->getCountUnread($ilUser->getId(),(int) $_GET['thr_pk']))
00215 {
00216 $menutpl->setCurrentBlock("btn_cell");
00217 $menutpl->setVariable("BTN_LINK","forums_frameset.php?mark_read=1&ref_id=".$_GET["ref_id"]."&thr_pk=".$_GET['thr_pk']);
00218 $t_frame = ilFrameTargetInfo::_getFrame("MainContent");
00219 $menutpl->setVariable("BTN_TARGET","target=\"$t_frame\"");
00220 $menutpl->setVariable("BTN_TXT", $lng->txt("forums_mark_read"));
00221 $menutpl->parseCurrentBlock();
00222 }
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236 $menutpl->setCurrentBlock("btn_cell");
00237 $menutpl->setVariable("BTN_LINK","forums_export.php?print_thread=".$_GET["thr_pk"].
00238 "&thr_top_fk=".$threadData["thr_top_fk"]);
00239 $menutpl->setVariable("BTN_TARGET","target=\"_new\"");
00240 $menutpl->setVariable("BTN_TXT", $lng->txt("forums_print_thread"));
00241 $menutpl->parseCurrentBlock();
00242
00243
00244
00245
00246 if ($_GET["cmd"] == "ready_showreply" || $_GET["cmd"] == "ready_showedit" || $_GET["cmd"] == "ready_censor")
00247 {
00248 $formData = $_POST["formData"];
00249
00250 if ($_GET["cmd"] != "ready_censor")
00251 {
00252
00253 $checkEmptyFields = array(
00254 $lng->txt("message") => $formData["message"]
00255 );
00256
00257 $errors = ilUtil::checkFormEmpty($checkEmptyFields);
00258
00259 if ($errors != "")
00260 {
00261 sendInfo($lng->txt("form_empty_fields")." ".$errors);
00262 }
00263 else
00264 {
00265 if ($_GET["cmd"] == "ready_showreply")
00266 {
00267
00268
00269 $newPost = $frm->generatePost($topicData["top_pk"], $_GET["thr_pk"],
00270 $_SESSION["AccountId"], ilUtil::stripSlashes($formData["message"]),
00271 $_GET["pos_pk"],$_POST["notify"],$_POST["anonymize"],
00272 $_POST["subject"]
00273 ? ilUtil::stripSlashes($_POST["subject"])
00274 : $threadData["thr_subject"]);
00275 sendInfo($lng->txt("forums_post_new_entry"));
00276 if(isset($_FILES["userfile"]))
00277 {
00278 $tmp_file_obj =& new ilFileDataForum($forumObj->getId(),$newPost);
00279 $tmp_file_obj->storeUploadedFile($_FILES["userfile"]);
00280 }
00281
00282 }
00283 else
00284 {
00285
00286 if ($frm->updatePost(ilUtil::stripSlashes($formData["message"]),
00287 $_GET["pos_pk"],$_POST["notify"],
00288 $_POST["subject"]
00289 ? ilUtil::stripSlashes($_POST["subject"])
00290 : $threadData["thr_subject"],
00291 $threadData["thr_pk"]))
00292 {
00293 $frm->setWhereCondition("thr_pk = ".$threadData["thr_pk"]);
00294 $threadData = $frm->getOneThread();
00295
00296 sendInfo($lng->txt("forums_post_modified"));
00297 }
00298 if(isset($_FILES["userfile"]))
00299 {
00300 $file_obj->storeUploadedFile($_FILES["userfile"]);
00301 }
00302 }
00303 }
00304
00305 }
00306
00307 elseif ($_POST["confirm"] != "" && $_GET["cmd"] == "ready_censor")
00308 {
00309 $frm->postCensorship($formData["cens_message"], $_GET["pos_pk"],1);
00310 }
00311 elseif ($_POST["cancel"] != "" && $_GET["cmd"] == "ready_censor")
00312 {
00313 $frm->postCensorship($formData["cens_message"], $_GET["pos_pk"]);
00314 }
00315 }
00316
00317
00318 $first_node = $frm->getFirstPostNode($_GET["thr_pk"]);
00319
00320
00321 $frm->setOrderField($orderField);
00322
00323
00324 $subtree_nodes = $frm->getPostTree($first_node);
00325
00326 $posNum = count($subtree_nodes);
00327
00328 $pageHits = $frm->getPageHits();
00329
00330 $z = 0;
00331
00332
00333 if ($posNum > $pageHits)
00334 {
00335 $params = array(
00336 "ref_id" => $_GET["ref_id"],
00337 "thr_pk" => $_GET["thr_pk"],
00338 "orderby" => $_GET["orderby"]
00339 );
00340
00341 if (!$_GET["offset"])
00342 {
00343 $Start = 0;
00344 }
00345 else
00346 {
00347 $Start = $_GET["offset"];
00348 }
00349
00350 $linkbar = ilUtil::Linkbar(basename($_SERVER["PHP_SELF"]),$posNum,$pageHits,$Start,$params);
00351
00352 if ($linkbar != "")
00353 {
00354 $menutpl->setCurrentBlock("linkbar");
00355 $menutpl->setVariable("LINKBAR", $linkbar);
00356 $menutpl->parseCurrentBlock();
00357 }
00358 }
00359
00360 $menutpl->setCurrentBlock("btn_row");
00361 $menutpl->parseCurrentBlock();
00362 $tpl->setVariable("THREAD_MENU", $menutpl->get());
00363
00364
00365
00366 $jump = 0;
00367
00368
00369 foreach ($subtree_nodes as $node)
00370 {
00371
00372 if ($_GET["pos_pk"] && $_GET["pos_pk"] == $node["pos_pk"])
00373 {
00374 $jump ++;
00375 }
00376
00377 if ($posNum > $pageHits && $z >= ($Start+$pageHits))
00378 {
00379
00380 if ($_GET["pos_pk"] && $jump < 1)
00381 {
00382 header("location: forums_threads_view.php?thr_pk=".$_GET["thr_pk"]."&ref_id=".
00383 $_GET["ref_id"]."&pos_pk=".$_GET["pos_pk"]."&offset=".($Start+$pageHits)."&orderby=".$_GET["orderby"]);
00384 exit();
00385 }
00386 else
00387 {
00388 break;
00389 }
00390 }
00391
00392 if (($posNum > $pageHits && $z >= $Start) || $posNum <= $pageHits)
00393 {
00394 if ($rbacsystem->checkAccess("edit_post", $_GET["ref_id"]))
00395 {
00396
00397 if (($_GET["cmd"] == "showreply" || $_GET["cmd"] == "showedit") && $_GET["pos_pk"] == $node["pos_pk"])
00398 {
00399
00400 if (count($file_obj->getFilesOfPost()) && $_GET["cmd"] == "showedit")
00401 {
00402 foreach ($file_obj->getFilesOfPost() as $file)
00403 {
00404 $tpl->setCurrentBlock("ATTACHMENT_EDIT_ROW");
00405 $tpl->setVariable("FILENAME",$file["name"]);
00406 $tpl->setVariable("CHECK_FILE",ilUtil::formCheckbox(0,"del_file[]",$file["name"]));
00407 $tpl->parseCurrentBlock();
00408 }
00409
00410 $tpl->setCurrentBlock("reply_attachment_edit");
00411 $tpl->setVariable("FILE_DELETE_ACTION",
00412 "forums_threads_view.php?ref_id=$_GET[ref_id]&cmd=showedit".
00413 "&pos_pk=$_GET[pos_pk]&thr_pk=$_GET[thr_pk]");
00414 $tpl->setVariable("TXT_ATTACHMENTS_EDIT",$lng->txt("forums_attachments_edit"));
00415 $tpl->setVariable("ATTACHMENT_EDIT_DELETE",$lng->txt("forums_delete_file"));
00416 $tpl->parseCurrentBlock();
00417 }
00418
00419
00420 $tpl->setCurrentBlock("reply_attachment");
00421 $tpl->setVariable("TXT_ATTACHMENTS_ADD",$lng->txt("forums_attachments_add"));
00422 # $tpl->setVariable("UPLOAD_ACTION","forums_threads_view.php?ref_id=$_GET[ref_id]&cmd=showedit".
00423 # "&pos_pk=$_GET[pos_pk]&thr_pk=$_GET[thr_pk]");
00424 $tpl->setVariable("BUTTON_UPLOAD",$lng->txt("upload"));
00425 $tpl->parseCurrentBlock();
00426 $tpl->setCurrentBlock("reply_post");
00427 $tpl->setVariable("REPLY_ANKER", $_GET["pos_pk"]);
00428
00429 $tpl->setVariable("TXT_FORM_SUBJECT",$lng->txt("forums_subject"));
00430 if ($_GET["cmd"] == "showreply")
00431 {
00432 $tpl->setVariable("TXT_FORM_HEADER", $lng->txt("forums_your_reply"));
00433 }
00434 else
00435 {
00436 $tpl->setVariable("TXT_FORM_HEADER", $lng->txt("forums_edit_post"));
00437 }
00438
00439 $tpl->setVariable("TXT_FORM_MESSAGE", $lng->txt("forums_the_post"));
00440
00441 if ($_GET["cmd"] == "showreply")
00442 {
00443 $tpl->setVariable("SUBJECT_VALUE",ilUtil::prepareFormOutput($threadData["thr_subject"]));
00444 $tpl->setVariable("FORM_MESSAGE", $frm->prepareText($node["message"],1));
00445 }
00446 else
00447 {
00448 $tpl->setVariable("SUBJECT_VALUE",ilUtil::prepareFormOutput($node["subject"]));
00449 $tpl->setVariable("FORM_MESSAGE", $frm->prepareText($node["message"],2));
00450 }
00451
00452 include_once 'classes/class.ilMail.php';
00453 $umail = new ilMail($_SESSION["AccountId"]);
00454
00455 if ($rbacsystem->checkAccess("mail_visible",$umail->getMailObjectReferenceId()))
00456 {
00457 global $ilUser;
00458
00459
00460 if(!$frm->isNotificationEnabled($ilUser->getId(), $_GET["thr_pk"]))
00461 {
00462 $tpl->setCurrentBlock("notify");
00463 $tpl->setVariable("NOTIFY",$lng->txt("forum_notify_me"));
00464 $tpl->setVariable("NOTIFY_CHECKED",$node["notify"] ? "checked=\"checked\"" : "");
00465 $tpl->parseCurrentBlock();
00466 }
00467 }
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477 $tpl->setVariable("SUBMIT", $lng->txt("submit"));
00478 $tpl->setVariable("RESET", $lng->txt("reset"));
00479 $tpl->setVariable("FORMACTION", basename($_SERVER["PHP_SELF"])."?cmd=ready_".$_GET["cmd"]."&ref_id=".
00480 $_GET["ref_id"]."&pos_pk=".$_GET["pos_pk"]."&thr_pk=".$_GET["thr_pk"].
00481 "&offset=".$Start."&orderby=".$_GET["orderby"]);
00482 $tpl->parseCurrentBlock("reply_post");
00483
00484 }
00485 else
00486 {
00487
00488 if ($rbacsystem->checkAccess("delete_post", $_GET["ref_id"]))
00489 {
00490
00491 if ($_GET["cmd"] == "delete" && $_GET["pos_pk"] == $node["pos_pk"])
00492 {
00493 $tpl->setCurrentBlock("kill_cell");
00494 $tpl->setVariable("KILL_ANKER", $_GET["pos_pk"]);
00495 $tpl->setVariable("KILL_SPACER","<hr noshade=\"noshade\" width=\"100%\" size=\"1\" align=\"center\">");
00496 $tpl->setVariable("TXT_KILL", $lng->txt("forums_info_delete_post"));
00497
00498 $tpl->setVariable("DEL_FORMACTION", "forums_frameset.php?cmd=ready_delete&ref_id=".
00499 $_GET["ref_id"]."&pos_pk=".$node["pos_pk"]."&thr_pk=".$_GET["thr_pk"].
00500 "&offset=".$Start."&orderby=".$_GET["orderby"]);
00501 $t_frame = ilFrameTargetInfo::_getFrame("MainContent");
00502
00503 $tpl->setVariable("DEL_FORM_TARGET", $t_frame);
00504 $tpl->setVariable("CANCEL_BUTTON", $lng->txt("cancel"));
00505 $tpl->setVariable("CONFIRM_BUTTON", $lng->txt("confirm"));
00506 $tpl->parseCurrentBlock("kill_cell");
00507 }
00508 else
00509 {
00510
00511 if ($_GET["cmd"] != "censor" || $_GET["pos_pk"] != $node["pos_pk"])
00512 {
00513 $tpl->setCurrentBlock("del_cell");
00514 $tpl->setVariable("DEL_LINK",
00515 "forums_threads_view.php?cmd=delete&pos_pk=".
00516 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".$Start.
00517 "&orderby=".$_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".
00518 $node["pos_pk"]);
00519 $tpl->setVariable("DEL_BUTTON", $lng->txt("delete"));
00520 $tpl->parseCurrentBlock("del_cell");
00521 }
00522 }
00523
00524
00525
00526 if ($_GET["cmd"] == "censor" && $_GET["pos_pk"] == $node["pos_pk"])
00527 {
00528 $tpl->setCurrentBlock("censorship_cell");
00529 $tpl->setVariable("CENS_ANKER", $_GET["pos_pk"]);
00530 $tpl->setVariable("CENS_SPACER","<hr noshade=\"noshade\" width=\"100%\" size=\"1\" align=\"center\">");
00531 $tpl->setVariable("CENS_FORMACTION", basename($_SERVER["PHP_SELF"])."?cmd=ready_censor&ref_id=".
00532 $_GET["ref_id"]."&pos_pk=".$node["pos_pk"]."&thr_pk=".$_GET["thr_pk"].
00533 "&offset=".$Start."&orderby=".$_GET["orderby"]);
00534 $tpl->setVariable("TXT_CENS_MESSAGE", $lng->txt("forums_the_post"));
00535 $tpl->setVariable("TXT_CENS_COMMENT", $lng->txt("forums_censor_comment").":");
00536 $tpl->setVariable("CENS_MESSAGE", $frm->prepareText($node["pos_cens_com"],2));
00537 $tpl->setVariable("CANCEL_BUTTON", $lng->txt("cancel"));
00538 $tpl->setVariable("CONFIRM_BUTTON", $lng->txt("confirm"));
00539
00540 if ($node["pos_cens"] == 1)
00541 {
00542 $tpl->setVariable("TXT_CENS", $lng->txt("forums_info_censor2_post"));
00543 $tpl->setVariable("CANCEL_BUTTON", $lng->txt("yes"));
00544 $tpl->setVariable("CONFIRM_BUTTON", $lng->txt("no"));
00545 }
00546 else
00547 $tpl->setVariable("TXT_CENS", $lng->txt("forums_info_censor_post"));
00548
00549 $tpl->parseCurrentBlock("censorship_cell");
00550 }
00551 elseif (($_GET["cmd"] == "delete" && $_GET["pos_pk"] != $node["pos_pk"]) || $_GET["cmd"] != "delete")
00552 {
00553
00554 $tpl->setCurrentBlock("cens_cell");
00555 $tpl->setVariable("CENS_LINK",
00556 "forums_threads_view.php?cmd=censor&pos_pk=".
00557 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".
00558 $Start."&orderby=".$_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".
00559 $node["pos_pk"]);
00560 $tpl->setVariable("CENS_BUTTON", $lng->txt("censorship"));
00561 $tpl->parseCurrentBlock("cens_cell");
00562 }
00563
00564 if(!$forumObj->isRead($ilUser->getId(),$node['pos_pk']))
00565 {
00566 $tpl->setCurrentBlock("read_cell");
00567 $tpl->setVariable("READ_LINK", "forums_threads_view.php?pos_pk=".
00568 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".
00569 $Start."&orderby=".$_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".
00570 $node["pos_pk"]);
00571 $tpl->setVariable("READ_BUTTON", $lng->txt("is_read"));
00572 $tpl->parseCurrentBlock("read_cell");
00573 }
00574
00575 }
00576
00577 if (($_GET["cmd"] != "delete") || ($_GET["cmd"] == "delete" && $_GET["pos_pk"] != $node["pos_pk"]))
00578 {
00579 if ($_GET["cmd"] != "censor" || $_GET["pos_pk"] != $node["pos_pk"])
00580 {
00581
00582 if ($frm->checkEditRight($node["pos_pk"]) && $node["pos_cens"] != 1)
00583 {
00584 $tpl->setCurrentBlock("edit_cell");
00585 $tpl->setVariable("EDIT_LINK","forums_threads_view.php?cmd=showedit&pos_pk=".
00586 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".$Start."&orderby=".
00587 $_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".$node["pos_pk"]);
00588 $tpl->setVariable("EDIT_BUTTON", $lng->txt("edit"));
00589 $tpl->parseCurrentBlock("edit_cell");
00590 }
00591
00592 if ($node["pos_cens"] != 1)
00593 {
00594
00595 $tpl->setCurrentBlock("print_cell");
00596
00597 $tpl->setVariable("PRINT_LINK", "forums_export.php?&print_post=".
00598 $node["pos_pk"]."&top_pk=".$topicData["top_pk"]."&thr_pk=".
00599 $threadData["thr_pk"]);
00600 $tpl->setVariable("PRINT_BUTTON", $lng->txt("print"));
00601 $tpl->parseCurrentBlock("print_cell");
00602 }
00603 if ($node["pos_cens"] != 1)
00604 {
00605
00606 $tpl->setCurrentBlock("reply_cell");
00607 $tpl->setVariable("REPLY_LINK",
00608 "forums_threads_view.php?cmd=showreply&pos_pk=".
00609 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".$Start."&orderby=".
00610 $_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".$node["pos_pk"]);
00611 $tpl->setVariable("REPLY_BUTTON", $lng->txt("reply"));
00612 $tpl->parseCurrentBlock("reply_cell");
00613 }
00614 }
00615
00616 $tpl->setVariable("POST_ANKER", $node["pos_pk"]);
00617
00618 }
00619
00620 $tpl->setVariable("SPACER","<hr noshade=\"noshade\" width=\"100%\" size=\"1\" align=\"center\">");
00621
00622 }
00623
00624 }
00625 else
00626 {
00627 if(!$forumObj->isRead($ilUser->getId(),$node['pos_pk']))
00628 {
00629 $tpl->setCurrentBlock("read_cell");
00630 $tpl->setVariable("READ_BUTTON","<a href=\"forums_threads_view.php?pos_pk=".
00631 $node["pos_pk"]."&ref_id=".$_GET["ref_id"]."&offset=".
00632 $Start."&orderby=".$_GET["orderby"]."&thr_pk=".$_GET["thr_pk"]."#".
00633 $node["pos_pk"]."\">".$lng->txt("is_read")."</a>");
00634 $tpl->parseCurrentBlock("read_cell");
00635 }
00636
00637 $tpl->setVariable("POST_ANKER", $node["pos_pk"]);
00638 }
00639
00640 $tmp_file_obj =& new ilFileDataForum($forumObj->getId(),$node["pos_pk"]);
00641 if(count($tmp_file_obj->getFilesOfPost()))
00642 {
00643 if($node["pos_pk"] != $_GET["pos_pk"] || $_GET["cmd"] != "showedit")
00644 {
00645 foreach($tmp_file_obj->getFilesOfPost() as $file)
00646 {
00647 $tpl->setCurrentBlock("attachment_download_row");
00648 $tpl->setVariable("HREF_DOWNLOAD","forums_threads_view.php?ref_id=$_GET[ref_id]&pos_pk=$node[pos_pk]&file=".
00649 urlencode($file["name"]));
00650 $tpl->setVariable("TXT_FILENAME", $file["name"]);
00651 $tpl->parseCurrentBlock();
00652 }
00653 $tpl->setCurrentBlock("attachments");
00654 $tpl->setVariable("TXT_ATTACHMENTS_DOWNLOAD",$lng->txt("forums_attachments"));
00655 $tpl->setVariable("DOWNLOAD_IMG",
00656 ilUtil::getImagePath("icon_attachment.gif"));
00657 $tpl->setVariable("TXT_DOWNLOAD_ATTACHMENT",
00658 $lng->txt("forums_download_attachment"));
00659 $tpl->parseCurrentBlock();
00660 }
00661 }
00662
00663 $tpl->setCurrentBlock("posts_row");
00664 $rowCol = ilUtil::switchColor($z,"tblrow1","tblrow2");
00665 if ($_GET["cmd"] != "censor" || $_GET["pos_pk"] != $node["pos_pk"])
00666 {
00667 $tpl->setVariable("ROWCOL", $rowCol);
00668 }
00669 else
00670 {
00671 $tpl->setVariable("ROWCOL", "tblrowmarked");
00672 }
00673
00674
00675
00676 unset($author);
00677 if (ilObject::_exists($node["author"]))
00678 {
00679 $author = $frm->getUser($node["author"]);
00680 }
00681 else
00682 {
00683 unset($node["author"]);
00684 }
00685
00686
00687
00688
00689
00690
00691
00692 $usr_data = $frm->getUserData($node["author"],$node["import_name"]);
00693
00694 $backurl = urlencode("forums_threads_view.php?ref_id=".$_GET["ref_id"].
00695 "&thr_pk=".$_GET["thr_pk"].
00696 "&pos_pk=".$node["pos_pk"]."#".$node["pos_pk"]);
00697
00698
00699 if ($node["update_user"] > 0)
00700 {
00701 $span_class = "";
00702
00703
00704 $posMod = $frm->getModeratorFromPost($node["pos_pk"]);
00705
00706 if (is_array($posMod) && $posMod["top_mods"] > 0)
00707 {
00708 $MODS = $rbacreview->assignedUsers($posMod["top_mods"]);
00709
00710 if (is_array($MODS))
00711 {
00712 if (in_array($node["update_user"], $MODS))
00713 $span_class = "moderator_small";
00714 }
00715 }
00716
00717 $node["update"] = $frm->convertDate($node["update"]);
00718 #unset($lastuser);
00719 #$lastuser = $frm->getUser($node["update_user"]);
00720
00721 $last_user_data = $frm->getUserData($node['update_user']);
00722 if ($span_class == "")
00723 $span_class = "small";
00724
00725
00726 if($last_user_data['usr_id'])
00727 {
00728 $edited_author = "<a href=\"forums_user_view.php?ref_id=".$_GET["ref_id"]."&thr_pk=".$_GET["thr_pk"]."&user=".
00729 $last_user_data['usr_id']."&backurl=".$backurl."\">".$last_user_data['login']."</a>";
00730 }
00731 else
00732 {
00733 $edited_author = $last_user_data['login'];
00734 }
00735
00736 $tpl->setCurrentBlock("post_update");
00737 $tpl->setVariable("POST_UPDATE", $lng->txt("edited_at").": ".
00738 $node["update"]." - ".strtolower($lng->txt("by"))." ".$edited_author);
00739 $tpl->parseCurrentBlock();
00740
00741 }
00742
00743
00744 if($node["author"])
00745 {
00746 $user_obj = new ilObjUser($usr_data["usr_id"]);
00747
00748 $webspace_dir = ilUtil::getWebspaceDir();
00749 $image_dir = $webspace_dir."/usr_images";
00750 $xthumb_file = $image_dir."/usr_".$user_obj->getID()."_xsmall.jpg";
00751 if ($user_obj->getPref("public_upload") == "y" &&
00752 $user_obj->getPref("public_profile") == "y" &&
00753 @is_file($xthumb_file))
00754 {
00755 $tpl->setCurrentBlock("usr_image");
00756 $tpl->setVariable("USR_IMAGE", $xthumb_file."?t=".rand(1, 99999));
00757 $tpl->parseCurrentBlock();
00758
00759 }
00760 $tpl->setCurrentBlock("posts_row");
00761
00762
00763
00764 $tpl->setVariable("AUTHOR","<a href=\"forums_user_view.php?ref_id=".$_GET["ref_id"]."&thr_pk=".$_GET["thr_pk"]."&user=".
00765 $usr_data["usr_id"]."&backurl=".$backurl."\">".$usr_data["login"]."</a>");
00766
00767 if ($frm->_isModerator($_GET["ref_id"], $ilUser->getId()))
00768 {
00769 $tpl->setVariable("USR_NAME", $usr_data["firstname"]." ".$usr_data["lastname"]);
00770 }
00771 }
00772 else
00773 {
00774 $tpl->setCurrentBlock("posts_row");
00775 $tpl->setVariable("AUTHOR",$usr_data["login"]);
00776 }
00777
00778 if($node["author"])
00779 {
00780 $tpl->setVariable("TXT_REGISTERED", $lng->txt("registered_since").":");
00781 $tpl->setVariable("REGISTERED_SINCE",$frm->convertDate($author->getCreateDate()));
00782 $numPosts = $frm->countUserArticles($author->id);
00783 $tpl->setVariable("TXT_NUM_POSTS", $lng->txt("forums_posts").":");
00784 $tpl->setVariable("NUM_POSTS",$numPosts);
00785 }
00786
00787
00788 $node["message"] = ilUtil::makeClickable($node["message"]);
00789
00790
00791 $node["message"] = $frm->prepareText($node["message"]);
00792
00793 $tpl->setVariable("TXT_CREATE_DATE",$lng->txt("forums_thread_create_date"));
00794
00795 if($forumObj->isRead($ilUser->getId(),$node['pos_pk']))
00796 {
00797 $tpl->setVariable("SUBJECT",$node["subject"]);
00798 }
00799 else
00800 {
00801 if($forumObj->isNew($ilUser->getId(),$_GET['thr_pk'],$node['pos_pk']))
00802 {
00803 $tpl->setVariable("SUBJECT","<i><b>".$node["subject"]."</b></i>");
00804 }
00805 else
00806 {
00807 $tpl->setVariable("SUBJECT","<b>".$node["subject"]."</b>");
00808 }
00809 }
00810
00811 $tpl->setVariable("POST_DATE",$frm->convertDate($node["create_date"]));
00812 $tpl->setVariable("SPACER","<hr noshade width=100% size=1 align='center'>");
00813 if ($node["pos_cens"] > 0)
00814 $tpl->setVariable("POST","<span class=\"moderator\">".nl2br(stripslashes($node["pos_cens_com"]))."</span>");
00815 else
00816 {
00817
00818 $modAuthor = $frm->getModeratorFromPost($node["pos_pk"]);
00819
00820 $spanClass = "";
00821
00822 if (is_array($modAuthor) && $modAuthor["top_mods"] > 0)
00823 {
00824 unset($MODS);
00825
00826 $MODS = $rbacreview->assignedUsers($modAuthor["top_mods"]);
00827
00828 if (is_array($MODS))
00829 {
00830 if (in_array($node["author"], $MODS))
00831 $spanClass = "moderator";
00832 }
00833 }
00834 if ($spanClass != "")
00835 $tpl->setVariable("POST","<span class=\"".$spanClass."\">".nl2br($node["message"])."</span>");
00836 else
00837 $tpl->setVariable("POST",nl2br($node["message"]));
00838 }
00839
00840 $tpl->parseCurrentBlock("posts_row");
00841
00842 }
00843
00844 $z++;
00845
00846 }
00847 }
00848 else
00849 {
00850 $tpl->setCurrentBlock("posts_no");
00851 $tpl->setVAriable("TXT_MSG_NO_POSTS_AVAILABLE",$lng->txt("forums_posts_not_available"));
00852 $tpl->parseCurrentBlock("posts_no");
00853 }
00854
00855 $tpl->setCurrentBlock("posttable");
00856 $tpl->setVariable("COUNT_POST", $lng->txt("forums_count_art").": ".$posNum);
00857
00858 $tpl->setVariable("TXT_AUTHOR", $lng->txt("author"));
00859 $tpl->setVariable("TXT_POST", $lng->txt("forums_thread").": ".$threadData["thr_subject"]);
00860
00861 $tpl->parseCurrentBlock("posttable");
00862
00863 $tpl->setVariable("TPLPATH", $tpl->vars["TPLPATH"]);
00864
00865 $tpl->setCurrentBlock("perma_link");
00866 $tpl->setVariable("PERMA_LINK", ILIAS_HTTP_PATH.
00867 "/goto.php?target=".
00868 "frm".
00869 "_".$_GET["ref_id"]."_".$_GET["thr_pk"]."&client_id=".CLIENT_ID);
00870 $tpl->setVariable("TXT_PERMA_LINK", $lng->txt("perma_link"));
00871 $tpl->setVariable("PERMA_TARGET", "_top");
00872 $tpl->parseCurrentBlock();
00873
00874
00875 $tpl->show();
00876 ?>