, 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 ============================================================================== */ // name of the language file that needs to be included $language_file = array ( 'forum', 'group' ); // including the global dokeos file require ('../inc/global.inc.php'); require_once('../gradebook/lib/gradebook_functions.inc.php'); require_once('../gradebook/lib/be/gradebookitem.class.php'); require_once('../gradebook/lib/be/evaluation.class.php'); require_once('../gradebook/lib/be/abstractlink.class.php'); require_once('../gradebook/lib/gradebook_functions.inc.php'); // the section (tabs) $this_section=SECTION_COURSES; // notice for unauthorized people. api_protect_course_script(true); // 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'); /* ----------------------------------------------------------- Including necessary files ----------------------------------------------------------- */ include('forumconfig.inc.php'); include('forumfunction.inc.php'); // javascript $htmlHeadXtra[] = ''; /* ============================================================================== 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($_GET['forum']); // note: this has to be validated that it is an existing forum. $current_forum_category=get_forumcategory_information($current_forum['forum_category']); $current_post=get_post_information($_GET['post']); /* ----------------------------------------------------------- Header and Breadcrumbs ----------------------------------------------------------- */ if (isset($_SESSION['gradebook'])){ $gradebook= $_SESSION['gradebook']; } if (!empty($gradebook) && $gradebook=='view') { $interbreadcrumb[]= array ( 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], 'name' => get_lang('Gradebook') ); } if (!empty($_SESSION['toolgroup'])) { $_clean['toolgroup']=(int)$_SESSION['toolgroup']; $group_properties = GroupManager :: get_group_properties($_clean['toolgroup']); $interbreadcrumb[] = array ("url" => "../group/group.php", "name" => get_lang('Groups')); $interbreadcrumb[] = array ("url"=>"../group/group_space.php?gidReq=".$_SESSION['toolgroup'], "name"=> get_lang('GroupSpace').' ('.$group_properties['name'].')'); $interbreadcrumb[] = array("url" => "viewforum.php?origin=".$origin."&gidReq=".$_SESSION['toolgroup']."&forum=".Security::remove_XSS($_GET['forum']),"name" => prepare4display($current_forum['forum_title'])); $interbreadcrumb[] = array("url" => "javascript: void (0);","name" => get_lang('EditPost')); } else { $interbreadcrumb[]=array("url" => "index.php?gradebook=$gradebook","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?origin=".$origin."&forum=".Security::remove_XSS($_GET['forum']),"name" => prepare4display($current_forum['forum_title'])); $interbreadcrumb[]=array("url" => "viewthread.php?gradebook=$gradebook&origin=".$origin."&forum=".Security::remove_XSS($_GET['forum'])."&thread=".$_GET['thread'],"name" => prepare4display($current_thread['thread_title'])); $interbreadcrumb[]=array("url" => "javascript: void (0);","name" => get_lang('EditPost')); } /* ----------------------------------------------------------- Resource Linker ----------------------------------------------------------- */ if (isset($_POST['add_resources']) AND $_POST['add_resources']==get_lang('Resources')) { $_SESSION['formelements']=$_POST; $_SESSION['origin']=$_SERVER['REQUEST_URI']; $_SESSION['breadcrumbs']=$interbreadcrumb; header("Location: ../resourcelinker/resourcelinker.php"); } $table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK); /* ----------------------------------------------------------- Header ----------------------------------------------------------- */ //are we in a lp ? $origin = ''; if (isset($_GET['origin'])) { $origin = Security::remove_XSS($_GET['origin']); } if ($origin=='learnpath') { include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); } else { Display :: display_header(null); //api_display_tool_title($nameTools); } //echo ''; /* ----------------------------------------------------------- Is the user allowed here? ----------------------------------------------------------- */ // the user is not allowed here if // 1. the forumcategory, forum or thread is invisible (visibility==0) // 2. the forumcategory, forum or thread is locked (locked <>0) // 3. if anonymous posts are not allowed // 4. if editing of replies is not allowed // The only exception is the course manager // I have split this is several pieces for clarity. //if (!api_is_allowed_to_edit() AND (($current_forum_category['visibility']==0 OR $current_forum['visibility']==0) OR ($current_forum_category['locked']<>0 OR $current_forum['locked']<>0 OR $current_thread['locked']<>0))) if (!api_is_allowed_to_edit() AND (($current_forum_category['visibility']==0 OR $current_forum['visibility']==0))) { forum_not_allowed_here(); } if (!api_is_allowed_to_edit() AND ($current_forum_category['locked']<>0 OR $current_forum['locked']<>0 OR $current_thread['locked']<>0)) { forum_not_allowed_here(); } if (!$_user['user_id'] AND $current_forum['allow_anonymous']==0) { forum_not_allowed_here(); } if (!api_is_allowed_to_edit() AND $current_forum['allow_edit']==0) { forum_not_allowed_here(); } // action links if ($origin!='learnpath') { echo '
'; echo ''.search_link().''; echo ''.Display::return_icon('back.png').' '.get_lang('BackToForumOverview').''; echo ''.Display::return_icon('forum.gif').' '.get_lang('BackToForum').''; echo '
'; } /* ----------------------------------------------------------- Display Forum Category and the Forum information ----------------------------------------------------------- */ echo "\n"; // the forum category echo "\t\n\t\t\n"; echo "\n"; echo "\t\n"; echo '
"; echo ''.prepare4display($current_forum['forum_title']).'
'; echo ''.prepare4display($current_forum['forum_comment']).'';echo "
'; // the form for the reply $values=show_edit_post_form($current_post, $current_thread, $current_forum, isset($_SESSION['formelements'])?$_SESSION['formelements']:''); if (!empty($values) and isset($_POST['SubmitPost'])) { store_edit_post($values); $option_chek=isset($values['thread_qualify_gradebook'])?$values['thread_qualify_gradebook']:null;// values 1 or 0 if ( 1== $option_chek ) { $id=$values['thread_id']; $title_gradebook=$values['calification_notebook_title']; $value_calification=$values['numeric_calification']; $weight_calification=$values['weight_calification']; $description=""; $session_id=api_get_session_id(); $link_id=is_resource_in_course_gradebook(api_get_course_id(),5,$id,$session_id); if ($link_id==false) { add_resource_to_course_gradebook(api_get_course_id(), 5, $id, $title_gradebook,$weight_calification,$value_calification,$description,time(),1,api_get_session_id()); } else { api_sql_query('UPDATE '.$table_link.' SET weight='.$weight_calification.' WHERE id='.$link_id.''); } } } // footer if ($origin!='learnpath') { Display :: display_footer(); }