질문/조언질답게시판

 

Board, Documents 모듈을 참조하여 사용하는 모듈을 개발의뢰하여 사용하고 있었습니다.

Documents TABLE 에 추가 필드를 업데이트 하는 구조입니다.

 

XE 1.9 업데이트 이후 게시판 글쓰기(write) 시에.. 추가 필드를 이용하여 몇몇 정보를 document table 저장.

 

[  ] 옵션 1 , [  ] 옵션2 등.. 체크박스로 글을 작성(Insert) 하면 Insert/Update 작동되지 않아서

변경된 코드를 보다가 아래 처럼 해결하여 사용중입니다.

 

document.model.php

function getDocument() 부분에 아래와 같이 소스코드 추가 수정해서 사용중에 있습니다.

잘 작동됩니다.

           

$oDocument = new documentItem($document_srl, $load_extra_vars, $columnList);          
// 18.06.29 추가 시작
$GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
if($load_extra_vars) $this->setToAllDocumentExtraVars();
// end

 

라이믹스 2.0 에서는 이 마저도 소용이 없어졌네요.

코어를 수정하더라도 사용할 방법이 있을까요?

 

  • profile

    무엇을 어떻게 업데이트하려고 시도하고 계시고, 무엇이 안 된다는 것인지 좀더 자세히 설명해 주시면 도움이 되겠습니다. setToAllDocumentExtraVars를 사용하는 것 자체가 목적이라기보다는, 뭔가가 안 되어서 땜빵을 위해 그 함수를 사용하고 계셨는데 그 땜빵이 더이상 안 통해서 다른 방법을 찾고 있다는 말씀으로 읽히거든요. 애당초 무엇이 문제인지 알아야 그걸 어떻게 땜빵하는 게 맞는지 조언을 해드릴 수 있습니다.

  • profile profile

    https://github.com/rhymix/rhymix/issues/1002
    예전에 문의했었던 내용이 있었네요.

    계속 버전 업데이트가 되어도 저 부분을 Core 수정해서 이상 없이 게시물을 등록하고 있었습니다. 2.0 부터 동일한 값이 $this 를 self:: 변경하고 넣어보았으나 이제 작동 자체가 안되어서 혹시 방법이 있나 해서 문의를 해보았어요.

     

    DB 확인하면 값은 이상없이 들어가지는데 document.model.php / function getDocument () 여기에서 값을 지정못해오는거 같습니다. 첫 Insert 는 값을 가져오지 못하고,, 게시물 수정해서 다시 값을 넣고 update 일때는 값을 가져옵니다.

     

    제가 개발자가 아니라서.. 원시적인 설명밖에 못하는점 양해 바랍니다.

    $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument;
    if($load_extra_vars) $this->setToAllDocumentExtraVars();

    DB에는 값이 존재하는데.. 왜 못가져오는걸까..

    이 짧은 두줄을 넣으면 글 등록과 값을 가져오는것도 이상이 없는데.. 빼면 두번째 update 시에는 반영이..

     

  • profile profile
    저 이슈를 등록하셨을 때도 뭔 소린지 알 수가 없었습니다... ㅠ

    직접 작성한 쿼리를 사용하여 DB에 확장변수를 입력한 후, getDocument를 사용하여 그 문서를 다시 불러오면 확장변수가 안 보인다는 것인가요? DB에는 정상적으로 입력되어 있고요? 아니면 쿼리 자체가 작동을 안 해서 애초에 DB에 입력조차 안 된다는 것인가요?

    만약 DB에는 정상적으로 입력되는데 getDocument를 했을 때 안 보인다면 캐시 문제일 가능성이 있고, 그렇다면 코어에서 좀더 적극적으로 캐시를 갱신하는 등의 방법으로 어느 정도 커버해 드릴 수 있을지도 모릅니다. 단, 글을 쓰는 도중에 (코어의 insertDocument 실행이 아직 끝나지도 않은 상태에서) 트리거 등을 사용하여 그 글을 다시 불러오려고 한다면 해결하기 어려울 수도 있습니다.
  • profile
    코어를 수정하셨군요.
    코어 업데이트를 조심하셔야 할듯요.