diff --git a/main/forum/forumfunction.inc.php b/main/forum/forumfunction.inc.php index a44c7f1678..267e286666 100644 --- a/main/forum/forumfunction.inc.php +++ b/main/forum/forumfunction.inc.php @@ -3352,7 +3352,7 @@ function display_forum_search_results($search_term) */ function search_link() { - $return = ' '.Display::return_icon('search.gif').' '.get_lang('Search').''; + $return = ' '.Display::return_icon('search.gif', get_lang('Search')).' '.get_lang('Search').''; if (!empty($_GET['search'])) { $return .= ': '.Security::remove_XSS($_GET['search']).' '; diff --git a/main/forum/index.php b/main/forum/index.php index 08d66a3cda..2357550c1e 100644 --- a/main/forum/index.php +++ b/main/forum/index.php @@ -64,7 +64,7 @@ api_protect_course_script(true); // including additional library scripts require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); require_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php'); -$nameTools=get_lang('Forum'); +$nameTools=get_lang('Forums'); /* ----------------------------------------------------------- @@ -188,9 +188,9 @@ if ($_GET['action']!='add' && $_GET['action']!='edit' ) { echo '
'; echo ''.search_link().''; if (api_is_allowed_to_edit(false,true)) { - echo ' '.Display::return_icon('forum_category_new.gif').' '.get_lang('AddForumCategory').' '; + echo ' '.Display::return_icon('forum_category_new.gif', get_lang('AddForumCategory')).' '.get_lang('AddForumCategory').''; if (is_array($forum_categories_list)) { - echo ' '.Display::return_icon('forum_new.gif').' '.get_lang('AddForum').''; + echo ' '.Display::return_icon('forum_new.gif', get_lang('AddForum')).' '.get_lang('AddForum').''; } //echo ' | '.get_lang('MigrateForum').''; } @@ -321,11 +321,11 @@ if ($_GET['action']!='add' && $_GET['action']!='edit' ) { if (is_array($whatsnew_post_info[$forum['forum_id']]) and !empty($whatsnew_post_info[$forum['forum_id']])) { echo icon('../img/forumgroupnew.gif'); } else { - echo icon('../img/forumgroup.gif'); + echo icon('../img/forumgroup.gif', get_lang('GroupForum')); } } else { if (is_array($whatsnew_post_info[$forum['forum_id']]) and !empty($whatsnew_post_info[$forum['forum_id']])) { - echo icon('../img/forum.gif'); + echo icon('../img/forum.gif', get_lang('Forum')); } else { echo icon('../img/forum.gif'); } diff --git a/main/forum/viewforum.php b/main/forum/viewforum.php index b032f46cb6..c79d552353 100644 --- a/main/forum/viewforum.php +++ b/main/forum/viewforum.php @@ -1,401 +1,401 @@ -, Ghent University -* @Copyright Ghent University -* @Copyright Patrick Cool -* -* @package dokeos.forum -*/ - -// name of the language file that needs to be included -$language_file = 'forum'; - -// including the global dokeos file -require '../inc/global.inc.php'; - -// notice for unauthorized people. -api_protect_course_script(true); - -// the section (tabs) -$this_section=SECTION_COURSES; - -// including additional library scripts -require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); -include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php'); -$nameTools=get_lang('Forum'); - - -//are we in a lp ? -$origin = ''; -if(isset($_GET['origin'])) { - $origin = Security::remove_XSS($_GET['origin']); - $origin_string = '&origin='.$origin; -} - -/* ------------------------------------------------------------ - Including necessary files ------------------------------------------------------------ -*/ -require 'forumconfig.inc.php'; -require_once 'forumfunction.inc.php'; - -$userid=api_get_user_id(); -$userinf=api_get_user_info($userid); - -/* -============================================================================== - MAIN DISPLAY SECTION -============================================================================== -*/ - - -/* ------------------------------------------------------------ - Retrieving forum and forum categorie information ------------------------------------------------------------ -*/ -// we are getting all the information about the current forum and forum category. -// note pcool: I tried to use only one sql statement (and function) for this -// but the problem is that the visibility of the forum AND forum cateogory are stored in the item_property table -$current_forum=get_forum_information($_GET['forum']); // note: this has to be validated that it is an existing forum. -$current_forum_category=get_forumcategory_information($current_forum['forum_category']); - - - -/* ------------------------------------------------------------ - Header and Breadcrumbs ------------------------------------------------------------ -*/ -$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS($_GET['search']),"name" => $nameTools); -$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title'])); -$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title'])); - -if($origin=='learnpath') { - include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); -} else { - // the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string - Display :: display_header(''); - api_display_tool_title($nameTools); -} - -/* ------------------------------------------------------------ - Actions ------------------------------------------------------------ -*/ -// Change visibility of a forum or a forum category -if (($_GET['action']=='invisible' OR $_GET['action']=='visible') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { - $message=change_visibility($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first -} -// locking and unlocking -if (($_GET['action']=='lock' OR $_GET['action']=='unlock') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { - $message=change_lock_status($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first -} -// deleting -if ($_GET['action']=='delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { - $message=delete_forum_forumcategory_thread($_GET['content'],$_GET['id']); // note: this has to be cleaned first -} -// moving -if ($_GET['action']=='move' and isset($_GET['thread']) AND api_is_allowed_to_edit(false,true)) { - $message=move_thread_form(); -} -// notification -if ($_GET['action'] == 'notify' AND isset($_GET['content']) AND isset($_GET['id'])) { - $return_message = set_notification($_GET['content'],$_GET['id']); - Display :: display_confirmation_message($return_message,false); -} - -// student list - -if ($_GET['action'] == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND $userinf['status']=='1') { - - switch($_GET['list']) { - case "qualify": - $student_list=get_thread_users_qualify($_GET['id']); - $nrorow3 =-2; - break; - case "notqualify": - $student_list=get_thread_users_not_qualify($_GET['id']); - $nrorow3 =-2; - break; - default: - $student_list=get_thread_users_details($_GET['id']); - $nrorow3 = Database::num_rows($student_list); - break; - } - $table_list = '


'.get_lang('ThreadUsersList').' :'.get_name_thread_by_id($_GET['id']).'

'; - if ($nrorow3>0 || $nrorow3==-2) { - $url = 'cidReq='.Security::remove_XSS($_GET['cidReq']).'&forum='.Security::remove_XSS($_GET['forum']).'&action='.Security::remove_XSS($_GET['action']).'&content='.Security::remove_XSS($_GET['content']).'&id='.Security::remove_XSS($_GET['id']); - $table_list.= '
-
- - - - - - -
'.get_lang('AllStudents').''.get_lang('StudentsQualified').''.get_lang('StudentsNotQualified').'
-
- '; - - $icon_qualify = 'blog_new.gif'; - $table_list.= '

'; - // The column headers (to do: make this sortable) - $table_list.= ''; - $table_list.= ''; - - if ($_GET['list']=='qualify') { - $table_list.= ''; - } - if ($userinf['status']=='1') { - $table_list.= ''; - } - $table_list.= ''; - $max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$_GET['id']); - $counter_stdlist=0; - while ($row_student_list=Database::fetch_array($student_list)) { - if ($counter_stdlist%2==0) { - $class_stdlist="row_odd"; - } else { - $class_stdlist="row_even"; - } - $name_user_theme = $row_student_list['firstname'].' '.$row_student_list['lastname']; - $table_list.= ''; - if ($_GET['list']=='qualify') { - $table_list.= ''; - } - if ($userinf['status']=='1') { - $current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row_student_list['user_id'],$_GET['id']); - $table_list.= ''; - } - $counter_stdlist++; - } - - $table_list.= '
'.get_lang('NamesAndFirstNames').''.get_lang('Qualify').''.get_lang('Qualify').'
'.$name_user_theme.''.$row_student_list['qualify'].'/'.$max_qualify.''.icon('../img/'.$icon_qualify,get_lang('Qualify')).'
'; - $table_list .= '
'; - } - else - { - $table_list .= get_lang('NoParticipation'); - } -} - -/* ------------------------------------------------------------ - Is the user allowed here? ------------------------------------------------------------ -*/ -// if the user is not a course administrator and the forum is hidden -// then the user is not allowed here. -if (!api_is_allowed_to_edit(false,true) AND ($current_forum_category['visibility']==0 OR $current_forum['visibility']==0)) { - forum_not_allowed_here(); -} - - -/* ------------------------------------------------------------ - Display the action messages ------------------------------------------------------------ -*/ -if (!empty($message)) { - Display :: display_confirmation_message($message); -} -/* ------------------------------------------------------------ - Action Links ------------------------------------------------------------ -*/ -echo '
'; -echo ''.search_link().''; -// The link should appear when -// 1. the course admin is here -// 2. the course member is here and new threads are allowed -// 3. a visitor is here and new threads AND allowed AND anonymous posts are allowed -if (api_is_allowed_to_edit(false,true) OR ($current_forum['allow_new_threads']==1 AND isset($_user['user_id'])) OR ($current_forum['allow_new_threads']==1 AND !isset($_user['user_id']) AND $current_forum['allow_anonymous']==1)) { - if ($current_forum['locked'] <> 1 AND $current_forum['locked'] <> 1) { - echo ''.Display::return_icon('forumthread_new.gif').' '.get_lang('NewTopic').''; - } else { - echo get_lang('ForumLocked'); - } -} -echo '
'; - -/* ------------------------------------------------------------ - Display ------------------------------------------------------------ -*/ -echo "\n"; - -// the current forum -if ($origin != 'learnpath') { - echo "\t\n\t\t\n"; - echo "\t\n"; -} - -echo "\n"; -echo "\t\n"; - -// The column headers (to do: make this sortable) -echo "\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\t\n"; -echo "\t\n"; - -// getting al the threads -$threads=get_threads($_GET['forum']); // note: this has to be cleaned first - -$whatsnew_post_info=$_SESSION['whatsnew_post_info']; - -$counter=0; -if(is_array($threads)) { - foreach ($threads as $row) { - // thread who have no replies yet and the only post is invisible should not be displayed to students. - if (api_is_allowed_to_edit(false,true) OR !($row['thread_replies']=='0' AND $row['visible']=='0')) { - if($counter%2==0) { - $class="row_odd"; - } else { - $class="row_even"; - } - echo "\t\n"; - echo "\t\t\n"; - echo "\t\t\n"; - echo "\t\t\n"; - if ($row['user_id']=='0') { - $name=prepare4display($row['thread_poster_name']); - } else { - $name=$row['firstname'].' '.$row['lastname']; - } - echo "\t\t\n"; - if ($row['last_poster_user_id']=='0') { - $name=$row['poster_name']; - } else { - $name=$row['last_poster_firstname'].' '.$row['last_poster_lastname']; - } - - if($origin != 'learnpath') { - echo "\t\t\n"; - } else { - echo "\t\t\n"; - } - - // if the last post is invisible and it is not the teacher who is looking then we have to find the last visible post of the thread - if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') { - $last_post=$row['thread_date']." ".get_lang('By').' '.display_user_link($row['last_poster_user_id'], $name); - } elseif ($origin!='learnpath') { - $last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC"; - $last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); - $last_post_row=mysql_fetch_array($last_post_result); - $name=$last_post_row['firstname'].' '.$last_post_row['lastname']; - $last_post=$last_post_row['post_date']." ".get_lang('By').' '.display_user_link($last_post_row['poster_id'], $name); - } else { - $last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC"; - $last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); - $last_post_row=mysql_fetch_array($last_post_result); - $name=$last_post_row['firstname'].' '.$last_post_row['lastname']; - $last_post=$last_post_row['post_date']." ".get_lang('By').' '.$name; - } - echo "\t\t\n"; - echo "\t\t\n"; - echo "\t\n"; - } - $counter++; - - - } -} -echo "
"; - echo ''.prepare4display($current_forum['forum_title']).''; - - if (!empty ($current_forum['forum_comment'])) { - echo '
'.prepare4display($current_forum['forum_comment']).''; - } - - if (!empty ($current_forum_category['cat_title'])) { - echo '
'.prepare4display($current_forum_category['cat_title'])."
"; - } - echo "
".get_lang('Title')."".get_lang('Replies')."".get_lang('Views')."".get_lang('Author')."".get_lang('LastPost')."".get_lang('Actions')."
"; - if (is_array($whatsnew_post_info[$_GET['forum']][$row['thread_id']]) and !empty($whatsnew_post_info[$_GET['forum']][$row['thread_id']])) { - echo icon('../img/forumthread.gif'); - } else { - echo icon('../img/forumthread.gif'); - } - - if ($row['thread_sticky']==1) { - echo icon('../img/exclamation.gif'); - } - echo ""; - echo "".prepare4display($row['thread_title'])."".$row['thread_replies']."".$row['thread_views']."".display_user_link($row['user_id'], $name)."".$name."".$last_post.""; - if (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session'])) { - echo "".icon('../img/edit.gif',get_lang('Edit'))."\n"; - echo "".icon('../img/delete.gif',get_lang('Delete')).""; - display_visible_invisible_icon('thread', $row['thread_id'], $row['visibility'], array("forum"=>$_GET['forum'],'origin'=>$origin)); - display_lock_unlock_icon('thread',$row['thread_id'], $row['locked'], array("forum"=>$_GET['forum'],'origin'=>$origin)); - echo "".icon('../img/deplacer_fichier.gif',get_lang('MoveThread')).""; - } - $iconnotify = 'send_mail.gif'; - if (is_array($_SESSION['forum_notification']['thread'])) { - if (in_array($row['thread_id'],$_SESSION['forum_notification']['thread'])) { - $iconnotify = 'send_mail_checked.gif'; - } - } - $icon_liststd = 'group.gif'; - echo "".icon('../img/'.$iconnotify,get_lang('NotifyMe')).""; - if ($userinf['status']=='1') { - echo ''.icon('../img/'.$icon_liststd,get_lang('StudentList')).''; - } - echo "
"; -echo $table_list; -/* -============================================================================== - FOOTER -============================================================================== -*/ -if ($origin != 'learnpath') { - Display :: display_footer(); +, Ghent University +* @Copyright Ghent University +* @Copyright Patrick Cool +* +* @package dokeos.forum +*/ + +// name of the language file that needs to be included +$language_file = 'forum'; + +// including the global dokeos file +require '../inc/global.inc.php'; + +// notice for unauthorized people. +api_protect_course_script(true); + +// the section (tabs) +$this_section=SECTION_COURSES; + +// including additional library scripts +require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); +include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php'); +$nameTools=get_lang('Forum'); + + +//are we in a lp ? +$origin = ''; +if(isset($_GET['origin'])) { + $origin = Security::remove_XSS($_GET['origin']); + $origin_string = '&origin='.$origin; +} + +/* +----------------------------------------------------------- + Including necessary files +----------------------------------------------------------- +*/ +require 'forumconfig.inc.php'; +require_once 'forumfunction.inc.php'; + +$userid=api_get_user_id(); +$userinf=api_get_user_info($userid); + +/* +============================================================================== + MAIN DISPLAY SECTION +============================================================================== +*/ + + +/* +----------------------------------------------------------- + Retrieving forum and forum categorie information +----------------------------------------------------------- +*/ +// we are getting all the information about the current forum and forum category. +// note pcool: I tried to use only one sql statement (and function) for this +// but the problem is that the visibility of the forum AND forum cateogory are stored in the item_property table +$current_forum=get_forum_information($_GET['forum']); // note: this has to be validated that it is an existing forum. +$current_forum_category=get_forumcategory_information($current_forum['forum_category']); + + + +/* +----------------------------------------------------------- + Header and Breadcrumbs +----------------------------------------------------------- +*/ +$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS($_GET['search']),"name" => $nameTools); +$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title'])); +$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title'])); + +if($origin=='learnpath') { + include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); +} else { + // the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string + Display :: display_header(''); + api_display_tool_title($nameTools); +} + +/* +----------------------------------------------------------- + Actions +----------------------------------------------------------- +*/ +// Change visibility of a forum or a forum category +if (($_GET['action']=='invisible' OR $_GET['action']=='visible') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { + $message=change_visibility($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first +} +// locking and unlocking +if (($_GET['action']=='lock' OR $_GET['action']=='unlock') AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { + $message=change_lock_status($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first +} +// deleting +if ($_GET['action']=='delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { + $message=delete_forum_forumcategory_thread($_GET['content'],$_GET['id']); // note: this has to be cleaned first +} +// moving +if ($_GET['action']=='move' and isset($_GET['thread']) AND api_is_allowed_to_edit(false,true)) { + $message=move_thread_form(); +} +// notification +if ($_GET['action'] == 'notify' AND isset($_GET['content']) AND isset($_GET['id'])) { + $return_message = set_notification($_GET['content'],$_GET['id']); + Display :: display_confirmation_message($return_message,false); +} + +// student list + +if ($_GET['action'] == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND $userinf['status']=='1') { + + switch($_GET['list']) { + case "qualify": + $student_list=get_thread_users_qualify($_GET['id']); + $nrorow3 =-2; + break; + case "notqualify": + $student_list=get_thread_users_not_qualify($_GET['id']); + $nrorow3 =-2; + break; + default: + $student_list=get_thread_users_details($_GET['id']); + $nrorow3 = Database::num_rows($student_list); + break; + } + $table_list = '


'.get_lang('ThreadUsersList').' :'.get_name_thread_by_id($_GET['id']).'

'; + if ($nrorow3>0 || $nrorow3==-2) { + $url = 'cidReq='.Security::remove_XSS($_GET['cidReq']).'&forum='.Security::remove_XSS($_GET['forum']).'&action='.Security::remove_XSS($_GET['action']).'&content='.Security::remove_XSS($_GET['content']).'&id='.Security::remove_XSS($_GET['id']); + $table_list.= '
+
+ + + + + + +
'.get_lang('AllStudents').''.get_lang('StudentsQualified').''.get_lang('StudentsNotQualified').'
+
+ '; + + $icon_qualify = 'blog_new.gif'; + $table_list.= '

'; + // The column headers (to do: make this sortable) + $table_list.= ''; + $table_list.= ''; + + if ($_GET['list']=='qualify') { + $table_list.= ''; + } + if ($userinf['status']=='1') { + $table_list.= ''; + } + $table_list.= ''; + $max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$_GET['id']); + $counter_stdlist=0; + while ($row_student_list=Database::fetch_array($student_list)) { + if ($counter_stdlist%2==0) { + $class_stdlist="row_odd"; + } else { + $class_stdlist="row_even"; + } + $name_user_theme = $row_student_list['firstname'].' '.$row_student_list['lastname']; + $table_list.= ''; + if ($_GET['list']=='qualify') { + $table_list.= ''; + } + if ($userinf['status']=='1') { + $current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row_student_list['user_id'],$_GET['id']); + $table_list.= ''; + } + $counter_stdlist++; + } + + $table_list.= '
'.get_lang('NamesAndFirstNames').''.get_lang('Qualify').''.get_lang('Qualify').'
'.$name_user_theme.''.$row_student_list['qualify'].'/'.$max_qualify.''.icon('../img/'.$icon_qualify,get_lang('Qualify')).'
'; + $table_list .= '
'; + } + else + { + $table_list .= get_lang('NoParticipation'); + } +} + +/* +----------------------------------------------------------- + Is the user allowed here? +----------------------------------------------------------- +*/ +// if the user is not a course administrator and the forum is hidden +// then the user is not allowed here. +if (!api_is_allowed_to_edit(false,true) AND ($current_forum_category['visibility']==0 OR $current_forum['visibility']==0)) { + forum_not_allowed_here(); +} + + +/* +----------------------------------------------------------- + Display the action messages +----------------------------------------------------------- +*/ +if (!empty($message)) { + Display :: display_confirmation_message($message); +} +/* +----------------------------------------------------------- + Action Links +----------------------------------------------------------- +*/ +echo '
'; +echo ''.search_link().''; +// The link should appear when +// 1. the course admin is here +// 2. the course member is here and new threads are allowed +// 3. a visitor is here and new threads AND allowed AND anonymous posts are allowed +if (api_is_allowed_to_edit(false,true) OR ($current_forum['allow_new_threads']==1 AND isset($_user['user_id'])) OR ($current_forum['allow_new_threads']==1 AND !isset($_user['user_id']) AND $current_forum['allow_anonymous']==1)) { + if ($current_forum['locked'] <> 1 AND $current_forum['locked'] <> 1) { + echo ''.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').''; + } else { + echo get_lang('ForumLocked'); + } +} +echo '
'; + +/* +----------------------------------------------------------- + Display +----------------------------------------------------------- +*/ +echo "\n"; + +// the current forum +if ($origin != 'learnpath') { + echo "\t\n\t\t\n"; + echo "\t\n"; +} + +echo "\n"; +echo "\t\n"; + +// The column headers (to do: make this sortable) +echo "\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\t\n"; +echo "\t\n"; + +// getting al the threads +$threads=get_threads($_GET['forum']); // note: this has to be cleaned first + +$whatsnew_post_info=$_SESSION['whatsnew_post_info']; + +$counter=0; +if(is_array($threads)) { + foreach ($threads as $row) { + // thread who have no replies yet and the only post is invisible should not be displayed to students. + if (api_is_allowed_to_edit(false,true) OR !($row['thread_replies']=='0' AND $row['visible']=='0')) { + if($counter%2==0) { + $class="row_odd"; + } else { + $class="row_even"; + } + echo "\t\n"; + echo "\t\t\n"; + echo "\t\t\n"; + echo "\t\t\n"; + if ($row['user_id']=='0') { + $name=prepare4display($row['thread_poster_name']); + } else { + $name=$row['firstname'].' '.$row['lastname']; + } + echo "\t\t\n"; + if ($row['last_poster_user_id']=='0') { + $name=$row['poster_name']; + } else { + $name=$row['last_poster_firstname'].' '.$row['last_poster_lastname']; + } + + if($origin != 'learnpath') { + echo "\t\t\n"; + } else { + echo "\t\t\n"; + } + + // if the last post is invisible and it is not the teacher who is looking then we have to find the last visible post of the thread + if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') { + $last_post=$row['thread_date']." ".get_lang('By').' '.display_user_link($row['last_poster_user_id'], $name); + } elseif ($origin!='learnpath') { + $last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC"; + $last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); + $last_post_row=mysql_fetch_array($last_post_result); + $name=$last_post_row['firstname'].' '.$last_post_row['lastname']; + $last_post=$last_post_row['post_date']." ".get_lang('By').' '.display_user_link($last_post_row['poster_id'], $name); + } else { + $last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC"; + $last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); + $last_post_row=mysql_fetch_array($last_post_result); + $name=$last_post_row['firstname'].' '.$last_post_row['lastname']; + $last_post=$last_post_row['post_date']." ".get_lang('By').' '.$name; + } + echo "\t\t\n"; + echo "\t\t\n"; + echo "\t\n"; + } + $counter++; + + + } +} +echo "
"; + echo ''.prepare4display($current_forum['forum_title']).''; + + if (!empty ($current_forum['forum_comment'])) { + echo '
'.prepare4display($current_forum['forum_comment']).''; + } + + if (!empty ($current_forum_category['cat_title'])) { + echo '
'.prepare4display($current_forum_category['cat_title'])."
"; + } + echo "
".get_lang('Title')."".get_lang('Replies')."".get_lang('Views')."".get_lang('Author')."".get_lang('LastPost')."".get_lang('Actions')."
"; + if (is_array($whatsnew_post_info[$_GET['forum']][$row['thread_id']]) and !empty($whatsnew_post_info[$_GET['forum']][$row['thread_id']])) { + echo icon('../img/forumthread.gif'); + } else { + echo icon('../img/forumthread.gif'); + } + + if ($row['thread_sticky']==1) { + echo icon('../img/exclamation.gif'); + } + echo ""; + echo "".prepare4display($row['thread_title'])."".$row['thread_replies']."".$row['thread_views']."".display_user_link($row['user_id'], $name)."".$name."".$last_post.""; + if (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session'])) { + echo "".icon('../img/edit.gif',get_lang('Edit'))."\n"; + echo "".icon('../img/delete.gif',get_lang('Delete')).""; + display_visible_invisible_icon('thread', $row['thread_id'], $row['visibility'], array("forum"=>$_GET['forum'],'origin'=>$origin)); + display_lock_unlock_icon('thread',$row['thread_id'], $row['locked'], array("forum"=>$_GET['forum'],'origin'=>$origin)); + echo "".icon('../img/deplacer_fichier.gif',get_lang('MoveThread')).""; + } + $iconnotify = 'send_mail.gif'; + if (is_array($_SESSION['forum_notification']['thread'])) { + if (in_array($row['thread_id'],$_SESSION['forum_notification']['thread'])) { + $iconnotify = 'send_mail_checked.gif'; + } + } + $icon_liststd = 'group.gif'; + echo "".icon('../img/'.$iconnotify,get_lang('NotifyMe')).""; + if ($userinf['status']=='1') { + echo ''.icon('../img/'.$icon_liststd,get_lang('StudentList')).''; + } + echo "
"; +echo $table_list; +/* +============================================================================== + FOOTER +============================================================================== +*/ +if ($origin != 'learnpath') { + Display :: display_footer(); } \ No newline at end of file diff --git a/main/forum/viewforumcategory.php b/main/forum/viewforumcategory.php index 5fe8b1386d..0eb58ffb1a 100644 --- a/main/forum/viewforumcategory.php +++ b/main/forum/viewforumcategory.php @@ -169,7 +169,7 @@ if ($_GET['action']!='add') { echo ''.search_link().''; if (api_is_allowed_to_edit(false,true)) { //echo ''.get_lang('AddForumCategory').' | '; - echo ''.Display::return_icon('forum_new.gif').' '.get_lang('AddForum').''; + echo ''.Display::return_icon('forum_new.gif', get_lang('AddForum')).' '.get_lang('AddForum').''; } echo '
'; @@ -264,11 +264,11 @@ if ($_GET['action']!='add') { if (is_array($whatsnew_post_info[$forum['forum_id']]) and !empty($whatsnew_post_info[$forum['forum_id']])) { echo icon('../img/forumgroupnew.gif'); } else { - echo icon('../img/forumgroup.gif'); + echo icon('../img/forumgroup.gif', get_lang('GroupForum')); } } else { if (is_array($whatsnew_post_info[$forum['forum_id']]) and !empty($whatsnew_post_info[$forum['forum_id']])) { - echo icon('../img/forum.gif'); + echo icon('../img/forum.gif', get_lang('Forum')); } else { echo icon('../img/forum.gif'); } diff --git a/main/forum/viewthread.php b/main/forum/viewthread.php index 4e1d8c08c9..df21d289dc 100644 --- a/main/forum/viewthread.php +++ b/main/forum/viewthread.php @@ -174,7 +174,7 @@ if ($message<>'PostDeletedSpecial') { if ((api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session'])) OR ($current_forum['allow_new_threads']==1 AND isset($_user['user_id'])) OR ($current_forum['allow_new_threads']==1 AND !isset($_user['user_id']) AND $current_forum['allow_anonymous']==1)) { if ($current_forum['locked'] <> 1 AND $current_forum['locked'] <> 1) { echo '  '; - echo ''.Display::return_icon('forumthread_new.gif').' '.get_lang('NewTopic').''; + echo ''.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').''; } else { echo get_lang('ForumLocked'); }