[svn r17016] changes in logic - improvement forum functionality - see(FS#3249)

skala
Isaac Flores 17 years ago
parent 738d24a6c8
commit d24b0ff1ce
  1. 71
      main/forum/editpost.php
  2. 14
      main/forum/forumbody.inc.php
  3. 7281
      main/forum/forumfunction.inc.php
  4. 38
      main/forum/forumqualify.php
  5. 14
      main/forum/newthread.php
  6. 804
      main/forum/viewforum.php
  7. 30
      main/forum/viewpost.php
  8. 39
      main/forum/viewthread.php
  9. 13
      main/forum/viewthread_flat.inc.php

@ -1,5 +1,5 @@
<?php // $Id: document.php 16494 2008-10-10 22:07:36Z yannoo $ <?php // $Id: $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -86,10 +86,8 @@ $fck_attribute['Config']['FlashUploadPath'] = 'upload/forum/';
// including additional library scripts // including additional library scripts
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php'); include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php');
if(!api_is_allowed_to_edit()) {
if(!api_is_allowed_to_edit())
{
$fck_attribute['Config']['UserStatus'] = 'student'; $fck_attribute['Config']['UserStatus'] = 'student';
} }
@ -136,14 +134,13 @@ $interbreadcrumb[]=array("url" => "reply.php?forum=".Security::remove_XSS($_GET[
Resource Linker Resource Linker
----------------------------------------------------------- -----------------------------------------------------------
*/ */
if (isset($_POST['add_resources']) AND $_POST['add_resources']==get_lang('Resources')) if (isset($_POST['add_resources']) AND $_POST['add_resources']==get_lang('Resources')) {
{
$_SESSION['formelements']=$_POST; $_SESSION['formelements']=$_POST;
$_SESSION['origin']=$_SERVER['REQUEST_URI']; $_SESSION['origin']=$_SERVER['REQUEST_URI'];
$_SESSION['breadcrumbs']=$interbreadcrumb; $_SESSION['breadcrumbs']=$interbreadcrumb;
header("Location: ../resourcelinker/resourcelinker.php"); header("Location: ../resourcelinker/resourcelinker.php");
} }
$table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
/* /*
----------------------------------------------------------- -----------------------------------------------------------
Header Header
@ -151,7 +148,7 @@ if (isset($_POST['add_resources']) AND $_POST['add_resources']==get_lang('Resour
*/ */
Display :: display_header(null); Display :: display_header(null);
api_display_tool_title($nameTools); api_display_tool_title($nameTools);
////echo '<link href="forumstyles.css" rel="stylesheet" type="text/css" />'; //echo '<link href="forumstyles.css" rel="stylesheet" type="text/css" />';
/* /*
----------------------------------------------------------- -----------------------------------------------------------
Is the user allowed here? Is the user allowed here?
@ -165,20 +162,16 @@ api_display_tool_title($nameTools);
// The only exception is the course manager // The only exception is the course manager
// I have split this is several pieces for clarity. // 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) 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))) if (!api_is_allowed_to_edit() AND (($current_forum_category['visibility']==0 OR $current_forum['visibility']==0))) {
{
forum_not_allowed_here(); 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)) 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(); forum_not_allowed_here();
}
if (!$_user['user_id'] AND $current_forum['allow_anonymous']==0) {
forum_not_allowed_here();
} }
if (!$_user['user_id'] AND $current_forum['allow_anonymous']==0) if (!api_is_allowed_to_edit() AND $current_forum['allow_edit']==0) {
{
forum_not_allowed_here();
}
if (!api_is_allowed_to_edit() AND $current_forum['allow_edit']==0)
{
forum_not_allowed_here(); forum_not_allowed_here();
} }
@ -198,23 +191,25 @@ echo '</table>';
// the form for the reply // the form for the reply
$values=show_edit_post_form($current_post, $current_thread, $current_forum, $_SESSION['formelements']); $values=show_edit_post_form($current_post, $current_thread, $current_forum, $_SESSION['formelements']);
if (!empty($values) and $_POST['SubmitPost']) if (!empty($values) and $_POST['SubmitPost']) {
{ store_edit_post($values);
store_edit_post($values);
//add gradebook function $option_chek=$values['thread_qualify_gradebook'];// values 1 or 0
$option_chek=$values['thread_qualify_gradebook'];// values 1 or 0 if ( 1== $option_chek ) {
//var_dump($values); $id=$values['thread_id'];
if($option_chek==1){ $title_gradebook=$values['calification_notebook_title'];
$id=$values['thread_id'];// last id from $value_calification=$values['numeric_calification'];
$title_gradebook=$values['calification_notebook_title']; $weight_calification=$values['weight_calification'];
$value_calification=$values['numeric_calification']; $description="";
$description=""; $link_id=is_resource_in_course_gradebook(api_get_course_id(),5,$id,null);
//add_resource_to_course_gradebook(api_get_course_id(), 5, $id, $title, 0, $_POST['qualification_value'], Database::escape_string($_POST['description']), "'".date('Y-m-d H:i:s')."'", 1); if ( $link_id==false ) {
add_resource_to_course_gradebook(api_get_course_id(), 5, $id, $title_gradebook, 0,$value_calification,$description, "'".date('Y-m-d H:i:s')."'",api_get_session_id()); 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 // footer
Display :: display_footer(); Display :: display_footer();
?>

@ -1,11 +1,12 @@
<?php <?php // $Id: $
$current_thread=get_thread_information($_GET['thread']); $current_thread=get_thread_information($_GET['thread']);
$my_cid_req = Security::remove_XSS($_GET['cidReq']); $my_cid_req = Security::remove_XSS($_GET['cidReq']);
$my_forum = Security::remove_XSS($_GET['forum']); $my_forum = Security::remove_XSS($_GET['forum']);
$my_thread = Security::remove_XSS($_GET['thread']); $my_thread = Security::remove_XSS($_GET['thread']);
$my_user_id = Security::remove_XSS($_GET['user_id']); $my_user_id = Security::remove_XSS($_GET['user_id']);
$my_idtextqualify = Security::remove_XSS($_REQUEST['idtextqualify']); $my_idtextqualify = Security::remove_XSS($_REQUEST['idtextqualify']);
$my_gradebook = Security::remove_XSS($_GET['gradebook']);
$output = <<<FIN $output = <<<FIN
<div class="forum-body-form"> <div class="forum-body-form">
<table> <table>
@ -14,6 +15,7 @@ $output = <<<FIN
<input type="hidden" name="forum" value="{$my_forum}"> <input type="hidden" name="forum" value="{$my_forum}">
<input type="hidden" name="thread" value="{$my_thread}"> <input type="hidden" name="thread" value="{$my_thread}">
<input type="hidden" name="user_id" value="{$my_user_id}"> <input type="hidden" name="user_id" value="{$my_user_id}">
<input type="hidden" name="gradebook" value="{$my_gradebook}">
<tr> <tr>
FIN; FIN;
$output .= ' $output .= '

File diff suppressed because it is too large Load Diff

@ -35,9 +35,21 @@ $current_forum_category=get_forumcategory_information($current_forum['forum_cate
$whatsnew_post_info=$_SESSION['whatsnew_post_info']; $whatsnew_post_info=$_SESSION['whatsnew_post_info'];
$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools); $interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools);
$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title'])); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;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'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
if (isset($_GET['gradebook']) && $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".$info_thread['forum_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
} else {
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
}
if ($message<>'PostDeletedSpecial') { if ($message<>'PostDeletedSpecial') {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
if (isset($_GET['gradebook']) && $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".$info_thread['forum_id']."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
} else {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
}
} }
Display::display_header(); Display::display_header();
@ -57,18 +69,17 @@ if ($userinf['status']=='1') {
$max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$threadid); $max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$threadid);
require_once 'forumbody.inc.php'; require_once 'forumbody.inc.php';
if(!empty($_REQUEST['idtextqualify'])) { if (!empty($_REQUEST['idtextqualify'])) {
$value_return=store_theme_qualify($userid,$threadid,$qualify,'',date("Y-m-d H:i:s"),''); $value_return=store_theme_qualify($userid,$threadid,$qualify,'',date("Y-m-d H:i:s"),'');
$url="cidReq=".Security::remove_XSS($_GET['cidReq'])."&forum=".Security::remove_XSS($_GET['forum'])."&thread=".Security::remove_XSS($_GET['thread'])."&post=".Security::remove_XSS($_GET['post'])."&user_id=".Security::remove_XSS($_GET['user_id']); $url="cidReq=".Security::remove_XSS($_GET['cidReq'])."&forum=".Security::remove_XSS($_GET['forum'])."&thread=".Security::remove_XSS($_GET['thread'])."&post=".Security::remove_XSS($_GET['post'])."&user_id=".Security::remove_XSS($_GET['user_id']);
$current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$userid,$threadid); $current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$userid,$threadid);
//header('location:forumqualify.php?'.$url.'&idtextqualify='.$current_qualify_thread); //header('location:forumqualify.php?'.$url.'&idtextqualify='.$current_qualify_thread);
if($value_return[0]!=$_REQUEST['idtextqualify'] && $value_return[1]=='update') if($value_return[0]!=$_REQUEST['idtextqualify'] && $value_return[1]=='update') {
{
store_qualify_historical('1','',$_GET['forum'],$userid,$threadid,$_REQUEST['idtextqualify'],api_get_user_id()); store_qualify_historical('1','',$_GET['forum'],$userid,$threadid,$_REQUEST['idtextqualify'],api_get_user_id());
} }
} }
if(!empty($_REQUEST['idtextqualify']) && $_REQUEST['idtextqualify'] > $max_qualify) { if (!empty($_REQUEST['idtextqualify']) && $_REQUEST['idtextqualify'] > $max_qualify) {
$return_message = get_lang('QualificationNotBeGreaterThanMaxScore'); $return_message = get_lang('QualificationNotBeGreaterThanMaxScore');
Display :: display_error_message($return_message,false); Display :: display_error_message($return_message,false);
} }
@ -78,10 +89,9 @@ if ($userinf['status']=='1') {
$opt=Database::escape_string($_GET['type']); $opt=Database::escape_string($_GET['type']);
$qualify_historic = get_historical_qualify($user_id_thread, $threadid, $opt); $qualify_historic = get_historical_qualify($user_id_thread, $threadid, $opt);
$counter= count($qualify_historic); $counter= count($qualify_historic);
if($counter>0) if ($counter>0) {
{
echo '<h4>'.get_lang('QualificationChangesHistory').'</h4>'; echo '<h4>'.get_lang('QualificationChangesHistory').'</h4>';
if($_GET['type'] == 'false') { if ($_GET['type'] == 'false') {
echo '<div style="float:left; clear:left">'.get_lang('OrderBy').'&nbsp;:<a href="forumqualify.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&thread='.$threadid.'&user_id='.Security::remove_XSS($_GET['user_id']).'&type=true">'.get_lang('MoreRecent').'</a>&nbsp;| echo '<div style="float:left; clear:left">'.get_lang('OrderBy').'&nbsp;:<a href="forumqualify.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&thread='.$threadid.'&user_id='.Security::remove_XSS($_GET['user_id']).'&type=true">'.get_lang('MoreRecent').'</a>&nbsp;|
'.get_lang('Older').' '.get_lang('Older').'
</div>'; </div>';
@ -105,15 +115,11 @@ if ($userinf['status']=='1') {
} }
$table_list.= '</table>'; $table_list.= '</table>';
echo $table_list; echo $table_list;
} } else {
else
{
echo get_lang('NotChanged'); echo get_lang('NotChanged');
} }
} } else {
else
{
//return false;
api_not_allowed(); api_not_allowed();
} }
//footer
Display::display_footer(); Display::display_footer();

@ -1,4 +1,4 @@
<?php // $Id: document.php 16494 2008-10-10 22:07:36Z yannoo $ <?php // $Id: $
/* /*
============================================================================== ==============================================================================
@ -50,7 +50,7 @@ $language_file = array('forum','document');
// including the global dokeos file // including the global dokeos file
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once '../gradebook/lib/gradebook_functions.inc.php'; require_once '../gradebook/lib/gradebook_functions.inc.php';
// the section (tabs) // the section (tabs)
$this_section=SECTION_COURSES; $this_section=SECTION_COURSES;
@ -108,11 +108,17 @@ $current_forum_category=get_forumcategory_information($current_forum['forum_cate
Breadcrumbs Breadcrumbs
----------------------------------------------------------- -----------------------------------------------------------
*/ */
if( (isset($_GET['gradebook']) && $_GET['gradebook']=='view') || ( isset($_POST['gradebook']) && $_POST['gradebook']=='view')) {
$interbreadcrumb[]= array (
'url' => '../gradebook/index.php',
'name' => get_lang('Gradebook')
);
}
$interbreadcrumb[]=array("url" => "index.php","name" => $nameTools); $interbreadcrumb[]=array("url" => "index.php","name" => $nameTools);
$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id'],"name" => $current_forum_category['cat_title']); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id'],"name" => $current_forum_category['cat_title']);
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum']),"name" => $current_forum['forum_title']); $interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum']),"name" => $current_forum['forum_title']);
$interbreadcrumb[]=array("url" => "newthread.php?forum=".Security::remove_XSS($_GET['forum']),"name" => get_lang('NewTopic')); $interbreadcrumb[]=array("url" => "newthread.php?forum=".Security::remove_XSS($_GET['forum']),"name" => get_lang('NewTopic'));
/* /*
----------------------------------------------------------- -----------------------------------------------------------
Resource Linker Resource Linker
@ -148,7 +154,7 @@ if($origin=='learnpath') {
// 4. anonymous posts are not allowed and the user is not logged in // 4. anonymous posts are not allowed and the user is not logged in
// I have split this is several pieces for clarity. // I have split this is several pieces for clarity.
if (!api_is_allowed_to_edit(false,true) AND (($current_forum_category['visibility']==0 OR $current_forum['visibility']==0))) { if (!api_is_allowed_to_edit(false,true) && (($current_forum_category['visibility']==0 || $current_forum['visibility']==0))) {
forum_not_allowed_here(); forum_not_allowed_here();
} }
// 2. the forumcategory or forum is locked (locked <>0) and the user is not a course manager // 2. the forumcategory or forum is locked (locked <>0) and the user is not a course manager

@ -1,401 +1,405 @@
<?php // $Id: document.php 16494 2008-10-10 22:07:36Z yannoo $ <?php
/*
/* ==============================================================================
============================================================================== Dokeos - elearning and course management software
Dokeos - elearning and course management software
Copyright (c) 2004-2008 Dokeos SPRL
Copyright (c) 2004-2008 Dokeos SPRL Copyright (c) 2003 Ghent University (UGent)
Copyright (c) 2003 Ghent University (UGent) Copyright (c) 2001 Universite catholique de Louvain (UCL)
Copyright (c) 2001 Universite catholique de Louvain (UCL) Copyright (c) various contributors
Copyright (c) various contributors
For a full list of contributors, see "credits.txt".
For a full list of contributors, see "credits.txt". The full license can be read in "license.txt".
The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License
modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2
as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
of the License, or (at your option) any later version.
See the GNU General Public License for more details.
See the GNU General Public License for more details.
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium Mail: info@dokeos.com
Mail: info@dokeos.com ==============================================================================
============================================================================== */
*/
/**
/** * These files are a complete rework of the forum. The database structure is
* These files are a complete rework of the forum. The database structure is * based on phpBB but all the code is rewritten. A lot of new functionalities
* based on phpBB but all the code is rewritten. A lot of new functionalities * are added:
* are added: * - forum categories and forums can be sorted up or down, locked or made invisible
* - forum categories and forums can be sorted up or down, locked or made invisible * - consistent and integrated forum administration
* - consistent and integrated forum administration * - forum options: are students allowed to edit their post?
* - forum options: are students allowed to edit their post? * moderation of posts (approval)
* moderation of posts (approval) * reply only forums (students cannot create new threads)
* reply only forums (students cannot create new threads) * multiple forums per group
* multiple forums per group * - sticky messages
* - sticky messages * - new view option: nested view
* - new view option: nested view * - quoting a message
* - quoting a message *
* * @Author Patrick Cool <patrick.cool@UGent.be>, Ghent University
* @Author Patrick Cool <patrick.cool@UGent.be>, Ghent University * @Copyright Ghent University
* @Copyright Ghent University * @Copyright Patrick Cool
* @Copyright Patrick Cool *
* * @package dokeos.forum
* @package dokeos.forum */
*/
// name of the language file that needs to be included
// name of the language file that needs to be included $language_file = 'forum';
$language_file = 'forum';
// including the global dokeos file
// including the global dokeos file require '../inc/global.inc.php';
require '../inc/global.inc.php';
// notice for unauthorized people.
// notice for unauthorized people. api_protect_course_script(true);
api_protect_course_script(true);
// the section (tabs)
// the section (tabs) $this_section=SECTION_COURSES;
$this_section=SECTION_COURSES;
// including additional library scripts
// including additional library scripts require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php');
include_once (api_get_path(LIBRARY_PATH).'groupmanager.lib.php'); $nameTools=get_lang('Forum');
$nameTools=get_lang('Forum');
//are we in a lp ?
//are we in a lp ? $origin = '';
$origin = ''; if (isset($_GET['origin'])) {
if(isset($_GET['origin'])) { $origin = Security::remove_XSS($_GET['origin']);
$origin = Security::remove_XSS($_GET['origin']); $origin_string = '&origin='.$origin;
$origin_string = '&origin='.$origin; }
}
/*
/* -----------------------------------------------------------
----------------------------------------------------------- Including necessary files
Including necessary files -----------------------------------------------------------
----------------------------------------------------------- */
*/ require 'forumconfig.inc.php';
require 'forumconfig.inc.php'; require_once 'forumfunction.inc.php';
require_once 'forumfunction.inc.php';
$userid=api_get_user_id();
$userid=api_get_user_id(); $userinf=api_get_user_info($userid);
$userinf=api_get_user_info($userid);
/*
/* ==============================================================================
============================================================================== MAIN DISPLAY SECTION
MAIN DISPLAY SECTION ==============================================================================
============================================================================== */
*/
/*
/* -----------------------------------------------------------
----------------------------------------------------------- Retrieving forum and forum categorie information
Retrieving forum and forum categorie information -----------------------------------------------------------
----------------------------------------------------------- */
*/ // we are getting all the information about the current forum and forum category.
// 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
// 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
// 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=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_forum_category=get_forumcategory_information($current_forum['forum_category']);
/*
/* -----------------------------------------------------------
----------------------------------------------------------- Header and Breadcrumbs
Header and Breadcrumbs -----------------------------------------------------------
----------------------------------------------------------- */
*/ $interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS($_GET['search']),"name" => $nameTools);
$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS($_GET['search']),"name" => $nameTools); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title']));
$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;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'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
if ($origin=='learnpath') {
if($origin=='learnpath') { include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php');
include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); } else {
} else { // the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string
// the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string Display :: display_header('');
Display :: display_header(''); api_display_tool_title($nameTools);
api_display_tool_title($nameTools); }
}
/*
/* -----------------------------------------------------------
----------------------------------------------------------- Actions
Actions -----------------------------------------------------------
----------------------------------------------------------- */
*/ $table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
// Change visibility of a forum or a forum category // 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)) { 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 $message=change_visibility($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first
} }
// locking and unlocking // 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)) { 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 $message=change_lock_status($_GET['content'], $_GET['id'],$_GET['action']);// note: this has to be cleaned first
} }
// deleting // deleting
if ($_GET['action']=='delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { 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 $message=delete_forum_forumcategory_thread($_GET['content'],$_GET['id']); // note: this has to be cleaned first
} //delete link
// moving $sql_link='DELETE FROM '.$table_link.' WHERE ref_id='.Security::remove_XSS($_GET['id']).' and type=5 and course_code="'.api_get_course_id().'";';
if ($_GET['action']=='move' and isset($_GET['thread']) AND api_is_allowed_to_edit(false,true)) { api_sql_query($sql_link);
$message=move_thread_form(); }
} // moving
// notification if ($_GET['action']=='move' and isset($_GET['thread']) AND api_is_allowed_to_edit(false,true)) {
if ($_GET['action'] == 'notify' AND isset($_GET['content']) AND isset($_GET['id'])) { $message=move_thread_form();
$return_message = set_notification($_GET['content'],$_GET['id']); }
Display :: display_confirmation_message($return_message,false); // notification
} if ($_GET['action'] == 'notify' AND isset($_GET['content']) AND isset($_GET['id'])) {
$return_message = set_notification($_GET['content'],$_GET['id']);
// student list Display :: display_confirmation_message($return_message,false);
}
if ($_GET['action'] == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND $userinf['status']=='1') {
// student list
switch($_GET['list']) {
case "qualify": if ($_GET['action'] == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND $userinf['status']=='1') {
$student_list=get_thread_users_qualify($_GET['id']);
$nrorow3 =-2; switch($_GET['list']) {
break; case "qualify":
case "notqualify": $student_list=get_thread_users_qualify($_GET['id']);
$student_list=get_thread_users_not_qualify($_GET['id']); $nrorow3 =-2;
$nrorow3 =-2; break;
break; case "notqualify":
default: $student_list=get_thread_users_not_qualify($_GET['id']);
$student_list=get_thread_users_details($_GET['id']); $nrorow3 =-2;
$nrorow3 = Database::num_rows($student_list); break;
break; default:
} $student_list=get_thread_users_details($_GET['id']);
$table_list = '<p><br /><h3>'.get_lang('ThreadUsersList').'&nbsp;:'.get_name_thread_by_id($_GET['id']).'</h3>'; $nrorow3 = Database::num_rows($student_list);
if ($nrorow3>0 || $nrorow3==-2) { break;
$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.= '<br /> $table_list = '<p><br /><h3>'.get_lang('ThreadUsersList').'&nbsp;:'.get_name_thread_by_id($_GET['id']).'</h3>';
<div style="width:50%"> if ($nrorow3>0 || $nrorow3==-2) {
<table class="data_table" border="0"> $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']);
<tr> $table_list.= '<br />
<th height="22"><a href="viewforum.php?'.$url.'&list=all">'.get_lang('AllStudents').'</a></th> <div style="width:50%">
<th><a href="viewforum.php?'.$url.'&list=qualify">'.get_lang('StudentsQualified').'</a></th> <table class="data_table" border="0">
<th><a href="viewforum.php?'.$url.'&list=notqualify">'.get_lang('StudentsNotQualified').'</a></th> <tr>
</tr> <th height="22"><a href="viewforum.php?'.$url.'&list=all">'.get_lang('AllStudents').'</a></th>
</table></div> <th><a href="viewforum.php?'.$url.'&list=qualify">'.get_lang('StudentsQualified').'</a></th>
<div style="border:1px solid gray; width:99%; margin-top:5px; padding:4px; float:left"> <th><a href="viewforum.php?'.$url.'&list=notqualify">'.get_lang('StudentsNotQualified').'</a></th>
'; </tr>
</table></div>
$icon_qualify = 'blog_new.gif'; <div style="border:1px solid gray; width:99%; margin-top:5px; padding:4px; float:left">
$table_list.= '<center><br /><table class="data_table" style="width:50%">'; ';
// The column headers (to do: make this sortable)
$table_list.= '<tr >'; $icon_qualify = 'blog_new.gif';
$table_list.= '<th height="24">'.get_lang('NamesAndFirstNames').'</th>'; $table_list.= '<center><br /><table class="data_table" style="width:50%">';
// The column headers (to do: make this sortable)
if ($_GET['list']=='qualify') { $table_list.= '<tr >';
$table_list.= '<th>'.get_lang('Qualify').'</th>'; $table_list.= '<th height="24">'.get_lang('NamesAndFirstNames').'</th>';
}
if ($userinf['status']=='1') { if ($_GET['list']=='qualify') {
$table_list.= '<th>'.get_lang('Qualify').'</th>'; $table_list.= '<th>'.get_lang('Qualify').'</th>';
} }
$table_list.= '</tr>'; if ($userinf['status']=='1') {
$max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$_GET['id']); $table_list.= '<th>'.get_lang('Qualify').'</th>';
$counter_stdlist=0; }
while ($row_student_list=Database::fetch_array($student_list)) { $table_list.= '</tr>';
if ($counter_stdlist%2==0) { $max_qualify=show_qualify('2',$_GET['cidReq'],$_GET['forum'],$userid,$_GET['id']);
$class_stdlist="row_odd"; $counter_stdlist=0;
} else { while ($row_student_list=Database::fetch_array($student_list)) {
$class_stdlist="row_even"; if ($counter_stdlist%2==0) {
} $class_stdlist="row_odd";
$name_user_theme = $row_student_list['firstname'].' '.$row_student_list['lastname']; } else {
$table_list.= '<tr class="$class_stdlist"><td><a href="../user/userInfo.php?uInfo='.$row_student_list['user_id'].'&tipo=sdtlist&'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).$origin_string.'">'.$name_user_theme.'</a></td>'; $class_stdlist="row_even";
if ($_GET['list']=='qualify') { }
$table_list.= '<td>'.$row_student_list['qualify'].'/'.$max_qualify.'</td>'; $name_user_theme = $row_student_list['firstname'].' '.$row_student_list['lastname'];
} $table_list.= '<tr class="$class_stdlist"><td><a href="../user/userInfo.php?uInfo='.$row_student_list['user_id'].'&tipo=sdtlist&'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).$origin_string.'">'.$name_user_theme.'</a></td>';
if ($userinf['status']=='1') { if ($_GET['list']=='qualify') {
$current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row_student_list['user_id'],$_GET['id']); $table_list.= '<td>'.$row_student_list['qualify'].'/'.$max_qualify.'</td>';
$table_list.= '<td><a href="forumqualify.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&thread='.Security::remove_XSS($_GET['id']).'&user_id='.$row_student_list['user_id'].'&idtextqualify='.$current_qualify_thread.'">'.icon('../img/'.$icon_qualify,get_lang('Qualify')).'</a></td></tr>'; }
} if ($userinf['status']=='1') {
$counter_stdlist++; $current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row_student_list['user_id'],$_GET['id']);
} $table_list.= '<td><a href="forumqualify.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&thread='.Security::remove_XSS($_GET['id']).'&user_id='.$row_student_list['user_id'].'&idtextqualify='.$current_qualify_thread.'">'.icon('../img/'.$icon_qualify,get_lang('Qualify')).'</a></td></tr>';
}
$table_list.= '</table></center>'; $counter_stdlist++;
$table_list .= '<br /></div>'; }
}
else $table_list.= '</table></center>';
{ $table_list .= '<br /></div>';
$table_list .= get_lang('NoParticipation'); } else {
} $table_list .= get_lang('NoParticipation');
} }
}
/*
-----------------------------------------------------------
Is the user allowed here? /*
----------------------------------------------------------- -----------------------------------------------------------
*/ 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)) { // if the user is not a course administrator and the forum is hidden
forum_not_allowed_here(); // 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 /*
----------------------------------------------------------- -----------------------------------------------------------
*/ Display the action messages
if (!empty($message)) { -----------------------------------------------------------
Display :: display_confirmation_message($message); */
} if (!empty($message)) {
/* Display :: display_confirmation_message($message);
----------------------------------------------------------- }
Action Links
-----------------------------------------------------------
*/ /*
echo '<div class="actions">'; -----------------------------------------------------------
echo '<span style="float:right;">'.search_link().'</span>'; Action Links
// The link should appear when -----------------------------------------------------------
// 1. the course admin is here */
// 2. the course member is here and new threads are allowed echo '<div class="actions">';
// 3. a visitor is here and new threads AND allowed AND anonymous posts are allowed echo '<span style="float:right;">'.search_link().'</span>';
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)) { // The link should appear when
if ($current_forum['locked'] <> 1 AND $current_forum['locked'] <> 1) { // 1. the course admin is here
echo '<a href="newthread.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).$origin_string.'">'.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').'</a>'; // 2. the course member is here and new threads are allowed
} else { // 3. a visitor is here and new threads AND allowed AND anonymous posts are allowed
echo get_lang('ForumLocked'); 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 '<a href="newthread.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).$origin_string.'">'.Display::return_icon('forumthread_new.gif',get_lang('NewTopic')).' '.get_lang('NewTopic').'</a>';
echo '</div>'; } else {
echo get_lang('ForumLocked');
/* }
----------------------------------------------------------- }
Display echo '</div>';
-----------------------------------------------------------
*/ /*
echo "<table class=\"data_table\" >\n"; -----------------------------------------------------------
Display
// the current forum -----------------------------------------------------------
if ($origin != 'learnpath') { */
echo "\t<tr>\n\t\t<th align=\"left\" colspan=\"7\">"; echo "<table class=\"data_table\" >\n";
echo '<span class="forum_title">'.prepare4display($current_forum['forum_title']).'</span>';
// the current forum
if (!empty ($current_forum['forum_comment'])) { if ($origin != 'learnpath') {
echo '<br><span class="forum_description">'.prepare4display($current_forum['forum_comment']).'</span>'; echo "\t<tr>\n\t\t<th align=\"left\" colspan=\"7\">";
} echo '<span class="forum_title">'.prepare4display($current_forum['forum_title']).'</span>';
if (!empty ($current_forum_category['cat_title'])) { if (!empty ($current_forum['forum_comment'])) {
echo '<br /><span class="forum_low_description">'.prepare4display($current_forum_category['cat_title'])."</span><br />"; echo '<br><span class="forum_description">'.prepare4display($current_forum['forum_comment']).'</span>';
} }
echo "</th>\n";
echo "\t</tr>\n"; if (!empty ($current_forum_category['cat_title'])) {
} echo '<br /><span class="forum_low_description">'.prepare4display($current_forum_category['cat_title'])."</span><br />";
}
echo "</th>\n"; echo "</th>\n";
echo "\t</tr>\n"; echo "\t</tr>\n";
}
// The column headers (to do: make this sortable)
echo "\t<tr class=\"forum_threadheader\">\n"; echo "</th>\n";
echo "\t\t<td></td>\n"; echo "\t</tr>\n";
echo "\t\t<td>".get_lang('Title')."</td>\n";
echo "\t\t<td>".get_lang('Replies')."</td>\n"; // The column headers (to do: make this sortable)
echo "\t\t<td>".get_lang('Views')."</td>\n"; echo "\t<tr class=\"forum_threadheader\">\n";
echo "\t\t<td>".get_lang('Author')."</td>\n"; echo "\t\t<td></td>\n";
echo "\t\t<td>".get_lang('LastPost')."</td>\n"; echo "\t\t<td>".get_lang('Title')."</td>\n";
echo "\t\t<td>".get_lang('Actions')."</td>\n"; echo "\t\t<td>".get_lang('Replies')."</td>\n";
echo "\t</tr>\n"; echo "\t\t<td>".get_lang('Views')."</td>\n";
echo "\t\t<td>".get_lang('Author')."</td>\n";
// getting al the threads echo "\t\t<td>".get_lang('LastPost')."</td>\n";
$threads=get_threads($_GET['forum']); // note: this has to be cleaned first echo "\t\t<td>".get_lang('Actions')."</td>\n";
echo "\t</tr>\n";
$whatsnew_post_info=$_SESSION['whatsnew_post_info'];
// getting al the threads
$counter=0; $threads=get_threads($_GET['forum']); // note: this has to be cleaned first
if(is_array($threads)) {
foreach ($threads as $row) { $whatsnew_post_info=$_SESSION['whatsnew_post_info'];
// 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')) { $counter=0;
if($counter%2==0) { if(is_array($threads)) {
$class="row_odd"; foreach ($threads as $row) {
} else { // thread who have no replies yet and the only post is invisible should not be displayed to students.
$class="row_even"; if (api_is_allowed_to_edit(false,true) OR !($row['thread_replies']=='0' AND $row['visible']=='0')) {
} if($counter%2==0) {
echo "\t<tr class=\"$class\">\n"; $class="row_odd";
echo "\t\t<td>"; } else {
if (is_array($whatsnew_post_info[$_GET['forum']][$row['thread_id']]) and !empty($whatsnew_post_info[$_GET['forum']][$row['thread_id']])) { $class="row_even";
echo icon('../img/forumthread.gif'); }
} else { echo "\t<tr class=\"$class\">\n";
echo icon('../img/forumthread.gif'); echo "\t\t<td>";
} 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');
if ($row['thread_sticky']==1) { } else {
echo icon('../img/exclamation.gif'); echo icon('../img/forumthread.gif');
} }
echo "</td>\n";
echo "\t\t<td>"; if ($row['thread_sticky']==1) {
echo "<a href=\"viewthread.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".$row['thread_id'].$origin_string."&amp;search=".Security::remove_XSS(urlencode($_GET['search']))."\" ".class_visible_invisible($row['visibility']).">".prepare4display($row['thread_title'])."</a></td>\n"; echo icon('../img/exclamation.gif');
echo "\t\t<td>".$row['thread_replies']."</td>\n"; }
if ($row['user_id']=='0') { echo "</td>\n";
$name=prepare4display($row['thread_poster_name']); echo "\t\t<td>";
} else { echo "<a href=\"viewthread.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".$row['thread_id'].$origin_string."&amp;search=".Security::remove_XSS(urlencode($_GET['search']))."\" ".class_visible_invisible($row['visibility']).">".prepare4display($row['thread_title'])."</a></td>\n";
$name=$row['firstname'].' '.$row['lastname']; echo "\t\t<td>".$row['thread_replies']."</td>\n";
} if ($row['user_id']=='0') {
echo "\t\t<td>".$row['thread_views']."</td>\n"; $name=prepare4display($row['thread_poster_name']);
if ($row['last_poster_user_id']=='0') { } else {
$name=$row['poster_name']; $name=$row['firstname'].' '.$row['lastname'];
} else { }
$name=$row['last_poster_firstname'].' '.$row['last_poster_lastname']; echo "\t\t<td>".$row['thread_views']."</td>\n";
} if ($row['last_poster_user_id']=='0') {
$name=$row['poster_name'];
if($origin != 'learnpath') { } else {
echo "\t\t<td>".display_user_link($row['user_id'], $name)."</td>\n"; $name=$row['last_poster_firstname'].' '.$row['last_poster_lastname'];
} else { }
echo "\t\t<td>".$name."</td>\n";
} if($origin != 'learnpath') {
echo "\t\t<td>".display_user_link($row['user_id'], $name)."</td>\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 } else {
if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') { echo "\t\t<td>".$name."</td>\n";
$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"; // 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
$last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') {
$last_post_row=mysql_fetch_array($last_post_result); $last_post=$row['thread_date']." ".get_lang('By').' '.display_user_link($row['last_poster_user_id'], $name);
$name=$last_post_row['firstname'].' '.$last_post_row['lastname']; } elseif ($origin!='learnpath') {
$last_post=$last_post_row['post_date']." ".get_lang('By').' '.display_user_link($last_post_row['poster_id'], $name); $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";
} else { $last_post_result=api_sql_query($last_post_sql, __FILE__, __LINE__);
$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_row=mysql_fetch_array($last_post_result);
$last_post_result=api_sql_query($last_post_sql, __LINE__, __FILE__); $name=$last_post_row['firstname'].' '.$last_post_row['lastname'];
$last_post_row=mysql_fetch_array($last_post_result); $last_post=$last_post_row['post_date']." ".get_lang('By').' '.display_user_link($last_post_row['poster_id'], $name);
$name=$last_post_row['firstname'].' '.$last_post_row['lastname']; } else {
$last_post=$last_post_row['post_date']." ".get_lang('By').' '.$name; $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, __FILE__, __LINE__);
echo "\t\t<td>".$last_post."</td>\n"; $last_post_row=mysql_fetch_array($last_post_result);
echo "\t\t<td>"; $name=$last_post_row['firstname'].' '.$last_post_row['lastname'];
if (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session'])) { $last_post=$last_post_row['post_date']." ".get_lang('By').' '.$name;
echo "<a href=\"editpost.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($row['thread_id'])."&amp;post=".$row['post_id']."&origin=".$origin."\">".icon('../img/edit.gif',get_lang('Edit'))."</a>\n"; }
echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;action=delete&amp;content=thread&amp;id=".$row['thread_id'].$origin_string."\" onclick=\"javascript:if(!confirm('".addslashes(htmlentities(get_lang("DeleteCompleteThread"),ENT_QUOTES,$charset))."')) return false;\">".icon('../img/delete.gif',get_lang('Delete'))."</a>"; echo "\t\t<td>".$last_post."</td>\n";
display_visible_invisible_icon('thread', $row['thread_id'], $row['visibility'], array("forum"=>$_GET['forum'],'origin'=>$origin)); echo "\t\t<td>";
display_lock_unlock_icon('thread',$row['thread_id'], $row['locked'], array("forum"=>$_GET['forum'],'origin'=>$origin)); if (api_is_allowed_to_edit(false,true) && !(api_is_course_coach() && $current_forum['session_id']!=$_SESSION['id_session'])) {
echo "<a href=\"viewforum.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;action=move&amp;thread=".$row['thread_id'].$origin_string."\">".icon('../img/deplacer_fichier.gif',get_lang('MoveThread'))."</a>"; echo "<a href=\"editpost.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($row['thread_id'])."&amp;post=".$row['post_id']."&origin=".$origin."\">".icon('../img/edit.gif',get_lang('Edit'))."</a>\n";
} echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;action=delete&amp;content=thread&amp;id=".$row['thread_id'].$origin_string."\" onclick=\"javascript:if(!confirm('".addslashes(htmlentities(get_lang("DeleteCompleteThread"),ENT_QUOTES,$charset))."')) return false;\">".icon('../img/delete.gif',get_lang('Delete'))."</a>";
$iconnotify = 'send_mail.gif'; display_visible_invisible_icon('thread', $row['thread_id'], $row['visibility'], array("forum"=>$_GET['forum'],'origin'=>$origin));
if (is_array($_SESSION['forum_notification']['thread'])) { display_lock_unlock_icon('thread',$row['thread_id'], $row['locked'], array("forum"=>$_GET['forum'],'origin'=>$origin));
if (in_array($row['thread_id'],$_SESSION['forum_notification']['thread'])) { echo "<a href=\"viewforum.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;action=move&amp;thread=".$row['thread_id'].$origin_string."\">".icon('../img/deplacer_fichier.gif',get_lang('MoveThread'))."</a>";
$iconnotify = 'send_mail_checked.gif'; }
} $iconnotify = 'send_mail.gif';
} if (is_array($_SESSION['forum_notification']['thread'])) {
$icon_liststd = 'group.gif'; if (in_array($row['thread_id'],$_SESSION['forum_notification']['thread'])) {
echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&amp;forum=".Security::remove_XSS($_GET['forum'])."&amp;action=notify&amp;content=thread&amp;id=".$row['thread_id']."\">".icon('../img/'.$iconnotify,get_lang('NotifyMe'))."</a>"; $iconnotify = 'send_mail_checked.gif';
if ($userinf['status']=='1') { }
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($_GET['forum']).'&amp;action=liststd&amp;content=thread&amp;id='.$row['thread_id'].'">'.icon('../img/'.$icon_liststd,get_lang('StudentList')).'</a>'; }
} $icon_liststd = 'group.gif';
echo "</td>\n"; echo "<a href=\"".api_get_self()."?".api_get_cidreq()."&amp;forum=".Security::remove_XSS($_GET['forum'])."&amp;action=notify&amp;content=thread&amp;id=".$row['thread_id']."\">".icon('../img/'.$iconnotify,get_lang('NotifyMe'))."</a>";
echo "\t</tr>\n"; if ($userinf['status']=='1') {
} echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;forum='.Security::remove_XSS($_GET['forum']).'&amp;action=liststd&amp;content=thread&amp;id='.$row['thread_id'].'">'.icon('../img/'.$icon_liststd,get_lang('StudentList')).'</a>';
$counter++; }
echo "</td>\n";
echo "\t</tr>\n";
} }
} $counter++;
echo "</table>";
echo $table_list;
/* }
============================================================================== }
FOOTER echo "</table>";
============================================================================== echo $table_list;
*/ /*
if ($origin != 'learnpath') { ==============================================================================
Display :: display_footer(); FOOTER
==============================================================================
*/
if ($origin != 'learnpath') {
Display :: display_footer();
} }

@ -52,7 +52,7 @@ $htmlHeadXtra[] = '<script language="javascript">
//are we in a lp ? //are we in a lp ?
$origin = ''; $origin = '';
if(isset($_GET['origin'])) { if (isset($_GET['origin'])) {
$origin = Security::remove_XSS($_GET['origin']); $origin = Security::remove_XSS($_GET['origin']);
} }
/* /*
@ -77,14 +77,25 @@ $whatsnew_post_info=$_SESSION['whatsnew_post_info'];
Header and Breadcrumbs Header and Breadcrumbs
----------------------------------------------------------- -----------------------------------------------------------
*/ */
if($origin=='learnpath') { if ($origin=='learnpath') {
include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php');
} else { } else {
$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools); $interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools);
$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title'])); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;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'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title'])); if (isset($_GET['gradebook']) and $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".$info_thread['forum_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
} else {
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
}
if ($message<>'PostDeletedSpecial') { if ($message<>'PostDeletedSpecial') {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title'])); if (isset($_GET['gradebook']) and $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".$info_thread['forum_id']."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
} else {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
}
} }
// the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string // the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string
Display :: display_header(''); Display :: display_header('');
@ -107,10 +118,10 @@ if (!api_is_allowed_to_edit(false,true) AND ($current_forum['visibility']==0 OR
Actions Actions
----------------------------------------------------------- -----------------------------------------------------------
*/ */
if ($_GET['action']=='delete' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(false,true)) { if ($_GET['action']=='delete' && isset($_GET['content']) && isset($_GET['id']) && api_is_allowed_to_edit(false,true)) {
$message=delete_post($_GET['id']); // note: this has to be cleaned first $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(false,true)) { if (($_GET['action']=='invisible' || $_GET['action']=='visible') && isset($_GET['id']) && api_is_allowed_to_edit(false,true)) {
$message=approve_post($_GET['id'],$_GET['action']); // note: this has to be cleaned first $message=approve_post($_GET['id'],$_GET['action']); // note: this has to be cleaned first
} }
if ($_GET['action']=='move' and isset($_GET['post'])) { if ($_GET['action']=='move' and isset($_GET['post'])) {
@ -180,7 +191,7 @@ if ($message<>'PostDeletedSpecial') {// in this case the first and only post of
$viewmode=Database::escape_string($_GET['view']); $viewmode=Database::escape_string($_GET['view']);
$_SESSION['view']=$viewmode; $_SESSION['view']=$viewmode;
} }
if(empty($viewmode)) { if (empty($viewmode)) {
$viewmode = 'flat'; $viewmode = 'flat';
} }
@ -198,8 +209,7 @@ if ($message<>'PostDeletedSpecial') {// in this case the first and only post of
echo "\t<tr>\n\t\t<th style=\"padding-left:5px;\" align=\"left\" colspan=\"6\">"; echo "\t<tr>\n\t\t<th style=\"padding-left:5px;\" align=\"left\" colspan=\"6\">";
echo '<span class="forum_title">'.prepare4display($current_thread['thread_title']).'</span><br />'; echo '<span class="forum_title">'.prepare4display($current_thread['thread_title']).'</span><br />';
if($origin!='learnpath') if ($origin!='learnpath') {
{
echo '<span class="forum_low_description">'.prepare4display($current_forum_category['cat_title']).' - '; echo '<span class="forum_low_description">'.prepare4display($current_forum_category['cat_title']).' - ';
} }
@ -217,6 +227,6 @@ if ($message<>'PostDeletedSpecial') {// in this case the first and only post of
FOOTER FOOTER
============================================================================== ==============================================================================
*/ */
if($origin!='learnpath') { if ($origin!='learnpath') {
Display :: display_footer(); Display :: display_footer();
} }

@ -1,5 +1,5 @@
<?php // $Id: document.php 16494 2008-10-10 22:07:36Z yannoo $ <?php // $Id: $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -60,7 +60,7 @@ require_once 'forumfunction.inc.php';
//are we in a lp ? //are we in a lp ?
$origin = ''; $origin = '';
if(isset($_GET['origin'])) { if (isset($_GET['origin'])) {
$origin = Security::remove_XSS($_GET['origin']); $origin = Security::remove_XSS($_GET['origin']);
} }
@ -88,22 +88,32 @@ $whatsnew_post_info=$_SESSION['whatsnew_post_info'];
----------------------------------------------------------- -----------------------------------------------------------
Header and Breadcrumbs Header and Breadcrumbs
----------------------------------------------------------- -----------------------------------------------------------
*/ */
if (!empty($_GET['gradebook'])) { if (!empty($_GET['gradebook'])) {
$interbreadcrumb[]= array ( $interbreadcrumb[]= array (
'url' => '../gradebook/index.php', 'url' => '../gradebook/index.php',
'name' => get_lang('Gradebook') 'name' => get_lang('Gradebook')
); );
} }
if ($origin=='learnpath') { if ($origin=='learnpath') {
include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php'); include(api_get_path(INCLUDE_PATH).'reduced_header.inc.php');
} else { } else {
$interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools); $interbreadcrumb[]=array("url" => "index.php?search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => $nameTools);
$interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum_category['cat_title'])); $interbreadcrumb[]=array("url" => "viewforumcategory.php?forumcategory=".$current_forum_category['cat_id']."&amp;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'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title'])); if (isset($_GET['gradebook']) and $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".$info_thread['forum_id']."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
} else {
$interbreadcrumb[]=array("url" => "viewforum.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;search=".Security::remove_XSS(urlencode($_GET['search'])),"name" => prepare4display($current_forum['forum_title']));
}
if ($message<>'PostDeletedSpecial') { if ($message<>'PostDeletedSpecial') {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title'])); if (isset($_GET['gradebook']) and $_GET['gradebook']=='view') {
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".$info_thread['forum_id']."&amp;gradebook=".Security::remove_XSS($_GET['gradebook'])."&thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
} else {
$interbreadcrumb[]=array("url" => "viewthread.php?forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread']),"name" => prepare4display($current_thread['thread_title']));
}
} }
// the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string // the last element of the breadcrumb navigation is already set in interbreadcrumb, so give empty string
Display :: display_header(''); Display :: display_header('');
@ -173,8 +183,13 @@ if ($message<>'PostDeletedSpecial') {
//new thread link //new thread link
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 ((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) { if ($current_forum['locked'] <> 1 AND $current_forum['locked'] <> 1) {
echo '&nbsp;&nbsp;'; echo '&nbsp;&nbsp;';
echo '<a href="newthread.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&origin='.$origin.'">'.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').'</a>'; if ( isset($_GET['gradebook']) && $_GET['gradebook']!=""){
$info_thread=get_thread_information($_GET['thread']);
echo '<a href="newthread.php?'.api_get_cidreq().'&forum='.$info_thread['forum_id'].'&origin='.$origin.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'">'.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').'</a>';
} else {
echo '<a href="newthread.php?'.api_get_cidreq().'&forum='.Security::remove_XSS($_GET['forum']).'&origin='.$origin.'">'.Display::return_icon('forumthread_new.gif', get_lang('NewTopic')).' '.get_lang('NewTopic').'</a>';
}
} else { } else {
echo get_lang('ForumLocked'); echo get_lang('ForumLocked');
} }
@ -219,7 +234,7 @@ if ($message<>'PostDeletedSpecial') {
echo "\t<tr>\n\t\t<th style=\"padding-left:5px;\" align=\"left\" colspan=\"6\">"; echo "\t<tr>\n\t\t<th style=\"padding-left:5px;\" align=\"left\" colspan=\"6\">";
echo '<span class="forum_title">'.prepare4display($current_thread['thread_title']).'</span><br />'; echo '<span class="forum_title">'.prepare4display($current_thread['thread_title']).'</span><br />';
if($origin!='learnpath') { if ($origin!='learnpath') {
echo '<span class="forum_low_description">'.prepare4display($current_forum_category['cat_title']).' - '; echo '<span class="forum_low_description">'.prepare4display($current_forum_category['cat_title']).' - ';
} }
@ -250,6 +265,6 @@ if ($message<>'PostDeletedSpecial') {
FOOTER FOOTER
============================================================================== ==============================================================================
*/ */
if($origin!='learnpath') { if ($origin!='learnpath') {
Display :: display_footer(); Display :: display_footer();
} }

@ -64,12 +64,17 @@ foreach ($rows as $row) {
echo "\n"; echo "\n";
echo "<a href=\"viewthread.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread'])."&amp;action=move&amp;post=".$row['post_id']."&origin=".$origin."\">".icon('../img/deplacer_fichier.gif',get_lang('MovePost'))."</a>"; echo "<a href=\"viewthread.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread'])."&amp;action=move&amp;post=".$row['post_id']."&origin=".$origin."\">".icon('../img/deplacer_fichier.gif',get_lang('MovePost'))."</a>";
} }
$userinf=api_get_user_info($row['user_id']); $userinf=api_get_user_info($row['user_id']);
if($userinf['status']!='1') { if ($userinf['status']!='1') {
if(api_is_allowed_to_edit()) { if (api_is_allowed_to_edit()) {
$current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row['poster_id'],$_GET['thread']); $current_qualify_thread=show_qualify('1',$_GET['cidReq'],$_GET['forum'],$row['poster_id'],$_GET['thread']);
echo "<a href=\"viewpost.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread'])."&amp;action=list&amp;post=".$row['post_id']."&amp;user=".$row['poster_id']."&user_id=".$row['poster_id']."&origin=".$origin."&idtextqualify=".$current_qualify_thread."\" >".icon('../img/new_test_small.gif',get_lang('Qualify'))."</a>\n"; if( isset($_GET['gradebook'])){
$info_thread=get_thread_information(Security::remove_XSS($_GET['thread']));
echo "<a href=\"viewpost.php?".api_get_cidreq()."&forum=".$info_thread['forum_id']."&amp;thread=".Security::remove_XSS($_GET['thread'])."&amp;action=list&amp;post=".$row['post_id']."&amp;user=".$row['poster_id']."&user_id=".$row['poster_id']."&origin=".$origin."&idtextqualify=".$current_qualify_thread."&gradebook=".$_GET['gradebook']."\" >".icon('../img/new_test_small.gif',get_lang('Qualify'))."</a>\n";
} else {
echo "<a href=\"viewpost.php?".api_get_cidreq()."&forum=".Security::remove_XSS($_GET['forum'])."&amp;thread=".Security::remove_XSS($_GET['thread'])."&amp;action=list&amp;post=".$row['post_id']."&amp;user=".$row['poster_id']."&user_id=".$row['poster_id']."&origin=".$origin."&idtextqualify=".$current_qualify_thread."\" >".icon('../img/new_test_small.gif',get_lang('Qualify'))."</a>\n";
}
} }
} }
echo '<br /><br />'; echo '<br /><br />';

Loading…
Cancel
Save