Fix #2297 add tel_v2 and tel_intl_v2 extra var types with single input for phone number

This commit is contained in:
Kijin Sung 2024-03-27 00:20:18 +09:00
parent 9e8a61a147
commit 1b7657f581
3 changed files with 29 additions and 33 deletions

View file

@ -210,32 +210,10 @@ class ExtraItem
} }
return escape($value, false); return escape($value, false);
case 'tel' : case 'tel':
if(is_array($value)) case 'tel_v2':
{ case 'tel_intl':
$values = $value; case 'tel_intl_v2':
}
elseif(strpos($value, '|@|') !== FALSE)
{
$values = explode('|@|', $value);
}
elseif(strpos($value, ',') !== FALSE)
{
$values = explode(',', $value);
}
else
{
$values = array($value);
}
$values = array_values($values);
for($i = 0, $c = count($values); $i < $c; $i++)
{
$values[$i] = trim(escape($values[$i], false));
}
return $values;
case 'tel_intl' :
if(is_array($value)) if(is_array($value))
{ {
$values = $value; $values = $value;
@ -345,8 +323,10 @@ class ExtraItem
return ($value) ? sprintf('<a href="mailto:%s">%s</a>', $value, $value) : ""; return ($value) ? sprintf('<a href="mailto:%s">%s</a>', $value, $value) : "";
case 'tel' : case 'tel' :
case 'tel_v2' :
return $value ? implode('-', $value) : ''; return $value ? implode('-', $value) : '';
case 'tel_intl' : case 'tel_intl' :
case 'tel_intl_v2' :
$country_number = $value[0] ?? ''; $country_number = $value[0] ?? '';
$array_slice = $value ? array_slice($value, 1) : []; $array_slice = $value ? array_slice($value, 1) : [];
$phone_number = implode('-', $array_slice); $phone_number = implode('-', $array_slice);
@ -423,8 +403,13 @@ class ExtraItem
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[1] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel2" />'; $buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[1] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel2" />';
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[2] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel3" />'; $buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[2] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel3" />';
break; break;
// Phone Number v2 (single input)
case 'tel_v2' :
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[0] ?? '') . '" size="16" maxlength="16" class="rx_ev_tel_v2" />';
break;
// Select Country Number // Select Country Number
case 'tel_intl' : case 'tel_intl' :
case 'tel_intl_v2' :
$lang_type = Context::get('lang_type'); $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); $country_list = Rhymix\Framework\i18n::listCountries($lang_type === 'ko' ? Rhymix\Framework\i18n::SORT_NAME_KOREAN : Rhymix\Framework\i18n::SORT_NAME_ENGLISH);
$buff[] = '<select name="' . $column_name . '" class="select rx_ev_select rx_ev_select_country">'; $buff[] = '<select name="' . $column_name . '" class="select rx_ev_select rx_ev_select_country">';
@ -445,9 +430,16 @@ class ExtraItem
} }
} }
$buff[] = '</select>'; $buff[] = '</select>';
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[1] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel1" />'; if ($type === 'tel_intl_v2')
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[2] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel2" />'; {
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[3] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel3" />'; $buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[1] ?? '') . '" size="16" maxlength="16" class="rx_ev_tel_v2" />';
}
else
{
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[1] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel1" />';
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[2] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel2" />';
$buff[] = '<input type="tel" name="' . $column_name . '[]" value="' . ($value[3] ?? '') . '" size="4" maxlength="4" class="tel rx_ev_tel3" />';
}
break; break;
// Select Country // Select Country
case 'country': case 'country':

View file

@ -313,8 +313,10 @@ $lang->column_type = 'Column Type';
$lang->column_type_list['text'] = 'one-line text'; $lang->column_type_list['text'] = 'one-line text';
$lang->column_type_list['homepage'] = 'URL'; $lang->column_type_list['homepage'] = 'URL';
$lang->column_type_list['email_address'] = 'e-mail address'; $lang->column_type_list['email_address'] = 'e-mail address';
$lang->column_type_list['tel'] = 'phone number'; $lang->column_type_list['tel'] = 'Phone number (3 inputs)';
$lang->column_type_list['tel_intl'] = 'Phone number (International number)'; $lang->column_type_list['tel_v2'] = 'Phone number (1 input)';
$lang->column_type_list['tel_intl'] = 'International phone number (4 inputs)';
$lang->column_type_list['tel_intl_v2'] = 'International phone number (2 inputs)';
$lang->column_type_list['textarea'] = 'multi-line textarea'; $lang->column_type_list['textarea'] = 'multi-line textarea';
$lang->column_type_list['password'] = 'password'; $lang->column_type_list['password'] = 'password';
$lang->column_type_list['radio'] = 'radio button(radio)'; $lang->column_type_list['radio'] = 'radio button(radio)';

View file

@ -315,8 +315,10 @@ $lang->column_type = '형식';
$lang->column_type_list['text'] = '한줄 입력칸(text)'; $lang->column_type_list['text'] = '한줄 입력칸(text)';
$lang->column_type_list['homepage'] = 'URL 형식'; $lang->column_type_list['homepage'] = 'URL 형식';
$lang->column_type_list['email_address'] = '이메일 형식(email)'; $lang->column_type_list['email_address'] = '이메일 형식(email)';
$lang->column_type_list['tel'] = '전화번호 형식(phone)'; $lang->column_type_list['tel'] = '전화번호 (입력란 3개)';
$lang->column_type_list['tel_intl'] = '전화번호 형식 (국제번호)'; $lang->column_type_list['tel_v2'] = '전화번호 (입력란 1개)';
$lang->column_type_list['tel_intl'] = '국제전화번호 (입력란 4개)';
$lang->column_type_list['tel_intl_v2'] = '국제전화번호 (입력란 2개)';
$lang->column_type_list['textarea'] = '여러 줄 입력칸(textarea)'; $lang->column_type_list['textarea'] = '여러 줄 입력칸(textarea)';
$lang->column_type_list['password'] = '숨김 입력칸(password)'; $lang->column_type_list['password'] = '숨김 입력칸(password)';
$lang->column_type_list['radio'] = '단일 선택(radio)'; $lang->column_type_list['radio'] = '단일 선택(radio)';