Merge pull request #1475 from bjrambo/pr/new-ExtraVars

확장변수에 국가번호를 포함한 전화번호, 언어, 시간, 국가 선택할 수 있는 확장변수를 추가
This commit is contained in:
BJRambo 2020-12-07 18:22:40 +09:00 committed by GitHub
commit 1e21c8f43b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 165 additions and 4 deletions

View file

@ -236,6 +236,30 @@ class ExtraItem
}
return $values;
case 'tel_intl' :
if(is_array($value))
{
$values = $value;
}
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 'checkbox' :
case 'radio' :
case 'select' :
@ -300,7 +324,7 @@ class ExtraItem
* @return string Returns filtered value
*/
function getValue()
{
{
return $this->_getTypeValue($this->type, $this->value);
}
@ -323,13 +347,27 @@ class ExtraItem
case 'tel' :
return $value ? implode('-', $value) : '';
case 'tel_intl' :
$country_number = $value[0];
$array_slice = array_slice($value, 1);
$phone_number = implode('-', $array_slice);
return $value ? "+{$country_number}){$phone_number}": '';
case 'country':
$country_info = Rhymix\Framework\i18n::listCountries()[$value];
$lang_type = Context::get('lang_type');
$country_name = $lang_type === 'ko' ? $country_info->name_korean : $country_info->name_english;
return $country_name;
case 'textarea' :
return nl2br($value);
case 'date' :
return zdate($value, "Y-m-d");
case 'language':
return Rhymix\Framework\Lang::getSupportedList()[$value]['name'];
case 'timezone':
return Rhymix\Framework\DateTime::getTimezoneList()[$value];
case 'checkbox' :
case 'select' :
case 'radio' :
@ -386,6 +424,81 @@ class ExtraItem
$buff[] = '<input type="text" name="' . $column_name . '[]" value="' . $value[1] . '" size="4" maxlength="4" class="tel" />';
$buff[] = '<input type="text" name="' . $column_name . '[]" value="' . $value[2] . '" size="4" maxlength="4" class="tel" />';
break;
// Select Country Number
case 'tel_intl' :
$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);
$buff[] = '<select name="' . $column_name . '" class="select">';
foreach($country_list as $country_info)
{
if($country_info->calling_code)
{
$selected = '';
if(strval($value[0]) !== '' && $country_info->calling_code == $value[0])
{
$selected = ' selected="selected"';
}
// 3항식 사용시 따로 변수로 뽑아야 뒤의 스트링 만드는것의 중복된 코드가 줄어듬
$country_name = $lang_type === 'ko' ? $country_info->name_korean : $country_info->name_english;
$string = $country_name . "(+{$country_info->calling_code})";
$buff[] = ' <option value="' . $country_info->calling_code . '" ' . $selected . '>' . $string . '</option>';
}
}
$buff[] = '</select>';
$buff[] = '<input type="text" name="' . $column_name . '[]" value="' . $value[1] . '" size="4" maxlength="4" class="tel" />';
$buff[] = '<input type="text" name="' . $column_name . '[]" value="' . $value[2] . '" size="4" maxlength="4" class="tel" />';
$buff[] = '<input type="text" name="' . $column_name . '[]" value="' . $value[3] . '" size="4" maxlength="4" class="tel" />';
break;
// Select Country
case 'country':
$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);
$buff[] = '<select name="' . $column_name . '" class="select">';
foreach($country_list as $country_info)
{
$selected = '';
if (strval($value[0]) !== '' && $country_info->iso_3166_1_alpha3 == $value)
{
$selected = ' selected="selected"';
}
// 3항식 사용시 따로 변수로 뽑아야 뒤의 스트링 만드는것의 중복된 코드가 줄어듬
$country_name = $lang_type === 'ko' ? $country_info->name_korean : $country_info->name_english;
$string = $country_name;
$buff[] = ' <option value="' . $country_info->iso_3166_1_alpha3 . '" ' . $selected . '>' . $string . '</option>';
}
$buff[] = '</select>';
break;
// Select language
case 'language':
$enable_language = Rhymix\Framework\Config::get('locale.enabled_lang');
$supported_lang = Rhymix\Framework\Lang::getSupportedList();
$buff[] = '<select name="' . $column_name . '" class="select">';
foreach ($enable_language as $lang_type)
{
$selected = '';
if (strval($value) !== '' && $lang_type == $value)
{
$selected = ' selected="selected"';
}
$buff[] = ' <option value="' . $lang_type . '" ' . $selected . '>' . $supported_lang[$lang_type]['name'] . '</option>';
}
$buff[] = '</select>';
break;
// Select timezone
case 'timezone':
$timezone_list = Rhymix\Framework\DateTime::getTimezoneList();
$buff[] = '<select name="' . $column_name . '" class="select">';
foreach ($timezone_list as $key => $time_name)
{
$selected = '';
if (strval($value) !== '' && $key == $value)
{
$selected = ' selected="selected"';
}
$buff[] = ' <option value="' . $key . '" ' . $selected . '>' . $time_name . '</option>';
}
break;
// textarea
case 'textarea' :
$buff[] = '<textarea name="' . $column_name . '" rows="8" cols="42">' . $value . '</textarea>';

View file

@ -254,6 +254,7 @@ $lang->column_type_list['text'] = 'eine Zeile Text';
$lang->column_type_list['homepage'] = 'Url-Adresse';
$lang->column_type_list['email_address'] = 'E-Mail';
$lang->column_type_list['tel'] = 'Telefonnummer';
$lang->column_type_list['tel_intl'] = 'Telefonnummer (Internationale)';
$lang->column_type_list['textarea'] = 'Mehrere Zeilen Text';
$lang->column_type_list['password'] = 'Passwort Text';
$lang->column_type_list['radio'] = 'Radiobutton';
@ -261,6 +262,9 @@ $lang->column_type_list['select'] = 'Nur eine Auswahl';
$lang->column_type_list['checkbox'] = 'Multiple Auswahl';
$lang->column_type_list['kr_zip'] = 'Postleitzahl(aber nur in Korean)';
$lang->column_type_list['date'] = 'Datum(dd / mm /jjjj)';
$lang->column_type_list['country'] = 'Land';
$lang->column_type_list['language'] = 'Sprache';
$lang->column_type_list['timezone'] = 'Zeitzone';
$lang->column_name = 'Spaltenname';
$lang->column_title = 'Spaltentitel';
$lang->default_value = 'Standardwert';

View file

@ -302,6 +302,7 @@ $lang->column_type_list['text'] = 'one-line text';
$lang->column_type_list['homepage'] = 'URL';
$lang->column_type_list['email_address'] = 'e-mail address';
$lang->column_type_list['tel'] = 'phone number';
$lang->column_type_list['tel_intl'] = 'Phone number (International number)';
$lang->column_type_list['textarea'] = 'multi-line textarea';
$lang->column_type_list['password'] = 'password';
$lang->column_type_list['radio'] = 'radio button(radio)';
@ -309,6 +310,9 @@ $lang->column_type_list['select'] = 'single select box';
$lang->column_type_list['checkbox'] = 'checkbox(multiple selection)';
$lang->column_type_list['kr_zip'] = 'zip code(Korean)';
$lang->column_type_list['date'] = 'date(yyyy/mm/dd)';
$lang->column_type_list['country'] = 'country';
$lang->column_type_list['language'] = 'language';
$lang->column_type_list['timezone'] = 'Time zone';
$lang->column_name = 'Column Name';
$lang->column_title = 'Column Title';
$lang->default_value = 'Default Value';
@ -368,4 +372,4 @@ $lang->image_quality = 'Quality';
$lang->standard = 'Standard';
$lang->unlimited = 'Unlimited';
$lang->admin = 'Admin';
$lang->stop = 'Stop';
$lang->stop = 'Stop';

View file

@ -206,12 +206,16 @@ $lang->column_type_list['text'] = 'Texto sin cambio de línea';
$lang->column_type_list['homepage'] = 'URL de la página web';
$lang->column_type_list['email_address'] = 'Correo Electrónico';
$lang->column_type_list['tel'] = 'Número de teléfono';
$lang->column_type_list['tel_intl'] = 'Número de teléfono código internacional';
$lang->column_type_list['textarea'] = 'Texto multi-linea';
$lang->column_type_list['password'] = 'Texto de la contraseña';
$lang->column_type_list['select'] = 'Selección(selección individual)';
$lang->column_type_list['checkbox'] = 'Caja de chequeo(selección múltiple)';
$lang->column_type_list['kr_zip'] = 'Código postal (corea)';
$lang->column_type_list['date'] = 'fecha(dd/mm/aaaa)';
$lang->column_type_list['country'] = 'país';
$lang->column_type_list['language'] = 'Idiomas';
$lang->column_type_list['timezone'] = 'Zona horaria';
$lang->column_name = 'Nombre de la Columna';
$lang->column_title = 'Título de la Columna';
$lang->default_value = 'Valor por defecto';

View file

@ -201,12 +201,16 @@ $lang->column_type_list['text'] = 'Texte en une seul ligne';
$lang->column_type_list['homepage'] = 'URL';
$lang->column_type_list['email_address'] = 'Mél';
$lang->column_type_list['tel'] = 'Numéro de Telephone';
$lang->column_type_list['tel_intl'] = 'Numéro de téléphone (Numéro international)';
$lang->column_type_list['textarea'] = 'Texte en plusieurs lignes';
$lang->column_type_list['password'] = 'Texte de mot de passe';
$lang->column_type_list['select'] = 'Case d\'option(seul choix)';
$lang->column_type_list['checkbox'] = 'Case à cocher(multichoix)';
$lang->column_type_list['kr_zip'] = 'Code postal(coréen)';
$lang->column_type_list['date'] = 'Jour(yyyy/mm/dd)';
$lang->column_type_list['country'] = 'pays';
$lang->column_type_list['language'] = 'Langue';
$lang->column_type_list['timezone'] = 'Fuseau horaire';
$lang->column_name = 'Nom de la colonne';
$lang->column_title = 'Titre de la colonne';
$lang->default_value = 'Valeur par défaut';

View file

@ -265,6 +265,7 @@ $lang->column_type_list['text'] = '入力フィールド(text)';
$lang->column_type_list['homepage'] = 'URLタイプ(url)';
$lang->column_type_list['email_address'] = 'メールアドレスタイプ(email)';
$lang->column_type_list['tel'] = '電話番号タイプ(phone)';
$lang->column_type_list['tel_intl'] = '電話番号(国際番号)';
$lang->column_type_list['textarea'] = 'テキストエリア(textarea)';
$lang->column_type_list['password'] = 'パスワードフィールド(password)';
$lang->column_type_list['radio'] = 'ラジオボタン(radio)';
@ -272,6 +273,9 @@ $lang->column_type_list['select'] = 'ひとつ選択(select)';
$lang->column_type_list['checkbox'] = 'チェックボックス(checkbox)';
$lang->column_type_list['kr_zip'] = '韓国住所(zip)';
$lang->column_type_list['date'] = '日付(年月日)';
$lang->column_type_list['country'] = '国家';
$lang->column_type_list['language'] = '言語';
$lang->column_type_list['timezone'] = 'タイムゾーン';
$lang->column_name = '入力項目名';
$lang->column_title = '入力項目のタイトル';
$lang->default_value = 'デフォルト値';

View file

@ -305,6 +305,7 @@ $lang->column_type_list['text'] = '한줄 입력칸(text)';
$lang->column_type_list['homepage'] = 'URL 형식';
$lang->column_type_list['email_address'] = '이메일 형식(email)';
$lang->column_type_list['tel'] = '전화번호 형식(phone)';
$lang->column_type_list['tel_intl'] = '전화번호 형식 (국제번호)';
$lang->column_type_list['textarea'] = '여러 줄 입력칸(textarea)';
$lang->column_type_list['password'] = '숨김 입력칸(password)';
$lang->column_type_list['radio'] = '단일 선택(radio)';
@ -312,6 +313,9 @@ $lang->column_type_list['select'] = '단일 선택(single select)';
$lang->column_type_list['checkbox'] = '다중 선택(checkbox)';
$lang->column_type_list['kr_zip'] = '한국주소(zip)';
$lang->column_type_list['date'] = '일자(연월일)';
$lang->column_type_list['country'] = '국가';
$lang->column_type_list['language'] = '언어';
$lang->column_type_list['timezone'] = '시간대';
$lang->column_name = '입력항목 이름';
$lang->column_title = '입력항목 제목';
$lang->default_value = '기본값';
@ -372,4 +376,4 @@ $lang->image_quality = '화질';
$lang->standard = '표준';
$lang->unlimited = '제한 없음';
$lang->admin = '관리자';
$lang->stop = '중지';
$lang->stop = '중지';

View file

@ -220,12 +220,16 @@ $lang->column_type_list['text'] = 'Нэг мөрөөр оруулах(text)';
$lang->column_type_list['homepage'] = 'Веб хуудас хэлбэр(url)';
$lang->column_type_list['email_address'] = 'Мэйл хэлбэр(email)';
$lang->column_type_list['tel'] = 'Утасны дугаар хэлбэр(phone)';
$lang->column_type_list['tel_intl'] = 'Утасны дугаар (Олон улсын дугаар)';
$lang->column_type_list['textarea'] = 'Олон мөрөөр оруулах(textarea)';
$lang->column_type_list['radio'] = 'Нэг eдeр сонгох(radio)';
$lang->column_type_list['select'] = 'Ганц сонголт хийх(select)';
$lang->column_type_list['checkbox'] = 'Олон сонголт хийх(checkbox)';
$lang->column_type_list['kr_zip'] = 'Солонгос хаяг(zip)';
$lang->column_type_list['date'] = 'Онсар (Жил сар өдөр)';
$lang->column_type_list['country'] = 'улс';
$lang->column_type_list['language'] = 'улс';
$lang->column_type_list['timezone'] = 'Цагийн бүс';
$lang->column_name = 'Баганын нэр';
$lang->column_title = 'Баганын гарчиг';
$lang->default_value = 'Үндсэн байдал';

View file

@ -216,12 +216,16 @@ $lang->confirm_update = 'Обновить?';
$lang->column_type = 'Тип колонки';
$lang->column_type_list['text'] = 'Однострочное окно ввода';
$lang->column_type_list['tel'] = 'номер телефона';
$lang->column_type_list['tel_intl'] = 'Телефон (Международный номер)';
$lang->column_type_list['textarea'] = 'Многострочное окно ввода';
$lang->column_type_list['radio'] = 'Кнопка радио(радио)';
$lang->column_type_list['select'] = 'Выбор(один вариант)';
$lang->column_type_list['checkbox'] = 'Чекбокс(мульти вариант)';
$lang->column_type_list['kr_zip'] = 'Почтовый индекс(Корейский)';
$lang->column_type_list['date'] = 'Дата(гггг / мм / дд)';
$lang->column_type_list['country'] = 'страна';
$lang->column_type_list['language'] = 'язык';
$lang->column_type_list['timezone'] = 'Часовой пояс';
$lang->column_name = 'Имя колонки';
$lang->column_title = 'Заголовок колонки';
$lang->default_value = 'Стандартное значение';

View file

@ -246,12 +246,16 @@ $lang->column_type = 'Sütun Turu';
$lang->column_type_list['text'] = 'tek satırlık metin';
$lang->column_type_list['email_address'] = 'e-posta';
$lang->column_type_list['tel'] = 'telefon numarası';
$lang->column_type_list['tel_intl'] = 'Telefon numarası (Uluslararası numara)';
$lang->column_type_list['textarea'] = 'cok satırlı metin alanı';
$lang->column_type_list['radio'] = 'radyo tuşu(radyo)';
$lang->column_type_list['select'] = 'kutuyu seç(tekli seçim)';
$lang->column_type_list['checkbox'] = 'onay kutusu(çoklu seçim)';
$lang->column_type_list['kr_zip'] = 'zip kodu(Kore)';
$lang->column_type_list['date'] = 'tarih(gg/aa/yyyy)';
$lang->column_type_list['country'] = 'ülke';
$lang->column_type_list['language'] = 'dil';
$lang->column_type_list['timezone'] = 'Saat dilimi';
$lang->column_name = 'Sütun adı';
$lang->column_title = 'Sutun başlığı';
$lang->default_value = 'Varsayılan Değer';

View file

@ -207,11 +207,15 @@ $lang->column_type_list['text'] = 'Ô nhập liệu';
$lang->column_type_list['homepage'] = 'URL';
$lang->column_type_list['email_address'] = 'Email';
$lang->column_type_list['tel'] = 'Số điện thoại';
$lang->column_type_list['tel_intl'] = 'Số điện thoại (số quốc tế)';
$lang->column_type_list['textarea'] = 'Khu vực nội dung';
$lang->column_type_list['select'] = 'Ô chọn(Một lựa chọn)';
$lang->column_type_list['checkbox'] = 'Ô chọn(Nhiều lựa chọn)';
$lang->column_type_list['kr_zip'] = 'Mã số bưu điện(Korean)';
$lang->column_type_list['date'] = 'Ngày(yyyy/mm/dd)';
$lang->column_type_list['country'] = 'đất nước';
$lang->column_type_list['language'] = 'ngôn ngữ';
$lang->column_type_list['timezone'] = 'Múi giờ';
$lang->column_name = 'Tên cột';
$lang->column_title = 'Tiêu đề cột';
$lang->default_value = 'Giá trị mặc định';

View file

@ -249,6 +249,7 @@ $lang->column_type_list['text'] = '单行文本输入区(text)';
$lang->column_type_list['homepage'] = '网址格式(url)';
$lang->column_type_list['email_address'] = '邮件格式(email)';
$lang->column_type_list['tel'] = '电话号码格式(phone)';
$lang->column_type_list['tel_intl'] = '电话号码格式 (国际号码)';
$lang->column_type_list['textarea'] = '多行文本框(textarea)';
$lang->column_type_list['password'] = '密码输入(password)';
$lang->column_type_list['radio'] = '单选框(radio)';
@ -256,6 +257,9 @@ $lang->column_type_list['select'] = '下拉列表框(select)';
$lang->column_type_list['checkbox'] = '复选框(checkbox)';
$lang->column_type_list['kr_zip'] = '韩国邮编(zip)';
$lang->column_type_list['date'] = '日期(年月日)';
$lang->column_type_list['country'] = '国家';
$lang->column_type_list['language'] = '语言';
$lang->column_type_list['timezone'] = '时区';
$lang->column_name = '项目名';
$lang->column_title = '项目标题';
$lang->default_value = '缺省值';

View file

@ -248,6 +248,7 @@ $lang->column_type_list['text'] = '單行文字';
$lang->column_type_list['homepage'] = '網址格式';
$lang->column_type_list['email_address'] = '電子郵件';
$lang->column_type_list['tel'] = '電話號碼格式(phone)';
$lang->column_type_list['tel_intl'] = '電話號碼格式 (國際號碼)';
$lang->column_type_list['textarea'] = '文字區域(textarea)';
$lang->column_type_list['password'] = '密碼輸入(password)';
$lang->column_type_list['radio'] = '選項按紐(radio)';
@ -255,6 +256,9 @@ $lang->column_type_list['select'] = '下拉式選單(select)';
$lang->column_type_list['checkbox'] = '核取方塊(checkbox)';
$lang->column_type_list['kr_zip'] = '韓國郵編(zip)';
$lang->column_type_list['date'] = '日期(年月日)';
$lang->column_type_list['country'] = '國家';
$lang->column_type_list['language'] = '語言';
$lang->column_type_list['timezone'] = '時區';
$lang->column_name = '項目名稱';
$lang->column_title = '項目標題';
$lang->default_value = '預設值';