@ -1743,6 +1743,151 @@ function DokeosWSEditCourse($params){
}
/* Register DokeosWSCourseDescription function */
// Register the data structures used by the service
$server->wsdl->addComplexType(
'courseDescription',
'complexType',
'struct',
'all',
'',
array(
'original_course_id_name' => array('name' => 'original_course_id_name', 'type' => 'xsd:string'),
'original_course_id_value' => array('name' => 'original_course_id_value', 'type' => 'xsd:string'),
'secret_key' => array('name' => 'secret_key', 'type' => 'xsd:string')
)
);
// Prepare output params, in this case will return an array
$server->wsdl->addComplexType(
'fields_course_desc',
'complexType',
'struct',
'all',
'',
array(
'course_desc_id' => array('name' => 'course_desc_id', 'type' => 'xsd:string'),
'course_desc_default_title' => array('name' => 'course_desc_default_title', 'type' => 'xsd:string'),
'course_desc_title' => array('name' => 'course_desc_title', 'type' => 'xsd:string'),
'course_desc_content' => array('name' => 'course_desc_content', 'type' => 'xsd:string')
)
);
$server->wsdl->addComplexType(
'fields_course_desc_list',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType' => 'tns:fields_course_desc[]')),'tns:fields_course_desc'
);
// Register the method to expose
$server->register('DokeosWSCourseDescription', // method name
array('courseDescription' => 'tns:courseDescription'), // input parameters
array('return' => 'tns:fields_course_desc_list'), // output parameters
'urn:WSRegistration', // namespace
'urn:WSRegistration#DokeosWSCourseDescription', // soapaction
'rpc', // style
'encoded', // use
'This service edits a course description into dokeos' // documentation
);
// Define the method DokeosWSCourseDescription
function DokeosWSCourseDescription($params){
global $_configuration,$_course;
$secret_key = $params['secret_key'];
$security_key = $_SERVER['REMOTE_ADDR'].$_configuration['security_key'];
if (!api_is_valid_secret_key($secret_key,$security_key)) {
return -1; //secret key is incorrect
}
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
$table_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD);
$array_course_desc_id = array();
$array_course__desc_default_title = array();
$array_course_desc_title = array();
$array_course_desc_content = array();
$original_course_id_name = $params['original_course_id_name'];
$original_course_id_value = $params['original_course_id_value'];
// get course code from id from remote system
$sql = "SELECT course_code FROM $table_field cf,$t_cfv cfv WHERE cfv.field_id=cf.id AND field_variable='$original_course_id_name' AND field_value='$original_course_id_value'";
$res = api_sql_query($sql,__FILE__,__LINE__);
$row = Database::fetch_row($res);
$course_code=$row[0];
if (Database::num_rows($res) < 1 ) {
return 0;// original_course_id_value doesn't exits
//continue;
} else {
$sql = "SELECT code FROM $course_table WHERE code ='$course_code' AND visibility = '0'";
$resu = api_sql_query($sql,__FILE__,__LINE__);
$r_check_code = Database::fetch_row($resu);
if (Database::num_rows($resu) > 0) {
return 0; // this code is not active
//continue;
}
}
$course_ifo = api_get_course_info($course_code);
$t_course_desc = Database::get_course_table(TABLE_COURSE_DESCRIPTION,$course_ifo['dbName']);
$sql = "SELECT * FROM $t_course_desc";
$result = api_sql_query($sql,__FILE__,__LINE__);
/*$default_titles = array(
get_lang('GeneralDescription'),
get_lang('Objectives'),
get_lang('Topics'),
get_lang('Methodology'),
get_lang('CourseMaterial'),
get_lang('HumanAndTechnicalResources'),
get_lang('Assessment'),
get_lang('AddCat'));*/
$default_titles = array('Descripcion general','Objetivos','Contenidos','Metodologia','Materiales','Recursos humanos y tecnicos','Evaluacion','Apartado');
for ($x = 1;$x < 9 ; $ x + + ) {
$array_course_desc_id[$x] = $x;
$array_course_desc_default_title[$x] = $default_titles[$x-1];
$array_course_desc_title[$x] = '';
$array_course_desc_content[$x] = '';
}
while ($row = Database::fetch_array($result)) {
$ind = (int)$row['id'];
$array_course_desc_title[$ind] = $row['title'];
$array_course_desc_content[$ind] = $row['content'];
}
$count_results = count($default_titles);
$output = array();
for($i = 1; $i < =$count_results; $i++) {
$output[] = array(
'course_desc_id' =>$array_course_desc_id[$i],
'course_desc_default_title' => $array_course_desc_default_title[$i],
'course_desc_title' => $array_course_desc_title[$i],
'course_desc_content' => $array_course_desc_content[$i]);
}
return $output;
}
/* Register DokeosWSEditCourseDescription function */
// Register the data structures used by the service
@ -1752,10 +1897,12 @@ $server->wsdl->addComplexType(
'struct',
'all',
'',
array(
'course_description' => array('name' => 'course_description', 'type' => 'xsd:string'),
array(
'course_desc_id' => array('name' => 'course_desc_id', 'type' => 'xsd:string'),
'course_desc_title' => array('name' => 'course_desc_title', 'type' => 'xsd:string'),
'course_desc_content' => array('name' => 'course_desc_content', 'type' => 'xsd:string'),
'original_course_id_name' => array('name' => 'original_course_id_name', 'type' => 'xsd:string'),
'original_course_id_value' => array('name' => 'original_course_id_value', 'type' => 'xsd:string')
'original_course_id_value' => array('name' => 'original_course_id_value', 'type' => 'xsd:string')
)
);
@ -1776,11 +1923,12 @@ $server->wsdl->addComplexType(
'all',
'',
array(
'courses' => array('name' => 'courses', 'type' => 'tns:editCourseDescriptionParamsList'),
'course_de sc ' => array('name' => 'course_de sc ', 'type' => 'tns:editCourseDescriptionParamsList'),
'secret_key' => array('name' => 'secret_key', 'type' => 'xsd:string')
)
);
// Prepare output params, in this case will return an array
$server->wsdl->addComplexType(
'result_editCourseDescription',
@ -1819,7 +1967,7 @@ $server->register('DokeosWSEditCourseDescription', // method name
// Define the method DokeosWSEditCourseDescription
function DokeosWSEditCourseDescription($params){
global $_configuration;
global $_configuration,$_course ;
$secret_key = $params['secret_key'];
$security_key = $_SERVER['REMOTE_ADDR'].$_configuration['security_key'];
@ -1833,43 +1981,68 @@ function DokeosWSEditCourseDescription($params){
$t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
$table_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD);
$courses_params = $params['courses'];
$courses_params = $params['course_de sc '];
$results = array();
$orig_course_id_value = array();
foreach($courses_params as $course_param) {
$course_description =$course_param['course_description'];
$original_course_id_name = $course_param['original_course_id_name'];
$original_course_id_value = $course_param['original_course_id_value'];
$orig_course_id_value[] = $original_course_id_value;
$course_desc_id = $course_param['course_desc_id'];
$course_desc_title = $course_param['course_desc_title'];
$course_desc_content = $course_param['course_desc_content'];
$orig_course_id_value[] = $original_course_id_value;
// get course code from id from remote system
$sql = "SELECT course_code FROM $table_field cf,$t_cfv cfv WHERE cfv.field_id=cf.id AND field_variable='$original_course_id_name' AND field_value='$original_course_id_value'";
$res = api_sql_query($sql,__FILE__,__LINE__);
$row = Database::fetch_row($res);
$course_code=$row[0];
if (Database::num_rows($res) < 1 ) {
$results[] = 0; // original_course_id_value doesn't exits
continue;
$results[] = 0;
continue;// original_course_id_value doesn't exits
} else {
$sql = "SELECT code FROM $course_table WHERE code ='$course_code' AND visibility = '0'";
$resu = api_sql_query($sql,__FILE__,__LINE__);
$r_check_code = Database::fetch_row($resu);
if (Database::num_rows($resu) > 0) {
$results[] = 0; // this code is not active
continue;
$results[] = 0;
continue;
}
}
$course_ifo = api_get_course_info($course_code);
$sql = "UPDATE $course_table SET description='".Database::escape_string($course_description)."' WHERE code='".Database::escape_string($course_code)."'";
$res = api_sql_query($sql, __FILE__, __LINE__);
$return = Database::affected_rows();
$results[] = $return;
continue;
}
$t_course_desc = Database::get_course_table(TABLE_COURSE_DESCRIPTION,$course_ifo['dbName']);
$course_desc_id = Database::escape_string($course_desc_id);
$course_desc_title = Database::escape_string($course_desc_title);
$course_desc_content = Database::escape_string($course_desc_content);
$course_desc_id = (int)$course_desc_id;
if ($course_desc_id > 8 & & $course_desc_id < 1 ) {
$results[] = 0; // course_desc_id invalid
continue;
}
//check if data already exits into course_description table
$sql_check_id = "SELECT * FROM $t_course_desc WHERE id ='$course_desc_id'";
$res_check_id = api_sql_query($sql_check_id,__FILE__,__LINE__);
if (Database::num_rows($res_check_id) > 0) {
$sql = "UPDATE $t_course_desc SET title='$course_desc_title', content = '$course_desc_content' WHERE id = '".$course_desc_id."'";
api_sql_query($sql,__FILE__,__LINE__);
} else {
$sql = "INSERT IGNORE INTO $t_course_desc SET id = '".$course_desc_id."', title = '$course_desc_title', content = '$course_desc_content'";
api_sql_query($sql, __FILE__, __LINE__);
}
$results[] = 1;
}// end principal foreach
$count_results = count($results);
$output = array();