, Ghent University * @Copyright Ghent University * @Copyright Patrick Cool * * @package dokeos.forum */ /** ************************************************************************** * IMPORTANT NOTICE * Please do not change anything is this code yet because there are still * some significant code that need to happen and I do not have the time to * merge files and test it all over again. So for the moment, please do not * touch the code * -- Patrick Cool ************************************************************************** */ /* ============================================================================== INIT SECTION ============================================================================== */ /* ----------------------------------------------------------- Language Initialisation ----------------------------------------------------------- */ // name of the language file that needs to be included $language_file = 'forum'; // including the global dokeos file require ('../inc/global.inc.php'); // 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'); //require_once (api_get_path(LIBRARY_PATH).'resourcelinker.lib.php'); $nameTools=get_lang('Forum'); /* ----------------------------------------------------------- Including necessary files ----------------------------------------------------------- */ include('forumconfig.inc.php'); include('forumfunction.inc.php'); //are we in a lp ? $origin = ''; if(isset($_GET['origin'])) { $origin = $_GET['origin']; } /* ============================================================================== 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_thread=get_thread_information($_GET['thread']); // note: this has to be validated that it is an existing thread $current_forum=get_forum_information($current_thread['forum_id']); // note: this has to be validated that it is an existing forum. $current_forum_category=get_forumcategory_information($current_forum['forum_category']); $whatsnew_post_info=$_SESSION['whatsnew_post_info']; /* ----------------------------------------------------------- Header and Breadcrumbs ----------------------------------------------------------- */ if($origin=='learnpath') { include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); } else { $interbreadcrumb[]=array("url" => "index.php","name" => $nameTools); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id'],"name" => prepare4display($current_forum_category['cat_title'])); $interbreadcrumb[]=array("url" => "viewforum.php?forum=".$_GET['forum'],"name" => prepare4display($current_forum['forum_title'])); if ($message<>'PostDeletedSpecial') { $interbreadcrumb[]=array("url" => "viewthread.php?forum=".$_GET['forum']."&thread=".$_GET['thread'],"name" => prepare4display($current_thread['thread_title'])); } Display :: display_header(); api_display_tool_title($nameTools); } //echo ''; /* ----------------------------------------------------------- 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() AND ($current_forum['visibility']==0 OR $current_thread['visibility']==0)) { forum_not_allowed_here(); } /* ----------------------------------------------------------- Actions ----------------------------------------------------------- */ if ($_GET['action']=='delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit()) { $message=delete_post($_GET['id']); // note: this has to be cleaned first } if (($_GET['action']=='invisible' OR $_GET['action']=='visible') AND isset($_GET['id']) AND api_is_allowed_to_edit()) { $message=approve_post($_GET['id'],$_GET['action']); // note: this has to be cleaned first } if ($_GET['action']=='move' and isset($_GET['post'])) { $message=move_post_form(); } /* ----------------------------------------------------------- Display the action messages ----------------------------------------------------------- */ if (isset($message)) { Display :: display_confirmation_message(get_lang($message)); } if ($message<>'PostDeletedSpecial') // in this case the first and only post of the thread is removed { // this increases the number of times the thread has been viewed increase_thread_view($_GET['thread']); /* ----------------------------------------------------------- Action Links ----------------------------------------------------------- */ echo '
'; echo ''.get_lang('FlatView').' | '; echo ''.get_lang('ThreadedView').' | '; echo ''.get_lang('NestedView').''; echo '
'; // the reply to thread link should only appear when the forum_category is not locked AND the forum is not locked AND the thread is not locked. // if one of the three levels is locked then the link should not be displayed if ($current_forum_category['locked']==0 AND $current_forum['locked']==0 AND $current_thread['locked']==0 OR api_is_allowed_to_edit()) { // The link should only appear when the user is logged in or when anonymous posts are allowed. if ($_user['user_id'] OR ($current_forum['allow_anonymous']==1 AND !$_user['user_id'])) { echo ''.get_lang('ReplyToThread').''; } } // note: this is to prevent that some browsers display the links over the table (FF does it but Opera doesn't) echo ' '; /* ----------------------------------------------------------- Display Forum Category and the Forum information ----------------------------------------------------------- */ if (!$_SESSION['view']) { $viewmode=$current_forum['default_view']; } else { $viewmode=$_SESSION['view']; } $viewmode_whitelist=array('flat', 'threaded', 'nested'); if (isset($_GET['view']) and in_array($_GET['view'],$viewmode_whitelist)) { $viewmode=$_GET['view']; $_SESSION['view']=$viewmode; } if(empty($viewmode)) { $viewmode = 'flat'; } /* ----------------------------------------------------------- Display Forum Category and the Forum 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 echo "\n"; // the forum category if($origin!='learnpath') { echo "\t\n\t\t\n"; echo "\t\n"; } // the forum echo "\t\n"; echo "\t\t\n"; echo "\t\n"; // the thread echo "\t\n"; echo "\t\t\n"; echo "\t\n"; echo "
"; echo ''.prepare4display($current_forum_category['cat_title']).'
'; echo ''.prepare4display($current_forum_category['cat_comment']).''; echo "
".prepare4display($current_forum['forum_title'])."
"; echo ''.prepare4display($current_forum['forum_comment']).''; echo "
".prepare4display($current_thread['thread_title'])."
"; echo "
"; echo '
'; switch ($viewmode) { case 'flat': include_once('viewthread_flat.inc.php'); break; case 'threaded': include_once('viewthread_threaded.inc.php'); break; case 'nested': include_once('viewthread_nested.inc.php'); break; default: include_once('viewthread_flat.inc.php'); break; } } // if ($message<>'PostDeletedSpecial') // in this case the first and only post of the thread is removed /* ============================================================================== FOOTER ============================================================================== */ if($origin!='learnpath') Display :: display_footer(); ?>