skala
Julio Montoya 15 years ago
commit f10e7f6aef
  1. 4
      documentation/installation_guide_es_ES.html
  2. 4
      main/admin/access_url_edit.php
  3. 13
      main/admin/access_url_edit_courses_to_url.php
  4. 13
      main/admin/access_url_edit_sessions_to_url.php
  5. 14
      main/admin/access_url_edit_users_to_url.php
  6. 4
      main/admin/add_courses_to_session.php
  7. 228
      main/admin/statistics/statistics.lib.php
  8. 2
      main/inc/lib/add_courses_to_session_functions.lib.php
  9. 761
      main/newscorm/learnpath.class.php
  10. 6
      main/newscorm/scorm_api.php

@ -45,7 +45,7 @@ no son requeridos para usar Chamilo LMS.  Por favor, lea completamente este
<ol>
<li><a href="#1._Pre-requisites">Prerrequisitos</a></li>
<li><a href="#1._Pre-requisites">Prerequisitos</a></li>
<li><a href="#2._Installation_of_Chamilo_LMS">Instalación de Chamilo LMS</a></li>
<li><a href="#3._Upgrade_from_a_previous_version_of">Actualizar desde una versión previa de Chamilo o Dokeos</a></li>
<li><a href="#4._Troubleshooting">Solución de Problemas</a></li>
@ -58,7 +58,7 @@ no son requeridos para usar Chamilo LMS. &nbsp;Por favor, lea completamente este
<br />
<hr style="width: 100%; height: 2px;" />
<h2><a name="1._Pre-requisites"></a>1. Prerrequisitos</h2>
<h2><a name="1._Pre-requisites"></a>1. Prerequisitos</h2>
Chamilo puede ser instalado indiferentemente en servidores Windows, Linux, Mac OS X y UNIX.

@ -90,7 +90,7 @@ if ($_GET['url_id'] != 1) {
$defaults['url']='http://';
$form->setDefaults($defaults);
$submit_name = get_lang('Add');
$submit_name = get_lang('AddUrl');
if (isset($_GET['url_id'])) {
$url_id = Database::escape_string($_GET['url_id']);
$num_url_id = UrlManager::url_id_exist($url_id);
@ -101,7 +101,7 @@ if (isset($_GET['url_id'])) {
$url_data = UrlManager::get_url_data_from_id($url_id);
$form->addElement('hidden','id',$url_data['id']);
$form->setDefaults($url_data);
$submit_name = get_lang('Edit');
$submit_name = get_lang('AddUrl');
}
if (!$_configuration['multiple_access_urls'])

@ -20,7 +20,8 @@ require_once (api_get_path(LIBRARY_PATH).'access_url_edit_courses_to_url_functio
$xajax = new xajax();
//$xajax->debugOn();
$xajax -> registerFunction ('search_courses');
$xajax -> registerFunction (array('search_courses', 'Accessurleditcoursestourl', 'search_courses'));
// setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN;
@ -275,13 +276,13 @@ function remove_item(origin)
<?php
if($ajax_search) {
?>
<input type="button" onclick="remove_item(document.getElementById('destination_users'))" value="<<" />
<button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))" ></button>
<?php
} else {
?>
<input type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" value=">>" />
<button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" ></button>
<br /><br />
<input type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" value="<<" />
<button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" ></button>
<?php
}
?>
@ -309,9 +310,9 @@ unset($course_list);
<br />
<?php
if(isset($_GET['add']))
echo '<input type="button" value="'.get_lang('EditCourses').'" onclick="valide()" />';
echo '<button class="save" onclick="valide()" >'.get_lang('AddCoursesToURL').'</button>';
else
echo '<input type="button" value="'.get_lang('EditCourses').'" onclick="valide()" />';
echo '<button class="save" onclick="valide()" >'.get_lang('EditCoursesToURL').'</button>';
?>
</td>
</tr>

@ -19,7 +19,8 @@ require_once (api_get_path(LIBRARY_PATH).'access_url_edit_sessions_to_url_functi
$xajax = new xajax();
//$xajax->debugOn();
$xajax -> registerFunction ('search_sessions');
$xajax -> registerFunction (array('search_sessions', 'Accessurleditsessionstourl', 'search_sessions'));
// setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN;
@ -273,13 +274,13 @@ function remove_item(origin)
<?php
if($ajax_search) {
?>
<input type="button" onclick="remove_item(document.getElementById('destination_users'))" value="<<" />
<button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))" ></button>
<?php
} else {
?>
<input type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" value=">>" />
<button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" ></button>
<br /><br />
<input type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" value="<<" />
<button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" ></button>
<?php
}
?>
@ -307,9 +308,9 @@ unset($session_list);
<br />
<?php
if(isset($_GET['add']))
echo '<input type="button" value="'.get_lang('EditSessions').'" onclick="valide()" />';
echo '<button class="save" type="button" onclick="valide()" >'.get_lang('AddSessionsToURL').'</button>';
else
echo '<input type="button" value="'.get_lang('EditSessions').'" onclick="valide()" />';
echo '<button class="save" type="button" onclick="valide()" >'.get_lang('EditSessionsToURL').'</button>';
?>
</td>
</tr>

@ -15,10 +15,12 @@ $cidReset=true;
// including some necessary dokeos files
require_once '../inc/global.inc.php';
require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php');
require_once api_get_path(LIBRARY_PATH).'access_url_edit_users_to_url_functions.lib.php';
require_once ('../inc/lib/xajax/xajax.inc.php');
$xajax = new xajax();
//$xajax->debugOn();
$xajax -> registerFunction ('search_users');
$xajax -> registerFunction (array('search_users', 'Accessurledituserstourl', 'search_users'));
// setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN;
@ -268,13 +270,13 @@ function remove_item(origin)
<?php
if($ajax_search) {
?>
<input type="button" onclick="remove_item(document.getElementById('destination_users'))" value="<<" />
<button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))"> </button>
<?php
} else {
?>
<input type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" value=">>" />
<button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" ></button>
<br /><br />
<input type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" value="<<" />
<button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" ></button>
<?php
}
?>
@ -301,9 +303,9 @@ unset($sessionUsersList);
<br />
<?php
if(isset($_GET['add']))
echo '<input type="button" value="'.get_lang('EditUsers').'" onclick="valide()" />';
echo '<button class="save" type="button" onclick="valide()" >'.get_lang('AddUsersToURL').'</button>';
else
echo '<input type="button" value="'.get_lang('EditUsers').'" onclick="valide()" />';
echo '<button class="save" type="button" onclick="valide()" >'.get_lang('EditUsersToURL').'</button>';
?>
</td>
</tr>

@ -22,7 +22,9 @@ require_once (api_get_path(LIBRARY_PATH).'add_courses_to_session_functions.lib.p
$xajax = new xajax();
//$xajax->debugOn();
$xajax -> registerFunction ('search_courses');
$xajax -> registerFunction (array('search_courses', 'AddCourseToSession', 'search_courses'));
// setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN;

@ -24,10 +24,20 @@ class Statistics {
* @return int Number of courses counted
*/
function count_courses($category_code = NULL) {
global $_configuration;
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
$sql = "SELECT COUNT(*) AS number FROM ".$course_table." ";
if (isset ($category_code)) {
$sql .= " WHERE category_code = '".Database::escape_string($category_code)."'";
$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 ($_configuration['multiple_access_urls'] == true){
$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."'";
if (isset ($category_code)) {
$sql .= " AND category_code = '".Database::escape_string($category_code)."'";
}
} else {
$sql = "SELECT COUNT(*) AS number FROM ".$course_table." ";
if (isset ($category_code)) {
$sql .= " WHERE category_code = '".Database::escape_string($category_code)."'";
}
}
$res = Database::query($sql);
$obj = Database::fetch_object($res);
@ -41,14 +51,24 @@ class Statistics {
* @return int Number of users counted
*/
function count_users($status, $category_code = NULL, $count_invisible_courses = true) {
global $_configuration;
// Database table definitions
$course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
$sql = "SELECT COUNT(DISTINCT(user_id)) AS number FROM $user_table WHERE status = ".intval(Database::escape_string($status))." ";
if (isset ($category_code)) {
$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c WHERE cu.status = ".intval(Database::escape_string($status))." AND c.code = cu.course_code AND c.category_code = '".Database::escape_string($category_code)."' ";
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT COUNT(DISTINCT(u.user_id)) AS number FROM $user_table as u, $access_url_rel_user_table as url WHERE status = ".intval(Database::escape_string($status))." AND u.user_id=url.user_id AND access_url_id='".$current_url_id."'";
if (isset ($category_code)) {
$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c, $access_url_rel_user_table as url WHERE cu.status = ".intval(Database::escape_string($status))." AND c.code = cu.course_code AND c.category_code = '".Database::escape_string($category_code)."' AND cu.user_id=url.user_id AND access_url_id='".$current_url_id."'";
}
} else {
$sql = "SELECT COUNT(DISTINCT(user_id)) AS number FROM $user_table WHERE status = ".intval(Database::escape_string($status))." ";
if (isset ($category_code)) {
$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c WHERE cu.status = ".intval(Database::escape_string($status))." AND c.code = cu.course_code AND c.category_code = '".Database::escape_string($category_code)."' ";
}
}
$res = Database::query($sql);
$obj = Database::fetch_object($res);
@ -61,9 +81,16 @@ class Statistics {
*/
function get_number_of_activities() {
// Database table definitions
global $_configuration;
$track_e_default = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT count(default_id) AS total_number_of_items FROM $track_e_default, $table_user user WHERE default_user_id = user.user_id ";
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT count(default_id) AS total_number_of_items FROM $track_e_default, $table_user user, $access_url_rel_user_table url WHERE default_user_id = user.user_id AND user.user_id=url.user_id AND access_url_id='".$current_url_id."'";
} else {
$sql = "SELECT count(default_id) AS total_number_of_items FROM $track_e_default, $table_user user WHERE default_user_id = user.user_id ";
}
if (isset($_GET['keyword'])) {
$keyword = Database::escape_string(trim($_GET['keyword']));
@ -78,10 +105,12 @@ class Statistics {
* Get activities data to display
*/
function get_activities_data($from, $number_of_items, $column, $direction) {
global $dateTimeFormatLong;
global $dateTimeFormatLong, $_configuration;
$track_e_default = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
$table_user = Database::get_main_table(TABLE_MAIN_USER);
$table_course = Database::get_main_table(TABLE_MAIN_COURSE);
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
$column = intval($column);
$from = intval($from);
@ -90,15 +119,25 @@ class Statistics {
if (!in_array($direction, array('ASC','DESC'))) {
$direction = 'DESC';
}
$sql = "SELECT
default_event_type as col0,
default_value_type as col1,
default_value as col2,
user.username as col3,
default_date as col4
FROM $track_e_default track_default, $table_user user
WHERE track_default.default_user_id = user.user_id ";
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT
default_event_type as col0,
default_value_type as col1,
default_value as col2,
user.username as col3,
default_date as col4
FROM $track_e_default as track_default, $table_user as user, $access_url_rel_user_table as url
WHERE track_default.default_user_id = user.user_id AND url.user_id=user.user_id AND access_url_id='".$current_url_id."'";
} else {
$sql = "SELECT
default_event_type as col0,
default_value_type as col1,
default_value as col2,
user.username as col3,
default_date as col4
FROM $track_e_default track_default, $table_user user
WHERE track_default.default_user_id = user.user_id ";
}
if (isset($_GET['keyword'])) {
$keyword = Database::escape_string(trim($_GET['keyword']));
@ -209,21 +248,31 @@ class Statistics {
* @param string $type month, hour or day
*/
function print_login_stats($type) {
global $_configuration;
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$table_url = ", $access_url_rel_user_table";
$where_url = " WHERE login_user_id=user_id AND access_url_id='".$current_url_id."'";
} else {
$table_url = '';
$where_url='';
}
switch ($type) {
case 'month':
$months = api_get_months_long();
$period = get_lang('PeriodMonth');
$sql = "SELECT DATE_FORMAT( login_date, '%Y-%m' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table." GROUP BY stat_date ORDER BY login_date ";
$sql = "SELECT DATE_FORMAT( login_date, '%Y-%m' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table.$table_url.$where_url." GROUP BY stat_date ORDER BY login_date ";
break;
case 'hour':
$period = get_lang('PeriodHour');
$sql = "SELECT DATE_FORMAT( login_date, '%H' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table." GROUP BY stat_date ORDER BY stat_date ";
$sql = "SELECT DATE_FORMAT( login_date, '%H' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table.$table_url.$where_url." GROUP BY stat_date ORDER BY stat_date ";
break;
case 'day':
$week_days = api_get_week_days_long();
$period = get_lang('PeriodDay');
$sql = "SELECT DATE_FORMAT( login_date, '%w' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table." GROUP BY stat_date ORDER BY DATE_FORMAT( login_date, '%w' ) ";
$sql = "SELECT DATE_FORMAT( login_date, '%w' ) AS stat_date , count( login_id ) AS number_of_logins FROM ".$table.$table_url.$where_url." GROUP BY stat_date ORDER BY DATE_FORMAT( login_date, '%w' ) ";
break;
}
$res = Database::query($sql);
@ -248,12 +297,22 @@ class Statistics {
* Print the number of recent logins
*/
function print_recent_login_stats() {
global $_configuration;
$total_logins = array();
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
$sql[get_lang('Thisday')] = "SELECT count(login_user_id) AS number FROM $table WHERE DATE_ADD(login_date, INTERVAL 1 DAY) >= NOW()";
$sql[get_lang('Last7days')] = "SELECT count(login_user_id) AS number FROM $table WHERE DATE_ADD(login_date, INTERVAL 7 DAY) >= NOW()";
$sql[get_lang('Last31days')] = "SELECT count(login_user_id) AS number FROM $table WHERE DATE_ADD(login_date, INTERVAL 31 DAY) >= NOW()";
$sql[get_lang('Total')] = "SELECT count(login_user_id) AS number FROM $table";
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$table_url = ", $access_url_rel_user_table";
$where_url = " AND login_user_id=user_id AND access_url_id='".$current_url_id."'";
} else {
$table_url = '';
$where_url='';
}
$sql[get_lang('Thisday')] = "SELECT count(login_user_id) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 1 DAY) >= NOW() $where_url";
$sql[get_lang('Last7days')] = "SELECT count(login_user_id) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 7 DAY) >= NOW() $where_url";
$sql[get_lang('Last31days')] = "SELECT count(login_user_id) AS number FROM $table $table_url WHERE DATE_ADD(login_date, INTERVAL 31 DAY) >= NOW() $where_url";
$sql[get_lang('Total')] = "SELECT count(login_user_id) AS number FROM $table $table_url WHERE 1=1 $where_url";
foreach ($sql as $index => $query) {
$res = Database::query($query);
$obj = Database::fetch_object($res);
@ -265,7 +324,11 @@ class Statistics {
* Show some stats about the accesses to the different course tools
*/
function print_tool_stats() {
global $_configuration;
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
$access_url_rel_course_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$current_url_id = api_get_current_access_url_id();
$tools = array('announcement','assignment','calendar_event',
'chat','conference','course_description','document',
'dropbox','group','learnpath','link','quiz',
@ -274,10 +337,17 @@ class Statistics {
foreach ($tools as $tool) {
$tool_names[$tool] = get_lang(ucfirst($tool), '');
}
$sql = "SELECT access_tool, count( access_id )
AS number_of_logins FROM $table
WHERE access_tool IN ('".implode("','",$tools)."')
GROUP BY access_tool ";
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT access_tool, count( access_id )
AS number_of_logins FROM $table, $access_url_rel_course_table
WHERE access_tool IN ('".implode("','",$tools)."') AND course_code = access_cours_code AND access_url_id='".$current_url_id."'
GROUP BY access_tool ";
} else {
$sql = "SELECT access_tool, count( access_id )
AS number_of_logins FROM $table
WHERE access_tool IN ('".implode("','",$tools)."')
GROUP BY access_tool ";
}
$res = Database::query($sql);
$result = array();
while ($obj = Database::fetch_object($res)) {
@ -289,10 +359,19 @@ class Statistics {
* Show some stats about the number of courses per language
*/
function print_course_by_language_stats() {
$table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = "SELECT course_language, count( code )
global $_configuration;
$table = Database :: get_main_table(TABLE_MAIN_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 ($_configuration['multiple_access_urls'] == true){
$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";
} else {
$sql = "SELECT course_language, count( code )
AS number_of_courses
FROM $table GROUP BY course_language ";
}
$res = Database::query($sql);
$result = array();
while ($obj = Database::fetch_object($res)) {
@ -304,12 +383,22 @@ class Statistics {
* Shows the number of users having their picture uploaded in Dokeos.
*/
function print_user_pictures_stats() {
global $_configuration;
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
$sql = "SELECT COUNT(*) AS n FROM $user_table";
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$url_condition = ", $access_url_rel_user_table as url WHERE url.user_id=u.user_id AND access_url_id='".$current_url_id."'";
$url_condition2 = " AND url.user_id=u.user_id AND access_url_id='".$current_url_id."'";
$table = ", $access_url_rel_user_table as url ";
}
$sql = "SELECT COUNT(*) AS n FROM $user_table as u ".$url_condition;
$res = Database::query($sql);
$count1 = Database::fetch_object($res);
$sql = "SELECT COUNT(*) AS n FROM $user_table
WHERE LENGTH(picture_uri) > 0";
$sql = "SELECT COUNT(*) AS n FROM $user_table as u $table
WHERE LENGTH(picture_uri) > 0 $url_condition2";
$res = Database::query($sql);
$count2 = Database::fetch_object($res);
// #users without picture
@ -357,6 +446,10 @@ class Statistics {
* Shows statistics about the time of last visit to each course.
*/
function print_course_last_visit() {
global $_configuration;
$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] = 'access_cours_code';
$columns[1] = 'access_date';
$sql_order[SORT_ASC] = 'ASC';
@ -374,7 +467,7 @@ class Statistics {
$form->addElement('hidden','action','courselastvisit');
$form->add_textfield('date_diff',get_lang('Days'),true);
$form->addRule('date_diff','InvalidNumber','numeric');
$form->addElement('submit','ok',get_lang('Ok'));
$form->addElement('style_submit_button', 'submit', get_lang('Search'),'class="search"');
if (!isset($_GET['date_diff'])) {
$defaults['date_diff'] = 60;
} else {
@ -385,10 +478,17 @@ class Statistics {
$values = $form->exportValues();
$date_diff = $values['date_diff'];
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
$sql = "SELECT * FROM $table
GROUP BY access_cours_code
HAVING access_cours_code <> ''
AND DATEDIFF( NOW() , access_date ) <= ". $date_diff;
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT * FROM $table, $access_url_rel_course_table WHERE course_code = access_cours_code AND access_url_id='".$current_url_id."'
GROUP BY access_cours_code
HAVING access_cours_code <> ''
AND DATEDIFF( NOW() , access_date ) <= ". $date_diff;
} else {
$sql = "SELECT * FROM $table
GROUP BY access_cours_code
HAVING access_cours_code <> ''
AND DATEDIFF( NOW() , access_date ) <= ". $date_diff;
}
$res = Database::query($sql);
$number_of_courses = Database::num_rows($res);
$sql .= ' ORDER BY '.$columns[$column].' '.$sql_order[$direction];
@ -407,8 +507,8 @@ class Statistics {
$parameters['action'] = 'courselastvisit';
$parameters['date_diff'] = $date_diff;
$parameters['action'] = 'courselastvisit';
$table_header[] = array ("Coursecode", true);
$table_header[] = array ("Last login", true);
$table_header[] = array (get_lang("CourseCode"), true);
$table_header[] = array (get_lang("LastAccess"), true);
Display :: display_sortable_table($table_header, $courses, array ('column'=>$column,'direction'=>$direction), array (), $parameters);
} else {
echo get_lang('NoSearchResults');
@ -421,8 +521,11 @@ class Statistics {
* @return array Message list
*/
function get_messages($message_type) {
global $_configuration;
$message_table = Database::get_main_table(TABLE_MAIN_MESSAGE);
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
switch ($message_type) {
case 'sent':
$field = 'user_sender_id';
@ -431,11 +534,20 @@ class Statistics {
$field = 'user_receiver_id';
break;
}
$sql = "SELECT lastname, firstname, username,
COUNT($field) AS count_message
FROM ".$message_table." m
LEFT JOIN ".$user_table." u ON m.$field = u.user_id
GROUP BY m.$field";
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT lastname, firstname, username,
COUNT($field) AS count_message
FROM ".$access_url_rel_user_table." as url, ".$message_table." m
LEFT JOIN ".$user_table." u ON m.$field = u.user_id
WHERE url.user_id = m.$field AND access_url_id='".$current_url_id."'
GROUP BY m.$field";
} else {
$sql = "SELECT lastname, firstname, username,
COUNT($field) AS count_message
FROM ".$message_table." m
LEFT JOIN ".$user_table." u ON m.$field = u.user_id
GROUP BY m.$field";
}
$res = Database::query($sql);
$messages_sent = array();
while ($messages = Database::fetch_array($res)) {
@ -452,14 +564,26 @@ class Statistics {
* Count the number of friends for social network users
*/
function get_friends() {
global $_configuration;
$user_friend_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT lastname, firstname, username,
COUNT(friend_user_id) AS count_friend
FROM ".$user_friend_table." uf
LEFT JOIN ".$user_table." u ON uf.user_id = u.user_id
WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."'
GROUP BY uf.user_id";
$access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$current_url_id = api_get_current_access_url_id();
if ($_configuration['multiple_access_urls'] == true){
$sql = "SELECT lastname, firstname, username,
COUNT(friend_user_id) AS count_friend
FROM ".$access_url_rel_user_table." as url, ".$user_friend_table." uf
LEFT JOIN ".$user_table." u ON uf.user_id = u.user_id
WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."' AND uf.user_id = url.user_id AND access_url_id='".$current_url_id."'
GROUP BY uf.user_id";
} else {
$sql = "SELECT lastname, firstname, username,
COUNT(friend_user_id) AS count_friend
FROM ".$user_friend_table." uf
LEFT JOIN ".$user_table." u ON uf.user_id = u.user_id
WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."'
GROUP BY uf.user_id";
}
$res = Database::query($sql);
$list_friends = array();
while ($friends = Database::fetch_array($res)) {

@ -7,7 +7,7 @@ require_once (api_get_path(LIBRARY_PATH).'xajax/xajax.inc.php');
class AddCourseToSession{
function search_courses($needle,$type)
public function search_courses($needle,$type)
{
global $tbl_course, $tbl_session_rel_course, $id_session;

File diff suppressed because it is too large Load Diff

@ -1,5 +1,5 @@
<?php // $Id: scorm_api.php 21162 2009-06-01 16:18:46Z yannoo $
/* For licensing terms, see /dokeos_license.txt */
/* For licensing terms, see /license.txt */
/**
* API event handler functions for Scorm 1.1 and 1.2 and 1.3
*
@ -16,9 +16,7 @@
* The third section defines the event handlers for Dokeos' internal messaging
* and frames refresh
*/
/*
INIT SECTION
*/
/* INIT SECTION */
// if you open the imsmanifest.xml via local machine (f.ex.: file://c:/...), then the Apiwrapper.js
// of Maritime Navigation when trying to execute this row

Loading…
Cancel
Save