묻고답하기
글 작성시 날짜 값 받기
2014.03.30 10:35
확장변수를 통해서 날짜 값을 받는 방법이 궁금한데요.
이 부분을 송동우님께서 한 차례 알려주셨는데
확장변수 하나 만들고
입력은 yyyymmddhhiiss 형식으로 넣어야 합니다.
그리고
xe - modules - document - document.controller.php 열고
line 257 쯤에
$output = executeQuery('document.insertDocument', $obj);
이것 바로 위에
if(Context::get('extra_vars1')) $obj->regdate = Context::get('extra_vars1');
이것 입력.......
참고
첫번째 확장변수가 아니면 첫번째로 옮기면 됩니다......
라고 하시더라고요.
까막눈이지만 대충 보면 extra_vars1 이 있을 경우 extra_vars1 값을 regdate로 보내는 것 같은데
이렇게 하면 확장변수1 값이 뭐든지 간에 무조건 regdate로 가게 되지 않나요?
게시판 마다 확장변수가 다 다른데 저렇게 하면 좀 곤란할 것 같아서요.
또 모든 게시판 마다 날짜값을 바꿀 필요도 없는 것 같고.
그래서 드리는 질문인데 extra_vars1 대신에 확장변수 이름으로 내용을 대체할 수 없을까요?
예를 들면 확장변수 이름이 rdate일 경우 값을 regdate로 보낸다는 식으로.
rdate가 없을 경우는 작동하지 않게 만들고요.
제발 좀 부탁 드립니다.
- [2018/07/13] 묻고답하기 첨부한 파일 링크 텍스트로 추출하는 방법은 무엇인가요? *2
- [2018/02/25] 묻고답하기 게시판 수정 *2
- [2017/07/18] 묻고답하기 게시판 공개 권한 질문 드려요 도와 주세요ㅠㅠ *2
- [2017/06/17] 묻고답하기 contentextended 사용자정의 출력 시, select type 은 array 이로 나옵니다.
- [2017/05/03] 묻고답하기 youtube 영상목록을 불러와서 게시판에 뿌려주는 모듈이나 스킨이 있을까요? *1
댓글 9
-
LI-NA
2014.03.30 10:52
-
다섯클로버
2014.03.30 11:29
알려주신대로 2번으로 적용해봤는데 작동하지 않습니다...
if(Context::get('regdate')) $obj->regdate = Context::get('regdate');
확장변수 명을 regdate가 아니라 rdate로 했기 때문에 여기서
if(Context::get('rdate')) $obj->regdate = Context::get('rdate');
로 수정해서 적용해봤는데요. 안되더라고요.
혹시나 해서 확장변수명을 regdate로도 바꿔서 처음 알려주신대로도 해봤지만 안되구요.
-
다섯클로버
2014.03.30 12:47
1번 방법대로도 해봤는데요.
if($mid == '모듈이름') {
if(Context::get('extra_vars1')) $obj->regdate = Context::get('extra_vars1');
}
이렇게 해도 안되고
if($this->mid == '모듈이름') {
if(Context::get('extra_vars1')) $obj->regdate = Context::get('extra_vars1');
}
으로 해봤는데 이것도 안됩니다...
-
GG
2014.03.30 13:04
게시판 스킨에서 하면 안되는 건가요?
게시판에 text 확장변수 하나 생성하고
<block cond="생성한 확장변수 존재확인">
<input type="hidden" name="extra_vars1" value="{date('YmdHis')}" />
</block>
이러면 안될까요?
-
다섯클로버
2014.03.30 13:16
제가 까막눈이라 확실하게는 모르겠지만 서도
이렇게 할 경우 확장변수 하나 추가 되는거랑 다른 점이 있나요?
기본 db에 있는 등록일 테이블인 regdate가 변경이 안될 것 같은데요...
까막눈이라 잘 몰라서...
-
GG
2014.03.30 13:59
제가 본문 내용을 오해하고 있는건가요? -
다섯클로버
2014.03.30 14:30
글이 좀 압축적이라 주제전달이 잘못된 것 같은데
질문의 요지는
'게시글 작성 시 등록일 수정칸을 만드는 방법'에 대해서 여쭤보는 겁니다.
그 수단으로 확장변수에 글을 입력하면 등록일이 변경되도록 하는 것이고.
확장변수에 입력된 값이 db의 regdate 테이블 값을 수정하도록 명령하는 코드에 대해서 여쭤보고 있는 것이죠.
예전 글에서 송동우님이 그 방법을 알려주셨는데 알려주신 방법대로 하면
확장변수1 값이 regdate를 수정해 등록일을 변경하는데
이게 모든 게시판에 적용되어 또다른 불편을 야기하므로
특정 게시판에만 한정적으로 적용시킬 수 있는 방법은 없는지 여쭤보는 겁니다.
아니면 확장변수1의 값 대신 확장변수명으로 소스를 바꿔서 특정한 확장변수명일때만
즉 확장변수 값이 rdate일때만 regdate를 수정하도록 하는 방법을 여쭤본 것이고요.
그래서 LI-NA 님이 두 가지 방법을 알려주셨는데
두 방법 다 적용이 안돼서 계속 삽질하고 있는 중입니다...ㅜ
-
GG
2014.03.30 14:34
아... 그렇군요.
기본 코어를 건들이지 않고 작업하기 위해서 document 모듈에 있는 트리거를 사용하거나 애드온으로 구현이 될 것 같습니다.
즉, insertDocument 할 때 regdate 부분을 제어해서 입력되게 하거나,
애드온을 통해서 이미 regdate 값이 기본으로 들어가 있더라도 regdate 와 extra_var 의 값이 다른 경우 애드온에서 체크해서 db를 업데이트 해줄 수 있도록 하는 방법이 있을 수 있는 것 같습니다.
-
다섯클로버
2014.03.30 14:43
네 그래서 송동우님이
xe - modules - document - document.controller.php 열고
line 257 쯤에$output = executeQuery('document.insertDocument', $obj);
이것 바로 위에
코드를 쓰라고 알려주셨는데..
앞서 말씀드렸지만 제가 까막눈인지라
어떻게 고쳐야 되는지를 몰라서 여쭤본 것을
LI-NA님이 알려주셨는데 제대로 구현이 안되더라고요...
애드온은 어떻게 만드는지 모르겠고...
두번째 말씀하신 애드온을 통해서 이미 regdate값이 있더라도 db업데이트를 해줄 수 있는 방법도 좋은 방법이고
되려 더 나은 방법 같기도 한데
코드를 모르니 제발 부탁 좀 드린다고 말씀을 드린 것입니다...
까막눈이라 서당개가 3년 배우듯이 눈치로 대충 아는지라...
한자 조금 읽을 줄은 알지만 써보라면 잘 못하는 것처럼
코드도 어렴풋이 알아보긴 하지만 제대로 쓸줄을 모릅니다.
2가지 방법이 있습니다.
1. mid를 검사해서 특정 게시판에서만 동작하게 하는 방법
2. 말씀하신 것 처럼 확장변수 이름을 사용하는 방법.
1번의 경우 코드는 다음과 같습니다.
if($this->mid == 'board1') {
확장변수 입력 코드
}
//this-mid 가 맞는지 모르겟네요. 안되면 그냥 $mid 로 바꿔보세요..
2번의 경우 코드는 다음과 같습니다.
if(Context::get('regdate')) $obj->regdate = Context::get('regdate');