Extra Form
PHP PHP 5.5
CMS XpressEngine

좀 쌩뚱맞은 질문일수도 있는데..

혹시 글작성시 해당 글의 문서 번호를 확장변수에 동일하게 넣는 방법이 있을까요?

확장변수값에 문서번호를 활용한 값을 추가 할려고 하다보니..

 

  • profile
    document.controller
    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;}

    이런식으로 넣으시는걸 추천합니다.
  • profile ?
    아..답변 감사합니다.. 게시판 스킨에서 수정해서 처리할 방법은 없을까요?
    글 작성을 눌렀을때 이 게시글의 문서번호가 어떻게 저장될지 미리 알수는 없을지?
  • ? profile
    스킨에서 처리하는건 저도잘.. 저도 스킨에서 처리하다 실패해서 저렇게 저장을 하게되었던거라서요
  • profile

    수동으로 넣지 않고 글 등록 시점에서 자동으로 넣으려면 스킨보다는 애드온으로 만들어야 하지 않을까요 ?

    제가 수동으로 스킨에서 제가 원하는 값을 넣었을때 사용한 것을 애드온으로 구현하시면 될 것 같기도 합니다.


    $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"

    글 이 정상정으로 삽입 이 된 이후에 실행이 되도록 조건을 걸어주시면 될 것 같습니다.

    물론 실제 해보지 않고 제가 아이디어 차원에서 생각해 본거라 오류가 있을 수도 있겠습니다.
    이렇게 해야 실제 글이 정상적으로 등록이 된 경우에 코드가 실행이 되어서 잘못된 사용자정의를 입력하는 일이 발생하지 않을 것 같기도 하구요.

  • profile ?
    답변 감사합니다..한번시도해 봐야겠습니다.
  • profile
    저도 아이디어만 말하자면,

    글 등록시 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); 같은 것으로 마무리...

    하면 되지 않을까 싶은데 어디까지나 망상일지도 모르겠네요ㅜ
  • profile ?
    윤삼님 답변 감사합니다. 일단 애드온으로 시도해보고 안되면 이방법으로 진행해 봐야겠네요.
    원래는 좀 복잡하면 그냥 글 등록시 처리 안하고 등록 후 문서버호를 더해서 출력시키는 형태로 할려고 했는데.
    뭔가 좀 깔끔한 느낌이 아니라서..^^