XE 개발자 포럼 - 아이디어/ 기능 제안
프로젝트 관리 모듈로 아이디어/ 기능 제안 받는 장소를 이동하게 되어서 더 이상 글을 올리실 수 없습니다.
글수 1,076
안녕하세요. 확장변수가 조금 개선되었으면 하는 마음에 글을 씁니다.
현재도 여러 종류가 있기는 하지만 상업적인 목적 등 다양한 용도에 쓰기에는 부족한 면이 있고,
전화번호 및 이메일 등은 점만 찍어도 들어가는 등 필터링도 전혀 되지 않아 겨우 모양새만 갖춘 것 같기도 합니다.
개인적으로는 다음 여섯 가지를 추가해서 쓰고 있는데,
한국 유선전화 kr_tel
한국 무선전화 kr_mobile
한국주소(zip) kr_zip
단일 선택(radio) radio
주민등록번호 형식 regnum
일시 (년월일시분초) datetime
입니다. kr_zip은 막아둔 것을 푼 것에 불과하니 다섯 개라고 할 수 있네요.
우선 전화번호의 경우, 기존에 tel이 있지만 전화번호 형식 및 길이에 따른 검증이 전혀 되지 않고,
지역번호 및 이통사 번호가 나오지 않아 편의성이 약간 떨어집니다.
그러나 제로보드가 한국에서만 쓰이는 것이 아니므로 두 개의 타입을 별도로 추가한 것입니다.
주소의 경우 상업적 홈페이지를 운영하시는 분들이나 장터 등을 여시는 분들께는 꼭 필요한 부분이 아닌가 합니다. 제로XE에서는 회원 가입시만 받을 수 있게 되어있지만, 쇼핑몰에서 게시판 구조로 비회원 주문을 받거나 회원 장터 게시판에서 물건과 가격 그리고 연락처 등을 올릴 경우에는 있는 쪽이 확실히 편리합니다.
이에 대해서는 블루게이트님의 팁이 있습니다.
'단일 선택 (radio)'는 기존의 '단일 선택'이 select로 되어 있는 것을 radio로 변경한 것입니다. 그렇다면 스킨에서 취사선택하면 되는 것이 아니냐고 생각할 수 있지만 폼 종류에 따라 두 가지를 각각 사용할 때가 있습니다. select는 간단한 사항에 좋고 radio는 펼쳐놓아 분량이 많은 내용 가운데 선택하기에 부담이 없어 좋은 거지요.
일시(datetime)는 문자 그대로 기존의 날짜(date)에 시간(time)을 추가한 것입니다. 아마도 일정이나 제가 만든 허접한 팝업 관리 스킨 등에서 시작일시와 종료일시를 정할 때 쓰일 수 있지 않을까 합니다. 대단한 것은 아니고 본디 jscalendar에 있는 기능을 활용한 것입니다.
끝으로 주민등록 번호는, 이것이 기본 항목에 빠져 있는 이유에는 제로보드4가 조성한 웹 풍토에 대한 반성이 없지 않은 것 같으므로 논외로 합니다.
이상이 제가 사이트를 만들때 갖추어 놓고 쓰는 변수들인데요. 쓰면서 다른 분들도 필요한 부분일 것 같다는 생각을 하는데 이것은 조언이 필요한 부분입니다. 개인적으로는 매번 손수 수정하자니 분량이 너무 많아 추후에는 포함되었으면 하는 것인데, 애드온과 스킨 만으로 해결하기에는 다음의 두 파일에서 수정되는 내용을 어찌할 수 없기 때문입니다.
/zbxe/modules/board/tpl/board_insert.html (214, kr_zip 막아둔 것 해제)
/zbxe/common/lang/ko.lang.php (type 추가)
현재도 여러 종류가 있기는 하지만 상업적인 목적 등 다양한 용도에 쓰기에는 부족한 면이 있고,
전화번호 및 이메일 등은 점만 찍어도 들어가는 등 필터링도 전혀 되지 않아 겨우 모양새만 갖춘 것 같기도 합니다.
개인적으로는 다음 여섯 가지를 추가해서 쓰고 있는데,
한국 유선전화 kr_tel
한국 무선전화 kr_mobile
한국주소(zip) kr_zip
단일 선택(radio) radio
주민등록번호 형식 regnum
일시 (년월일시분초) datetime
입니다. kr_zip은 막아둔 것을 푼 것에 불과하니 다섯 개라고 할 수 있네요.
우선 전화번호의 경우, 기존에 tel이 있지만 전화번호 형식 및 길이에 따른 검증이 전혀 되지 않고,
지역번호 및 이통사 번호가 나오지 않아 편의성이 약간 떨어집니다.
그러나 제로보드가 한국에서만 쓰이는 것이 아니므로 두 개의 타입을 별도로 추가한 것입니다.
<!-- 한국 유선전화, 무선전화 -->
<!--@elseif($val->type == 'kr_tel' || $val->type == 'kr_mobile')-->
<input type="hidden" name="{$val->column_name}" value="{htmlspecialchars($val->value)}" />
{@ $val->value = explode('-',$val->value) }
<select name="tmp_{$val->column_name}_0" onblur="krtel_changed('{$val->column_name}')">
<!--@if($val->type == 'kr_tel')-->
<option value="02">02</option>
<option value="031">031</option>
<option value="032">032</option>
<option value="033">033</option>
<option value="041">041</option>
<option value="042">042</option>
<option value="043">043</option>
<option value="051">051</option>
<option value="052">052</option>
<option value="053">053</option>
<option value="061">061</option>
<option value="062">062</option>
<option value="063">063</option>
<option value="064">064</option>
<!--@else-->
<option value="010">010</option>
<option value="011">011</option>
<option value="016">016</option>
<option value="017">017</option>
<option value="018">018</option>
<option value="019">019</option>
<!--@end-->
</select>
<input type="text" name="tmp_{$val->column_name}_1" value="{htmlspecialchars($val->value[1])}" size="4" maxlength="4" class="inputTypeText" onblur="krtel_changed('{$val->column_name}')"/>
<input type="text" name="tmp_{$val->column_name}_2" value="{htmlspecialchars($val->value[2])}" size="4" maxlength="4" class="inputTypeText" onblur="krtel_changed('{$val->column_name}')"/>
주소의 경우 상업적 홈페이지를 운영하시는 분들이나 장터 등을 여시는 분들께는 꼭 필요한 부분이 아닌가 합니다. 제로XE에서는 회원 가입시만 받을 수 있게 되어있지만, 쇼핑몰에서 게시판 구조로 비회원 주문을 받거나 회원 장터 게시판에서 물건과 가격 그리고 연락처 등을 올릴 경우에는 있는 쪽이 확실히 편리합니다.
이에 대해서는 블루게이트님의 팁이 있습니다.
'단일 선택 (radio)'는 기존의 '단일 선택'이 select로 되어 있는 것을 radio로 변경한 것입니다. 그렇다면 스킨에서 취사선택하면 되는 것이 아니냐고 생각할 수 있지만 폼 종류에 따라 두 가지를 각각 사용할 때가 있습니다. select는 간단한 사항에 좋고 radio는 펼쳐놓아 분량이 많은 내용 가운데 선택하기에 부담이 없어 좋은 거지요.
<!-- 단일 선택 (radio) -->
<!--@elseif($val->type == 'radio')-->
<!--@if($val->default)-->
<!--@foreach($val->default as $v)-->
<input type="radio" name="{$val->column_name}" value="{$v}" <!--@if($v == $val->value)-->checked="checked"<!--@end--> />{$v}
<!--@end-->
<!--@end-->일시(datetime)는 문자 그대로 기존의 날짜(date)에 시간(time)을 추가한 것입니다. 아마도 일정이나 제가 만든 허접한 팝업 관리 스킨 등에서 시작일시와 종료일시를 정할 때 쓰일 수 있지 않을까 합니다. 대단한 것은 아니고 본디 jscalendar에 있는 기능을 활용한 것입니다.
<!-- 일시 입력 -->
<!--@elseif($val->type == 'datetime')-->
<input type="hidden" name="{$val->column_name}" id="date_{$val->column_name}" value="{$val->value}" />
<div class="display_date" id="str_{$val->column_name}">{zdate($val->value,"Y-m-d H:i:s")}</div>
<script type="text/javascript">
Calendar.setup( { firstDay : 0, inputField : "date_{$val->column_name}", ifFormat : "%Y%m%d%H%M%S", displayArea : "str_{$val->column_name}", daFormat : "%Y-%m-%d %H:%M:%S", showsTime : true, timeFormat : 24});
</script>끝으로 주민등록 번호는, 이것이 기본 항목에 빠져 있는 이유에는 제로보드4가 조성한 웹 풍토에 대한 반성이 없지 않은 것 같으므로 논외로 합니다.
이상이 제가 사이트를 만들때 갖추어 놓고 쓰는 변수들인데요. 쓰면서 다른 분들도 필요한 부분일 것 같다는 생각을 하는데 이것은 조언이 필요한 부분입니다. 개인적으로는 매번 손수 수정하자니 분량이 너무 많아 추후에는 포함되었으면 하는 것인데, 애드온과 스킨 만으로 해결하기에는 다음의 두 파일에서 수정되는 내용을 어찌할 수 없기 때문입니다.
/zbxe/modules/board/tpl/board_insert.html (214, kr_zip 막아둔 것 해제)
/zbxe/common/lang/ko.lang.php (type 추가)
Setzer Gabbiani


