viewthread_flat.inc.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. /*
  3. ==============================================================================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2006 Dokeos S.A.
  6. Copyright (c) 2006 Ghent University (UGent)
  7. For a full list of contributors, see "credits.txt".
  8. The full license can be read in "license.txt".
  9. This program is free software; you can redistribute it and/or
  10. modify it under the terms of the GNU General Public License
  11. as published by the Free Software Foundation; either version 2
  12. of the License, or (at your option) any later version.
  13. See the GNU General Public License for more details.
  14. Contact address: Dokeos, 44 rue des palais, B-1030 Brussels, Belgium
  15. Mail: info@dokeos.com
  16. ==============================================================================
  17. */
  18. /**
  19. * These files are a complete rework of the forum. The database structure is
  20. * based on phpBB but all the code is rewritten. A lot of new functionalities
  21. * are added:
  22. * - forum categories and forums can be sorted up or down, locked or made invisible
  23. * - consistent and integrated forum administration
  24. * - forum options: are students allowed to edit their post?
  25. * moderation of posts (approval)
  26. * reply only forums (students cannot create new threads)
  27. * multiple forums per group
  28. * - sticky messages
  29. * - new view option: nested view
  30. * - quoting a message
  31. *
  32. * @Author Patrick Cool <patrick.cool@UGent.be>, Ghent University
  33. * @Copyright Ghent University
  34. * @Copyright Patrick Cool
  35. *
  36. * @package dokeos.forum
  37. */
  38. /**
  39. **************************************************************************
  40. * IMPORTANT NOTICE
  41. * Please do not change anything is this code yet because there are still
  42. * some significant code that need to happen and I do not have the time to
  43. * merge files and test it all over again. So for the moment, please do not
  44. * touch the code
  45. * -- Patrick Cool <patrick.cool@UGent.be>
  46. **************************************************************************
  47. */
  48. $rows=get_posts($current_thread['thread_id']);
  49. foreach ($rows as $row)
  50. {
  51. echo "<table width=\"100%\" class=\"post\" cellspacing=\"5\" border=\"0\">\n";
  52. // the style depends on the status of the message: approved or not
  53. if ($row['visible']=='0')
  54. {
  55. $titleclass='forum_message_post_title_2_be_approved';
  56. $messageclass='forum_message_post_text_2_be_approved';
  57. $leftclass='forum_message_left_2_be_approved';
  58. }
  59. else
  60. {
  61. $titleclass='forum_message_post_title';
  62. $messageclass='forum_message_post_text';
  63. $leftclass='forum_message_left';
  64. }
  65. echo "\t<tr>\n";
  66. echo "\t\t<td rowspan=\"3\" class=\"$leftclass\">";
  67. if ($row['user_id']=='0')
  68. {
  69. $name=prepare4display($row['poster_name']);
  70. }
  71. else
  72. {
  73. $name=$row['firstname'].' '.$row['lastname'];
  74. }
  75. echo display_user_link($row['user_id'], $name).'<br />';
  76. echo $row['post_date'].'<br /><br />';
  77. // The user who posted it can edit his thread only if the course admin allowed this in the properties of the forum
  78. // The course admin him/herself can do this off course always
  79. if (($current_forum['allow_edit']==1 AND $row['user_id']==$_uid) or api_is_allowed_to_edit())
  80. {
  81. echo "<a href=\"editpost.php?forum=".$_GET['forum']."&amp;thread=".$_GET['thread']."&amp;post=".$row['post_id']."\">".icon('../img/edit.gif',get_lang('Edit'))."</a>\n";
  82. }
  83. if (api_is_allowed_to_edit())
  84. {
  85. echo "<a href=\"".$_SERVER['PHP_SELF']."?forum=".$_GET['forum']."&amp;thread=".$_GET['thread']."&amp;action=delete&amp;content=post&amp;id=".$row['post_id']."\" onclick=\"javascript:if(!confirm('".addslashes(htmlentities(get_lang("DeletePost")))."')) return false;\">".icon('../img/delete.gif',get_lang('Delete'))."</a>\n";
  86. display_visible_invisible_icon('post', $row['post_id'], $row['visible'],array('forum'=>$_GET['forum'],'thread'=>$_GET['thread'] ));
  87. echo "\n";
  88. echo "<a href=\"viewthread.php?forum=".$_GET['forum']."&amp;thread=".$_GET['thread']."&amp;action=move&amp;post=".$row['post_id']."\">".icon('../img/forummovepost.gif',get_lang('Edit'))."</a>";
  89. }
  90. echo '<br /><br />';
  91. //if (($current_forum_category['locked']==0 AND $current_forum['locked']==0 AND $current_thread['locked']==0) OR api_is_allowed_to_edit())
  92. if ($current_forum_category['locked']==0 AND $current_forum['locked']==0 AND $current_thread['locked']==0 OR api_is_allowed_to_edit())
  93. {
  94. if ($_uid OR ($current_forum['allow_anonymous']==1 AND !$_uid))
  95. {
  96. echo '<a href="reply.php?forum='.$_GET['forum'].'&amp;thread='.$_GET['thread'].'&amp;post='.$row['post_id'].'&amp;action=replymessage">'.get_lang('ReplyToMessage').'</a><br />';
  97. echo '<a href="reply.php?forum='.$_GET['forum'].'&amp;thread='.$_GET['thread'].'&amp;post='.$row['post_id'].'&amp;action=quote">'.get_lang('QuoteMessage').'</a><br /><br />';
  98. }
  99. }
  100. else
  101. {
  102. if ($current_forum_category['locked']==1)
  103. {
  104. echo get_lang('ForumcategoryLocked').'<br />';
  105. }
  106. if ($current_forum['locked']==1)
  107. {
  108. echo get_lang('ForumLocked').'<br />';
  109. }
  110. if ($current_thread['locked']==1)
  111. {
  112. echo get_lang('ThreadLocked').'<br />';
  113. }
  114. }
  115. echo "</td>\n";
  116. // show the
  117. if (isset($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']][$row['post_id']]) and !empty($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']][$row['post_id']]) and !empty($whatsnew_post_info[$_GET['forum']][$row['thread_id']]))
  118. {
  119. $post_image=icon('../img/forumpostnew.gif');
  120. }
  121. else
  122. {
  123. $post_image=icon('../img/forumpost.gif');
  124. }
  125. if ($row['post_notification']=='1' AND $row['poster_id']==$_uid)
  126. {
  127. $post_image.=icon('../img/forumnotification.gif',get_lang('YouWillBeNotified'));
  128. }
  129. // The post title
  130. echo "\t\t<td class=\"$titleclass\">".$post_image." ".prepare4display($row['post_title'])."</td>\n";
  131. echo "\t</tr>\n";
  132. // The post message
  133. echo "\t<tr>\n";
  134. echo "\t\t<td class=\"$messageclass\">".prepare4display($row['post_text'])."</td>\n";
  135. echo "\t</tr>\n";
  136. // The added resources
  137. /*
  138. echo "<tr><td>";
  139. if (check_added_resources("forum_post", $row["post_id"]))
  140. {
  141. echo "<i>".get_lang("AddedResources")."</i><br/>";
  142. if ($row['visible']=='0')
  143. {
  144. $addedresource_style="invisible";
  145. }
  146. display_added_resources("forum_post", $row["post_id"], $addedresource_style);
  147. }
  148. echo "</td></tr>";
  149. */
  150. // The post has been displayed => it can be removed from the what's new array
  151. unset($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']][$row['post_id']]);
  152. unset($whatsnew_post_info[$current_forum['forum_id']][$current_thread['thread_id']]);
  153. unset($_SESSION['whatsnew_post_info'][$current_forum['forum_id']][$current_thread['thread_id']][$row['post_id']]);
  154. unset($_SESSION['whatsnew_post_info'][$current_forum['forum_id']][$current_thread['thread_id']]);
  155. echo "</table>";
  156. }
  157. ?>