From 0a625662f7dcb5444de06188b96a8806149bb194 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Tue, 8 Oct 2024 23:15:45 +0900 Subject: [PATCH] Add file upload type of extra vars --- common/lang/en.php | 1 + common/lang/ko.php | 1 + modules/extravar/models/Value.php | 8 +++++++ modules/extravar/skins/default/form.blade.php | 3 +++ .../default/form_types/file_upload.blade.php | 23 +++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 modules/extravar/skins/default/form_types/file_upload.blade.php diff --git a/common/lang/en.php b/common/lang/en.php index 78f7d5fc9..ba6fd677d 100644 --- a/common/lang/en.php +++ b/common/lang/en.php @@ -329,6 +329,7 @@ $lang->column_type_list['date'] = 'Date'; $lang->column_type_list['time'] = 'Time'; $lang->column_type_list['timezone'] = 'Time zone'; $lang->column_type_list['number'] = 'Number'; +$lang->column_type_list['file'] = 'File upload'; $lang->column_name = 'Column Name'; $lang->column_title = 'Column Title'; $lang->default_value = 'Default Value'; diff --git a/common/lang/ko.php b/common/lang/ko.php index f78d4c88e..592855710 100644 --- a/common/lang/ko.php +++ b/common/lang/ko.php @@ -331,6 +331,7 @@ $lang->column_type_list['date'] = '날짜'; $lang->column_type_list['time'] = '시간'; $lang->column_type_list['timezone'] = '표준 시간대'; $lang->column_type_list['number'] = '숫자'; +$lang->column_type_list['file'] = '파일 업로드'; $lang->column_name = '입력항목 이름'; $lang->column_title = '입력항목 제목'; $lang->default_value = '기본값'; diff --git a/modules/extravar/models/Value.php b/modules/extravar/models/Value.php index a776a3164..1d7ada4af 100644 --- a/modules/extravar/models/Value.php +++ b/modules/extravar/models/Value.php @@ -349,6 +349,12 @@ class Value return escape($value, false); } + // Process the file upload type. + if ($type === 'file') + { + return $value ? intval($value) : null; + } + // Escape and return all other types. return escape($value, false); } @@ -423,6 +429,8 @@ class Value return sprintf('%s-%s-%s', substr($value, 0, 4), substr($value, 4, 2), substr($value, 6, 2)); case 'timezone': return DateTime::getTimezoneList()[$value] ?? ''; + case 'file': + return $value; default: return $value; } diff --git a/modules/extravar/skins/default/form.blade.php b/modules/extravar/skins/default/form.blade.php index f1a387a80..3f7453430 100644 --- a/modules/extravar/skins/default/form.blade.php +++ b/modules/extravar/skins/default/form.blade.php @@ -41,6 +41,9 @@ @case ('time') @include ('form_types/datetime') @break + @case ('file') + @include ('form_types/file_upload') + @break @default @include ('form_types/text') @endswitch diff --git a/modules/extravar/skins/default/form_types/file_upload.blade.php b/modules/extravar/skins/default/form_types/file_upload.blade.php new file mode 100644 index 000000000..3da47a804 --- /dev/null +++ b/modules/extravar/skins/default/form_types/file_upload.blade.php @@ -0,0 +1,23 @@ +@if ($value) + @php + $file = FileModel::getFile(intval($value)); + @endphp + @if ($file) +
+ {{ $file->source_filename }} + ({{ FileHandler::filesize($file->file_size) }}) + +
+ @endif +@endif + +is_required)) + @disabled(toBool($definition->is_disabled)) + @readonly(toBool($definition->is_readonly)) +/>