fixed - user and course information from course list - partial CT#462

skala
Cristian Fasanando 15 years ago
parent 34b0596944
commit d8c3027a59
  1. 28
      main/admin/course_information.php
  2. 15
      main/admin/user_information.php
  3. 18
      main/inc/lib/course.lib.php

@ -14,16 +14,18 @@
// name of the language file that needs to be included
$language_file = 'admin';
$cidReset = true;
require ('../inc/global.inc.php');
require_once(api_get_path(LIBRARY_PATH).'sortabletable.class.php');
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'sortabletable.class.php';
require_once api_get_path(LIBRARY_PATH).'course.lib.php';
$this_section=SECTION_PLATFORM_ADMIN;
api_protect_admin_script();
/**
*
*/
function get_course_usage($course_code)
function get_course_usage($course_code, $session_id = 0)
{
$table = Database::get_main_table(TABLE_MAIN_COURSE);
$course_code = Database::escape_string($course_code);
$sql = "SELECT * FROM $table WHERE code='".$course_code."'";
@ -31,28 +33,28 @@ function get_course_usage($course_code)
$course = Database::fetch_object($res);
// Learnpaths
$table = Database :: get_course_table(TABLE_LP_MAIN, $course->db_name);
$usage[] = array (get_lang(ucfirst(TOOL_LEARNPATH)), Database::count_rows($table));
$usage[] = array (get_lang(ucfirst(TOOL_LEARNPATH)), CourseManager::count_rows_course_table($table,$session_id));
// Forums
$table = Database :: get_course_table(TABLE_FORUM, $course->db_name);
$usage[] = array (get_lang('Forums'), Database::count_rows($table));
$usage[] = array (get_lang('Forums'), CourseManager::count_rows_course_table($table,$session_id));
// Quizzes
$table = Database :: get_course_table(TABLE_QUIZ_TEST, $course->db_name);
$usage[] = array (get_lang(ucfirst(TOOL_QUIZ)), Database::count_rows($table));
$usage[] = array (get_lang(ucfirst(TOOL_QUIZ)), CourseManager::count_rows_course_table($table,$session_id));
// Documents
$table = Database :: get_course_table(TABLE_DOCUMENT, $course->db_name);
$usage[] = array (get_lang(ucfirst(TOOL_DOCUMENT)), Database::count_rows($table));
$usage[] = array (get_lang(ucfirst(TOOL_DOCUMENT)), CourseManager::count_rows_course_table($table,$session_id));
// Groups
$table = Database :: get_course_table(TABLE_GROUP, $course->db_name);
$usage[] = array (get_lang(ucfirst(TOOL_GROUP)), Database::count_rows($table));
$usage[] = array (get_lang(ucfirst(TOOL_GROUP)), CourseManager::count_rows_course_table($table,$session_id));
// Calendar
$table = Database :: get_course_table(TABLE_AGENDA, $course->db_name);
$usage[] = array (get_lang(ucfirst(TOOL_CALENDAR_EVENT)), Database::count_rows($table));
$usage[] = array (get_lang(ucfirst(TOOL_CALENDAR_EVENT)), CourseManager::count_rows_course_table($table,$session_id));
// Link
$table = Database::get_course_table(TABLE_LINK, $course->db_name);
$usage[] = array(get_lang(ucfirst(TOOL_LINK)), Database::count_rows($table));
$usage[] = array(get_lang(ucfirst(TOOL_LINK)), CourseManager::count_rows_course_table($table,$session_id));
// Announcements
$table = Database::get_course_table(TABLE_ANNOUNCEMENT, $course->db_name);
$usage[] = array(get_lang(ucfirst(TOOL_ANNOUNCEMENT)), Database::count_rows($table));
$usage[] = array(get_lang(ucfirst(TOOL_ANNOUNCEMENT)), CourseManager::count_rows_course_table($table,$session_id));
return $usage;
}
/*****************************************************************/
@ -87,7 +89,9 @@ if(api_get_setting('server_type') == 'test')
echo '<h4>'.get_lang('CourseUsage').'</h4>';
echo '<blockquote>';
$table = new SortableTableFromArray(get_course_usage($course->code),0,20,'usage_table');
$id_session = intval($_GET['id_session']);
$table = new SortableTableFromArray(get_course_usage($course->code,$id_session),0,20,'usage_table');
$table->set_additional_parameters(array ('code' => $_GET['code']));
$table->set_other_tables(array('user_table','class_table'));
$table->set_header(0,get_lang('Tool'), true);

@ -157,12 +157,13 @@ if(count($sessions)>0){
WHERE session_course.id_session = $id_session
ORDER BY i";
*/
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
$personal_course_list_sql = "SELECT distinct course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, email, course.course_language l, 1 sort, category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name, IF(session_course.id_coach = 3,'2', '5')
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
$personal_course_list_sql = "SELECT distinct course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, email, course.course_language l, 1 sort, category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name, IF(session_course_user.id_user = 3,'2', '5')
FROM $tbl_session_course_user as session_course_user INNER JOIN $tbl_course AS course
ON course.code = session_course_user.course_code AND session_course_user.id_session = $id_session INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id
ON course.code = session_course_user.course_code AND session_course_user.id_session = $id_session
INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id
INNER JOIN $tbl_session_course as session_course
LEFT JOIN $tbl_user as user ON user.user_id = session_course.id_coach
LEFT JOIN $tbl_user as user ON user.user_id = session_course_user.id_user AND session_course_user.status = 2
WHERE session_course_user.id_user = $user_id ORDER BY i";
$course_list_sql_result = Database::query($personal_course_list_sql, __FILE__, __LINE__);
@ -183,10 +184,10 @@ if(count($sessions)>0){
$row[] = $my_course['k'];
$row[] = $my_course['i'];
$row[] = $my_course['s'] == STUDENT ? get_lang('Student') : get_lang('Teacher');
$tools = '<a href="course_information.php?code='.$my_course['k'].'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
$tools = '<a href="course_information.php?code='.$my_course['k'].'&id_session='.$id_session.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$my_course['d'].'?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>' .
'<a href="course_edit.php?course_code='.$my_course['k'].'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>';
'<a href="session_course_edit.php?id_session='.$id_session.'&course_code='.$my_course['k'].'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>';
if( $my_course->status == STUDENT ){
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$my_course['k'].'&user_id='.$user['user_id'].'">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';

@ -2085,4 +2085,22 @@ class CourseManager {
return $html_code;
}
/**
* Get count rows of a table inside a course database
* @param string The table of which the rows should be counted
* @param int optionally count rows by session id
* @return int The number of rows in the given table.
*/
public static function count_rows_course_table($table, $session_id = '') {
$condition_session = '';
if ($session_id !== '') {
$session_id = intval($session_id);
$condition_session = " WHERE session_id = '$session_id' ";
}
$sql = "SELECT COUNT(*) AS n FROM $table $condition_session ";
$rs = Database::query($sql, __FILE__, __LINE__);
$row = Database::fetch_row($rs);
return $row[0];
}
} //end class CourseManager

Loading…
Cancel
Save