Fix, use extra field value get all method - refs BT#9092

1.10.x
Daniel Barreto 11 years ago
parent 98044ae556
commit 979cc8fd04
  1. 65
      plugin/advancedsubscription/ajax/advsub.ajax.php
  2. 84
      plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.php
  3. 34
      plugin/advancedsubscription/src/admin_view.php

@ -51,18 +51,31 @@ if ($verified) {
if ($res === true) {
// Prepare data
// Get session data
// Assign variables
$fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
$sessionArray = api_get_session_info($data['s']);
$extraSession = new ExtraFieldValue('session');
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'description');
$sessionArray['description'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'target');
$sessionArray['target'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'mode');
$sessionArray['mode'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'publication_end_date');
$sessionArray['publication_end_date'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'recommended_number_of_participants');
$sessionArray['recommended_number_of_participants'] = $var['field_value'];
$extraField = new ExtraField('session');
// Get session fields
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
));
// Index session fields
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$mergedArray = array_merge(array($data['s']), array_keys($fields));
$sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
foreach ($sessionFieldValueList as $sessionFieldValue) {
// Check if session field value is set in session field list
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
// Assign session field value to session
$sessionArray[$var] = $val;
}
}
// Get student data
$studentArray = api_get_user_info($data['u']);
$studentArray['picture'] = UserManager::get_user_picture_path_by_id($studentArray['user_id'], 'web', false, true);
@ -161,18 +174,30 @@ if ($verified) {
if ($res === true) {
// Prepare data
// Prepare session data
$fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
$sessionArray = api_get_session_info($data['s']);
$extraSession = new ExtraFieldValue('session');
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'description');
$sessionArray['description'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'target');
$sessionArray['target'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'mode');
$sessionArray['mode'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'publication_end_date');
$sessionArray['publication_end_date'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($data['s'], 'recommended_number_of_participants');
$sessionArray['recommended_number_of_participants'] = $var['field_value'];
$extraField = new ExtraField('session');
// Get session fields
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
));
// Index session fields
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$mergedArray = array_merge(array($data['s']), array_keys($fields));
$sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
foreach ($sessionFieldValueList as $sessionFieldValue) {
// Check if session field value is set in session field list
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
// Assign session field value to session
$sessionArray[$var] = $val;
}
}
// Prepare student data
$studentArray = api_get_user_info($data['u']);
$studentArray['picture'] = UserManager::get_user_picture_path_by_id($studentArray['user_id'], 'web', false, true);

@ -670,26 +670,33 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
public function getSessionDetails($sessionId)
{
if (!empty($sessionId)) {
$extra = new ExtraFieldValue('session');
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'id');
$data['id'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'cost');
$data['cost'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'place');
$data['place'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'allow_visitors');
$data['allow_visitors'] = $var['field_value'];
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'horas_lectivas');
$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'];
// Get banner URL
$var = $extra->get_values_by_handler_and_field_variable($sessionId, 'banner');
$data['banner'] = api_get_path(WEB_CODE_PATH) . $var['field_value'];
$data['description'] = SessionManager::getDescriptionFromSessionId($sessionId);
return $data;
// Assign variables
$fieldsArray = array('id', 'cost', 'place', 'allow_visitors', 'teaching_hours', 'brochure', 'banner');
$extraSession = new ExtraFieldValue('session');
$extraField = new ExtraField('session');
// Get session fields
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
));
// Index session fields
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$mergedArray = array_merge(array($sessionId), array_keys($fields));
$sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
foreach ($sessionFieldValueList as $sessionFieldValue) {
// Check if session field value is set in session field list
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
// Assign session field value to session
$sessionArray[$var] = $val;
}
}
$sessionArray['description'] = SessionManager::getDescriptionFromSessionId($sessionId);
return $sessionArray;
}
return false;
@ -774,18 +781,31 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
*/
public function listAllStudentsInQueueBySession($sessionId)
{
// Assign variables
$fieldsArray = array('target', 'publication_end_date', 'mode', 'recommended_number_of_participants', 'vacancies');
$sessionArray = api_get_session_info($sessionId);
$extraSession = new ExtraFieldValue('session');
$session = api_get_session_info($sessionId);
$var = $extraSession->get_values_by_handler_and_field_variable($sessionId, 'target');
$session['target'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($sessionId, 'publication_end_date');
$session['publication_end_date'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($sessionId, 'mode');
$session['mode'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($sessionId, 'recommended_number_of_participants');
$session['recommended_number_of_participants'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($sessionId, 'vacancies');
$session['vacancies'] = $var['field_value'];
$extraField = new ExtraField('session');
// Get session fields
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
));
// Index session fields
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$mergedArray = array_merge(array($sessionId), array_keys($fields));
$sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
foreach ($sessionFieldValueList as $sessionFieldValue) {
// Check if session field value is set in session field list
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
// Assign session field value to session
$sessionArray[$var] = $val;
}
}
$queueTable = Database::get_main_table(TABLE_ADV_SUB_QUEUE);
$userTable = Database::get_main_table(TABLE_MAIN_USER);
$userJoinTable = $queueTable . ' q INNER JOIN ' . $userTable . ' u ON q.user_id = u.user_id';
@ -821,7 +841,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
}
}
$return = array(
'session' => $session,
'session' => $sessionArray,
'students' => $students,
);

@ -27,20 +27,30 @@ if (!empty($s)) {
$sessionList[$s]['selected'] = 'selected="selected"';
$studentList['session']['id'] = $s;
// Assign variables
// send mail to superior
$fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
$sessionArray = api_get_session_info($s);
$extraSession = new ExtraFieldValue('session');
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'description');
$sessionArray['description'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'target');
$sessionArray['target'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'mode');
$sessionArray['mode'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'publication_end_date');
$sessionArray['publication_end_date'] = $var['field_value'];
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'recommended_number_of_participants');
$sessionArray['recommended_number_of_participants'] = $var['field_value'];
$extraField = new ExtraField('session');
// Get session fields
$fieldList = $extraField->get_all(array(
'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
));
// Index session fields
foreach ($fieldList as $field) {
$fields[$field['id']] = $field['field_variable'];
}
$mergedArray = array_merge(array($s), array_keys($fields));
$sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
foreach ($sessionFieldValueList as $sessionFieldValue) {
// Check if session field value is set in session field list
if (isset($fields[$sessionFieldValue['field_id']])) {
$var = $fields[$sessionFieldValue['field_id']];
$val = $sessionFieldValue['field_value'];
// Assign session field value to session
$sessionArray[$var] = $val;
}
}
$adminsArray = UserManager::get_all_administrators();
$data['a'] = 'confirm';

Loading…
Cancel
Save