XE

XE (회원 정보) 작성 글 수, 댓글 수를 보여주기

by 보석 posted Jun 10, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


학습 목표
1. 회원 정보에서 글, 댓글, 첨부 갯수를 보여주기
P051.png

2. 회원 목록 관리자 페이지에서 글, 댓글 작성 갯수를 보여주기
P037.png


작동 원리
document, comment 테이블을 member_srl로 쿼리를 한다.

이때 쿼리 XML 파일을 만들어 줘야 함

#4. 파일 첨부 수를 구하는 소스 변경

작업준비
※ XML 파일은 어디에 넣어도 상관이 없습니다만 다른 용도로 사용을 하기 위해 각 모듈의 쿼리 폴더에 복사합니다.

아래 파일을 modules\comment\queries 폴더에 복사합니다.
getMemberCommentCount.xml

아래 파일을 modules\document\queries 폴더에 복사합니다.
getMemberDocumentCount.xml
getMemberUploadedCount.xml



1. 회원 정보 페이지 작업하기
modules\member\skins\스킨 폴더의 member_info.html 파일을 편집합니다.
70번대 줄에 아래 소스를 추가합니다.

{@
$obj->member_srl = $member_info->member_srl;
$output_document_count = executeQuery("document.getMemberDocumentCount",$obj);
$output_comment_count = executeQuery("comment.getMemberCommentCount",$obj);
$output_attach_count = executeQuery("document.getMemberUploadedCount",$obj);
}
<tr>
<th scope="row">{$lang->count_document}</th>
<td>{$output_document_count->data->count}</td>
</tr>
<tr>
<th scope="row">{$lang->count_comment}</th>
<td>{$output_comment_count->data->count}</td>
</tr>
<tr>
<th scope="row">{$lang->count_attach}</th>
<td>{$output_attach_count->data->count}</td>
</tr>

변수 대신 직접 한글을 사용해도 되지만 언어별로 나타내려면 lang 파일을 편집합니다.


modules\member\lang 폴더의 ko.lang.php 파일을 편집합니다.
아래 소스를 적당한 곳에 추가합니다.

$lang->count_document = '글 수';
$lang->count_comment = '댓글 수';




2. 회원 목록 관리 페이지 작업하기
member 모듈member.admin.view.php 파일을 편집합니다.
dispMemberAdminList 함수의 중간에 아래 소스 중 굵은 부분을 삽입합니다.

function dispMemberAdminList() {
// member model 객체 생성후 목록을 구해옴
$oMemberModel = &getAdminModel('member');
$output = $oMemberModel->getMemberList();

foreach($output->data as $key => $value) {
$output_document_count = executeQuery("document.getMemberDocumentCount", $value);
$output_comment_count = executeQuery("comment.getMemberCommentCount", $value);
$output->data[$key]->document_count = $output_document_count->data->count;
$output->data[$key]->comment_count = $output_comment_count->data->count;
}


// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('member_list', $output->data);
Context::set('page_navigation', $output->page_navigation);

// 템플릿 파일 지정
$this->setTemplateFile('member_list');
}



modules\member\tpl
폴더에서 member_list.html 파일을 편집합니다.


<thead></thead> 사이에 아래 소스를 삽입하고,

<th scope="col">Document</th>
<th scope="col">Comment</th>

<tbody></tbody> 사이에 아래 소스를 삽입합니다.
<td class="tahoma">{$val->document_count}</td>
<td class="tahoma">{$val->comment_count}</td>


※ 소스를 참고하여 포인트 모듈의 회원 목록에서도 적용할 수 있습니다.



Articles

1 2 3 4 5 6