zb5beta - 모듈 자료실
안녕하세요. 그냥 특이한거 하나 또 만들어봤어요.
해당 압축파일은 모듈 폴더에 풀어주시고, 클래스 파일은 되도록이면 필요한 부분만 수정해주세요.
zComment.class 에서..
function getCommentList($article_srl, &$comment_list,$strip_tag_enable=FALSE) {
if(!$article_srl) return;
if(!$this->oModule->access_enable) return Zeroboard::getOutput(-1, $this->lang->common->notice_access_denied_title);
$oDB = &zDB::instance();
$article_srl = $oDB->addquotes($article_srl);
$cond_list = array("article_srl = '{$article_srl}'");
$oDB->select('*','comment',$cond_list,'listorder');
$root = null;
while($tmp = $oDB->fetch()) {
$tmp->delete_enable = $this->_checkDeleteEnable($tmp);
$tmp->delete_url = zUrl::getDeleteCommentUrl($this->sid,$tmp->article_srl,$tmp->comment_srl,$this->serial_srl,$this->cur_page);
if(!$tmp->delete_enable) $tmp->report_enable = $this->_checkReportEnable($tmp);
if($tmp->member_srl) {
$tmp->send_message_url = zUrl::getSendMessageUrl($tmp->member_srl);
$tmp->view_info_url = zUrl::getMemberInfoUrl($tmp->member_srl, $this->oModule->serial_url, $article_srl);
}
if($strip_tag_enable==TRUE)
{
$tmp->article = strip_tags($tmp->article);
}
$list[$tmp->comment_srl] = $tmp;
if($tmp->parent_srl) $list[$tmp->parent_srl]->child[] = &$list[$tmp->comment_srl];
else $root->child[] = &$list[$tmp->comment_srl];
}
$this->_arrangeComment($comment_list, $root->child,0);
}
추가사항
만일, 댓글의 갯수가 너무 많아져서 갯수 제한이 필요할때는 다음 파일을 수정해줍니다.
1. require.var.php
//내용 추가
$module->comment_cnt = array(
'text' => 'comment_cnt',
'type' => 'text',
'default' => '0',
'options' => null,
);
2. ko.lang.php
//내용 추가
$lang->module->comment_cnt = '코멘트수';
3. module.class.php
class board extends zModuleManager {
var $db_table = null;
var $list_cnt = 10;
var $comment_cnt = 0; //추가
...
function proc() {
if($this->config->list_cnt) $this->list_cnt = $this->config->list_cnt;
if($this->config->comment_cnt) $this->comment_cnt = $this->config->comment_cnt; //추가
...
function getArticleList() {
require_class('zArticle');
$oArticle = &zArticle::instance($this);
$oArticle->setOrderType($this->order_type);
if($this->strip_str_type == 'yes')
{
$oArticle->getArticleList($this->total_articles, $this->article_list, $this->oPageNav, false,true);
}else{
$oArticle->getArticleList($this->total_articles, $this->article_list, $this->oPageNav, false);
}
$oArticle->setOrderType($this->order_type);
$this->line_max=$this->config->line_max;
if($this->line_max < 1)$this->line_max = 1;
$this->td_per=100/$this->line_max;
$this->width=$this->config->list_width;
$this->height=$this->config->list_height;
$this->view_width=$this->config->view_width;
$this->cut_str_size=$this->config->cut_str_size;
//있으면 변경, 없으면 추가
for( $a=0; $a < count( $this->article_list ); $a++) {
if(!$this->hide_comment_cnt || ($this->hide_comment_cnt > $this->article_list[$a]->comment_cnt))
{
require_class('zComment');
$oComment = &zComment::instance($this);
if($this->comment_cnt > 0 && ($this->article_list[$a]->comment_cnt > $this->comment_cnt))
{
$limit_start = $this->article_list[$a]->comment_cnt - $this->comment_cnt;
$limit_cnt = $this->comment_cnt;
}else
{
$limit_start= null;
$limit_cnt = null;
}
$oComment->getCommentList($this->article_list[$a]->article_srl, $this->article_list[$a]->comment_list,true,$limit_start,$limit_cnt);
}
}
$tpl = $this->readTpl("list.tpl");
return $tpl;
}
4. zComment.class.php
function getCommentList($article_srl, &$comment_list,$strip_tag_enable=false,$limit_start=null,$limit_cnt=null) {
if(!$article_srl) return;
if(!$this->oModule->access_enable) return Zeroboard::getOutput(-1, $this->lang->common->notice_access_denied_title);
$oDB = &zDB::instance();
$article_srl = $oDB->addquotes($article_srl);
$cond_list = array("article_srl = '{$article_srl}'");
$oDB->select('*','comment',$cond_list,'listorder',$limit_start,$limit_cnt);
$root = null;
$tmp = 1;
while($tmp = $oDB->fetch()) {
$tmp->delete_enable = $this->_checkDeleteEnable($tmp);
$tmp->delete_url = zUrl::getDeleteCommentUrl($this->sid,$tmp->article_srl,$tmp->comment_srl,$this->serial_srl,$this->cur_page);
if(!$tmp->delete_enable) $tmp->report_enable = $this->_checkReportEnable($tmp);
if($tmp->member_srl) {
$tmp->send_message_url = zUrl::getSendMessageUrl($tmp->member_srl);
$tmp->view_info_url = zUrl::getMemberInfoUrl($tmp->member_srl, $this->oModule->serial_url, $article_srl);
}
if($strip_tag_enable==true)
{
$tmp->article = strip_tags($tmp->article);
}
$list[$tmp->comment_srl] = $tmp;
if($tmp->parent_srl) $list[$tmp->parent_srl]->child[] = &$list[$tmp->comment_srl];
else $root->child[] = &$list[$tmp->comment_srl];
}
$this->_arrangeComment($comment_list, $root->child,0);
}


우왕 좋다 ㅋ 감사합니다!