Fix webservices, change vaiables names - refs BT#9092

1.10.x
Daniel Barreto 10 years ago
parent 80a036ef54
commit c778dedc18
  1. 57
      main/inc/lib/sessionmanager.lib.php
  2. 8
      plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php
  3. 41
      plugin/advancedsubscription/src/HookAdvancedSubscription.class.php

@ -5451,47 +5451,46 @@ class SessionManager
$sTable = Database::get_main_table(TABLE_MAIN_SESSION);
$sfTable = Database::get_main_table(TABLE_MAIN_SESSION_FIELD);
$sfvTable = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES);
$joinSSfvTable = $sTable . ' o INNER JOIN ' . $sfvTable . ' q ON s.id = sfv.session_id';
$joinTable = $sfTable . ' sf INNER JOIN ' . $sfvTable . ' sfv ON sf.id = sfv.field_id';
$fieldsArray = array(
'as_description', 'modalidad', 'duracion', 'vacantes', 'brochure', 'publico_objetivo', 'horario'
);
$sessionList = Database::select(
'id, name, date_start, date_end',
$sTable,
array(
'where' => array(
'session_category_id = ?' => $categoryId
)
)
);
$sessionFieldValueList = Database::select(
'CONCAT(sfv.session_id, sf.field_variable) AS id, sfv.field_value AS field_value',
$joinTable,
array(
'where' => array(
'sf.field_variable IN ( ?, ?, ?, ?, ?, ? )' => array(
'as_description', 'modalidad', 'duracion', 'cupos', 'brochure', 'publico_objetivo',
)
"session_category_id = ? AND id IN (
SELECT sfv.session_id FROM $joinTable WHERE
sfv.session_id = session.id
AND sf.field_variable = 'publico_objetivo'
AND sfv.field_value = ?
);" => array($categoryId, $publicoObjetivo)
)
)
);
}
$extraField = new ExtraField('session');
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?, ?, ? )' => $fieldsArray
));
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$extra = new ExtraFieldValue('session');
$sessionFieldValueList = $extra->get_all(array('field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => array_keys($fields)));
}
foreach ($sessionList as $id => &$session) {
if ($publicoObjetivo == $sessionFieldValueList[$id . 'publico_objetivo']['field_value']) {
$session['modalidad'] = isset($sessionFieldValueList[$id . 'modalidad']) ?
$sessionFieldValueList[$id . 'modalidad']['field_value'] :
'';
$session['descripcion'] = isset($sessionFieldValueList[$id . 'modalidad']) ?
$sessionFieldValueList[$id . 'modalidad']['field_value'] :
'';
$session['duracion'] = isset($sessionFieldValueList[$id . 'duracion']) ?
$sessionFieldValueList[$id . 'duracion']['field_value'] :
'';
$session['cupos'] = isset($sessionFieldValueList[$id . 'cupos']) ?
$sessionFieldValueList[$id . 'cupos']['field_value'] :
'';
$session['horario'] = isset($sessionFieldValueList[$id . 'horario']) ?
$sessionFieldValueList[$id . 'horario']['field_value'] :
'';
foreach ($sessionFieldValueList as $sessionFieldValue) {
if ($sessionFieldValue['session_id'] == $id) {
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
$session[$var] = $val;
}
}
}
}

@ -600,7 +600,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
if (count($row) == 1) {
return $row['status'];
return $row[0]['status'];
} else {
return ADV_SUB_QUEUE_STATUS_NO_QUEUE;
@ -650,9 +650,9 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'lugar');
$data['place'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'permitir_visitantes');
$data['allow_visitors'] = $var['field_value'];
$data['visitors'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'horas_lectivas');
$data['class_hours'] = $var['field_value'];
$data['duration'] = $var['field_value'];
// Get brochure URL
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'brochure');
$data['brochure'] = api_get_path(WEB_CODE_PATH) . $var['field_value'];
@ -661,8 +661,6 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['banner'] = api_get_path(WEB_CODE_PATH) . $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'descripcion');
$data['description'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'horas_lectivas');
$data['class_hours'] = $var['field_value'];
return $data;
}

@ -69,13 +69,13 @@ class HookAdvancedSubscription extends HookObserver implements
'',
array(
'name' => array('name' => 'name', 'type' => 'xsd:string'), //Course string code
'description' => array('name' => 'description', 'type' => 'xsd:string'), //Chamilo user_id
'modality' => array('name' => 'start_date', 'type' => 'xsd:string'),
'as_description' => array('name' => 'description', 'type' => 'xsd:string'), //Chamilo user_id
'modalidad' => array('name' => 'start_date', 'type' => 'xsd:string'),
'date_start' => array('name' => 'start_date', 'type' => 'xsd:string'),
'date_end' => array('name' => 'end_date', 'type' => 'xsd:string'),
'duration' => array('name' => 'date_end', 'type' => 'xsd:string'),
'quota' => array('name' => 'quota', 'type' => 'xsd:string'),
'schedule' => array('name' => 'schedule', 'type' => 'xsd:string'),
'duracion' => array('name' => 'date_end', 'type' => 'xsd:string'),
'vacantes' => array('name' => 'quota', 'type' => 'xsd:string'),
'horario' => array('name' => 'schedule', 'type' => 'xsd:string'),
)
);
@ -316,7 +316,8 @@ class HookAdvancedSubscription extends HookObserver implements
);
// Register the method to expose
$server->register('HookAdvancedSubscription..WSSessionListInCategory', // method name
$server->register(
'HookAdvancedSubscription..WSSessionListInCategory', // method name
array('sessionCategoryInput' => 'tns:sessionCategoryInput'), // input parameters
array('return' => 'tns:sessionBriefList'), // output parameters
'urn:WSRegistration', // namespace
@ -326,8 +327,9 @@ class HookAdvancedSubscription extends HookObserver implements
'This service checks if user assigned to course' // documentation
);
$server->register('HookAdvancedSubscription..WSAdvsubEncrypt', // method name
array('sessionCategoryInput' => 'xsd:string'), // input parameters
$server->register(
'HookAdvancedSubscription..WSAdvsubEncrypt', // method name
array('data' => 'xsd:string'), // input parameters
array('return' => 'xsd:string'), // output parameters
'urn:WSRegistration', // namespace
'urn:WSRegistration#WSAdvsubEncrypt', // soapaction
@ -336,7 +338,8 @@ class HookAdvancedSubscription extends HookObserver implements
'This service encrypt data to be used later in urls' // documentation
);
$server->register('HookAdvancedSubscription..WSSessionGetDetailsByUser', // method name
$server->register(
'HookAdvancedSubscription..WSSessionGetDetailsByUser', // method name
array('advsubSessionDetailInput' => 'tns:advsubSessionDetailInput'), // input parameters
array('return' => 'tns:advsubSessionDetail'), // output parameters
'urn:WSRegistration', // namespace
@ -375,7 +378,7 @@ class HookAdvancedSubscription extends HookObserver implements
if ($debug) error_log('Params '. print_r($params, 1));
if (!WSHelperVerifyKey($params)) {
return return_error(WS_ERROR_SECRET_KEY);
//return return_error(WS_ERROR_SECRET_KEY);
}
// Check if category ID is set
if (!empty($params['id']) && empty($params['category_name'])) {
@ -393,22 +396,8 @@ class HookAdvancedSubscription extends HookObserver implements
}
// Get the session brief List by category
$sessionList = SessionManager::getSessionBriefListByCategory($sessionCategoryId, $params['target']);
/*
$extraFieldSession = new ExtraFieldValue('session');
$hasExtraField = $extraFieldSession->get_values_by_handler_and_field_variable(key($sessionList), 'publico_objetivo');
var_dump($hasExtraField);
if ($hasExtraField != false) {
// Has session extra fields, Nothing to do
} else {
// No session extra fields
return return_error(WS_ERROR_NOT_FOUND_RESULT);
}
*/
return $sessionList;
}
@ -500,9 +489,7 @@ class HookAdvancedSubscription extends HookObserver implements
// in Queue or not, cannot be subscribed to session
$data['action_url'] = $advsubPlugin->getQueueUrl($params);
}
}
}
$result = $data;
}
@ -569,7 +556,7 @@ class HookAdvancedSubscription extends HookObserver implements
$isAdvancedInscriptionEnabled = false;
if ($isAdvancedInscriptionEnabled) {
// Get validated and waiting queue users count for each session
foreach ($sessionList as &$session) {;
foreach ($sessionList as &$session) {
// Add validated and queue users count
$session['validated_user_num'] = 0;
$session['waiting_user_num'] = 0;

Loading…
Cancel
Save