묻고답하기
document객체에 대해 문의드립니다.
2014.04.21 22:13
안녕하세요.
document.model.php 에 있는 getDocument() 문의드립니다.
1.7.4이하버전에서는 해당 함수로 별도의 document객체를 생성하여 documents DB의 칼럼을 잘 불러왔습니다.
예를 들어
$oDocumentModel = &getModel('document');
$testDocument = $oDocumentModel->getDocument(문서);
하여 $testDocument라는 문서객체를 만들었을 경우,
1.7이하버전에서는 게시판설정의 목록추가에 관계없이 문서관련내용을 가져올 수 있었습니다.
$testDocument->get('voted_count');
$testDocument->getContent(false); 등...
더나아가 documents 테이블에 칼럼을 추가한 경우에도 잘 불러왔었습니다.
하지만, 1.7.4이상에서는 게시판에서 목록을 추가하지 않으면 화면에 나타나지 않더군요.
일부러 이렇게 만든것인지 아니면 업데이트하면서 버그가 생긴것인지 알 수가 없네요.
XE는 사용상이라든지 다양한 기능을 지원한다든지 등... 좋은 점이 있는 반면에
업데이트시 호환이 잘 안되는 것 같더군요.
1.6->1.7 등 강하게 업데이트되는 경우는 그렇다 하더라도
그아래버전 등 조금 업데이는 되는 것인데도 호환이 안된다면 상당히 문제가 발생할 수 있을 듯합니다.
마켓을 이용하는 사람들에게도 큰 혼란이 올 수 있습니다.
제가 잘 못한 것인지... 아니면 코드자체가 바뀐 것인지 궁금하네요.
혹시 해결방법이 있으면 답장 부탁드립니다.
감사합니다.
※ 페이지등 다른 모듈에서는 해보지 않았씁니다.. 게시판 스킨에 적용해보았으면, 목록에서 어떤 문서의 내용을
출력할 일이 생겨 적용해보았는데 안되었습니다.
댓글 3
-
BJ람보
2014.04.21 22:47
-
sejin7940
2014.04.22 07:24
XE 포럼에 같은 글을 써두셨군요. 그 쪽에 답변을 먼저 달아두었는데.. 여기도 적어드립니다.
버그가 아니라 일부러 그렇게 만든겁니다.
$columnList 라는 변수를 통해서 제어가 되고 있고...
DB 부하를 줄이기 위해 query 에서 필요한 칼럼값들만 추출하기 위해 만들어진 기능입니다.
목록에서 특정 칼럼값을 쓰고프면 편법은 크게 두가지로
하나는, 목록설정에 추가를 해두고, 스킨상에서 그 항목이 안 나타나게 스킨을 고치는거고
다른 하나는 Core 에서 특정칼럼이 $columnList 배열에 강제로 항상 포함되도록 수정해두면 됩니다.
-
친절뺀질이
2014.04.22 08:15
답변 감사드립니다
그렇게 만든거였군요.
다른 방법을 알아봐야겠네요 ㅎㅎ
(문서)의 값의 따라 다릅니다
(문서) 의 값을 불러들이기 위해서는 인식하는 document_srl 이 필요합니다.
그 예시로 보통 triggerinsetdocument (트리거 인설트 게시글)에서 처리할때 obj->document_srl 으로 document_srl 을 저장되는 경우 그 document_Srl 을 가져오곤 합니다.
한번 document_srl 을 불러들이는지 아닌지 확인해볼 필요가 있습니다.