Adding c_id in some queries see #3910

skala
Julio Montoya 14 years ago
parent 7e36d33b01
commit 0ffffaf9d6
  1. 76
      main/forum/forumfunction.inc.php
  2. 51
      main/forum/viewforum.php
  3. 16
      main/inc/lib/display.lib.php
  4. 2
      tests/main/forum/forumfunction.inc.test.php

@ -1586,17 +1586,16 @@ function get_thread_information($thread_id) {
* @todo this function need to be improved * @todo this function need to be improved
* @version octubre 2008, dokeos 1.8 * @version octubre 2008, dokeos 1.8
*/ */
function get_thread_users_details($thread_id, $course_id = null) { function get_thread_users_details($thread_id) {
$t_posts = Database :: get_course_table(TABLE_FORUM_POST); $t_posts = Database :: get_course_table(TABLE_FORUM_POST);
$t_users = Database :: get_main_table(TABLE_MAIN_USER); $t_users = Database :: get_main_table(TABLE_MAIN_USER);
$t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$t_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $t_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
if (empty($course_id)) { $course_code = api_get_course_id();
$course_id = api_get_course_int_id(); $course_code = Database::escape_string($course_code);
} else {
$course_id = intval($course_id); $course_id = api_get_course_int_id();
}
$is_western_name_order = api_is_western_name_order(); $is_western_name_order = api_is_western_name_order();
if ($is_western_name_order) { if ($is_western_name_order) {
@ -1611,13 +1610,14 @@ function get_thread_users_details($thread_id, $course_id = null) {
//not showing coaches //not showing coaches
$sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id $sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id
FROM $t_posts , $t_users user, $t_session_rel_user session_rel_user_rel_course FROM $t_posts , $t_users user, $t_session_rel_user session_rel_user_rel_course
WHERE poster_id = user.user_id WHERE poster_id = user.user_id AND
AND user.user_id = session_rel_user_rel_course.id_user user.user_id = session_rel_user_rel_course.id_user AND
AND session_rel_user_rel_course.status<>'2' session_rel_user_rel_course.status<>'2' AND
AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid) session_rel_user_rel_course.id_user NOT IN ($user_to_avoid) AND
AND thread_id = '".Database::escape_string($thread_id)."' thread_id = '".Database::escape_string($thread_id)."' AND
AND id_session = '".api_get_session_id()."' id_session = '".api_get_session_id()."' AND
AND course_code = '".$course_id."' $orderby "; c_id = $course_id AND
course_code = '".$course_code."' $orderby ";
} else { } else {
$sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id $sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id
@ -1626,8 +1626,9 @@ function get_thread_users_details($thread_id, $course_id = null) {
AND user.user_id = course_user.user_id AND user.user_id = course_user.user_id
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND thread_id = '".Database::escape_string($thread_id)."' AND thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status NOT IN('1') AND course_user.status NOT IN('1') AND
AND course_code = '".$course_id."' $orderby"; c_id = $course_id AND
course_code = '".$course_code."' $orderby";
} }
$result = Database::query($sql); $result = Database::query($sql);
return $result; return $result;
@ -1642,19 +1643,17 @@ function get_thread_users_details($thread_id, $course_id = null) {
* @todo this function need to be improved * @todo this function need to be improved
* @version octubre 2008, dokeos 1.8 * @version octubre 2008, dokeos 1.8
*/ */
function get_thread_users_qualify($thread_id, $course_id = null) { function get_thread_users_qualify($thread_id) {
$t_posts = Database :: get_course_table(TABLE_FORUM_POST); $t_posts = Database :: get_course_table(TABLE_FORUM_POST);
$t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY); $t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY);
$t_users = Database :: get_main_table(TABLE_MAIN_USER); $t_users = Database :: get_main_table(TABLE_MAIN_USER);
$t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$t_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $t_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$course_id = api_get_course_int_id();
$course_code = api_get_course_id();
$course_code = Database::escape_string($course_code);
if (empty($course_id)) {
$course_id = api_get_course_int_id();
} else {
$course_id = intval($course_id);
}
$is_western_name_order = api_is_western_name_order(); $is_western_name_order = api_is_western_name_order();
if ($is_western_name_order) { if ($is_western_name_order) {
$orderby = 'ORDER BY user.firstname, user.lastname '; $orderby = 'ORDER BY user.firstname, user.lastname ';
@ -1676,7 +1675,9 @@ function get_thread_users_qualify($thread_id, $course_id = null) {
AND qualify.thread_id = '".Database::escape_string($thread_id)." AND qualify.thread_id = '".Database::escape_string($thread_id)."
AND thread_id = '".Database::escape_string($thread_id)."' AND thread_id = '".Database::escape_string($thread_id)."'
AND id_session = '".api_get_session_id()."' AND id_session = '".api_get_session_id()."'
AND course_code = '".$course_id."' AND course_code = '".$course_code."' AND
qualify.c_id = $course_id AND
post.c_id = $course_id
$orderby "; $orderby ";
} else { } else {
$sql = "SELECT DISTINCT post.poster_id, user.lastname, user.firstname, post.thread_id,user.user_id,qualify.qualify $sql = "SELECT DISTINCT post.poster_id, user.lastname, user.firstname, post.thread_id,user.user_id,qualify.qualify
@ -1692,7 +1693,9 @@ function get_thread_users_qualify($thread_id, $course_id = null) {
AND qualify.thread_id = '".Database::escape_string($thread_id)."' AND qualify.thread_id = '".Database::escape_string($thread_id)."'
AND post.thread_id = '".Database::escape_string($thread_id)."' AND post.thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status not in('1') AND course_user.status not in('1')
AND course_code = '".$course_id."' AND course_code = '".$course_code."' AND
qualify.c_id = $course_id AND
post.c_id = $course_id
$orderby "; $orderby ";
} }
$result = Database::query($sql); $result = Database::query($sql);
@ -1708,7 +1711,7 @@ function get_thread_users_qualify($thread_id, $course_id = null) {
* @todo i'm a horrible function fix me * @todo i'm a horrible function fix me
* @version octubre 2008, dokeos 1.8 * @version octubre 2008, dokeos 1.8
*/ */
function get_thread_users_not_qualify($thread_id, $course_id = null) { function get_thread_users_not_qualify($thread_id) {
$t_posts = Database :: get_course_table(TABLE_FORUM_POST); $t_posts = Database :: get_course_table(TABLE_FORUM_POST);
$t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY); $t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY);
$t_users = Database :: get_main_table(TABLE_MAIN_USER); $t_users = Database :: get_main_table(TABLE_MAIN_USER);
@ -1722,13 +1725,10 @@ function get_thread_users_not_qualify($thread_id, $course_id = null) {
$orderby = 'ORDER BY user.lastname, user.firstname'; $orderby = 'ORDER BY user.lastname, user.firstname';
} }
if (empty($course_id)) { $course_id = api_get_course_int_id();
$course_id = api_get_course_int_id(); $course_code = api_get_course_id();
} else {
$course_id = intval($course_id);
}
$sql1 = "select user_id FROM $t_qualify WHERE thread_id = '".$thread_id."'"; $sql1 = "select user_id FROM $t_qualify WHERE c_id = $course_id AND thread_id = '".$thread_id."'";
$result1 = Database::query($sql1); $result1 = Database::query($sql1);
$cad = ''; $cad = '';
while ($row = Database::fetch_array($result1)) { while ($row = Database::fetch_array($result1)) {
@ -1753,7 +1753,7 @@ function get_thread_users_not_qualify($thread_id, $course_id = null) {
AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid) AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid)
AND post.thread_id = '".Database::escape_string($thread_id)."' AND post.thread_id = '".Database::escape_string($thread_id)."'
AND id_session = '".api_get_session_id()."' AND id_session = '".api_get_session_id()."'
AND course_code = '".$course_id."' $orderby "; AND course_code = '".$course_code."' AND post.c_id = $course_id $orderby ";
} else { } else {
$sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, post.thread_id $sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, post.thread_id
FROM $t_posts post, $t_users user,$t_course_user course_user FROM $t_posts post, $t_users user,$t_course_user course_user
@ -1763,7 +1763,7 @@ function get_thread_users_not_qualify($thread_id, $course_id = null) {
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND post.thread_id = '".Database::escape_string($thread_id)."' AND post.thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status not in('1') AND course_user.status not in('1')
AND course_code = '".$course_id."' $orderby"; AND course_code = '".$course_code."' AND post.c_id = $course_id $orderby";
} }
$result = Database::query($sql); $result = Database::query($sql);
return $result; return $result;

@ -35,9 +35,6 @@ api_protect_course_script(true);
// The section (tabs). // The section (tabs).
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
// Including additional library scripts.
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
$nameTools = get_lang('ToolForum'); $nameTools = get_lang('ToolForum');
// Are we in a lp ? // Are we in a lp ?
@ -68,6 +65,7 @@ if (empty($current_forum)) {
$current_forum_category = get_forumcategory_information($current_forum['forum_category']); $current_forum_category = get_forumcategory_information($current_forum['forum_category']);
$is_group_tutor = false;
if (!empty($group_id)) { if (!empty($group_id)) {
//Group info & group category info //Group info & group category info
@ -75,6 +73,8 @@ if (!empty($group_id)) {
//User has access in the group? //User has access in the group?
$user_has_access_in_group = GroupManager::user_has_access($userid, $group_id, GROUP_TOOL_FORUM); $user_has_access_in_group = GroupManager::user_has_access($userid, $group_id, GROUP_TOOL_FORUM);
$is_group_tutor = GroupManager::is_tutor_of_group(api_get_user_id(), $group_id);
//Course //Course
if (!api_is_allowed_to_edit(false, true) AND //is a student if (!api_is_allowed_to_edit(false, true) AND //is a student
@ -166,36 +166,39 @@ if ($my_action == 'notify' AND isset($_GET['content']) AND isset($_GET['id']) &&
// Student list // Student list
if ($my_action == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND api_is_allowed_to_edit(null, true)) { if ($my_action == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) AND (api_is_allowed_to_edit(null, true) || $is_group_tutor)) {
$active = null;
switch($_GET['list']) { switch ($_GET['list']) {
case 'qualify': case 'qualify':
$student_list = get_thread_users_qualify($_GET['id'], api_get_course_int_id()); $student_list = get_thread_users_qualify($_GET['id']);
$nrorow3 = -2; $nrorow3 = -2;
$active = 2;
break; break;
case 'notqualify': case 'notqualify':
$student_list = get_thread_users_not_qualify($_GET['id'], api_get_course_int_id()); $student_list = get_thread_users_not_qualify($_GET['id']);
$nrorow3 = -2; $nrorow3 = -2;
$active = 3;
break; break;
default: default:
$student_list = get_thread_users_details($_GET['id'], api_get_course_int_id()); $student_list = get_thread_users_details($_GET['id']);
$nrorow3 = Database::num_rows($student_list); $nrorow3 = Database::num_rows($student_list);
$active = 1;
break; break;
} }
$table_list = '<p><br /><h3>'.get_lang('ThreadUsersList').': '.get_name_thread_by_id($_GET['id']).'</h3>';
$table_list = Display::page_subheader(get_lang('ThreadUsersList').': '.get_name_thread_by_id($_GET['id']));
if ($nrorow3 > 0 || $nrorow3 == -2) { if ($nrorow3 > 0 || $nrorow3 == -2) {
$url = 'cidReq='.Security::remove_XSS($_GET['cidReq']).'&amp;forum='.Security::remove_XSS($my_forum).'&amp;action='.Security::remove_XSS($_GET['action']).'&amp;content='.Security::remove_XSS($_GET['content'],STUDENT).'&amp;id='.Security::remove_XSS($_GET['id']); $url = 'cidReq='.Security::remove_XSS($_GET['cidReq']).'&amp;forum='.Security::remove_XSS($my_forum).'&amp;action='.Security::remove_XSS($_GET['action']).'&amp;content='.Security::remove_XSS($_GET['content'],STUDENT).'&amp;id='.intval($_GET['id']);
$table_list .= '<br /> $tabs = array(
<div style="width:50%"> array('content' => get_lang('AllStudents'),
<table class="data_table" border="0"> 'url' => 'viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=all'),
<tr> array('content' => get_lang('StudentsQualified'),
<th height="22"><a href="viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=all">'.get_lang('AllStudents').'</a></th> 'url' => 'viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=qualify'),
<th><a href="viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=qualify">'.get_lang('StudentsQualified').'</a></th> array('content' => get_lang('StudentsNotQualified'),
<th><a href="viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=notqualify">'.get_lang('StudentsNotQualified').'</a></th> 'url' => 'viewforum.php?'.$url.'&amp;origin='.$origin.'&amp;list=notqualify'),
</tr> );
</table></div> $table_list .= Display::tabs_only_link($tabs, $active);
<div style="border:1px solid gray; width:99%; margin-top:5px; padding:4px; float:left">
';
$icon_qualify = 'blog_new.gif'; $icon_qualify = 'blog_new.gif';
$table_list .= '<center><br /><table class="data_table" style="width:50%">'; $table_list .= '<center><br /><table class="data_table" style="width:50%">';
@ -240,9 +243,9 @@ if ($my_action == 'liststd' AND isset($_GET['content']) AND isset($_GET['id']) A
} }
$table_list .= '</table></center>'; $table_list .= '</table></center>';
$table_list .= '<br /></div>'; $table_list .= '<br />';
} else { } else {
$table_list .= get_lang('NoParticipation'); $table_list .= Display::return_message(get_lang('NoParticipation'), 'warning');
} }
} }

@ -788,6 +788,22 @@ class Display {
$main_div = self::tag('div',$ul.$divs, $attributes); $main_div = self::tag('div',$ul.$divs, $attributes);
return $main_div ; return $main_div ;
} }
public static function tabs_only_link($header_list, $selected = null) {
$id = uniqid();
$i = 1;
$lis = null;
foreach ($header_list as $item) {
$class = null;
if ($i == $selected) {
$class = 'active';
}
$item =self::tag('a', $item['content'], array('id'=>$id.'-'.$i, 'href' => $item['url']));
$lis .=self::tag('li', $item, array('class' => $class));
$i++;
}
return self::tag('ul',$lis, array('class' => 'nav nav-tabs'));
}
/** /**
* In order to display a grid using jqgrid you have to: * In order to display a grid using jqgrid you have to:

@ -699,7 +699,7 @@ class TestForumFunction extends UnitTestCase {
public function testget_thread_users_details() { public function testget_thread_users_details() {
$thread_id = 1; $thread_id = 1;
$res = get_thread_users_details($thread_id, $db_name = null); $res = get_thread_users_details($thread_id);
if(!is_null($res)){ if(!is_null($res)){
$this->assertTrue(is_resource($res)); $this->assertTrue(is_resource($res));
} else { } else {

Loading…
Cancel
Save