Q&A

CMS/프레임워크 XE 1.x
개발 언어 PHP 7.0
{@
               
               // case1.
//             $mid = '';
//             $oModuleModel = getModel('module');
//             $module_srl = $oModuleModel->getModuleSrlByMid($mid);
//
//             $args = new stdClass();
//             $args->module_srl = $module_srl;
//             $args->list_count = 8;
//
//             $list = executeQuery('comment.getCommentList',$args)->data;
               
               // $args = new stdClass();
               // $args->module_srl = $module_srl;
               // $output = executeQuery('comment.getCommentList', $args)->data;
               
               
               // Case2.
               //$oModuleModel = getModel('module');
               /// $oCommentModel = getModel('comment');
               
               // $args = new stdClass();
               // $args->document_srl = $document_srl;
               //$args->module_srl = $module_srl;
               
               // $output = $oCommentModel->getCommentList($this->document_srl);
               // $cl = executeQuery('comment.getCommentList', $args);
               // $list = $cl->data;
               //
               //
               // $oCommentModel = getModel('comment');
               // $output = $oCommentModel->getCommentList($this->document_srl);
               // $list = $output->data;
               
               // #case3. https://xetown.com/questions/982518
               // $oModuleModel = &getModel('module');
               // $document_srl = Context::get('document_srl');
               // $document_list = Context::get('document_list');
               // $oDocumentModel = getModel('document');
               // $document_srl = Context::get('document_srl');
               // $oDocument = $oDocumentModel->getDocument($document_srl);
               // $comment_list = $oDocument->getComments();
               // $result = executeQuery('comment.getCommentList', $comment_list);
               // $list = $result->data;
               
               // #case4.
               // $oModuleModel = &getModel('module');
               // $oCommentModel = getModel('comment');
               // 
               // $args = new stdClass();
               // $args->document_srl = $document_srl;
               // $output = executeQuery('comment.getCommentList', $args)->data;
               }

위젯 없이 레이아웃에서 바로 코멘트 리스트를 출력해주는 방법을 찾고 있는데 삽질 중입니다. 

$oModuleModel = &getModel('comment'); 인지

$oModuleModel = &getModel('module'); 인지;;

일단 객체모듈을 코멘트인지 모듈인지에 설정한 다음에,

$args = new stdClass(); 해서 인수를 초기화하고..

그 다음에.. 모든 게시물을 대상으로 해서..

$output = executeQuery('comment.getCommentList', $args)->data;

이런 식으로 코멘트 모듈의 getCommentList 쿼리문을 이용해서 출력해주는 방법을 생각하고 있는데요.

대략적으로 개념은 알 거 같은데 구체적인 코드 작성방법을 잘 모르겠습니다;ㅁ;

eond Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com

댓글 2

  • 2018.12.22 08:07 #1132835

    comment 모듈에 getNewestCommentList라는 함수가 있었던 걸로 알고 있는데, 그거면 되지 않을까요?

     

    덧. 저도 다 뜯어본 건 아니어서 확실친 않지만 commentList는 보통 document_srl이 있을 때 쓰는 것 같더라구요. 그리고 선언된 객체 모듈에서 제공하는 함수를 찾아서 커닝하면 도움이 되더라구요. 이 경우엔 comment.model.php 파일에 있을 거구요.

  • 2018.12.22 09:43 #1132867
    $oCommentModel 이든 $oModuleModel 이든
    이걸 선언하는 건 해당 class 내부의 함수를 사용하기 위해서이지
    그냥 순수 쿼리만 쓸거면 굳이 선언할 필요도 없습니다.

    getCommentList.xml 쿼리를 그냥 사용하셔도 되고
    이 땐 그냥 DB 의 comment 테이블의 결과만 가져오니
    commentItem 에 지정된 함수를 쓰려면 다시 getComment 함수등으로 값을 정리하거
    getNewestCommentList 참조해서 $oComment = new commentItem(); 형태로 정리해줘야합니다

    그런데 이런게 다 귀찮으면
    미리 정의되어있는 함수를 사용하는 방법도 있겠죠 ( 함수를 사용하려면 class 를 미리 불러와야하는거고 )
    최신 댓글 리스트면 getNewestCommentList 를 많이 쓰죠 ( module_srl 값 전달하면 게시판 제한도 가능하니 )