Get the extra field data and their formated values - refs BT#9070

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent d4177c0ff6
commit 6d5294a313
  1. 75
      main/admin/resume_session.php
  2. 84
      main/inc/lib/extra_field.lib.php

@ -218,74 +218,15 @@ echo Display::page_subheader(get_lang('GeneralProperties').$url);
<?php
$sessionField = new ExtraField('session');
$sessionFields = $sessionField->get_all();
$extraFieldData = $sessionField->getDataAndFormatedValues($sessionId);
foreach ($sessionFields as $field) {
if ($field['field_visible'] != '1') {
continue;
}
$sesionFieldValue = new ExtraFieldValue('session');
$sesionValueData = $sesionFieldValue->get_values_by_handler_and_field_id($sessionId, $field['id'], true);
?>
<tr>
<td><?php echo $field['field_display_text'] ?></td>
<td>
<?php
switch ($field['field_type']) {
case ExtraField::FIELD_TYPE_CHECKBOX:
if ($sesionValueData !== false && $sesionValueData['field_value'] == '1') {
echo get_lang('Yes');
} else {
echo get_lang('No');
}
break;
case ExtraField::FIELD_TYPE_DATE:
if ($sesionValueData !== false && !empty($sesionValueData['field_value'])) {
echo api_format_date($sesionValueData['field_value'], DATE_FORMAT_LONG_NO_DAY);
} else {
echo get_lang('None');
}
break;
case ExtraField::FIELD_TYPE_FILE_IMAGE:
if ($sesionValueData !== false && !empty($sesionValueData['field_value'])) {
if (file_exists(api_get_path(SYS_CODE_PATH) . $sesionValueData['field_value'])) {
$image = Display::img(
api_get_path(WEB_CODE_PATH) . $sesionValueData['field_value'],
$field['field_display_text'],
array('width' => '300')
);
echo Display::url(
$image,
api_get_path(WEB_CODE_PATH) . $sesionValueData['field_value'],
array('target' => '_blank')
);
}
}
break;
case ExtraField::FIELD_TYPE_FILE:
if ($sesionValueData !== false && !empty($sesionValueData['field_value'])) {
if (file_exists(api_get_path(SYS_CODE_PATH) . $sesionValueData['field_value'])) {
echo Display::url(
get_lang('Download'),
api_get_path(WEB_CODE_PATH) . $sesionValueData['field_value'],
array(
'title' => $field['field_display_text'],
'target' => '_blank'
)
);
}
}
break;
default:
echo $sesionValueData['field_value'];
break;
}
?>
</td>
</tr>
<?php
foreach ($extraFieldData as $displayExtraField) {
?>
<tr>
<td><?php echo $displayExtraField['text'] ?></td>
<td><?php echo $displayExtraField['value'] ?></td>
</tr>
<?php
}
$multiple_url_is_on = api_get_multiple_access_url();

@ -1762,4 +1762,88 @@ EOF;
'condition_array' => $condition_array
);
}
/**
* Get the extra fields and their formated values
* @param int|string $itemId The item ID (It could be a session_id, course_id or user_id)
* @return array The extra fields data
*/
public function getDataAndFormatedValues($itemId)
{
$valuesData = array();
$fields = $this->get_all();
foreach ($fields as $field) {
if ($field['field_visible'] != '1') {
continue;
}
$fieldValue = new ExtraFieldValue($this->type);
$valueData = $fieldValue->get_values_by_handler_and_field_id($itemId, $field['id'], true);
if (!$valueData) {
continue;
}
$displayedValue = get_lang('None');
switch ($field['field_type']) {
case ExtraField::FIELD_TYPE_CHECKBOX:
if ($valueData !== false && $valueData['field_value'] == '1') {
$displayedValue = get_lang('Yes');
} else {
$displayedValue = get_lang('No');
}
break;
case ExtraField::FIELD_TYPE_DATE:
if ($valueData !== false && !empty($valueData['field_value'])) {
$displayedValue = api_format_date($valueData['field_value'], DATE_FORMAT_LONG_NO_DAY);
}
break;
case ExtraField::FIELD_TYPE_FILE_IMAGE:
if ($valueData !== false && !empty($valueData['field_value'])) {
if (file_exists(api_get_path(SYS_CODE_PATH) . $valueData['field_value'])) {
$image = Display::img(
api_get_path(WEB_CODE_PATH) . $valueData['field_value'],
$field['field_display_text'],
array('width' => '300')
);
$displayedValue = Display::url(
$image,
api_get_path(WEB_CODE_PATH) . $valueData['field_value'],
array('target' => '_blank')
);
}
}
break;
case ExtraField::FIELD_TYPE_FILE:
if ($valueData !== false && !empty($valueData['field_value'])) {
if (file_exists(api_get_path(SYS_CODE_PATH) . $valueData['field_value'])) {
$displayedValue = Display::url(
get_lang('Download'),
api_get_path(WEB_CODE_PATH) . $valueData['field_value'],
array(
'title' => $field['field_display_text'],
'target' => '_blank'
)
);
}
}
break;
default:
$displayedValue = $valueData['field_value'];
break;
}
$valuesData[] = array(
'text' => $field['field_display_text'],
'value' => $displayedValue
);
}
return $valuesData;
}
}

Loading…
Cancel
Save