From c26e242fdfd33ac2b0e88426955fa5a5b0a419c8 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 15 Apr 2024 01:08:45 +0900 Subject: [PATCH] Use extravar module skin in member edit page, too --- modules/extravar/skins/default/form.blade.php | 6 +- .../default/form_types/checkbox.blade.php | 60 +++-- .../skins/default/form_types/tel.blade.php | 2 +- modules/member/member.admin.view.php | 212 +++--------------- 4 files changed, 83 insertions(+), 197 deletions(-) diff --git a/modules/extravar/skins/default/form.blade.php b/modules/extravar/skins/default/form.blade.php index 0fb80bd12..8bbe3a25a 100644 --- a/modules/extravar/skins/default/form.blade.php +++ b/modules/extravar/skins/default/form.blade.php @@ -45,6 +45,8 @@ @include ('form_types/text') @endswitch -@if ($desc) -

{{ nl2br(escape(Context::replaceUserLang($definition->desc), false)) }}

+@if (!empty($desc)) +

+ {{ nl2br(escape(Context::replaceUserLang($definition->desc), false)) }} +

@endif diff --git a/modules/extravar/skins/default/form_types/checkbox.blade.php b/modules/extravar/skins/default/form_types/checkbox.blade.php index be516f021..9e3214e6d 100644 --- a/modules/extravar/skins/default/form_types/checkbox.blade.php +++ b/modules/extravar/skins/default/form_types/checkbox.blade.php @@ -1,19 +1,41 @@ - +@if ($parent_type === 'member') +
+ @foreach ($default ?? [] as $v) + @php + $column_suffix = $type === 'checkbox' ? '[]' : ''; + $tempid = $definition->getNextTempID(); + $is_checked = is_array($value) && in_array(trim($v), $value); + @endphp + + @endforeach +
+@else + +@endif diff --git a/modules/extravar/skins/default/form_types/tel.blade.php b/modules/extravar/skins/default/form_types/tel.blade.php index 3806d878e..eec05c332 100644 --- a/modules/extravar/skins/default/form_types/tel.blade.php +++ b/modules/extravar/skins/default/form_types/tel.blade.php @@ -10,7 +10,7 @@ $lang_sort = $lang_type === 'ko' ? Rhymix\Framework\i18n::SORT_NAME_KOREAN : Rhymix\Framework\i18n::SORT_NAME_ENGLISH; $countries = Rhymix\Framework\i18n::listCountries($lang_sort); @endphp - @foreach ($countries as $country) @php diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index bd1338d4a..a573d6c18 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -522,6 +522,7 @@ class MemberAdminView extends Member } $formTag->name = $formInfo->name; + // Default input fields if($formInfo->isDefaultForm) { if($formInfo->imageType) @@ -660,202 +661,63 @@ class MemberAdminView extends Member $inputTag .= ''; } } - else if($formInfo->name == 'homepage') + else if($formInfo->name == 'homepage' || $formInfo->name === 'blog') { $formTag->type = 'url'; - $inputTag = ''; - } - else if($formInfo->name == 'blog') - { - $formTag->type = 'url'; - $inputTag = ''; + $input = new Rhymix\Modules\Extravar\Models\Value(0, 1, '', 'url'); + $input->parent_type = 'member'; + $input->input_name = $formInfo->name; + $input->input_id = $formInfo->name; + $input->value = $memberInfo[$formInfo->name] ?? ''; + $inputTag = $input->getFormHTML(); } else { if($formInfo->name === 'nick_name' && ($member_config->allow_nickname_change ?? 'Y') === 'N' && !$isAdmin && !$isSignup) { - $readonly = 'readonly="readonly" '; + $readonly = 'Y'; } else { - $readonly = ''; + $readonly = 'N'; } $formTag->type = 'text'; - $inputTag = sprintf('', - $formInfo->name, - $formInfo->name, - $memberInfo[$formInfo->name], - $readonly); - + $input = new Rhymix\Modules\Extravar\Models\Value(0, 1, '', 'text'); + $input->parent_type = 'member'; + $input->input_name = $formInfo->name; + $input->input_id = $formInfo->name; + $input->value = $memberInfo[$formInfo->name] ?? ''; + $input->is_readonly = $readonly; + $inputTag = $input->getFormHTML(); } - }//end isDefaultForm + } + + // User-defined input fields else { $extendForm = $extend_form_list[$formInfo->member_join_form_srl]; - $replace = array('column_name' => $extendForm->column_name, 'value' => $extendForm->value); - $extentionReplace = array(); - $formTag->type = $extendForm->column_type; - if($extendForm->column_type == 'text') + $input = new Rhymix\Modules\Extravar\Models\Value(0, 1, '', $extendForm->column_type); + $input->parent_type = 'member'; + $input->input_name = $extendForm->column_name; + $input->input_id = $extendForm->column_name; + $input->value = $extendForm->value ?? ''; + $input->default = $extendForm->default_value ?? null; + if ($extendForm->column_type === 'tel' || $extendForm->column_type === 'tel_intl') { - $template = ''; - } - else if($extendForm->column_type == 'homepage') - { - $template = ''; - } - else if($extendForm->column_type == 'email_address') - { - $template = ''; - } - else if($extendForm->column_type == 'tel') - { - $extentionReplace = array( - 'tel_0' => $extendForm->value[0], - 'tel_1' => $extendForm->value[1], - 'tel_2' => $extendForm->value[2] - ); - $template = ' - - '; - } - else if($extendForm->column_type == 'tel_v2') - { - $extentionReplace = array('tel_0' => $extendForm->value[0] ?? ''); - $template = ''; - } - else if($extendForm->column_type == 'textarea') - { - $template = ''; - } - else if($extendForm->column_type == 'password') - { - $template = ''; - } - else if($extendForm->column_type == 'checkbox') - { - $template = ''; - if($extendForm->default_value) - { - $template = '
%s
'; - $__i = 0; - $optionTag = array(); - foreach($extendForm->default_value as $v) - { - $checked = ''; - if(is_array($extendForm->value) && in_array($v, $extendForm->value))$checked = 'checked="checked"'; - $optionTag[] = ''; - $__i++; - } - $template = sprintf($template, implode('', $optionTag)); - } - } - else if($extendForm->column_type == 'radio') - { - $template = ''; - if($extendForm->default_value) - { - $template = '
%s
'; - $optionTag = array(); - foreach($extendForm->default_value as $v) - { - if($extendForm->value == $v)$checked = 'checked="checked"'; - else $checked = ''; - $optionTag[] = ''; - } - $template = sprintf($template, implode('', $optionTag)); - } - } - else if($extendForm->column_type == 'select') - { - $template = ''; - $optionTag = array(); - $optionTag[] = sprintf('', $lang->cmd_select); - if($extendForm->default_value) - { - foreach($extendForm->default_value as $v) - { - if($v == $extendForm->value) $selected = 'selected="selected"'; - else $selected = ''; - $optionTag[] = sprintf('', $v, $selected, $v); - } - } - $template = sprintf($template, implode('', $optionTag)); - } - else if($extendForm->column_type == 'kr_zip') - { - $krzipModel = getModel('krzip'); - if($krzipModel && method_exists($krzipModel , 'getKrzipCodeSearchHtml' )) - { - $template = $krzipModel->getKrzipCodeSearchHtml($extendForm->column_name, $extendForm->value); - } - } - else if($extendForm->column_type == 'jp_zip') - { - $template = ''; - } - else if($extendForm->column_type == 'date') - { - $formattedValue = $extendForm->value ? sprintf('%s-%s-%s', substr($extendForm->value, 0, 4), substr($extendForm->value, 4, 2), substr($extendForm->value, 6, 2)) : ''; - $extentionReplace = array('date' => $formattedValue, 'cmd_delete' => $lang->cmd_delete); - $template = '' . - ' ' . - ''; - } - else if($extendForm->column_type == 'time') - { - $extentionReplace = array('time' => $extendForm->value, 'cmd_delete' => $lang->cmd_delete); - $template = ' ' . - ''; - } - else if ($extendForm->column_type == 'country') - { - $template = ''; - $optionTag = array(); - $optionTag[] = sprintf('', $lang->cmd_select); - $lang_type = Context::get('lang_type'); - $country_list = Rhymix\Framework\i18n::listCountries($lang_type === 'ko' ? Rhymix\Framework\i18n::SORT_NAME_KOREAN : Rhymix\Framework\i18n::SORT_NAME_ENGLISH); - foreach ($country_list as $country_info) - { - $selected = strval($extendForm->value) !== '' && $country_info->iso_3166_1_alpha3 == $extendForm->value ? ' selected="selected"' : ''; - $country_name = $lang_type === 'ko' ? $country_info->name_korean : $country_info->name_english; - $optionTag[] = sprintf('', $country_info->iso_3166_1_alpha3, $selected, $country_name); - } - $template = sprintf($template, implode('', $optionTag)); - } - else if ($extendForm->column_type == 'language') - { - $template = ''; - $optionTag = array(); - $optionTag[] = sprintf('', $lang->cmd_select); - $enable_language = Rhymix\Framework\Config::get('locale.enabled_lang'); - $supported_lang = Rhymix\Framework\Lang::getSupportedList(); - foreach ($enable_language as $lang_type) - { - $selected = strval($extendForm->value) !== '' && $lang_type == $extendForm->value ? ' selected="selected"' : ''; - $optionTag[] = sprintf('', $lang_type, $selected, $supported_lang[$lang_type]['name']); - } - $template = sprintf($template, implode('', $optionTag)); - } - else if ($extendForm->column_type == 'timezone') - { - $template = ''; - $optionTag = array(); - $optionTag[] = sprintf('', $lang->cmd_select); - $timezone_list = Rhymix\Framework\DateTime::getTimezoneList(); - foreach ($timezone_list as $key => $time_name) - { - $selected = strval($extendForm->value) !== '' && $key == $extendForm->value ? ' selected="selected"' : ''; - $optionTag[] = sprintf('', $key, $selected, $time_name); - } - $template = sprintf($template, implode('', $optionTag)); + $input->style = 'width:33.3px'; } + $inputTag = $input->getFormHTML(); - $replace = array_merge($extentionReplace, $replace); - $inputTag = preg_replace_callback('@%(\w+)%@', function($n) use($replace) { return $replace[$n[1]]; }, $template); - - if($extendForm->description) - $inputTag .= '

'.$extendForm->description.'

'; + if (!empty($extendForm->description)) + { + $inputTag = vsprintf('%s

%s

', [ + $inputTag, + $extendForm->description, + ]); + } } + $formTag->inputTag = $inputTag; $formTags[] = $formTag; }