Bug #3646 and Issue #306 - Learning paths, the old Conference tool, Booking tool, Social network tool, Surveys: Fixing person name order and sorting to be dependable on the internationalization settings.

skala
Ivan Tcholakov 16 years ago
parent 56abaf7551
commit 9dce81ad53
  1. 6
      main/newscorm/aicc_api.php
  2. 2
      main/newscorm/aicc_hacp.php
  3. 304
      main/newscorm/scorm_api.php
  4. 2
      main/online/online_whoisonline.php
  5. 6
      main/reservation/rsys.php
  6. 2
      main/social/contacts.inc.php
  7. 15
      main/social/data_personal.inc.php
  8. 2
      main/social/group_contact.inc.php
  9. 1854
      main/social/profile.php
  10. 2
      main/social/qualify_contact.inc.php
  11. 2
      main/social/select_friend_response.php
  12. 9
      main/social/select_options.php
  13. 2
      main/social/show_search_image.inc.php
  14. 2
      main/survey/create_new_survey.php
  15. 804
      main/survey/fillsurvey.php
  16. 970
      main/survey/survey.lib.php
  17. 2
      main/survey/survey_invitation.php
  18. 436
      main/survey/survey_invite.php
  19. 8
      whoisonline.php

@ -153,7 +153,7 @@ function LMSGetValue(param) {
result='<?php echo $_user['user_id']; ?>'; result='<?php echo $_user['user_id']; ?>';
}else if(param == 'cmi.core.student_name'){ }else if(param == 'cmi.core.student_name'){
<?php <?php
$who=addslashes($_user['lastName'].", ".$_user['firstName']); $who=addslashes(api_get_person_name($_user['firstName'], $_user['lastName']));
echo "result='$who';"; echo "result='$who';";
?> ?>
}else if(param == 'cmi.core.lesson_location'){ }else if(param == 'cmi.core.lesson_location'){
@ -209,7 +209,7 @@ function LMSGetValue(param) {
break; break;
case 'cmi.core.student_name' : case 'cmi.core.student_name' :
<?php <?php
$who=addslashes($_user['firstName'].",".$_user['lastName']); $who=addslashes(api_get_person_name($_user['firstName'], $_user['lastName']));
echo "result='$who';"; echo "result='$who';";
?> break; ?> break;
case 'cmi.core.lesson_location' : case 'cmi.core.lesson_location' :
@ -605,7 +605,7 @@ function update_message_frame(msg_msg)
* @param string This parameter can be a string specifying the next * @param string This parameter can be a string specifying the next
* item (like 'next', 'previous', 'first' or 'last') or the id to the next item * item (like 'next', 'previous', 'first' or 'last') or the id to the next item
*/ */
function switch_item(current_item, next_item){ function switch_item(current_item, next_item){
/* /*
if(!current_item){ if(!current_item){
logit_lms('In switch - no current_item defined',0); logit_lms('In switch - no current_item defined',0);

@ -106,7 +106,7 @@ if(!empty($_REQUEST['command']))
$result = $s_ec.$error_code.$crlf.$s_et.$error_text.$crlf.$s_ad.$crlf; $result = $s_ec.$error_code.$crlf.$s_et.$error_text.$crlf.$s_ad.$crlf;
$result .= '[Core]'.$crlf; $result .= '[Core]'.$crlf;
$result .= $tab.'Student_ID='.$_user['user_id'].$crlf; $result .= $tab.'Student_ID='.$_user['user_id'].$crlf;
$result .= $tab.'Student_Name='.$_user['lastName'].', '.$_user['firstName'].$_user['user_id'].$crlf; $result .= $tab.'Student_Name='.api_get_person_name($_user['firstName'], $_user['lastName']).$crlf;
$result .= $tab.'Lesson_Location='.$oItem->get_lesson_location().$crlf; $result .= $tab.'Lesson_Location='.$oItem->get_lesson_location().$crlf;
$result .= $tab.'Credit='.$oItem->get_credit().$crlf; $result .= $tab.'Credit='.$oItem->get_credit().$crlf;
$result .= $tab.'Lesson_Status='.$oItem->get_status().$crlf; $result .= $tab.'Lesson_Status='.$oItem->get_status().$crlf;

@ -7,7 +7,7 @@
Copyright (c) Denes Nagy (darkden@freemail.hu) Copyright (c) Denes Nagy (darkden@freemail.hu)
For a full list of contributors, see "credits.txt". For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt". The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
@ -65,7 +65,7 @@ if(!is_object($oItem)){
error_log('New LP - scorm_api - Could not load oItem item',0); error_log('New LP - scorm_api - Could not load oItem item',0);
exit; exit;
} }
$autocomplete_when_80pct = 0; $autocomplete_when_80pct = 0;
/* /*
============================================================================== ==============================================================================
@ -108,18 +108,18 @@ api_1484_11 = API_1484_11;
//api_1484_11 = new APIobject(); //for scorm 1.3 //api_1484_11 = new APIobject(); //for scorm 1.3
// Error codes // Error codes
var G_NoError = 0; var G_NoError = 0;
var G_GeneralException = 101; var G_GeneralException = 101;
var G_ServerBusy = 102; // this is not in the Scorm1.2_Runtime document var G_ServerBusy = 102; // this is not in the Scorm1.2_Runtime document
var G_InvalidArgumentError = 201; var G_InvalidArgumentError = 201;
var G_ElementCannotHaveChildren = 202; var G_ElementCannotHaveChildren = 202;
var G_ElementIsNotAnArray = 203; var G_ElementIsNotAnArray = 203;
var G_NotInitialized = 301; var G_NotInitialized = 301;
var G_NotImplementedError = 401; var G_NotImplementedError = 401;
var G_InvalidSetValue = 402; var G_InvalidSetValue = 402;
var G_ElementIsReadOnly = 403; var G_ElementIsReadOnly = 403;
var G_ElementIsWriteOnly = 404; var G_ElementIsWriteOnly = 404;
var G_IncorrectDataType = 405; var G_IncorrectDataType = 405;
// Error messages // Error messages
var G_NoErrorMessage = ''; var G_NoErrorMessage = '';
@ -170,7 +170,7 @@ $(document).ready( function() {
info_lms_item[1]='<?php echo $oItem->get_id();?>'; info_lms_item[1]='<?php echo $oItem->get_id();?>';
$("#current_item_id").attr("value",<?php echo $oItem->get_id();?>); $("#current_item_id").attr("value",<?php echo $oItem->get_id();?>);
$("#old_item").attr("value",<?php echo $oItem->get_id();?>); $("#old_item").attr("value",<?php echo $oItem->get_id();?>);
//var myiframe=document.getElementById('content_id'); //var myiframe=document.getElementById('content_id');
//myiframe.Events.AttachEvent("onclick", update_lp_item_id); //myiframe.Events.AttachEvent("onclick", update_lp_item_id);
@ -187,7 +187,7 @@ $(document).ready( function() {
}); });
}); });
//Dokeos internal variables //Dokeos internal variables
var saved_lesson_status = 'not attempted'; var saved_lesson_status = 'not attempted';
var lms_lp_id = <?php echo $oLP->get_id();?>; var lms_lp_id = <?php echo $oLP->get_id();?>;
@ -224,49 +224,49 @@ var lms_old_item_id = 0;
var execute_stats='false'; var execute_stats='false';
/** /**
* Function called mandatorily by the SCORM content to start the SCORM communication * Function called mandatorily by the SCORM content to start the SCORM communication
*/ */
function LMSInitialize() { //this is the initialize function of all APIobjects function LMSInitialize() { //this is the initialize function of all APIobjects
/* load info for this new item by calling the js_api_refresh command in /* load info for this new item by calling the js_api_refresh command in
* the message frame. The message frame will update the JS variables by * the message frame. The message frame will update the JS variables by
* itself, in JS, by doing things like top.lesson_status = 'not attempted' * itself, in JS, by doing things like top.lesson_status = 'not attempted'
* and that kind of stuff, so when the content loads in the content frame * and that kind of stuff, so when the content loads in the content frame
* it will have all the correct variables set * it will have all the correct variables set
*/ */
G_LastError = G_NoError ; G_LastError = G_NoError ;
G_LastErrorMessage = 'No error'; G_LastErrorMessage = 'No error';
//reinit to list //reinit to list
reinit_update_table_list () reinit_update_table_list ()
lms_initialized=0; lms_initialized=0;
// if there are more parameters than "" // if there are more parameters than ""
if (arguments.length>1) { if (arguments.length>1) {
G_LastError = G_InvalidArgumentError; G_LastError = G_InvalidArgumentError;
G_LastErrorMessage = G_InvalidArgumentErrorMessage; G_LastErrorMessage = G_InvalidArgumentErrorMessage;
logit_scorm('Error '+ G_InvalidArgumentError + G_InvalidArgumentErrorMessage, 0); logit_scorm('Error '+ G_InvalidArgumentError + G_InvalidArgumentErrorMessage, 0);
return('false'); return('false');
} else { } else {
logit_scorm('LMSInitialise()',0); logit_scorm('LMSInitialise()',0);
lms_initialized=1; lms_initialized=1;
return('true'); return('true');
} }
} }
function Initialize() function Initialize()
{ //this is the initialize function of all APIobjects { //this is the initialize function of all APIobjects
return LMSInitialize(); return LMSInitialize();
} }
function LMSGetValue(param) function LMSGetValue(param)
{ {
//logit_scorm("LMSGetValue('"+param+"')",1); //logit_scorm("LMSGetValue('"+param+"')",1);
G_LastError = G_NoError ; G_LastError = G_NoError ;
G_LastErrorMessage = 'No error'; G_LastErrorMessage = 'No error';
var result=''; var result='';
// the LMSInitialize is missing // the LMSInitialize is missing
if (lms_initialized == 0) { if (lms_initialized == 0) {
G_LastError = G_NotInitialized; G_LastError = G_NotInitialized;
@ -274,9 +274,9 @@ function LMSGetValue(param)
logit_scorm('Error '+ G_NotInitialized + ' ' +G_NotInitializedMessage, 0); logit_scorm('Error '+ G_NotInitialized + ' ' +G_NotInitializedMessage, 0);
return ''; return '';
} }
//Dokeos does not support this SCO object properties //Dokeos does not support this SCO object properties
if (param == 'cmi.student_preference.text' || if (param == 'cmi.student_preference.text' ||
param == 'cmi.student_preference.language' || param == 'cmi.student_preference.language' ||
param == 'cmi.student_preference.speed' || param == 'cmi.student_preference.speed' ||
@ -290,13 +290,13 @@ function LMSGetValue(param)
G_lastErrorString = G_NotImplementedErrorMessage; G_lastErrorString = G_NotImplementedErrorMessage;
logit_scorm("LMSGetValue ('"+param+"') Error '"+G_NotImplementedErrorMessage+"'",1); logit_scorm("LMSGetValue ('"+param+"') Error '"+G_NotImplementedErrorMessage+"'",1);
result = ''; result = '';
return result; return result;
} }
// ---- cmi.core._children // ---- cmi.core._children
if(param=='cmi.core._children' || param=='cmi.core_children') { if(param=='cmi.core._children' || param=='cmi.core_children'){
result='entry, exit, lesson_status, student_id, student_name, lesson_location, total_time, credit, lesson_mode, score, session_time'; result='entry, exit, lesson_status, student_id, student_name, lesson_location, total_time, credit, lesson_mode, score, session_time';
} else if(param == 'cmi.core.entry'){ }else if(param == 'cmi.core.entry'){
// ---- cmi.core.entry // ---- cmi.core.entry
if(lms_item_core_exit=='none') { if(lms_item_core_exit=='none') {
result='ab-initio'; result='ab-initio';
@ -305,48 +305,48 @@ function LMSGetValue(param)
} else { } else {
result=''; result='';
} }
} else if(param == 'cmi.core.exit'){ }else if(param == 'cmi.core.exit'){
// ---- cmi.core.exit // ---- cmi.core.exit
result=''; result='';
G_LastError = G_ElementIsWriteOnly; G_LastError = G_ElementIsWriteOnly;
}else if(param == 'cmi.core.session_time'){ }else if(param == 'cmi.core.session_time'){
result=''; result='';
G_LastError = G_ElementIsWriteOnly; G_LastError = G_ElementIsWriteOnly;
}else if(param == 'cmi.core.lesson_status'){ }else if(param == 'cmi.core.lesson_status'){
// ---- cmi.core.lesson_status // ---- cmi.core.lesson_status
if(lesson_status != '') { if(lesson_status != '') {
result=lesson_status; result=lesson_status;
} else { } else {
//result='not attempted'; //result='not attempted';
} }
} else if(param == 'cmi.core.student_id'){ }else if(param == 'cmi.core.student_id'){
// ---- cmi.core.student_id // ---- cmi.core.student_id
result='<?php echo $_user['user_id']; ?>'; result='<?php echo $_user['user_id']; ?>';
} else if(param == 'cmi.core.student_name'){ }else if(param == 'cmi.core.student_name'){
// ---- cmi.core.student_name // ---- cmi.core.student_name
<?php <?php
$who=addslashes($_user['lastName'].", ".$_user['firstName']); $who=addslashes(api_get_person_name($_user['firstName'], $_user['lastName']));
echo "result='$who';"; echo "result='$who';";
?> ?>
} else if(param == 'cmi.core.lesson_location'){ }else if(param == 'cmi.core.lesson_location'){
// ---- cmi.core.lesson_location // ---- cmi.core.lesson_location
result=lesson_location; result=lesson_location;
} else if(param == 'cmi.core.total_time'){ }else if(param == 'cmi.core.total_time'){
// ---- cmi.core.total_time // ---- cmi.core.total_time
result=total_time; result=total_time;
} else if(param == 'cmi.core.score._children'){ }else if(param == 'cmi.core.score._children'){
// ---- cmi.core.score._children // ---- cmi.core.score._children
result='raw,min,max'; result='raw,min,max';
} else if(param == 'cmi.core.score.raw'){ }else if(param == 'cmi.core.score.raw'){
// ---- cmi.core.score.raw // ---- cmi.core.score.raw
result=score; result=score;
} else if(param == 'cmi.core.score.max'){ }else if(param == 'cmi.core.score.max'){
// ---- cmi.core.score.max // ---- cmi.core.score.max
result=max; result=max;
} else if(param == 'cmi.core.score.min'){ }else if(param == 'cmi.core.score.min'){
// ---- cmi.core.score.min // ---- cmi.core.score.min
result=min; result=min;
} else if(param == 'cmi.core.score'){ }else if(param == 'cmi.core.score'){
// ---- cmi.core.score -- non-standard item, provided as cmi.core.score.raw just in case // ---- cmi.core.score -- non-standard item, provided as cmi.core.score.raw just in case
result=score; result=score;
}else if(param == 'cmi.core.credit'){ }else if(param == 'cmi.core.credit'){
@ -457,22 +457,22 @@ function LMSGetValue(param)
} }
} }
}else if(param == 'cmi.student_data._children'){ }else if(param == 'cmi.student_data._children'){
// ---- cmi.student_data._children // ---- cmi.student_data._children
result = 'mastery_score,max_time_allowed'; result = 'mastery_score,max_time_allowed';
}else if(param == 'cmi.student_data.mastery_score'){ }else if(param == 'cmi.student_data.mastery_score'){
// ---- cmi.student_data.mastery_score // ---- cmi.student_data.mastery_score
result = mastery_score; result = mastery_score;
}else if(param == 'cmi.student_data.max_time_allowed'){ }else if(param == 'cmi.student_data.max_time_allowed'){
// ---- cmi.student_data.max_time_allowed // ---- cmi.student_data.max_time_allowed
result = max_time_allowed; result = max_time_allowed;
}else if(param == 'cmi.interactions._count'){ }else if(param == 'cmi.interactions._count'){
// ---- cmi.interactions._count // ---- cmi.interactions._count
result = interactions.length; result = interactions.length;
}else if(param == 'cmi.interactions._children'){ }else if(param == 'cmi.interactions._children'){
// ---- cmi.interactions._children // ---- cmi.interactions._children
result = 'id,time,type,correct_responses,weighting,student_response,result,latency'; result = 'id,time,type,correct_responses,weighting,student_response,result,latency';
} else { }else{
// ---- anything else // ---- anything else
// Invalid argument error // Invalid argument error
G_lastError = G_InvalidArgumentError ; G_lastError = G_InvalidArgumentError ;
G_lastErrorString = G_InvalidArgumentErrorMessage; G_lastErrorString = G_InvalidArgumentErrorMessage;
@ -489,7 +489,7 @@ function GetValue(param) {
} }
function LMSSetValue(param, val) { function LMSSetValue(param, val) {
logit_scorm("LMSSetValue\n\t('"+param+"','"+val+"')",0); logit_scorm("LMSSetValue\n\t('"+param+"','"+val+"')",0);
commit = true; //value has changed, need to re-commit commit = true; //value has changed, need to re-commit
G_LastError = G_NoError ; G_LastError = G_NoError ;
@ -521,11 +521,11 @@ function LMSSetValue(param, val) {
updatetable_to_list['cmi.completion_status']='true'; updatetable_to_list['cmi.completion_status']='true';
return_value='true'; //1.3 return_value='true'; //1.3
} else if ( param == "cmi.core.session_time" ) { } else if ( param == "cmi.core.session_time" ) {
session_time = val; session_time = val;
updatetable_to_list['cmi.core.session_time']='true'; updatetable_to_list['cmi.core.session_time']='true';
return_value='true'; return_value='true';
} else if ( param == "cmi.score.scaled") { //1.3 } else if ( param == "cmi.score.scaled") { //1.3
if(val<=1 && val>=-1) { if(val<=1 && val>=-1) {
score = val ; score = val ;
updatetable_to_list['cmi.score.scaled']='true'; updatetable_to_list['cmi.score.scaled']='true';
return_value='true'; return_value='true';
@ -550,22 +550,22 @@ function LMSSetValue(param, val) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.core.credit" ) { } else if ( param == "cmi.core.credit" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.core.entry" ) { } else if ( param == "cmi.core.entry" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.core.total_time" ) { } else if ( param == "cmi.core.total_time" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.core.lesson_mode" ) { } else if ( param == "cmi.core.lesson_mode" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.comments_from_lms" ) { } else if ( param == "cmi.comments_from_lms" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.student_data.time_limit_action" ) { } else if ( param == "cmi.student_data.time_limit_action" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.student_data.mastery_score" ) { } else if ( param == "cmi.student_data.mastery_score" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.student_data.max_time_allowed" ) { } else if ( param == "cmi.student_data.max_time_allowed" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.student_preference._children" ) { } else if ( param == "cmi.student_preference._children" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else if ( param == "cmi.launch_data" ) { } else if ( param == "cmi.launch_data" ) {
G_LastError = G_ElementIsReadOnly; G_LastError = G_ElementIsReadOnly;
} else { } else {
@ -576,13 +576,13 @@ function LMSSetValue(param, val) {
if(elem_id > interactions.length) //interactions setting should start at 0 if(elem_id > interactions.length) //interactions setting should start at 0
{ {
/* /*
G_LastError = G_InvalidArgumentError; G_LastError = G_InvalidArgumentError;
G_LastErrorString = 'Invalid argument (interactions)'; G_LastErrorString = 'Invalid argument (interactions)';
return_value = false; return_value = false;
*/ */
interactions[0] = ['0','','','','','','','']; interactions[0] = ['0','','','','','','',''];
} }
if(interactions[elem_id] == null) { if(interactions[elem_id] == null){
interactions[elem_id] = ['','','','','','','','']; interactions[elem_id] = ['','','','','','','',''];
//id(0), type(1), time(2), weighting(3),correct_responses(4),student_response(5),result(6),latency(7) //id(0), type(1), time(2), weighting(3),correct_responses(4),student_response(5),result(6),latency(7)
interactions[elem_id][4] = new Array(); interactions[elem_id][4] = new Array();
@ -634,7 +634,7 @@ function LMSSetValue(param, val) {
G_lastError = G_NotImplementedError; G_lastError = G_NotImplementedError;
G_lastErrorString = 'Not implemented yet'; G_lastErrorString = 'Not implemented yet';
} }
} else if(param.substring(0,15)== 'cmi.objectives.'){ }else if(param.substring(0,15)== 'cmi.objectives.'){
var myres = ''; var myres = '';
updatetable_to_list['objectives']='true'; updatetable_to_list['objectives']='true';
if(myres = param.match(/cmi.objectives.(\d+).(id|score|status)(.*)/)) if(myres = param.match(/cmi.objectives.(\d+).(id|score|status)(.*)/))
@ -697,7 +697,7 @@ function LMSSetValue(param, val) {
} }
} }
} }
} else { }else{
G_lastError = G_NotImplementedError; G_lastError = G_NotImplementedError;
G_lastErrorString = G_NotImplementedErrorMessage; G_lastErrorString = G_NotImplementedErrorMessage;
} }
@ -742,15 +742,15 @@ function reinit_update_table_list () {
function savedata(origin) { function savedata(origin) {
//origin can be 'commit', 'finish' or 'terminate' //origin can be 'commit', 'finish' or 'terminate'
if ((lesson_status != 'completed') && (lesson_status != 'passed') && (mastery_score >=0) && (score >= mastery_score)) { if ((lesson_status != 'completed') && (lesson_status != 'passed') && (mastery_score >=0) && (score >= mastery_score)) {
lesson_status = 'passed'; lesson_status = 'passed';
updatetable_to_list['cmi.core.lesson_status']='true'; updatetable_to_list['cmi.core.lesson_status']='true';
} else if( (mastery_score < 0) && (lms_lp_type != '2') && ( lesson_status == 'incomplete') && (score >= (0.8*max) ) ) { } else if( (mastery_score < 0) && (lms_lp_type != '2') && ( lesson_status == 'incomplete') && (score >= (0.8*max) ) ) {
//the status cannot be modified automatically by the LMS under SCORM 1.2's rules //the status cannot be modified automatically by the LMS under SCORM 1.2's rules
<?php if ($autocomplete_when_80pct){ ?> <?php if ($autocomplete_when_80pct){ ?>
lesson_status = 'completed'; lesson_status = 'completed';
updatetable_to_list['cmi.core.lesson_status']='true'; updatetable_to_list['cmi.core.lesson_status']='true';
<?php }?> <?php }?>
; ;
} else { } else {
/* /*
* See notes in switch_item for why this has been disabled * See notes in switch_item for why this has been disabled
@ -776,7 +776,7 @@ function savedata(origin) {
my_get_value_scorm=new Array(); my_get_value_scorm=new Array();
my_get_value_scorm=ProcessValueScorm(); my_get_value_scorm=ProcessValueScorm();
logit_lms('saving data (status='+lesson_status+' - interactions: '+ interactions.length +')',1); logit_lms('saving data (status='+lesson_status+' - interactions: '+ interactions.length +')',1);
old_item_id=info_lms_item[0]; old_item_id=info_lms_item[0];
@ -805,14 +805,14 @@ function savedata_onunload() {
*/ */
function LMSCommit(val) { function LMSCommit(val) {
logit_scorm('LMSCommit()',0); logit_scorm('LMSCommit()',0);
G_LastError = G_NoError ; G_LastError = G_NoError ;
G_LastErrorMessage = 'No error'; G_LastErrorMessage = 'No error';
savedata('commit'); savedata('commit');
reinit_update_table_list(); reinit_update_table_list();
//commit = 'false' ; //now changes have been commited, no need to update until next SetValue() //commit = 'false' ; //now changes have been commited, no need to update until next SetValue()
return('true'); return('true');
} }
function Commit(val) { function Commit(val) {
@ -820,13 +820,13 @@ function Commit(val) {
} }
function LMSFinish(val) { function LMSFinish(val) {
G_LastError = G_NoError ; G_LastError = G_NoError ;
G_LastErrorMessage = 'No error'; G_LastErrorMessage = 'No error';
// why commit==false? // why commit==false?
if (( commit == false )) { if (( commit == false )) {
logit_scorm('LMSFinish() (no LMSCommit())',1); logit_scorm('LMSFinish() (no LMSCommit())',1);
} }
//if ( commit == true ) { //if ( commit == true ) {
logit_scorm('LMSFinish() called',1); logit_scorm('LMSFinish() called',1);
@ -876,8 +876,8 @@ function Terminate()
G_LastError = G_NotInitialized; G_LastError = G_NotInitialized;
G_LastErrorMessage = G_NotInitializedMessage; G_LastErrorMessage = G_NotInitializedMessage;
logit_scorm('Error '+ G_NotInitialized + G_NotInitializedMessage, 0); logit_scorm('Error '+ G_NotInitialized + G_NotInitializedMessage, 0);
return('false'); return('false');
} else { } else {
logit_scorm('Terminate()',0); logit_scorm('Terminate()',0);
G_LastError = G_NoError ; G_LastError = G_NoError ;
G_LastErrorMessage = 'No error'; G_LastErrorMessage = 'No error';
@ -956,7 +956,7 @@ function addListeners(){
/* See notes in switch_item() for why this has been disabled /* See notes in switch_item() for why this has been disabled
if (lms_lp_type==2) { if (lms_lp_type==2) {
addEvent(window,'unload',savedata_onunload,false); addEvent(window,'unload',savedata_onunload,false);
} }
*/ */
logit_lms('Quitting addListeners()',2); logit_lms('Quitting addListeners()',2);
} }
@ -976,7 +976,7 @@ function load_item(item_id,url){
lms_old_item_id = lms_item_id; lms_old_item_id = lms_item_id;
var lms_new_item_id = item_id; var lms_new_item_id = item_id;
//load new content page into content frame //load new content page into content frame
if(lms_lp_type==1 || lms_item_type=='asset') { if(lms_lp_type==1 || lms_item_type=='asset'){
dokeos_save_asset(); dokeos_save_asset();
} }
cont_f.src = url; cont_f.src = url;
@ -994,7 +994,7 @@ function load_item(item_id,url){
* Save a Dokeos learnpath item's time and mark as completed upon * Save a Dokeos learnpath item's time and mark as completed upon
* leaving it * leaving it
*/ */
function dokeos_save_asset() { function dokeos_save_asset(){
// only for dokeos lps // only for dokeos lps
if (execute_stats=='true') { if (execute_stats=='true') {
execute_stats='false'; execute_stats='false';
@ -1032,13 +1032,13 @@ function dokeos_void_save_asset(myscore,mymax)
* @param integer Priority (0 for top priority, 3 for lowest) * @param integer Priority (0 for top priority, 3 for lowest)
*/ */
function logit_scorm(message,priority){ function logit_scorm(message,priority){
if(scorm_logs>priority){ if(scorm_logs>priority){
if($("#lp_log_name") && $("#log_content")){ if($("#lp_log_name") && $("#log_content")){
$("#log_content").append("SCORM: " + message + "<br/>"); $("#log_content").append("SCORM: " + message + "<br/>");
} }
} }
} }
/** /**
@ -1047,7 +1047,7 @@ function logit_scorm(message,priority){
* @param integer Priority (0 for top priority, 3 for lowest) * @param integer Priority (0 for top priority, 3 for lowest)
*/ */
function logit_lms(message,priority){ function logit_lms(message,priority){
if(lms_logs>priority){ if(lms_logs>priority){
if ($("#lp_log_name") && $("#log_content")) { if ($("#lp_log_name") && $("#log_content")) {
$("#log_content").append("LMS: " + message + "<br />"); $("#log_content").append("LMS: " + message + "<br />");
} }
@ -1066,7 +1066,7 @@ function update_toc(update_action,update_id,change_ids)
} }
var myelem = $("#toc_"+update_id); var myelem = $("#toc_"+update_id);
var myelemimg = $("#toc_img_"+update_id); var myelemimg = $("#toc_img_"+update_id);
logit_lms('update_toc("'+update_action+'",'+update_id+')',2); logit_lms('update_toc("'+update_action+'",'+update_id+')',2);
if(update_id != 0) if(update_id != 0)
{ {
@ -1074,11 +1074,11 @@ function update_toc(update_action,update_id,change_ids)
{ {
case 'unhighlight': case 'unhighlight':
if (update_id%2==0) if (update_id%2==0)
{ {
myelem.attr('class',"scorm_item_2"); myelem.attr('class',"scorm_item_2");
} }
else else
{ {
myelem.attr('class',"scorm_item_1"); myelem.attr('class',"scorm_item_1");
} }
break; break;
@ -1089,37 +1089,37 @@ function update_toc(update_action,update_id,change_ids)
} }
myelem.attr('class',"scorm_item_highlight"); myelem.attr('class',"scorm_item_highlight");
break; break;
case 'not attempted': case 'not attempted':
if( myelemimg.attr('src') != '../img/notattempted.gif') { if( myelemimg.attr('src') != '../img/notattempted.gif') {
myelemimg.attr('src','../img/notattempted.gif'); myelemimg.attr('src','../img/notattempted.gif');
myelemimg.attr('alt','n'); myelemimg.attr('alt','n');
} }
break; break;
case 'incomplete': case 'incomplete':
if( myelemimg.attr('src') != '../img/incomplete.gif') { if( myelemimg.attr('src') != '../img/incomplete.gif') {
myelemimg.attr('src','../img/incomplete.gif'); myelemimg.attr('src','../img/incomplete.gif');
myelemimg.attr('alt','i'); myelemimg.attr('alt','i');
} }
break; break;
case 'completed': case 'completed':
if( myelemimg.attr('src') != '../img/completed.gif') { if( myelemimg.attr('src') != '../img/completed.gif') {
myelemimg.attr('src','../img/completed.gif'); myelemimg.attr('src','../img/completed.gif');
myelemimg.attr('alt','c'); myelemimg.attr('alt','c');
} }
break; break;
case 'failed': case 'failed':
if( myelemimg.attr('src') != '../img/failed.gif') { if( myelemimg.attr('src') != '../img/failed.gif') {
myelemimg.attr('src','../img/failed.gif'); myelemimg.attr('src','../img/failed.gif');
myelemimg.attr('alt','f'); myelemimg.attr('alt','f');
} }
break; break;
case 'passed': case 'passed':
if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'passed') { if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'passed') {
myelemimg.attr('src','../img/completed.gif'); myelemimg.attr('src','../img/completed.gif');
myelemimg.attr('alt','p'); myelemimg.attr('alt','p');
} }
break; break;
case 'browsed': case 'browsed':
if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'browsed') { if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'browsed') {
myelemimg.attr('src','../img/completed.gif'); myelemimg.attr('src','../img/completed.gif');
myelemimg.attr('alt','b'); myelemimg.attr('alt','b');
@ -1133,7 +1133,7 @@ function update_toc(update_action,update_id,change_ids)
return true; return true;
} }
function update_stats() { function update_stats() {
if (execute_stats=='true') { if (execute_stats=='true') {
try { try {
cont_f = document.getElementById('content_id'); cont_f = document.getElementById('content_id');
@ -1156,11 +1156,11 @@ function update_progress_bar(nbr_complete, nbr_total, mode)
logit_lms('update_progress_bar('+nbr_complete+','+nbr_total+','+mode+')',2); logit_lms('update_progress_bar('+nbr_complete+','+nbr_total+','+mode+')',2);
logit_lms('could update with data: '+lms_lp_id+','+lms_view_id+','+lms_user_id,2); logit_lms('could update with data: '+lms_lp_id+','+lms_view_id+','+lms_user_id,2);
if(mode == ''){mode='%';} if(mode == ''){mode='%';}
if(nbr_total == 0){nbr_total=1;} if(nbr_total == 0){nbr_total=1;}
var percentage = (nbr_complete/nbr_total)*100; var percentage = (nbr_complete/nbr_total)*100;
percentage = Math.round(percentage); percentage = Math.round(percentage);
var pr_text = $("#progress_text"); var pr_text = $("#progress_text");
var pr_full = $("#progress_img_full"); var pr_full = $("#progress_img_full");
var pr_empty = $("#progress_img_empty"); var pr_empty = $("#progress_img_empty");
@ -1168,16 +1168,16 @@ function update_progress_bar(nbr_complete, nbr_total, mode)
pr_full.attr('width',percentage*1.2); pr_full.attr('width',percentage*1.2);
pr_empty.attr('width',(100-percentage)*1.2); pr_empty.attr('width',(100-percentage)*1.2);
var mytext = ''; var mytext = '';
switch(mode){ switch(mode){
case 'abs': case 'abs':
mytext = nbr_complete + '/' + nbr_total; mytext = nbr_complete + '/' + nbr_total;
break; break;
case '%': case '%':
default: default:
mytext = percentage + '%'; mytext = percentage + '%';
break; break;
} }
pr_text.html(mytext); pr_text.html(mytext);
return true; return true;
@ -1201,7 +1201,7 @@ function update_stats_page()
*/ */
function update_message_frame(msg_msg) function update_message_frame(msg_msg)
{ {
if(msg_msg==null){msg_msg='';} if(msg_msg==null){msg_msg='';}
if(!($("#msg_div_id"))){ if(!($("#msg_div_id"))){
logit_lms('In update_message_frame() - message frame has no document property',0); logit_lms('In update_message_frame() - message frame has no document property',0);
}else{ }else{
@ -1211,10 +1211,10 @@ function update_message_frame(msg_msg)
} }
/** /**
* Function that handles the saving of an item and switching from an item to another. * Function that handles the saving of an item and switching from an item to another.
* Once called, this function should be able to do the whole process of * Once called, this function should be able to do the whole process of
* (1) saving the current item, * (1) saving the current item,
* (2) refresh all the values inside the SCORM API object, * (2) refresh all the values inside the SCORM API object,
* (3) open the new item into the content_id frame, * (3) open the new item into the content_id frame,
* (4) refresh the table of contents * (4) refresh the table of contents
* (5) refresh the progress bar (completion) * (5) refresh the progress bar (completion)
* (6) refresh the message frame * (6) refresh the message frame
@ -1222,26 +1222,26 @@ function update_message_frame(msg_msg)
* @param string This parameter can be a string specifying the next * @param string This parameter can be a string specifying the next
* item (like 'next', 'previous', 'first' or 'last') or the id to the next item * item (like 'next', 'previous', 'first' or 'last') or the id to the next item
*/ */
function switch_item(current_item, next_item) { function switch_item(current_item, next_item){
//backup these params //backup these params
var orig_current_item = current_item; var orig_current_item = current_item;
var orig_next_item = next_item; var orig_next_item = next_item;
var orig_lesson_status = lesson_status; var orig_lesson_status = lesson_status;
//(1) save the current item //(1) save the current item
logit_lms('Called switch_item with params '+lms_item_id+' and '+next_item+'',0); logit_lms('Called switch_item with params '+lms_item_id+' and '+next_item+'',0);
if (lms_lp_type==1 || lms_item_type=='asset' || session_time == '0' || session_time == '0:00:00'){ if(lms_lp_type==1 || lms_item_type=='asset' || session_time == '0' || session_time == '0:00:00'){
if (lms_lp_type==1) { if (lms_lp_type==1) {
xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, asset_timer, suspend_data, lesson_location,interactions, lms_item_core_exit); xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, asset_timer, suspend_data, lesson_location,interactions, lms_item_core_exit);
} else { } else {
my_get_value_scorm=new Array(); my_get_value_scorm=new Array();
my_get_value_scorm=ProcessValueScorm(); my_get_value_scorm=ProcessValueScorm();
xajax_save_item_scorm(lms_lp_id, lms_user_id, lms_view_id, lms_item_id,my_get_value_scorm); xajax_save_item_scorm(lms_lp_id, lms_user_id, lms_view_id, lms_item_id,my_get_value_scorm);
} }
if(item_objectives.length>0) { if(item_objectives.length>0) {
xajax_save_objectives(lms_lp_id,lms_user_id,lms_view_id,lms_item_id,item_objectives); xajax_save_objectives(lms_lp_id,lms_user_id,lms_view_id,lms_item_id,item_objectives);
} }
} else { }else{
/** /**
* Because of SCORM 1.2's special rule about unsent commits and the fact * Because of SCORM 1.2's special rule about unsent commits and the fact
* that a SCO should be SET TO 'completed' IF NO STATUS WAS SENT (and * that a SCO should be SET TO 'completed' IF NO STATUS WAS SENT (and
@ -1267,13 +1267,13 @@ function switch_item(current_item, next_item) {
*/ */
//savedata('finish'); //savedata('finish');
//} //}
// xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, session_time, suspend_data, lesson_location,interactions, lms_item_core_exit); // xajax_save_item(lms_lp_id, lms_user_id, lms_view_id, lms_item_id, score, max, min, lesson_status, session_time, suspend_data, lesson_location,interactions, lms_item_core_exit);
} }
execute_stats=false; execute_stats=false;
//(2) Refresh all the values inside this SCORM API object - use AJAX //(2) Refresh all the values inside this SCORM API object - use AJAX
xajax_switch_item_details(lms_lp_id,lms_user_id,lms_view_id,lms_item_id,next_item); xajax_switch_item_details(lms_lp_id,lms_user_id,lms_view_id,lms_item_id,next_item);
status_info.push(lesson_status); status_info.push(lesson_status);
//current item //current item
@ -1300,7 +1300,7 @@ function switch_item(current_item, next_item) {
info_lms_item[1]=next_item; info_lms_item[1]=next_item;
} }
} }
//(3) open the new item in the content_id frame //(3) open the new item in the content_id frame
switch(next_item){ switch(next_item){
case 'next': case 'next':
@ -1315,11 +1315,11 @@ function switch_item(current_item, next_item) {
break; break;
default: default:
break; break;
} }
var mysrc = 'lp_controller.php?action=content&lp_id='+lms_lp_id+'&item_id='+next_item; var mysrc = 'lp_controller.php?action=content&lp_id='+lms_lp_id+'&item_id='+next_item;
var cont_f = $("#content_id"); var cont_f = $("#content_id");
<?php if($oLP->mode == 'fullscreen'){ ?> <?php if($oLP->mode == 'fullscreen'){ ?>
cont_f = window.open(''+mysrc,'content_id','toolbar=0,location=0,status=0,scrollbars=1,resizable=1'); cont_f = window.open(''+mysrc,'content_id','toolbar=0,location=0,status=0,scrollbars=1,resizable=1');
cont_f.onload=function(){ cont_f.onload=function(){
info_lms_item[0]=info_lms_item[1]; info_lms_item[0]=info_lms_item[1];
@ -1331,23 +1331,23 @@ function switch_item(current_item, next_item) {
info_lms_item[1]= info_lms_item[1]; info_lms_item[1]= info_lms_item[1];
} }
<?php } else { ?> <?php } else { ?>
cont_f.attr("src",mysrc); cont_f.attr("src",mysrc);
<?php } ?> <?php } ?>
if(lms_lp_type==1 || lms_item_type=='asset'){ if(lms_lp_type==1 || lms_item_type=='asset'){
xajax_start_timer(); xajax_start_timer();
} }
//(4) refresh the audio player if needed //(4) refresh the audio player if needed
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: "lp_nav.php", url: "lp_nav.php",
data: "", data: "",
success: function(tmp_data) { success: function(tmp_data) {
$("#media").html(tmp_data); $("#media").html(tmp_data);
} }
}); });
/* /*
if ( lms_lp_type==2 && (orig_lesson_status == 'not attempted' || orig_lesson_status == '') && orig_current_item != orig_next_item) { if ( lms_lp_type==2 && (orig_lesson_status == 'not attempted' || orig_lesson_status == '') && orig_current_item != orig_next_item) {
params = 'lid='+lms_lp_id+'&uid='+lms_user_id+'&vid='+lms_view_id+'&iid='+orig_current_item; params = 'lid='+lms_lp_id+'&uid='+lms_user_id+'&vid='+lms_view_id+'&iid='+orig_current_item;
@ -1454,16 +1454,16 @@ function xajax_save_item_scorm(lms_lp_id, lms_user_id, lms_view_id, lms_item_id,
is_interactions='false'; is_interactions='false';
} }
} }
if (is_interactions=='true') { if (is_interactions=='true') {
interact_string = ''; interact_string = '';
temp = ''; temp = '';
for (i in interactions){ for (i in interactions){
interact_string += '&interact['+i+']='; interact_string += '&interact['+i+']=';
interact_temp = '['; interact_temp = '[';
for (j in interactions[i]) { for (j in interactions[i]) {
temp = interactions[i][j]; temp = interactions[i][j];
temp = ''+temp; // if temp == 1 there are problems with indexOf and an integer number temp = ''+temp; // if temp == 1 there are problems with indexOf and an integer number
//this fix when an interaction have ',' i.e: {a,b,c,d} is replace to {a@.|@b@.|@c@.|@d} see DT#4444 //this fix when an interaction have ',' i.e: {a,b,c,d} is replace to {a@.|@b@.|@c@.|@d} see DT#4444
@ -1478,8 +1478,8 @@ function xajax_save_item_scorm(lms_lp_id, lms_user_id, lms_view_id, lms_item_id,
interact_string += interact_temp; interact_string += interact_temp;
} }
//interact_string = encodeURIComponent(interact_string.substr(0,(interact_string.length-1))); //interact_string = encodeURIComponent(interact_string.substr(0,(interact_string.length-1)));
params += interact_string; params += interact_string;
is_interactions='false'; is_interactions='false';
} }

@ -79,7 +79,7 @@ foreach($Users as $enreg)
<td width="99%"><a <?php if($enreg['status'] == 1) echo 'class="master"'; ?> name="user_<?php echo $enreg['user_id']; ?>" href="<?php echo api_get_self(); ?>?showPic=<?php if($showPic == $enreg['user_id']) echo '0'; else echo $enreg['user_id']; ?>#user_<?php echo $enreg['user_id']; ?>"><b><?php echo $enreg['username']; ?></b></a></td> <td width="99%"><a <?php if($enreg['status'] == 1) echo 'class="master"'; ?> name="user_<?php echo $enreg['user_id']; ?>" href="<?php echo api_get_self(); ?>?showPic=<?php if($showPic == $enreg['user_id']) echo '0'; else echo $enreg['user_id']; ?>#user_<?php echo $enreg['user_id']; ?>"><b><?php echo $enreg['username']; ?></b></a></td>
</tr> </tr>
<tr> <tr>
<td width="99%"><small><?php echo api_ucfirst($enreg['lastname']).' '.api_ucfirst($enreg['firstname']); ?></small></td> <td width="99%"><small><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']); ?></small></td>
</tr> </tr>
<?php if($showPic == $enreg['user_id']): ?> <?php if($showPic == $enreg['user_id']): ?>

@ -1237,7 +1237,7 @@ class Rsys {
$sql = "SELECT i1.name as col0,c.name as col1, $sql = "SELECT i1.name as col0,c.name as col1,
DATE_FORMAT(r1.start_at ,'%Y-%m-%d %H:%i') as col2, DATE_FORMAT(r1.start_at ,'%Y-%m-%d %H:%i') as col2,
DATE_FORMAT(r1.end_at ,'%Y-%m-%d %H:%i') as col3, CONCAT(u.lastname,' ',u.firstname) as col4, DATE_FORMAT(r1.end_at ,'%Y-%m-%d %H:%i') as col3, ".(api_is_western_name_order() ? "CONCAT(u.firstname,' ',u.lastname)" : "CONCAT(u.lastname,' ',u.firstname)")." as col4,
DATE_FORMAT(s.start_at ,'%Y-%m-%d %H:%i') as col5, DATE_FORMAT(s.start_at ,'%Y-%m-%d %H:%i') as col5,
DATE_FORMAT(s.end_at ,'%Y-%m-%d %H:%i') as col6, s.accepted as col7 DATE_FORMAT(s.end_at ,'%Y-%m-%d %H:%i') as col6, s.accepted as col7
FROM ".Rsys :: getTable('subscription')." s, ".Rsys :: getTable('reservation')." r1, ".Database :: get_main_table(TABLE_MAIN_USER)." u," .Rsys :: getTable('item')." i1,".Rsys :: getTable('category')." c FROM ".Rsys :: getTable('subscription')." s, ".Rsys :: getTable('reservation')." r1, ".Database :: get_main_table(TABLE_MAIN_USER)." u," .Rsys :: getTable('item')." i1,".Rsys :: getTable('category')." c
@ -1315,14 +1315,14 @@ class Rsys {
} }
/*$sql = "SELECT dummy AS col0, CONCAT(u.lastname,' ',u.firstname) AS col1, s.user_id AS col2, accepted AS col3 /*$sql = "SELECT dummy AS col0, ".(api_is_western_name_order() ? "CONCAT(u.firstname,' ',u.lastname)" : "CONCAT(u.lastname,' ',u.firstname)")." AS col1, s.user_id AS col2, accepted AS col3
FROM ".Rsys :: getTable('subscription')." s FROM ".Rsys :: getTable('subscription')." s
INNER JOIN ".Database :: get_main_table(TABLE_MAIN_USER)." u ON s.user_id = u.user_id "; INNER JOIN ".Database :: get_main_table(TABLE_MAIN_USER)." u ON s.user_id = u.user_id ";
if (!empty ($_GET['rid'])) { if (!empty ($_GET['rid'])) {
$sql .= " WHERE s.reservation_id = '".$_GET['rid']."'"; $sql .= " WHERE s.reservation_id = '".$_GET['rid']."'";
} }
$sql .= " ORDER BY col".$column." ".$direction." LIMIT ".$from.",".$per_page;*/ $sql .= " ORDER BY col".$column." ".$direction." LIMIT ".$from.",".$per_page;*/
$sql = "SELECT dummy AS col0, CONCAT(u.lastname,' ',u.firstname) AS col1, s.user_id AS col2, accepted AS col3, r.start_at, r.end_at, s.start_at, s.end_at $sql = "SELECT dummy AS col0, ".(api_is_western_name_order() ? "CONCAT(u.firstname,' ',u.lastname)" : "CONCAT(u.lastname,' ',u.firstname)")." AS col1, s.user_id AS col2, accepted AS col3, r.start_at, r.end_at, s.start_at, s.end_at
FROM ".Rsys :: getTable('subscription')." s,".Database :: get_main_table(TABLE_MAIN_USER)." u,".Database :: get_main_table(TABLE_MAIN_RESERVATION_RESERVATION)." r FROM ".Rsys :: getTable('subscription')." s,".Database :: get_main_table(TABLE_MAIN_USER)." u,".Database :: get_main_table(TABLE_MAIN_RESERVATION_RESERVATION)." r
where u.user_id = s.user_id where u.user_id = s.user_id
and s.reservation_id = r.id"; and s.reservation_id = r.id";

@ -29,7 +29,7 @@ $image_path = UserManager::get_user_picture_path_by_id ($user_id,'web',false,tru
echo '&nbsp;&nbsp;Dokeos&nbsp;&nbsp;-&nbsp;&nbsp;'; echo '&nbsp;&nbsp;Dokeos&nbsp;&nbsp;-&nbsp;&nbsp;';
$user_id=api_get_user_id(); $user_id=api_get_user_id();
$user_info=api_get_user_info($user_id); $user_info=api_get_user_info($user_id);
echo $name_user=api_xml_http_response_encode($user_info['firstName'].' '.$user_info['lastName']) ; echo $name_user=api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
?></td> ?></td>
</tr> </tr>
</table> </table>

@ -103,10 +103,17 @@ $language_variable=api_xml_http_response_encode(get_lang('PersonalData'));
echo '<div class="social-profile-info" style="float:left;position:relative">'; echo '<div class="social-profile-info" style="float:left;position:relative">';
echo '<dt>'.api_xml_http_response_encode(get_lang('UserName')).'</dt> echo '<dt>'.api_xml_http_response_encode(get_lang('UserName')).'</dt>
<dd>'. api_xml_http_response_encode($user_info['username']).' </dd>'; <dd>'. api_xml_http_response_encode($user_info['username']).' </dd>';
echo '<dt>'.api_xml_http_response_encode(get_lang('FirstName')).'</dt> if (api_is_western_name_order()) {
<dd>'. api_xml_http_response_encode($user_info['firstname']).'</dd>'; echo '<dt>'.api_xml_http_response_encode(get_lang('FirstName')).'</dt>
echo '<dt>'.api_xml_http_response_encode(get_lang('LastName')).'</dt> <dd>'. api_xml_http_response_encode($user_info['firstname']).'</dd>';
<dd>'. api_xml_http_response_encode($user_info['lastname']).'</dd>'; echo '<dt>'.api_xml_http_response_encode(get_lang('LastName')).'</dt>
<dd>'. api_xml_http_response_encode($user_info['lastname']).'</dd>';
} else {
echo '<dt>'.api_xml_http_response_encode(get_lang('LastName')).'</dt>
<dd>'. api_xml_http_response_encode($user_info['lastname']).'</dd>';
echo '<dt>'.api_xml_http_response_encode(get_lang('FirstName')).'</dt>
<dd>'. api_xml_http_response_encode($user_info['firstname']).'</dd>';
}
echo '<dt>'.api_xml_http_response_encode(get_lang('OfficialCode')).'</dt> echo '<dt>'.api_xml_http_response_encode(get_lang('OfficialCode')).'</dt>
<dd>'. api_xml_http_response_encode($user_info['official_code']).'</dd>'; <dd>'. api_xml_http_response_encode($user_info['official_code']).'</dd>';
echo '<dt>'.api_xml_http_response_encode(get_lang('Email')).'</dt> echo '<dt>'.api_xml_http_response_encode(get_lang('Email')).'</dt>

@ -59,7 +59,7 @@ for ($p=0;$p<count($list_groups);$p++) {
while ($j<$number_of_images) { while ($j<$number_of_images) {
if ($list_friends_file[$j]<>"") { if ($list_friends_file[$j]<>"") {
$user_info=api_get_user_info($list_friends_id[$j]); $user_info=api_get_user_info($list_friends_id[$j]);
$user_name=api_xml_http_response_encode($user_info['firstName'].' '.$user_info['lastName']) ; $user_name=api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
if($list_friends_file[$j]==='unknown.jpg') { if($list_friends_file[$j]==='unknown.jpg') {
$big=''; $big='';
} else { } else {

File diff suppressed because it is too large Load Diff

@ -27,7 +27,7 @@ $user_friend_relation=UserFriend::get_relation_between_contacts(api_get_user_id(
<td width="50%"><br/> <td width="50%"><br/>
<img src="<?php echo Security::remove_XSS($img_user[1]); ?>" /> <img src="<?php echo Security::remove_XSS($img_user[1]); ?>" />
<?php <?php
echo '<br /><br />'.$name_user=api_xml_http_response_encode($user_info['firstName'].' '.$user_info['lastName']); echo '<br /><br />'.$name_user=api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
?> ?>
</td> </td>
<td width="50%"><div align="left"> <td width="50%"><div align="left">

@ -60,7 +60,7 @@ cellpadding="0" cellspacing="0" bgcolor="#9DACBF">
<?php <?php
$user_id=$list_get_invitation[$i]['user_sender_id']; $user_id=$list_get_invitation[$i]['user_sender_id'];
$user_info=api_get_user_info($user_id); $user_info=api_get_user_info($user_id);
echo api_xml_http_response_encode($user_info['firstName'].' '.$user_info['lastName']); echo api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
?></td> ?></td>
</tr> </tr>
</table></td> </table></td>

@ -10,16 +10,17 @@ $search=Database::escape_string(Security::remove_XSS($_POST['search']));
$current_date=date('Y-m-d H:i:s',time()); $current_date=date('Y-m-d H:i:s',time());
$html_form='<select id="id_search_name" name="id_search_name" size="8"" style="width:350px;">'; $html_form='<select id="id_search_name" name="id_search_name" size="8"" style="width:350px;">';
$user_id = api_get_user_id(); $user_id = api_get_user_id();
$is_western_name_order = api_is_western_name_order();
if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') { if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') {
$sql = 'SELECT DISTINCT u.user_id as id,concat(u.firstname," ",u.lastname," ","( ",u.email," )") as name $sql = 'SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
FROM '.$tbl_my_user_friend.' uf ' . FROM '.$tbl_my_user_friend.' uf ' .
'INNER JOIN '.$tbl_my_user.' AS u ON uf.friend_user_id = u.user_id ' . 'INNER JOIN '.$tbl_my_user.' AS u ON uf.friend_user_id = u.user_id ' .
'WHERE relation_type<>6 AND friend_user_id<>'.(int)$user_id.' AND concat(u.firstName,u.lastName) like CONCAT("%","'.$search.'","%") '; 'WHERE relation_type<>6 AND friend_user_id<>'.(int)$user_id.' AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") ';
} elseif (api_get_setting('allow_social_tool')=='false' && api_get_setting('allow_message_tool')=='true') { } elseif (api_get_setting('allow_social_tool')=='false' && api_get_setting('allow_message_tool')=='true') {
$valid=api_get_setting('time_limit_whosonline'); $valid=api_get_setting('time_limit_whosonline');
$sql='SELECT DISTINCT u.user_id as id,concat(u.firstname," ",u.lastname," ","( ",u.email," )") as name $sql='SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
FROM '.$tbl_my_user.' u INNER JOIN '.$track_online_table.' t ON u.user_id=t.login_user_id FROM '.$tbl_my_user.' u INNER JOIN '.$track_online_table.' t ON u.user_id=t.login_user_id
WHERE DATE_ADD(login_date,INTERVAL "'.$valid.'" MINUTE) >= "'.$current_date.'" AND concat(u.firstName,u.lastName) like CONCAT("%","'.$search.'","%") '; WHERE DATE_ADD(login_date,INTERVAL "'.$valid.'" MINUTE) >= "'.$current_date.'" AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") ';
} }
$res=Database::query($sql,__FILE__,__LINE__); $res=Database::query($sql,__FILE__,__LINE__);

@ -63,7 +63,7 @@ if (count($list_path_friends)!=0) {
while ($j<$number_of_images) { while ($j<$number_of_images) {
if ($list_friends_file[$j]<>"") { if ($list_friends_file[$j]<>"") {
$user_info=api_get_user_info($list_friends_id[$j]); $user_info=api_get_user_info($list_friends_id[$j]);
$user_name=api_xml_http_response_encode($user_info['firstName'].' '.$user_info['lastName']) ; $user_name=api_xml_http_response_encode(api_get_person_name($user_info['firstName'], $user_info['lastName']));
$friends_profile = UserFriend::get_picture_user($list_friends_id[$j], $list_friends_file[$j], 92); $friends_profile = UserFriend::get_picture_user($list_friends_id[$j], $list_friends_file[$j], 92);
$friend_html.='<div onMouseover="show_icon_delete(this)" onMouseout="hide_icon_delete(this)" class="image-social-content" id=div_'.$list_friends_id[$j].' > $friend_html.='<div onMouseover="show_icon_delete(this)" onMouseout="hide_icon_delete(this)" class="image-social-content" id=div_'.$list_friends_id[$j].' >
<span><center><img src="'.$friends_profile['file'].'" '.$friends_profile['style'].' id="imgfriend_'.$list_friends_id[$j].'" title="'.$user_name.'" onclick=load_thick(\'qualify_contact.inc.php?path_user="'.urlencode($list_friends_dir[$j].$list_friends_file[$j]).'&amp;id_user="'.$list_friends_id[$j].'"\',"") /></center></span> <span><center><img src="'.$friends_profile['file'].'" '.$friends_profile['style'].' id="imgfriend_'.$list_friends_id[$j].'" title="'.$user_name.'" onclick=load_thick(\'qualify_contact.inc.php?path_user="'.urlencode($list_friends_dir[$j].$list_friends_file[$j]).'&amp;id_user="'.$list_friends_id[$j].'"\',"") /></center></span>

@ -215,7 +215,7 @@ if ((isset($_GET['action']) && $_GET['action'] == 'edit') && !empty($survey_id)
// Aditional Parameters // Aditional Parameters
$form -> addElement('html','<div class="row"> $form -> addElement('html','<div class="row">
<div class="label"> <div class="label">
<a href="javascript://" onclick="advanced_parameters()" ><span id="plus_minus">&nbsp;'.Display::return_icon('div_show.gif',null,array('style'=>'vertical-align:middle')).'&nbsp;'.get_lang('AdvancedParameters').'</span></a> <a href="javascript: void(0);" onclick="javascript: advanced_parameters();" ><span id="plus_minus">&nbsp;'.Display::return_icon('div_show.gif',null,array('style'=>'vertical-align:middle')).'&nbsp;'.get_lang('AdvancedParameters').'</span></a>
</div> </div>
<div class="formw"> <div class="formw">
&nbsp; &nbsp;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -149,7 +149,7 @@ while ($row = mysql_fetch_assoc($res))
echo '<tr>'; echo '<tr>';
if (is_numeric($row['user'])) if (is_numeric($row['user']))
{ {
echo ' <td><a href="../user/userInfo.php?editMainUserInfo='.$row['user'].'">'.$row['firstname'].' '.$row['lastname'].'</a></td>'; echo ' <td><a href="../user/userInfo.php?editMainUserInfo='.$row['user'].'">'.api_get_person_name($row['firstname'], $row['lastname']).'</a></td>';
} }
else else
{ {

@ -1,219 +1,219 @@
<?php <?php
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
Copyright (c) 2009 Dokeos SPRL Copyright (c) 2009 Dokeos SPRL
For a full list of contributors, see "credits.txt". For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt". The full license can be read in "license.txt".
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2 as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version. of the License, or (at your option) any later version.
See the GNU General Public License for more details. See the GNU General Public License for more details.
Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
Mail: info@dokeos.com Mail: info@dokeos.com
============================================================================== ==============================================================================
*/ */
/** /**
* @package dokeos.survey * @package dokeos.survey
* @author unknown, the initial survey that did not make it in 1.8 because of bad code * @author unknown, the initial survey that did not make it in 1.8 because of bad code
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University: cleanup, refactoring and rewriting large parts of the code * @author Patrick Cool <patrick.cool@UGent.be>, Ghent University: cleanup, refactoring and rewriting large parts of the code
* @author Julio Montoya Dokeos: cleanup, refactoring, security improvements * @author Julio Montoya Dokeos: cleanup, refactoring, security improvements
* @version $Id: survey_invite.php 10680 2007-01-11 21:26:23Z pcool $ * @version $Id: survey_invite.php 10680 2007-01-11 21:26:23Z pcool $
* *
* @todo checking if the additional emails are valid (or add a rule for this) * @todo checking if the additional emails are valid (or add a rule for this)
* @todo check if the mailtext contains the **link** part, if not, add the link to the end * @todo check if the mailtext contains the **link** part, if not, add the link to the end
* @todo add rules: title and text cannot be empty * @todo add rules: title and text cannot be empty
*/ */
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = 'survey'; $language_file = 'survey';
// including the global dokeos file // including the global dokeos file
require ('../inc/global.inc.php'); require ('../inc/global.inc.php');
// including additional libraries // including additional libraries
//require_once (api_get_path(LIBRARY_PATH)."/survey.lib.php"); //require_once (api_get_path(LIBRARY_PATH)."/survey.lib.php");
require_once('survey.lib.php'); require_once('survey.lib.php');
require_once (api_get_path(LIBRARY_PATH)."course.lib.php"); require_once (api_get_path(LIBRARY_PATH)."course.lib.php");
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH)."mail.lib.inc.php"); require_once (api_get_path(LIBRARY_PATH)."mail.lib.inc.php");
if (!api_is_allowed_to_edit(false,true)) if (!api_is_allowed_to_edit(false,true))
{ {
Display :: display_header(get_lang('Survey')); Display :: display_header(get_lang('Survey'));
Display :: display_error_message(get_lang('NotAllowed'), false); Display :: display_error_message(get_lang('NotAllowed'), false);
Display :: display_footer(); Display :: display_footer();
exit; exit;
} }
// Database table definitions // Database table definitions
$table_survey = Database::get_course_table(TABLE_SURVEY); $table_survey = Database :: get_course_table(TABLE_SURVEY);
$table_survey_question = Database::get_course_table(TABLE_SURVEY_QUESTION); $table_survey_question = Database :: get_course_table(TABLE_SURVEY_QUESTION);
$table_survey_question_option = Database::get_course_table(TABLE_SURVEY_QUESTION_OPTION); $table_survey_question_option = Database :: get_course_table(TABLE_SURVEY_QUESTION_OPTION);
$table_course = Database::get_main_table(TABLE_MAIN_COURSE); $table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$table_user = Database::get_main_table(TABLE_MAIN_USER); $table_user = Database :: get_main_table(TABLE_MAIN_USER);
$user_info = Database::get_main_table(TABLE_MAIN_SURVEY_REMINDER); // TODO: To be checked. TABLE_MAIN_SURVEY_REMINDER has not been defined. $user_info = Database::get_main_table(TABLE_MAIN_SURVEY_REMINDER); // TODO: To be checked. TABLE_MAIN_SURVEY_REMINDER has not been defined.
// getting the survey information // getting the survey information
$survey_id = Security::remove_XSS($_GET['survey_id']); $survey_id = Security::remove_XSS($_GET['survey_id']);
$survey_data = survey_manager::get_survey($survey_id); $survey_data = survey_manager::get_survey($survey_id);
if (empty($survey_data)) { if (empty($survey_data)) {
Display :: display_header(get_lang('Survey')); Display :: display_header(get_lang('Survey'));
Display :: display_error_message(get_lang('InvallidSurvey'), false); Display :: display_error_message(get_lang('InvallidSurvey'), false);
Display :: display_footer(); Display :: display_footer();
exit; exit;
} }
$urlname =strip_tags(api_substr(api_html_entity_decode($survey_data['title'],ENT_QUOTES,$charset), 0, 40)); $urlname = strip_tags(api_substr(api_html_entity_decode($survey_data['title'],ENT_QUOTES,$charset), 0, 40));
if (api_strlen(strip_tags($survey_data['title'])) > 40) if (api_strlen(strip_tags($survey_data['title'])) > 40)
{ {
$urlname .= '...'; $urlname .= '...';
} }
// breadcrumbs // breadcrumbs
$interbreadcrumb[] = array ('url' => 'survey_list.php', 'name' => get_lang('SurveyList')); $interbreadcrumb[] = array ('url' => 'survey_list.php', 'name' => get_lang('SurveyList'));
if (api_is_course_admin()) { if (api_is_course_admin()) {
$interbreadcrumb[] = array ('url' => 'survey.php?survey_id='.$survey_id, 'name' => $urlname); $interbreadcrumb[] = array ('url' => 'survey.php?survey_id='.$survey_id, 'name' => $urlname);
} else { } else {
$interbreadcrumb[] = array ('url' => 'survey_invite.php?survey_id='.$survey_id, 'name' => $urlname); $interbreadcrumb[] = array ('url' => 'survey_invite.php?survey_id='.$survey_id, 'name' => $urlname);
} }
$tool_name = get_lang('SurveyPublication'); $tool_name = get_lang('SurveyPublication');
// Displaying the header // Displaying the header
Display::display_header($tool_name,'Survey'); Display::display_header($tool_name,'Survey');
// checking if there is another survey with this code. // checking if there is another survey with this code.
// If this is the case there will be a language choice // If this is the case there will be a language choice
$sql = "SELECT * FROM $table_survey WHERE code='".Database::escape_string($survey_data['code'])."'"; $sql = "SELECT * FROM $table_survey WHERE code='".Database::escape_string($survey_data['code'])."'";
$result = api_sql_query($sql, __FILE__, __LINE__); $result = api_sql_query($sql, __FILE__, __LINE__);
if (Database::num_rows($result) > 1) if (Database::num_rows($result) > 1)
{ {
Display::display_warning_message(get_lang('IdenticalSurveycodeWarning')); Display::display_warning_message(get_lang('IdenticalSurveycodeWarning'));
} }
// invited / answered message // invited / answered message
if ($survey_data['invited'] > 0) if ($survey_data['invited'] > 0)
{ {
$message = '<a href="survey_invitation.php?view=answered&amp;survey_id='.$survey_data['survey_id'].'">'.$survey_data['answered'].'</a> '; $message = '<a href="survey_invitation.php?view=answered&amp;survey_id='.$survey_data['survey_id'].'">'.$survey_data['answered'].'</a> ';
$message .= get_lang('HaveAnswered').' '; $message .= get_lang('HaveAnswered').' ';
$message .= '<a href="survey_invitation.php?view=invited&amp;survey_id='.$survey_data['survey_id'].'">'.$survey_data['invited'].'</a> '; $message .= '<a href="survey_invitation.php?view=invited&amp;survey_id='.$survey_data['survey_id'].'">'.$survey_data['invited'].'</a> ';
$message .= get_lang('WereInvited'); $message .= get_lang('WereInvited');
Display::display_normal_message($message, false); Display::display_normal_message($message, false);
} }
// building the form for publishing the survey // building the form for publishing the survey
$form = new FormValidator('publish_form','post', api_get_self().'?survey_id='.$survey_id); $form = new FormValidator('publish_form','post', api_get_self().'?survey_id='.$survey_id);
$form->addElement('header', '', $tool_name); $form->addElement('header', '', $tool_name);
// Course users // Course users
$complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id'], true, $_SESSION['id_session'], '', 'ORDER BY lastname'); $complete_user_list = CourseManager :: get_user_list_from_course_code($_course['id'], true, $_SESSION['id_session'], '', api_sort_by_first_name() ? 'ORDER BY firstname' : 'ORDER BY lastname');
$possible_users = array (); $possible_users = array ();
foreach ($complete_user_list as $index => $user) foreach ($complete_user_list as $index => $user)
{ {
$possible_users[$user['user_id']] = $user['lastname'].' '.$user['firstname']; $possible_users[$user['user_id']] = api_get_person_name($user['firstname'], $user['lastname']);
} }
$users = $form->addElement('advmultiselect', 'course_users', get_lang('CourseUsers'), $possible_users, 'style="width: 250px; height: 200px;"'); $users = $form->addElement('advmultiselect', 'course_users', get_lang('CourseUsers'), $possible_users, 'style="width: 250px; height: 200px;"');
$users->setElementTemplate(' $users->setElementTemplate('
{javascript} {javascript}
<table{class}> <table{class}>
<!-- BEGIN label_2 --><tr><th>{label_2}</th><!-- END label_2 --> <!-- BEGIN label_2 --><tr><th>{label_2}</th><!-- END label_2 -->
<!-- BEGIN label_3 --><th>&nbsp;</th><th>{label_3}</th></tr><!-- END label_3 --> <!-- BEGIN label_3 --><th>&nbsp;</th><th>{label_3}</th></tr><!-- END label_3 -->
<tr> <tr>
<td valign="top">{unselected}</td> <td valign="top">{unselected}</td>
<td align="center">{add}<br /><br />{remove}</td> <td align="center">{add}<br /><br />{remove}</td>
<td valign="top">{selected}</td> <td valign="top">{selected}</td>
</tr> </tr>
</table> </table>
'); ');
// additional users // additional users
$form->addElement('textarea', 'additional_users', get_lang('AdditonalUsers'), array ('cols' => 50, 'rows' => 2)); $form->addElement('textarea', 'additional_users', get_lang('AdditonalUsers'), array ('cols' => 50, 'rows' => 2));
// additional users comment // additional users comment
$form->addElement('static', null, null, get_lang('AdditonalUsersComment')); $form->addElement('static', null, null, get_lang('AdditonalUsersComment'));
// the title of the mail // the title of the mail
$form->addElement('text', 'mail_title', get_lang('MailTitle'),array('size' => '80')); $form->addElement('text', 'mail_title', get_lang('MailTitle'),array('size' => '80'));
// the text of the mail // the text of the mail
$form->addElement('html_editor', 'mail_text', get_lang('MailText'), null, array('ToolbarSet' => 'Survey', 'Width' => '100%', 'Height' => '150')); $form->addElement('html_editor', 'mail_text', get_lang('MailText'), null, array('ToolbarSet' => 'Survey', 'Width' => '100%', 'Height' => '150'));
// some explanation of the mail // some explanation of the mail
$form->addElement('static', null, null, get_lang('UseLinkSyntax')); $form->addElement('static', null, null, get_lang('UseLinkSyntax'));
$form->addElement('checkbox', 'send_mail', '', get_lang('SendMail')); $form->addElement('checkbox', 'send_mail', '', get_lang('SendMail'));
// you cab send a reminder to unanswered people if the survey is not anonymous // you cab send a reminder to unanswered people if the survey is not anonymous
if ($survey_data['anonymous'] != 1) { if ($survey_data['anonymous'] != 1) {
$form->addElement('checkbox', 'remindUnAnswered', '', get_lang('RemindUnanswered')); $form->addElement('checkbox', 'remindUnAnswered', '', get_lang('RemindUnanswered'));
} }
// allow resending to all selected users // allow resending to all selected users
$form->addElement('checkbox', 'resend_to_all', '', get_lang('ReminderResendToAllUsers')); $form->addElement('checkbox', 'resend_to_all', '', get_lang('ReminderResendToAllUsers'));
// submit button // submit button
$form->addElement('style_submit_button', 'submit', get_lang('PublishSurvey'), 'class="save"'); $form->addElement('style_submit_button', 'submit', get_lang('PublishSurvey'), 'class="save"');
// The rules (required fields) // The rules (required fields)
$form->addRule('mail_title', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('mail_title', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('mail_text', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('mail_text', get_lang('ThisFieldIsRequired'), 'required');
$portal_url = $_configuration['root_web']; $portal_url = $_configuration['root_web'];
if ($_configuration['multiple_access_urls']==true) { if ($_configuration['multiple_access_urls']==true) {
$access_url_id = api_get_current_access_url_id(); $access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1 ){ if ($access_url_id != -1 ){
$url = api_get_access_url($access_url_id); $url = api_get_access_url($access_url_id);
$portal_url = $url['url']; $portal_url = $url['url'];
} }
} }
// show the URL that can be used by users to fill a survey without invitation // show the URL that can be used by users to fill a survey without invitation
$auto_survey_link = $portal_url.$_configuration['code_append']. $auto_survey_link = $portal_url.$_configuration['code_append'].
'survey/'.'fillsurvey.php?course='.$_course['sysCode']. 'survey/'.'fillsurvey.php?course='.$_course['sysCode'].
'&invitationcode=auto&scode='.$survey_data['survey_code']; '&invitationcode=auto&scode='.$survey_data['survey_code'];
$form->addElement('static',null, null, '<br \><br \>' . get_lang('AutoInviteLink')); $form->addElement('static',null, null, '<br \><br \>' . get_lang('AutoInviteLink'));
$form->addElement('static',null, null, $auto_survey_link); $form->addElement('static',null, null, $auto_survey_link);
if ($form->validate()) if ($form->validate())
{ {
$values = $form->exportValues(); $values = $form->exportValues();
// save the invitation mail // save the invitation mail
SurveyUtil::save_invite_mail($values['mail_text'], $values['mail_title'], !empty($survey_data['invite_mail'])); SurveyUtil::save_invite_mail($values['mail_text'], $values['mail_title'], !empty($survey_data['invite_mail']));
// saving the invitations for the course users // saving the invitations for the course users
$count_course_users = SurveyUtil::save_invitations($values['course_users'], $values['mail_title'], $count_course_users = SurveyUtil::save_invitations($values['course_users'], $values['mail_title'],
$values['mail_text'], $values['resend_to_all'], $values['send_mail'], $values['remindUnAnswered']); $values['mail_text'], $values['resend_to_all'], $values['send_mail'], $values['remindUnAnswered']);
// saving the invitations for the additional users // saving the invitations for the additional users
$values['additional_users'] = $values['additional_users'].';'; // this is for the case when you enter only one email $values['additional_users'] = $values['additional_users'].';'; // this is for the case when you enter only one email
$temp = str_replace(',',';',$values['additional_users']); // this is to allow , and ; as email separators $temp = str_replace(',',';',$values['additional_users']); // this is to allow , and ; as email separators
$additional_users = explode(';',$temp); $additional_users = explode(';',$temp);
for($i=0; $i<count($additional_users); $i++) for($i=0; $i<count($additional_users); $i++)
{ {
$additional_users[$i] = trim($additional_users[$i]); $additional_users[$i] = trim($additional_users[$i]);
} }
$counter_additional_users = SurveyUtil::save_invitations($additional_users, $values['mail_title'], $counter_additional_users = SurveyUtil::save_invitations($additional_users, $values['mail_title'],
$values['mail_text'], $values['resend_to_all'], $values['send_mail'], $values['remindUnAnswered']); $values['mail_text'], $values['resend_to_all'], $values['send_mail'], $values['remindUnAnswered']);
// updating the invited field in the survey table // updating the invited field in the survey table
SurveyUtil::update_count_invited($survey_data['code']); SurveyUtil::update_count_invited($survey_data['code']);
$total_count = $count_course_users + $counter_additional_users; $total_count = $count_course_users + $counter_additional_users;
Display :: display_confirmation_message($total_count.' '.get_lang('InvitationsSend')); Display :: display_confirmation_message($total_count.' '.get_lang('InvitationsSend'));
} }
else else
{ {
// getting the invited users // getting the invited users
$defaults = SurveyUtil::get_invited_users($survey_data['code']); $defaults = SurveyUtil::get_invited_users($survey_data['code']);
// getting the survey mail text // getting the survey mail text
if (!empty($survey_data['reminder_mail'])) if (!empty($survey_data['reminder_mail']))
{ {
$defaults['mail_text'] = $survey_data['reminder_mail']; $defaults['mail_text'] = $survey_data['reminder_mail'];
} }
else else
{ {
$defaults['mail_text'] = $survey_data['invite_mail']; $defaults['mail_text'] = $survey_data['invite_mail'];
} }
$defaults['mail_title'] = $survey_data['mail_subject']; $defaults['mail_title'] = $survey_data['mail_subject'];
$defaults['send_mail'] = 1; $defaults['send_mail'] = 1;
$form->setDefaults($defaults); $form->setDefaults($defaults);
$form->display(); $form->display();
} }
// Footer // Footer
Display :: display_footer(); Display :: display_footer();
?> ?>

@ -33,7 +33,7 @@ $htmlHeadXtra[] = '<link rel="stylesheet" href="./main/inc/lib/javascript/thickb
$htmlHeadXtra[] = '<script type="text/javascript"> $htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready(function (){ $(document).ready(function (){
$("input#id_btn_send_invitation").bind("click", function(){ $("input#id_btn_send_invitation").bind("click", function(){
if (confirm("'.get_lang('SendMessageInvitation').'")) { if (confirm("'.get_lang('SendMessageInvitation', '').'")) {
$("#form_register_friend").submit(); $("#form_register_friend").submit();
} }
}); });
@ -42,7 +42,7 @@ function change_panel (mypanel_id,myuser_id) {
$.ajax({ $.ajax({
contentType: "application/x-www-form-urlencoded", contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) { beforeSend: function(objeto) {
$("#id_content_panel").html("'.get_lang('Loading').'"); }, $("#id_content_panel").html("'.get_lang('Loading', '').'"); },
type: "POST", type: "POST",
url: "main/messages/send_message.php", url: "main/messages/send_message.php",
data: "panel_id="+mypanel_id+"&user_id="+myuser_id, data: "panel_id="+mypanel_id+"&user_id="+myuser_id,
@ -61,14 +61,14 @@ function action_database_panel(option_id,myuser_id) {
} }
my_txt_content=$("#txt_area_invite").val(); my_txt_content=$("#txt_area_invite").val();
if (my_txt_content.length==0 || my_txt_subject.length==0) { if (my_txt_content.length==0 || my_txt_subject.length==0) {
$("#display_response_id").html("&nbsp;&nbsp;&nbsp;'.get_lang('MessageEmptyMessageOrSubject').'"); $("#display_response_id").html("&nbsp;&nbsp;&nbsp;'.get_lang('MessageEmptyMessageOrSubject', '').'");
setTimeout("message_information_display()",3000); setTimeout("message_information_display()",3000);
return false; return false;
} }
$.ajax({ $.ajax({
contentType: "application/x-www-form-urlencoded", contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) { beforeSend: function(objeto) {
$("#display_response_id").html("'.get_lang('Loading').'"); }, $("#display_response_id").html("'.get_lang('Loading', '').'"); },
type: "POST", type: "POST",
url: "main/messages/send_message.php", url: "main/messages/send_message.php",
data: "panel_id="+option_id+"&user_id="+myuser_id+"&txt_subject="+my_txt_subject+"&txt_content="+my_txt_content, data: "panel_id="+option_id+"&user_id="+myuser_id+"&txt_subject="+my_txt_subject+"&txt_content="+my_txt_content,

Loading…
Cancel
Save