Adding session support when qualifying posts in a forum see BT#1837

skala
Julio Montoya 15 years ago
parent 94463c4270
commit 7bd3788fe3
  1. 114
      main/forum/forumfunction.inc.php

@ -1563,22 +1563,40 @@ function get_thread_information($thread_id) {
* @param string Course DB name (optional)
* @return resource array Array of type ([user_id=>w,lastname=>x,firstname=>y,thread_id=>z],[])
* @author Christian Fasanando <christian.fasanando@dokeos.com>,
* @todo this function need to be improved
* @version octubre 2008, dokeos 1.8
*/
function get_thread_users_details($thread_id, $db_name = null) {
$t_posts = Database :: get_course_table(TABLE_FORUM_POST, (empty($db_name)?null:$db_name));
$t_users = Database :: get_main_table(TABLE_MAIN_USER);
$t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id
FROM $t_posts , $t_users user, $t_course_user course_user
WHERE poster_id = user.user_id
AND user.user_id = course_user.user_id
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status NOT IN('1')
AND course_code = '".api_get_course_id()."'";
$t_posts = Database :: get_course_table(TABLE_FORUM_POST, (empty($db_name)?null:$db_name));
$t_users = Database :: get_main_table(TABLE_MAIN_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);
if (api_get_session_id()) {
$session_info = api_get_session_info(api_get_session_id());
$user_to_avoid = "'".$session_info['id_coach']."', '".$session_info['session_admin_id']."'";
//not showing coaches
$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
WHERE poster_id = user.user_id
AND user.user_id = session_rel_user_rel_course.id_user
AND session_rel_user_rel_course.status<>'2'
AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid)
AND thread_id = '".Database::escape_string($thread_id)."'
AND id_session = '".api_get_session_id()."'
AND course_code = '".api_get_course_id()."'";
} else {
$sql = "SELECT DISTINCT user.user_id, user.lastname, user.firstname, thread_id
FROM $t_posts , $t_users user, $t_course_user course_user
WHERE poster_id = user.user_id
AND user.user_id = course_user.user_id
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status NOT IN('1')
AND course_code = '".api_get_course_id()."'";
}
$result = Database::query($sql);
return $result;
}
@ -1589,6 +1607,7 @@ function get_thread_users_details($thread_id, $db_name = null) {
* @param string Course DB name (optional)
* @return array Array of type ([user_id=>w,lastname=>x,firstname=>y,thread_id=>z],[])
* @author Jhon Hinojosa<jhon.hinojosa@dokeos.com>,
* @todo this function need to be improved
* @version octubre 2008, dokeos 1.8
*/
@ -1597,21 +1616,38 @@ function get_thread_users_qualify($thread_id, $db_name = null) {
$t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY, (empty($db_name)?null:$db_name));
$t_users = Database :: get_main_table(TABLE_MAIN_USER);
$t_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT post.poster_id, user.lastname, user.firstname, post.thread_id,user.user_id,qualify.qualify
FROM $t_posts post,
$t_qualify qualify,
$t_users user,
$t_course_user course_user
WHERE
post.poster_id = user.user_id
AND post.poster_id = qualify.user_id
AND user.user_id = course_user.user_id
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND qualify.thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status not in('1')
AND course_code = '".api_get_course_id()."'
GROUP BY post.poster_id ";
$t_session_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
if (api_get_session_id()) {
$session_info = api_get_session_info(api_get_session_id());
$user_to_avoid = "'".$session_info['id_coach']."', '".$session_info['session_admin_id']."'";
//not showing coaches
$sql = "SELECT post.poster_id, user.lastname, user.firstname, post.thread_id,user.user_id,qualify.qualify
FROM $t_posts post , $t_users user, $t_session_rel_user session_rel_user_rel_course, $t_qualify qualify
WHERE poster_id = user.user_id
AND post.poster_id = qualify.user_id
AND user.user_id = session_rel_user_rel_course.id_user
AND session_rel_user_rel_course.status<>'2'
AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid)
AND qualify.thread_id = '".Database::escape_string($thread_id)."'
AND id_session = '".api_get_session_id()."'
AND course_code = '".api_get_course_id()."'";
} else {
$sql = "SELECT post.poster_id, user.lastname, user.firstname, post.thread_id,user.user_id,qualify.qualify
FROM $t_posts post,
$t_qualify qualify,
$t_users user,
$t_course_user course_user
WHERE
post.poster_id = user.user_id
AND post.poster_id = qualify.user_id
AND user.user_id = course_user.user_id
AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
AND qualify.thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status not in('1')
AND course_code = '".api_get_course_id()."'
GROUP BY post.poster_id ";
}
$result = Database::query($sql);
return $result;
}
@ -1621,7 +1657,8 @@ function get_thread_users_qualify($thread_id, $db_name = null) {
* @param int Thread ID
* @param string Course DB name (optional)
* @return array Array of type ([user_id=>w,lastname=>x,firstname=>y,thread_id=>z],[])
* @author Jhon Hinojosa<jhon.hinojosa@dokeos.com>,
* @author Jhon Hinojosa<jhon.hinojosa@dokeos.com>,
* @todo i'm a horrible function fix me
* @version octubre 2008, dokeos 1.8
*/
@ -1630,6 +1667,7 @@ function get_thread_users_not_qualify($thread_id, $db_name = null) {
$t_qualify = Database :: get_course_table(TABLE_FORUM_THREAD_QUALIFY, (empty($db_name)?null:$db_name));
$t_users = Database :: get_main_table(TABLE_MAIN_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);
$sql1 = "select user_id FROM $t_qualify WHERE thread_id = '".$thread_id."'";
$result1 = Database::query($sql1);
@ -1642,6 +1680,25 @@ function get_thread_users_not_qualify($thread_id, $db_name = null) {
} else {
$cad=substr($cad,0,strlen($cad)-1);
}
if (api_get_session_id()) {
$session_info = api_get_session_info(api_get_session_id());
$user_to_avoid = "'".$session_info['id_coach']."', '".$session_info['session_admin_id']."'";
//not showing coaches
$sql = "SELECT user.user_id, user.lastname, user.firstname, post.thread_id
FROM $t_posts post , $t_users user, $t_session_rel_user session_rel_user_rel_course
WHERE poster_id = user.user_id
AND user.user_id NOT IN (".$cad.")
AND user.user_id = session_rel_user_rel_course.id_user
AND session_rel_user_rel_course.status<>'2'
AND session_rel_user_rel_course.id_user NOT IN ($user_to_avoid)
AND post.thread_id = '".Database::escape_string($thread_id)."'
AND id_session = '".api_get_session_id()."'
AND course_code = '".api_get_course_id()."'";
} else {
$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
WHERE post.poster_id = user.user_id
@ -1651,6 +1708,7 @@ function get_thread_users_not_qualify($thread_id, $db_name = null) {
AND post.thread_id = '".Database::escape_string($thread_id)."'
AND course_user.status not in('1')
AND course_code = '".api_get_course_id()."'";
}
$result = Database::query($sql);
return $result;
}

Loading…
Cancel
Save