안녕하세요. 그냥 특이한거 하나 또 만들어봤어요.

해당 압축파일은 모듈 폴더에 풀어주시고, 클래스 파일은 되도록이면 필요한 부분만 수정해주세요.
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);
    }