|
|
|
|
@ -141,6 +141,9 @@ class ExtraField extends Model |
|
|
|
|
case 'survey': |
|
|
|
|
$this->extraFieldType = EntityExtraField::SURVEY_FIELD_TYPE; |
|
|
|
|
break; |
|
|
|
|
case 'schedule_announcement': |
|
|
|
|
$this->extraFieldType = EntityExtraField::SCHEDULE_ANNOUNCEMENT; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$this->pageUrl = 'extra_fields.php?type='.$this->type; |
|
|
|
|
@ -161,7 +164,7 @@ class ExtraField extends Model |
|
|
|
|
*/ |
|
|
|
|
public static function getValidExtraFieldTypes() |
|
|
|
|
{ |
|
|
|
|
return [ |
|
|
|
|
$result = [ |
|
|
|
|
'user', |
|
|
|
|
'course', |
|
|
|
|
'session', |
|
|
|
|
@ -175,6 +178,12 @@ class ExtraField extends Model |
|
|
|
|
'user_certificate', |
|
|
|
|
'survey' |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
if (api_get_configuration_value('allow_scheduled_announcements')) { |
|
|
|
|
$result[] = 'schedule_announcement'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -1655,8 +1664,8 @@ class ExtraField extends Model |
|
|
|
|
break; |
|
|
|
|
case self::FIELD_TYPE_SELECT_MULTIPLE: |
|
|
|
|
$options = []; |
|
|
|
|
foreach ($field_details['options'] as $option_id => $option_details) { |
|
|
|
|
$options[$option_details['option_value']] = $option_details['display_text']; |
|
|
|
|
foreach ($field_details['options'] as $optionDetails) { |
|
|
|
|
$options[$optionDetails['option_value']] = $optionDetails['display_text']; |
|
|
|
|
} |
|
|
|
|
$form->addElement( |
|
|
|
|
'select', |
|
|
|
|
@ -1951,12 +1960,12 @@ class ExtraField extends Model |
|
|
|
|
$form->applyFilter('extra_'.$field_details['variable'], 'stripslashes'); |
|
|
|
|
$form->applyFilter('extra_'.$field_details['variable'], 'trim'); |
|
|
|
|
|
|
|
|
|
$allowed_picture_types = ['jpg', 'jpeg', 'png', 'gif']; |
|
|
|
|
$allowedPictureTypes = ['jpg', 'jpeg', 'png', 'gif']; |
|
|
|
|
$form->addRule( |
|
|
|
|
'extra_'.$field_details['variable'], |
|
|
|
|
get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')', |
|
|
|
|
get_lang('OnlyImagesAllowed').' ('.implode(',', $allowedPictureTypes).')', |
|
|
|
|
'filetype', |
|
|
|
|
$allowed_picture_types |
|
|
|
|
$allowedPictureTypes |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ($freezeElement) { |
|
|
|
|
@ -1989,14 +1998,45 @@ class ExtraField extends Model |
|
|
|
|
array_key_exists($fieldVariable, $extraData) |
|
|
|
|
) { |
|
|
|
|
if (file_exists(api_get_path(SYS_UPLOAD_PATH).$extraData[$fieldVariable])) { |
|
|
|
|
$fieldTexts[] = Display::url( |
|
|
|
|
api_get_path(WEB_UPLOAD_PATH).$extraData[$fieldVariable], |
|
|
|
|
$linkToDelete = ''; |
|
|
|
|
$divItemId = $field_details['variable']; |
|
|
|
|
if (api_is_platform_admin()) { |
|
|
|
|
$url = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?type='.$this->type; |
|
|
|
|
$url .= '&a=delete_file&field_id='.$field_details['id'].'&item_id='.$itemId; |
|
|
|
|
|
|
|
|
|
$deleteId = $field_details['variable'].'_delete'; |
|
|
|
|
$form->addHtml(" |
|
|
|
|
<script> |
|
|
|
|
$(document).ready(function() { |
|
|
|
|
$('#".$deleteId."').on('click', function() { |
|
|
|
|
$.ajax({ |
|
|
|
|
type: 'GET', |
|
|
|
|
url: '".$url."', |
|
|
|
|
success: function(result) { |
|
|
|
|
if (result == 1) { |
|
|
|
|
$('#".$divItemId."').html('".get_lang('Deleted')."'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
</script> |
|
|
|
|
"); |
|
|
|
|
|
|
|
|
|
$linkToDelete = ' '.Display::url( |
|
|
|
|
Display::return_icon('delete.png', get_lang('Delete')), |
|
|
|
|
'javascript:void(0)', |
|
|
|
|
['id' => $deleteId] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
$fieldTexts[] = '<div id="'.$divItemId.'">'.Display::url( |
|
|
|
|
basename($extraData[$fieldVariable]), |
|
|
|
|
api_get_path(WEB_UPLOAD_PATH).$extraData[$fieldVariable], |
|
|
|
|
[ |
|
|
|
|
'title' => $field_details['display_text'], |
|
|
|
|
'target' => '_blank' |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
).$linkToDelete.'</div>'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|