XETOWN

호수 공원

XE 사용에 대한 여러가지 정보들을 공유할 수 있습니다.
조회 수 214 추천 수 5 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

안녕하세요! XE타운 여러분~!?

 

datepicker.jpg

 

게시판 설정 -> 사용자 정의에서 형식을 일자(연월일)로 선택하고

글을 쓰면 위에 스샷처럼 날짜만 선택이 가능합니다.

 

datetimepicker.jpg

 

 

저는 위 스샷과 같이 날짜에 추가적으로 시간 데이터까지 필요하게 되어 별도의 작업을 진행 하였습니다.

 

해당 부분은 코어를 수정하는것 같아.. 만약 해당파일이 수정이되면 다시 패치해줘야 하는 번거로움이 있습니다.

참고 하시고 하는 방법은 아래를 읽어주시기 바랍니다.

 


 

 

우선 필요한 준비물은 jQuery-Timepicker-Addon JavaScript 패키지가 필요 합니다.

 

https://github.com/trentrichardson/jQuery-Timepicker-Addon.git

해당 파일은 위 주소에서 받으시면 됩니다.

 

파일을 받고 압축 파일을 열어보면

 

2016-09-01_124933.jpg

 

위와 같은 파일들을 확인 할 수 있는데 여기서 필요한 파일들은

 

 

2016-09-01_125040.jpg

 

dist 폴더에 있는 

jquery-ui-sliderAccess.js

jquery-ui-timepicker-addon.min.js

jquery-ui-timepicker-addon.min.css

 

파일 3개와

 

2016-09-01_125104.jpg

 

dist -> i18n 폴더안에 

jquery-ui-timepicker-ko.js

파일 1개가 필요 합니다.

 

2016-09-01_125509.jpg

xe설치경로/common/js/plugins/ 로 들어가서

위 파일 4개를 ui.datetimepicker 폴더를 만들어 주시고 넣어 줍니다.

 

2016-09-01_125733.jpg

 

그리고 xe설치경로/common/js/plugins/ui 에 들어가서

jquery-ui.min.js

jquery-ui.min.css

images 폴더

 

2개의 파일과 images 폴더를 복사해서 ui.datetimepicke 폴더에 넣어 줍니다.

 

2016-09-01_130037.jpg

 

그러면 최종적으로 ui.datetimepicke 폴더에는 위와 같이 파일들이 모여 있겠죠?

마지막으로 파일 하나를 더 추가해줘야하는데 바로

 

plugin.load

파일을 만들고 그 파일에 

jquery-ui.min.js
jquery-ui.min.css
jquery-ui-sliderAccess.js
jquery-ui-timepicker-addon.min.css
jquery-ui-timepicker-addon.min.js
jquery-ui-timepicker-ko.js

라고 내용을 적어주시고 저장해주시기 바랍니다.

 

그러면 timepicker를 사용할 준비는 끝났습니다.

 

// 귀찮으신 분들은 구글 드라이브에 파일을 올렸으니 받아서 해당 경로에 압축을 풀고 넣어주세요 (링크)

 

 

이제는 소스를 약간 수정해야 합니다.

 

2016-09-01_130708.jpg

 xe설치경로/classes/extravar/Extravar.class.php  수정

 

case 'date' :
   //return zdate($value, "Y-m-d");
   return zdate($value, "Y-m-d H:i:s");

 

위 경로에 case 'date' :

부분을 기본 return zdate($value, "Y-m-d"); 는 주석 처리 해주시고 위와같이 변경해주세요

 

case 'date' :
// datepicker javascript plugin load
// Context::loadJavascriptPlugin('ui.datepicker');
// $buff[] = '<input type="hidden" name="' . $column_name . '" value="' . $value . '" />'; 
// $buff[] = '<input type="text" id="date_' . $column_name . '" value="' . zdate($value, 'Y-m-d H:i:s') . '" class="date" />';
// $buff[] = '<input type="button" value="' . lang('cmd_delete') . '" class="btn" id="dateRemover_' . $column_name . '" />';
// $buff[] = '<script type="text/javascript">';
// $buff[] = '//<![CDATA[';
// $buff[] = '(function($){';
// $buff[] = '$(function(){';
// $buff[] = '  var option = { dateFormat: "yy-mm-dd", changeMonth:true, changeYear:true, gotoCurrent:false, yearRange:\'-100:+10\', onSelect:function(){';
// $buff[] = '    $(this).prev(\'input[type="hidden"]\').val(this.value.replace(/-/g,""))}';
// $buff[] = '  };';
// $buff[] = '  $.extend(option,$.datepicker.regional[\'' . Context::getLangType() . '\']);';
// $buff[] = '  $("#date_' . $column_name . '").datepicker(option);';
// $buff[] = '  $("#dateRemover_' . $column_name . '").click(function(){';
// $buff[] = '    $(this).siblings("input").val("");';
// $buff[] = '    return false;';
// $buff[] = '  })';
// $buff[] = '});';
// $buff[] = '})(jQuery);';
// $buff[] = '//]]>';
// $buff[] = '</script>';
Context::loadJavascriptPlugin('ui.datetimepicker');
$buff[] = '<input type="hidden" name="' . $column_name . '" value="' . $value . '" />'; 
$buff[] =  '<input type="text" id="date_' . $column_name . '" value="' . zdate($value, 'Y-m-d H:i:s') . '" class="date" />';
$buff[] =  '<input type="button" value="' . lang('cmd_delete') . '" class="btn" id="dateRemover_' . $column_name . '" />';
$buff[] =  '<script type="text/javascript">';
$buff[] = '//<![CDATA[';
$buff[] =  '(function($){';
$buff[] =  '$(function(){';
$buff[] =  '  var option = { timeFormat: "HH:mm:ss", changeMonth:true, changeYear:true, gotoCurrent:true, yearRange:\'-100:+10\',  onSelect:function(){';
$buff[] =  '    $(this).prev(\'input[type="hidden"]\').val(this.value.replace(/\D/g,""))}';
$buff[] =  '  };';
$buff[] =  '  $("#date_' . $column_name . '").datetimepicker(option);';
$buff[] =  '  $("#dateRemover_' . $column_name . '").click(function(){';
$buff[] =  '    $(this).siblings("input").val("");';
$buff[] =  '    return false;';
$buff[] =  '  })';
$buff[] =  '});';
$buff[] =  '})(jQuery);';
$buff[] = '//]]>';
$buff[] = '</script>';
break;

 

그리고 위와 같이

Context::loadJavascriptPlugin('ui.datepicker'); 부분을 컨트롤+F 로 찾아서

기존 datepicker 부분을 datetimepicker로 변경해 줍니다.

 

그러면 사용자정의에서 날짜와 시간을 선택 할 수 있습니다.

 

 

 

 

 

  • profile
    구름이 2016.09.01 16:08:58
    좋은팁 감사드립니다~!
  • profile
    윤삼 2016.09.01 19:18:49
    생각지도 못해봤던 팁이네요. 감사합니다~
  • profile
    데버 2016.09.06 09:57:49
    웹호스팅 받는 홈피에서도 사용 가능한 거인가요?
  • profile
    Sunup 2016.09.06 13:16:10
    넵 ftp로 파일 업로드 수정만 하시면 가능 합니다~!

List of Articles
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 20 람보 2015.12.31
3739 질문/답변 비공개 사이트 만드는법이나 소스가 있을까요?ㅠㅠ 3 목요일같은오후 2016.11.30
3738 질문/답변 xe 템플릿 import 와 load 차이점을 알고 싶습니다. 3 구름이 2016.11.30
3737 질문/답변 memcached 서버 이전 관련 질문 7 madnomad 2016.11.30
3736 질문/답변 git 강좌나 책 추천 부탁 드립니다. 구름이 2016.11.30
3735 질문/답변 모바일 레이아웃을 찾습니다. 4 구름이 2016.11.30
3734 질문/답변 결제하면 동시에 그룹 등업이 되는 기능 가능할까요? 2 file 꿈이몬가 2016.11.30
3733 질문/답변 www 붙인 주소로 접속시 로그인이 풀린채로 보이는 문제 6 마끼아토 2016.11.30
3732 질문/답변 cname설정 방법아시는분 계신가요 2 Jack 2016.11.29
3731 질문/답변 DB관련 질문드립니다. 4 DIZAK 2016.11.29
3730 질문/답변 신고 가능한가요? 26 DIZAK 2016.11.29
3729 질문/답변 사업자 내야하나요? 15 DIZAK 2016.11.29
3728 질문/답변 추천있는 댓글이 있을 경우 글 목록에서 표시해 주는 팁 지금은 안되나요? 25 웹지기 2016.11.29
3727 질문/답변 특정 게시판에서만 글자 크기를 다르게 설정할 순 없나요? 3 Chronos 2016.11.29
3726 질문/답변 글을 수정하면 자동으로 줄 바꿈이 됩니다. Chronos 2016.11.29
3725 질문/답변 게시판에서 댓글을 삭제할 경우... 8 스트릿 2016.11.29
3724 아이디어 제안/공유 자신의 글 지우기 2 Jack 2016.11.28
3723 아이디어 제안/공유 네이버/다음 카페를 벤치마킹한 "전체글 보기"(전체게시판) 기능 제안 1 기븐 2016.11.28
3722 질문/답변 현재 xe관련 자료중에 이런게 있나요? 익명게시판 관련 기능인데 4 기븐 2016.11.28
3721 질문/답변 랜덤 배너 출력과 구글 애드센스 필터 애드온 충돌? 라그릿 2016.11.28
3720 질문/답변 혹시 스크린샷 게시판에 사용할 레이아웃이 있을까요? 2 torrent 2016.11.28
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 188 Next
/ 188
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...