Replace course_code with c_id

1.10.x
Julio Montoya 10 years ago
parent 9c14751549
commit 54db037671
  1. 29
      main/admin/access_url_edit_courses_to_url.php
  2. 4
      main/admin/add_courses_to_session.php
  3. 4
      main/admin/course_list.php
  4. 14
      main/admin/dashboard_add_courses_to_user.php
  5. 6
      main/admin/subscribe_user2course.php
  6. 2
      main/admin/user_export.php
  7. 4
      main/inc/lib/add_course.lib.inc.php
  8. 7
      main/inc/lib/add_courses_to_session_functions.lib.php
  9. 8
      main/inc/lib/api.lib.php
  10. 4
      main/inc/lib/auth.lib.php
  11. 52
      main/inc/lib/course.lib.php
  12. 33
      main/inc/lib/course_category.lib.php
  13. 2
      main/inc/lib/database.constants.inc.php
  14. 2
      main/inc/lib/sessionmanager.lib.php
  15. 17
      main/inc/lib/statistics.lib.php
  16. 20
      main/inc/lib/tracking.lib.php
  17. 90
      main/inc/lib/urlmanager.lib.php
  18. 4
      main/inc/lib/usermanager.lib.php
  19. 10
      main/inc/lib/userportal.lib.php
  20. 97
      src/Chamilo/CoreBundle/Entity/Session.php
  21. 21
      src/Chamilo/CoreBundle/Entity/SettingsCurrent.php
  22. 7
      src/Chamilo/CoreBundle/Migrations/Schema/v1/Version110.php

@ -83,8 +83,8 @@ $UserList = $SessionList = array();
$users = $sessions = array();
if (isset($_POST['form_sent']) && $_POST['form_sent']) {
$form_sent=$_POST['form_sent'];
$course_list=$_POST['course_list'];
$form_sent = $_POST['form_sent'];
$course_list = $_POST['course_list'];
if (!is_array($course_list)) {
$course_list=array();
@ -115,16 +115,16 @@ $no_course_list = $course_list = array();
$ajax_search = $add_type == 'unique' ? true : false;
if($ajax_search) {
$courses=UrlManager::get_url_rel_course_data($access_url_id);
foreach($courses as $course) {
$course_list[$course['course_code']] = $course ;
$courses = UrlManager::get_url_rel_course_data($access_url_id);
foreach ($courses as $course) {
$course_list[$course['c_id']] = $course ;
}
} else {
$courses=UrlManager::get_url_rel_course_data();
$courses = UrlManager::get_url_rel_course_data();
foreach($courses as $course) {
if($course['access_url_id'] == $access_url_id) {
$course_list[$course['course_code']] = $course ;
foreach ($courses as $course) {
if ($course['access_url_id'] == $access_url_id) {
$course_list[$course['c_id']] = $course ;
}
}
@ -132,12 +132,13 @@ if($ajax_search) {
$sql="SELECT code, title
FROM $tbl_course u
ORDER BY title, code";
$result=Database::query($sql);
$courses=Database::store_result($result);
$result = Database::query($sql);
$courses = Database::store_result($result);
$course_list_leys = array_keys($course_list);
foreach($courses as $course) {
if (!in_array($course['code'],$course_list_leys))
$no_course_list[$course['code']] = $course ;
foreach ($courses as $course) {
if (!in_array($course['id'], $course_list_leys)) {
$no_course_list[$course['id']] = $course;
}
}
}

@ -131,7 +131,7 @@ if ($ajax_search) {
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = ".intval($sessionId)."
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.course_code=course.code)
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.c_id = course.id)
WHERE access_url_id = $access_url_id
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
}
@ -160,7 +160,7 @@ if ($ajax_search) {
LEFT JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = ".intval($sessionId)."
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.course_code=course.code)
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.c_id = course.id)
WHERE access_url_id = $access_url_id
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
}

@ -26,7 +26,7 @@ function get_number_of_courses()
api_is_multiple_url_enabled() && api_get_current_access_url_id() != -1
) {
$access_url_rel_course_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql.= " INNER JOIN $access_url_rel_course_table url_rel_course ON (code=url_rel_course.course_code)";
$sql.= " INNER JOIN $access_url_rel_course_table url_rel_course ON (id = url_rel_course.c_id)";
}
if (isset ($_GET['keyword'])) {
@ -100,7 +100,7 @@ function get_course_data($from, $number_of_items, $column, $direction)
api_is_multiple_url_enabled() && api_get_current_access_url_id() != -1
) {
$access_url_rel_course_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql.= " INNER JOIN $access_url_rel_course_table url_rel_course ON (code=url_rel_course.course_code)";
$sql.= " INNER JOIN $access_url_rel_course_table url_rel_course ON (id = url_rel_course.c_id)";
}
if (isset ($_GET['keyword'])) {

@ -77,11 +77,17 @@ function search_courses($needle, $type)
}
if ($_configuration['multiple_access_urls']) {
$sql = "SELECT c.code, c.title FROM $tbl_course c LEFT JOIN $tbl_course_rel_access_url a ON (a.course_code = c.code)
WHERE c.code LIKE '$needle%' $without_assigned_courses AND access_url_id = ".api_get_current_access_url_id()."";
} else {
$sql = "SELECT c.code, c.title FROM $tbl_course c
WHERE c.code LIKE '$needle%' $without_assigned_courses ";
LEFT JOIN $tbl_course_rel_access_url a ON (a.c_id = c.id)
WHERE
c.code LIKE '$needle%' $without_assigned_courses AND
access_url_id = ".api_get_current_access_url_id()."";
} else {
$sql = "SELECT c.code, c.title
FROM $tbl_course c
WHERE
c.code LIKE '$needle%'
$without_assigned_courses ";
}
$rs = Database::query($sql);

@ -207,13 +207,13 @@ $sql = "SELECT code,visual_code,title
ORDER BY ". (count($courses) > 0 ? "(code IN('".implode("','", $courses)."')) DESC," : "")." visual_code";
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = "SELECT code, visual_code, title
FROM $tbl_course as course
INNER JOIN $tbl_course_rel_access_url course_rel_url
ON (course_rel_url.course_code= course.code)
ON (course_rel_url.c_id = course.id)
WHERE
access_url_id = $access_url_id AND
(visual_code LIKE '".$first_letter_course."%' )
@ -235,7 +235,7 @@ if (api_is_multiple_url_enabled()) {
INNER JOIN $tbl_course as course
ON course.id = course_rel_user.c_id
INNER JOIN $tbl_course_rel_access_url course_rel_url
ON (course_rel_url.course_code= course.code)
ON (course_rel_url.c_id = course.id)
WHERE
access_url_id = $access_url_id AND
course_rel_user.user_id='".$_user['user_id']."' AND

@ -33,7 +33,7 @@ if (api_is_multiple_url_enabled()) {
if ($access_url_id != -1){
$sql = "SELECT code,visual_code,title FROM $course_table as c
INNER JOIN $tbl_course_rel_access_url as course_rel_url
ON (c.code = course_rel_url.course_code)
ON (c.id = course_rel_url.c_id)
WHERE access_url_id = $access_url_id
ORDER BY visual_code";
}

@ -1426,9 +1426,9 @@ class AddCourse
if (api_get_current_access_url_id() != -1) {
$url_id = api_get_current_access_url_id();
}
UrlManager::add_course_to_url($code, $url_id);
UrlManager::add_course_to_url($course_id, $url_id);
} else {
UrlManager::add_course_to_url($code, 1);
UrlManager::add_course_to_url($course_id, 1);
}
// Add event to the system log.

@ -62,8 +62,8 @@ class AddCourseToSession
}
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
@ -73,7 +73,8 @@ class AddCourseToSession
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
INNER JOIN '.$tbl_course_rel_access_url.' url_course ON (url_course.course_code=course.code)
INNER JOIN '.$tbl_course_rel_access_url.' url_course
ON (url_course.c_id = course.id)
WHERE
access_url_id = '.$access_url_id.' AND
(course.visual_code LIKE "'.$needle.'%" OR

@ -5158,15 +5158,17 @@ function api_add_access_url($u, $d = '', $a = 1) {
* @param int Access URL's ID. Optional. Uses 1 by default, which is the unique URL
* @return array Array of database results for the current settings of the current access URL
*/
function & api_get_settings($cat = null, $ordering = 'list', $access_url = 1, $url_changeable = 0) {
$t_cs = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
function & api_get_settings($cat = null, $ordering = 'list', $access_url = 1, $url_changeable = 0)
{
$table = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
$access_url = (int) $access_url;
$where_condition = '';
if ($url_changeable == 1) {
$where_condition = " AND access_url_changeable= '1' ";
}
if (empty($access_url) or $access_url == -1) { $access_url = 1; }
$sql = "SELECT * FROM $t_cs WHERE access_url = $access_url $where_condition ";
$sql = "SELECT * FROM $table
WHERE access_url = $access_url $where_condition ";
if (!empty($cat)) {
$cat = Database::escape_string($cat);

@ -518,14 +518,14 @@ class Auth
";
global $_configuration;
if ($_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id != -1) {
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql_find = "SELECT *
FROM $TABLECOURS as course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND (
code LIKE '%" . $search_term_safe . "%' OR

@ -213,7 +213,7 @@ class CourseManager
if (!empty($urlId)) {
$table = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql .= " INNER JOIN $table url ON (url.course_code = course.code) ";
$sql .= " INNER JOIN $table url ON (url.c_id = course.id) ";
}
if (!empty($startwith)) {
@ -1005,9 +1005,9 @@ class CourseManager
INNER JOIN $tbl_course as course
ON course.id = course_rel_user.c_id
INNER JOIN $tbl_course_rel_access_url course_rel_url
ON (course_rel_url.course_code= course.code)
ON (course_rel_url.c_id = course.id)
WHERE
access_url_id = $access_url_id AND
access_url_id = $access_url_id AND
course_rel_user.user_id='$user_id' AND
course_rel_user.status='1'
ORDER BY course.title";
@ -2156,26 +2156,32 @@ class CourseManager
$codeFiltered = Database::escape_string($code);
$sql = "SELECT * FROM $table_course WHERE code='" . $codeFiltered . "'";
$res = Database::query($sql);
if (Database::num_rows($res) == 0) {
return;
}
$sql = "SELECT * FROM $table_course WHERE code = '" . $codeFiltered . "'";
$res = Database::query($sql);
$course = Database::fetch_array($res);
$courseId = $course['id'];
$count = 0;
if (api_is_multiple_url_enabled()) {
$url_id = 1;
if (api_get_current_access_url_id() != -1) {
$url_id = api_get_current_access_url_id();
}
UrlManager::delete_url_rel_course($code, $url_id);
$count = UrlManager::getcountUrlRelCourse($code);
UrlManager::delete_url_rel_course($courseId, $url_id);
$count = UrlManager::getcountUrlRelCourse($courseId);
}
if ($count == 0) {
self::create_database_dump($code);
$sql = "SELECT * FROM $table_course WHERE code = '" . $codeFiltered . "'";
$res = Database::query($sql);
$course = Database::fetch_array($res);
$course_tables = AddCourse::get_course_tables();
$courseId = $course['id'];
// Cleaning c_x tables
if (!empty($courseId)) {
@ -2205,7 +2211,7 @@ class CourseManager
Database::query($sql);
// Delete from Course - URL
$sql = "DELETE FROM $table_course_rel_url WHERE course_code = '" . $codeFiltered . "'";
$sql = "DELETE FROM $table_course_rel_url WHERE c_id = '" . $courseId. "'";
Database::query($sql);
$sql = 'SELECT survey_id FROM ' . $table_course_survey . ' WHERE course_code="' . $codeFiltered . '"';
@ -2540,6 +2546,7 @@ class CourseManager
*/
public static function get_special_course_list()
{
$courseTable = Database:: get_main_table(TABLE_MAIN_COURSE);
$tbl_course_field = Database:: get_main_table(TABLE_MAIN_COURSE_FIELD);
$tbl_course_field_value = Database:: get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
@ -2549,16 +2556,18 @@ class CourseManager
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$tbl_url_course = Database:: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.course_code= tcfv.course_code ";
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.c_id = tcfv.c_id ";
$where_access_url = " AND access_url_id = $access_url_id ";
}
}
// get course list auto-register
$sql = "SELECT DISTINCT(tcfv.course_code)
$sql = "SELECT DISTINCT(c.code)
FROM $tbl_course_field_value tcfv
INNER JOIN $tbl_course_field tcf
ON tcfv.field_id = tcf.id $join_access_url
INNER JOIN $courseTable c
ON (c.id = tcfv.c_id)
WHERE
tcf.field_variable = 'special_course' AND
tcfv.field_value = 1 $where_access_url";
@ -3315,7 +3324,7 @@ class CourseManager
$sql = "$select
FROM $tbl_course c
INNER JOIN $tbl_course_rel_user cru ON (cru.c_id = c.id)
INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = c.code)
INNER JOIN $tbl_course_rel_access_url a ON (a.c_id = c.id)
$extraInnerJoin
WHERE
access_url_id = " . api_get_current_access_url_id() . "
@ -3825,7 +3834,7 @@ class CourseManager
$TABLE_ACCESS_URL_REL_COURSE url
WHERE
course.id = course_rel_user.c_id AND
url.course_code = course.code AND
url.c_id = course.id AND
course_rel_user.user_id = '" . $user_id . "' AND
course_rel_user.user_course_cat='" . $user_category_id . "'
$without_special_courses ";
@ -3833,7 +3842,7 @@ class CourseManager
// If multiple URL access mode is enabled, only fetch courses
// corresponding to the current URL.
if (api_get_multiple_access_url() && $current_url_id != -1) {
$sql .= " AND url.course_code = course.code AND access_url_id='" . $current_url_id . "'";
$sql .= " AND url.c_id = course.id AND access_url_id='" . $current_url_id . "'";
}
// Use user's classification for courses (if any).
$sql .= " ORDER BY course_rel_user.user_course_cat, course_rel_user.sort ASC";
@ -4769,8 +4778,11 @@ class CourseManager
//$table_course_access table uses the now() and interval ...
$now = api_get_utc_datetime(time());
$sql = "SELECT COUNT(course_access_id) course_count, a.c_id, visibility
FROM $table_course c INNER JOIN $table_course_access a
ON (c.id = a.c_id) INNER JOIN $table_course_url u ON u.course_code = c.code
FROM $table_course c
INNER JOIN $table_course_access a
ON (c.id = a.c_id)
INNER JOIN $table_course_url u
ON u.c_id = c.id
WHERE
u.access_url_id = " . api_get_current_access_url_id() . " AND
login_course_date <= '$now' AND
@ -4887,7 +4899,7 @@ class CourseManager
$sql = "SELECT count(id) FROM $table_course c";
if (!empty($access_url_id) && $access_url_id == intval($access_url_id)) {
$sql .= ", $table_course_rel_access_url u
WHERE c.code = u.course_code AND u.access_url_id = $access_url_id";
WHERE c.id = u.c_id AND u.access_url_id = $access_url_id";
if (!empty($visibility)) {
$visibility = intval($visibility);
$sql .= " AND visibility = $visibility ";
@ -4919,7 +4931,7 @@ class CourseManager
if (!empty($urlId) && $urlId == intval($urlId)) {
$sql .= ", $table_course_rel_access_url u
WHERE
c.code = u.course_code AND
c.id = u.c_id AND
u.access_url_id = $urlId AND
visibility <> " . COURSE_VISIBILITY_HIDDEN;
} else {
@ -4959,7 +4971,7 @@ class CourseManager
if (!empty($accessUrlId) && $accessUrlId == intval($accessUrlId)) {
$sql = "SELECT count(id) FROM $tableCourse c, $tableCourseRelAccessUrl u
WHERE
c.code = u.course_code AND
c.id = u.c_id AND
u.access_url_id = $accessUrlId AND
c.visibility != 0 AND
c.visibility != 4

@ -597,7 +597,7 @@ function countCoursesInCategory($category_code="", $searchTerm = '')
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT * FROM $tbl_course as course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND
course.visibility != '0' AND
@ -666,21 +666,26 @@ function browseCoursesInCategory($category_code, $random_value = null, $limit =
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT COUNT(*) FROM $tbl_course course
INNER JOIN $tbl_url_rel_course as url_rel_course ON (url_rel_course.course_code=course.code)
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE access_url_id = $url_access_id ";
$result = Database::query($sql);
list($num_records) = Database::fetch_row($result);
$sql = "SELECT course.id FROM $tbl_course course INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND
RAND()*$num_records< $random_value
$without_special_courses $visibilityCondition
ORDER BY RAND() LIMIT 0, $random_value";
$sql = "SELECT course.id FROM $tbl_course course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND
RAND()*$num_records< $random_value
$without_special_courses $visibilityCondition
ORDER BY RAND()
LIMIT 0, $random_value";
} else {
$sql = "SELECT id FROM $tbl_course course
WHERE RAND()*$num_records< $random_value $without_special_courses $visibilityCondition
ORDER BY RAND() LIMIT 0, $random_value";
ORDER BY RAND()
LIMIT 0, $random_value";
}
$result = Database::query($sql);
@ -716,15 +721,15 @@ function browseCoursesInCategory($category_code, $random_value = null, $limit =
if ($category_code != "ALL") {
$sql = "SELECT * FROM $tbl_course as course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
ON (url_rel_course.c_id = course.id)
WHERE access_url_id = $url_access_id AND category_code='$category_code' $without_special_courses $visibilityCondition
ORDER BY title $limitFilter";
} else {
$sql = "SELECT * FROM $tbl_course as course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id $without_special_courses $visibilityCondition
ORDER BY title $limitFilter";
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE access_url_id = $url_access_id $without_special_courses $visibilityCondition
ORDER BY title $limitFilter";
}
}

@ -110,7 +110,7 @@ define('TABLE_MAIN_USER_FRIEND_RELATION_TYPE', 'user_friend_relation_type');
// Web services
define('TABLE_MAIN_USER_API_KEY', 'user_api_key');
define('TABLE_MAIN_COURSE_FIELD', 'course_field');
define('TABLE_MAIN_COURSE_FIELD_OPTIONS', 'course_field_options');
define('TABLE_MAIN_COURSE_FIELD_OPTIONS', 'course_field_options');
define('TABLE_MAIN_COURSE_FIELD_VALUES', 'course_field_values');
define('TABLE_MAIN_SESSION_FIELD', 'session_field');
define('TABLE_MAIN_SESSION_FIELD_OPTIONS', 'session_field_options');

@ -4562,7 +4562,7 @@ class SessionManager
FROM $tbl_course c
INNER JOIN $tbl_course_user cu ON (cu.c_id = c.id)
INNER JOIN $tbl_user u ON (u.user_id = cu.user_id)
INNER JOIN $tbl_course_rel_access_url url ON (url.course_code = c.code)
INNER JOIN $tbl_course_rel_access_url url ON (url.c_id = c.id)
$where
$courseConditions
)

@ -36,10 +36,11 @@ class Statistics
public static function countCourses($categoryCode = null)
{
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
$access_url_rel_course_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_rel_course_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$current_url_id = api_get_current_access_url_id();
if (api_is_multiple_url_enabled()) {
$sql = "SELECT COUNT(*) AS number FROM ".$course_table." as c, ".$access_url_rel_course_table." as u WHERE u.course_code=c.code AND access_url_id='".$current_url_id."'";
$sql = "SELECT COUNT(*) AS number FROM ".$course_table." as c, ".$access_url_rel_course_table." as u
WHERE u.c_id = c.id AND access_url_id='".$current_url_id."'";
if (isset ($categoryCode)) {
$sql .= " AND category_code = '".Database::escape_string($categoryCode)."'";
}
@ -69,7 +70,7 @@ class Statistics
$current_url_id = api_get_current_access_url_id();
if (api_is_multiple_url_enabled()) {
$sql = "SELECT COUNT(*) AS number FROM ".$course_table." as c, ".$access_url_rel_course_table." as u
WHERE u.course_code=c.code AND access_url_id='".$current_url_id."'";
WHERE u.c_id = c.id AND access_url_id='".$current_url_id."'";
if (isset ($visibility)) {
$sql .= " AND visibility = ".intval($visibility);
}
@ -525,11 +526,13 @@ class Statistics
if (api_is_multiple_url_enabled()) {
$sql = "SELECT course_language, count( c.code ) AS number_of_courses ".
"FROM $table as c, $access_url_rel_course_table as u
WHERE u.course_code=c.code AND access_url_id='".$current_url_id."'
GROUP BY course_language ORDER BY number_of_courses DESC";
WHERE u.c_id = c.id AND access_url_id='".$current_url_id."'
GROUP BY course_language
ORDER BY number_of_courses DESC";
} else {
$sql = "SELECT course_language, count( code ) AS number_of_courses ".
"FROM $table GROUP BY course_language ORDER BY number_of_courses DESC";
"FROM $table GROUP BY course_language
ORDER BY number_of_courses DESC";
}
$res = Database::query($sql);
$result = array();
@ -624,7 +627,7 @@ class Statistics
*/
public static function printCourseLastVisit()
{
$access_url_rel_course_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_rel_course_table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$current_url_id = api_get_current_access_url_id();
$columns[0] = 'c_id';

@ -2841,6 +2841,7 @@ class Tracking
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
// At first, courses where $coach_id is coach of the course.
@ -2848,13 +2849,14 @@ class Tracking
FROM ' . $tbl_session_course_user . '
WHERE id_user = ' . $coach_id.' AND status = 2';
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = 'SELECT DISTINCT scu.course_code
$sql = 'SELECT DISTINCT c.code
FROM ' . $tbl_session_course_user . ' scu
INNER JOIN '.$tbl_course.' c
ON (c.code = scu.course_code)
INNER JOIN '.$tbl_course_rel_access_url.' cru
ON (scu.course_code = cru.course_code)
ON (c.id = cru.c_id)
WHERE
scu.id_user=' . $coach_id.' AND
scu.status=2 AND
@ -2883,18 +2885,20 @@ class Tracking
ON course.code = session_course.course_code';
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = 'SELECT DISTINCT session_course.course_code
$sql = 'SELECT DISTINCT c.code
FROM ' . $tbl_session_course . ' as session_course
INNER JOIN '.$tbl_course.' c
ON (c.code = session_course.course_code)
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session
ON session.id = session_course.id_session
AND session.id_coach = ' . $coach_id . '
INNER JOIN ' . $tbl_course . ' as course
ON course.code = session_course.course_code
INNER JOIN '.$tbl_course_rel_access_url.' course_rel_url
ON (session_course.course_code = course_rel_url.course_code)';
ON (course_rel_url.c_id = c.id)';
}
}
@ -3925,7 +3929,7 @@ class Tracking
INNER JOIN $tbl_course c
ON (cu.c_id = c.id)
INNER JOIN $tbl_access_rel_course a
ON (a.course_code = c.code)
ON (a.c_id = c.id)
WHERE
user_id = $user_id AND
relation_type<> ".COURSE_RELATION_TYPE_RRHH." AND

@ -191,39 +191,39 @@ class UrlManager
public static function get_url_rel_course_data($access_url_id = null)
{
$where ='';
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
if (!empty($access_url_id)) {
$where ="WHERE $table_url_rel_course.access_url_id = ".intval($access_url_id);
}
$sql = "SELECT course_code, title, access_url_id
$sql = "SELECT u.id, c_id, title, access_url_id
FROM $tbl_course u
INNER JOIN $table_url_rel_course
ON $table_url_rel_course.course_code = code
ON $table_url_rel_course.c_id = u.id
$where
ORDER BY title, code";
$result=Database::query($sql);
$courses=Database::store_result($result);
$result = Database::query($sql);
$courses = Database::store_result($result);
return $courses;
}
/**
* Gets the number of rows with a specific course_code in access_url_rel_course table
* @author Yoselyn Castillo
* @param string code
* @param int $courseId
* @return int Database::num_rows($res);
*
**/
public static function getCountUrlRelCourse($code)
public static function getCountUrlRelCourse($courseId)
{
$code = Database::escape_string($code);
$courseId = intval($courseId);
$tableUrlRelCourse = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT *
FROM $tableUrlRelCourse
WHERE $tableUrlRelCourse.course_code = '$code'";
WHERE $tableUrlRelCourse.c_id = '$courseId'";
$res = Database::query($sql);
return Database::num_rows($res);
}
@ -361,18 +361,19 @@ class UrlManager
/**
* Checks the relationship between an URL and a Course (return the num_rows)
* @author Julio Montoya
* @param int user id
* @param int url id
* @param int $courseId
* @param int $urlId
* @return boolean true if success
* */
public static function relation_url_course_exist($course_id, $url_id)
public static function relation_url_course_exist($courseId, $urlId)
{
$table_url_rel_course= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql= "SELECT course_code FROM $table_url_rel_course
WHERE access_url_id = ".intval($url_id)." AND
course_code = '".Database::escape_string($course_id)."'";
WHERE access_url_id = ".intval($urlId)." AND
c_id = '".intval($courseId)."'";
$result = Database::query($sql);
$num = Database::num_rows($result);
return $num;
}
@ -456,16 +457,19 @@ class UrlManager
**/
public static function add_courses_to_urls($course_list,$url_list)
{
$table_url_rel_course= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$result_array = array();
if (is_array($course_list) && is_array($url_list)){
foreach ($url_list as $url_id) {
foreach ($course_list as $course_code) {
$count = self::relation_url_course_exist($course_code,$url_id);
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$count = self::relation_url_course_exist($courseId, $url_id);
if ($count==0) {
$sql = "INSERT INTO $table_url_rel_course
SET course_code = '".Database::escape_string($course_code)."', access_url_id = ".intval($url_id);
SET c_id = '".$courseId."', access_url_id = ".intval($url_id);
$result = Database::query($sql);
if($result)
$result_array[$url_id][$course_code]=1;
@ -653,11 +657,11 @@ class UrlManager
}
/**
* @param string $course_code
* @param string $courseId
* @param int $url_id
* @return resource
*/
public static function add_course_to_url($course_code, $url_id=1)
public static function add_course_to_url($courseId, $url_id=1)
{
$table_url_rel_course= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
if (empty($url_id)) {
@ -666,7 +670,7 @@ class UrlManager
$count = UrlManager::relation_url_course_exist($course_code,$url_id);
if (empty($count)) {
$sql = "INSERT INTO $table_url_rel_course
SET course_code = '".Database::escape_string($course_code)."', access_url_id = ".intval($url_id);
SET c_id = '".intval($courseId)."', access_url_id = ".intval($url_id);
$result = Database::query($sql);
}
@ -721,15 +725,17 @@ class UrlManager
/**
* Deletes an url and course relationship
* @author Julio Montoya
* @param char course code
* @param int url id
* @param id $courseId
* @param int $urlId
* @return boolean true if success
* */
public static function delete_url_rel_course($course_code, $url_id)
public static function delete_url_rel_course($courseId, $urlId)
{
$table_url_rel_course= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql= "DELETE FROM $table_url_rel_course WHERE course_code = '".Database::escape_string($course_code)."' AND access_url_id=".intval($url_id)." ";
$sql= "DELETE FROM $table_url_rel_course
WHERE c_id = '".intval($courseId)."' AND access_url_id=".intval($url_id)." ";
$result = Database::query($sql);
return $result;
}
@ -835,36 +841,34 @@ class UrlManager
/**
* Updates the access_url_rel_course table with a given user list
* @author Julio Montoya
* @param array user list
* @param array $course_list
* @param int access_url_id
* */
public static function update_urls_rel_course($course_list,$access_url_id)
public static function update_urls_rel_course($course_list, $access_url_id)
{
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT course_code FROM $table_url_rel_course WHERE access_url_id=".intval($access_url_id);
$sql = "SELECT c_id FROM $table_url_rel_course WHERE access_url_id=".intval($access_url_id);
$result = Database::query($sql);
$existing_courses = array();
while($row = Database::fetch_array($result)){
$existing_courses[] = $row['course_code'];
$existing_courses = array();
while ($row = Database::fetch_array($result)){
$existing_courses[] = $row['c_id'];
}
// Adding courses
foreach ($course_list as $course_code) {
if(!in_array($course_code, $existing_courses)) {
UrlManager::add_course_to_url($course_code, $access_url_id);
$course_info = api_get_course_info($course_code);
CourseManager::update_course_ranking($course_info['real_id'], 0, $access_url_id);
if (!in_array($course_code, $courseId)) {
UrlManager::add_course_to_url($courseId, $access_url_id);
CourseManager::update_course_ranking($courseId, 0, $access_url_id);
}
}
// Deleting old courses
foreach ($existing_courses as $existing_course) {
if(!in_array($existing_course, $course_list)) {
UrlManager::delete_url_rel_course($existing_course,$access_url_id);
$course_info = api_get_course_info($existing_course);
CourseManager::update_course_ranking($course_info['real_id'], 0, $access_url_id);
foreach ($existing_courses as $courseId) {
if (!in_array($courseId, $course_list)) {
UrlManager::delete_url_rel_course($courseId, $access_url_id);
CourseManager::update_course_ranking($courseId, 0, $access_url_id);
}
}
}

@ -2639,7 +2639,7 @@ class UserManager
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$tbl_url_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.course_code= course.code";
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.c_id= course.id";
$where_access_url = " AND access_url_id = $access_url_id ";
}
}
@ -3980,7 +3980,7 @@ class UserManager
$access_url_id = api_get_current_access_url_id();
$tbl_url_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.course_code= course.code";
$join_access_url = "LEFT JOIN $tbl_url_course url_rel_course ON url_rel_course.c_id = course.id";
$where_access_url = " AND access_url_id = $access_url_id ";
}

@ -421,9 +421,13 @@ class IndexManager
$url_access_id = api_get_current_access_url_id();
if ($url_access_id != -1) {
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql_get_course_list = "SELECT * FROM $main_course_table as course INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND category_code = '".Database::escape_string($_GET['category'])."' ORDER BY title, UPPER(visual_code)";
$sql_get_course_list = "SELECT * FROM $main_course_table as course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND
category_code = '".Database::escape_string($_GET['category'])."'
ORDER BY title, UPPER(visual_code)";
}
}

@ -71,6 +71,34 @@ class Session
*/
private $nbrClasses;
/**
* @var \DateTime
*
* @ORM\Column(name="date_start", type="date", nullable=false)
*/
private $dateStart;
/**
* @var \DateTime
*
* @ORM\Column(name="date_end", type="date", nullable=false)
*/
private $dateEnd;
/**
* @var boolean
*
* @ORM\Column(name="nb_days_access_before_beginning", type="boolean", nullable=true)
*/
private $nbDaysAccessBeforeBeginning;
/**
* @var boolean
*
* @ORM\Column(name="nb_days_access_after_end", type="boolean", nullable=true)
*/
private $nbDaysAccessAfterEnd;
/**
* @var integer
*
@ -509,6 +537,75 @@ class Session
return $this->nbrClasses;
}
/**
* Set dateStart
*
* @param \DateTime $dateStart
* @return Session
*/
public function setDateStart($dateStart)
{
$this->dateStart = $dateStart;
return $this;
}
/**
* Get dateStart
*
* @return \DateTime
*/
public function getDateStart()
{
return $this->dateStart;
}
/**
* Set dateEnd
*
* @param \DateTime $dateEnd
* @return Session
*/
public function setDateEnd($dateEnd)
{
$this->dateEnd = $dateEnd;
return $this;
}
/**
* Get dateEnd
*
* @return \DateTime
*/
public function getDateEnd()
{
return $this->dateEnd;
}
/**
* Set nbDaysAccessBeforeBeginning
*
* @param boolean $nbDaysAccessBeforeBeginning
* @return Session
*/
public function setNbDaysAccessBeforeBeginning($nbDaysAccessBeforeBeginning)
{
$this->nbDaysAccessBeforeBeginning = $nbDaysAccessBeforeBeginning;
return $this;
}
/**
* Get nbDaysAccessBeforeBeginning
*
* @return boolean
*/
public function getNbDaysAccessBeforeBeginning()
{
return $this->nbDaysAccessBeforeBeginning;
}
/**
* Set sessionAdminId
*

@ -12,6 +12,15 @@ use Doctrine\ORM\Mapping as ORM;
*/
class SettingsCurrent
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
@ -78,7 +87,7 @@ class SettingsCurrent
/**
* @var integer
*
* @ORM\Column(name="access_url", type="integer", nullable=false)
* @ORM\Column(name="access_url", type="integer", nullable=false, options={"default": 1 } )
*/
private $accessUrl;
@ -96,16 +105,6 @@ class SettingsCurrent
*/
private $accessUrlLocked;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* Set variable

@ -80,6 +80,8 @@ class Version110 extends AbstractMigration
$this->addSql("ALTER TABLE course ADD COLUMN add_teachers_to_sessions_courses tinyint NOT NULL default 0");
$this->addSql("ALTER TABLE session MODIFY COLUMN name char(100) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE course_rel_user ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE course_field_values ADD COLUMN c_id int default NULL");
$this->addSql("UPDATE course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)");
// Course
@ -110,13 +112,16 @@ class Version110 extends AbstractMigration
$this->addSql("UPDATE track_e_access SET c_id = (SELECT id FROM course WHERE code = access_cours_code)");
$this->addSql("UPDATE track_e_default SET c_id = (SELECT id FROM course WHERE code = default_cours_code)");
$this->addSql("UPDATE track_e_lastaccess SET c_id = (SELECT id FROM course WHERE code = access_cours_code)");
$this->addSql("UPDATE track_e_exercises SET c_id = (SELECT id FROM course WHERE code = exe_cours_id)");
$this->addSql("UPDATE track_e_exercices SET c_id = (SELECT id FROM course WHERE code = exe_cours_id)");
$this->addSql("UPDATE track_e_downloads SET c_id = (SELECT id FROM course WHERE code = down_cours_id)");
$this->addSql("UPDATE track_e_hotpotatoes SET c_id = (SELECT id FROM course WHERE code = exe_cours_id)");
$this->addSql("UPDATE track_e_links SET c_id = (SELECT id FROM course WHERE code = links_cours_id)");
$this->addSql("UPDATE track_e_course_access SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE track_e_online SET c_id = (SELECT id FROM course WHERE code = course)");
$this->addSql("UPDATE track_e_attempt SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE course_field_values SET c_id = (SELECT id FROM course WHERE code = course_code)");
//$this->addSql("UPDATE settings_current SET selected_value = '1.10.0.35' WHERE variable = 'chamilo_database_version'");
$this->addSql("DELETE FROM settings_current WHERE variable = 'wcag_anysurfer_public_pages'");

Loading…
Cancel
Save