CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 5.x |
좀 쌩뚱맞은 질문일수도 있는데..
혹시 글작성시 해당 글의 문서 번호를 확장변수에 동일하게 넣는 방법이 있을까요?
확장변수값에 문서번호를 활용한 값을 추가 할려고 하다보니..
똑띠
Lv. 7
사이트제작(사진촬영, 영상촬영, 드론촬영 포함), 사이트 관리, 마케팅 , 제품디자인, 카달로그, 브로슈어제작
https://wizone.co.kr
병원 마케팅 15년 이상 진행(통합마케팅)
https://wizone.co.kr
병원 마케팅 15년 이상 진행(통합마케팅)
댓글 7
function insertDocument 함수값안에
if($obj->title == '') $obj->title = 'Untitled'; 아래에다가
$obj->extra_vars1 = $obj->document_srl;
삽입하시면 첫번째 확장변수에 document_srl값을 넣을수있어요 다만 전게시판 전체가 되니
if((context::get('mid') == 'mid값'))
{$obj->extra_vars1 = $obj->document_srl;}
이런식으로 넣으시는걸 추천합니다.
글 작성을 눌렀을때 이 게시글의 문서번호가 어떻게 저장될지 미리 알수는 없을지?
수동으로 넣지 않고 글 등록 시점에서 자동으로 넣으려면 스킨보다는 애드온으로 만들어야 하지 않을까요 ?
제가 수동으로 스킨에서 제가 원하는 값을 넣었을때 사용한 것을 애드온으로 구현하시면 될 것 같기도 합니다.
$args->lang_code = Context::get('lang_type');
$args->eid = '직접설정 또는 애드온 설정';
$args->module_srl = Context::get('module_srl');
$args->document_srl = Context::get('document_srl');
$args->var_idx = 1;
executeQuery('document.updateDocumentExtraVar', $args);
Context::get('document_srl'); 아마도 이것으로 글 인서트때 만들어지는 문서번호를 확보할 수 있지 않을까 하는 짐작인데 실제 해보지 않아서...
사용자정의 값 위치는 맨 위로 고정해야 하고요...
저 코드가 dispBoardWrite 의 act 에서 그리고
Context::get("act") == "procBoardInsertDocument" && $called_position == "after_module_proc"
글 이 정상정으로 삽입 이 된 이후에 실행이 되도록 조건을 걸어주시면 될 것 같습니다.
물론 실제 해보지 않고 제가 아이디어 차원에서 생각해 본거라 오류가 있을 수도 있겠습니다.
이렇게 해야 실제 글이 정상적으로 등록이 된 경우에 코드가 실행이 되어서 잘못된 사용자정의를 입력하는 일이 발생하지 않을 것 같기도 하구요.
글 등록시 procBoardInsertDocument 액션에서 completeDocumentInserted라는 콜백 함수로 document_srl이 나오는 걸로 알고 있습니다.
그렇다면 문서 등록시 submit 이벤트를 가로채서 별도의 스크립트로 document_srl을 받은 후 extra_vars1에 저장해줄 수 있지 않을까 싶기도 한데요...
이를테면 새로운 submit 이벤트에 ajax나 exec_json 등으로 procBoardInsertDocument 액션을 걸고, document_srl을 추출한 후, 얘를 jQuery('input[name=extra_vars1]').val(ret_obj.document_srl); 같은 것으로 마무리...
하면 되지 않을까 싶은데 어디까지나 망상일지도 모르겠네요ㅜ
원래는 좀 복잡하면 그냥 글 등록시 처리 안하고 등록 후 문서버호를 더해서 출력시키는 형태로 할려고 했는데.
뭔가 좀 깔끔한 느낌이 아니라서..^^