안녕하세요. 지난 1차 버젼에서 약간 수정을 해봤습니다.
아직 약간의 버그가 남아있습니다. 다 수정해서 올렸으면 더 좋았겠지만...일부는 제가 손대기에는 좀 무리가 있더군요. 차차 수정을 해나갈 생각입니다. 테스트 해보시고...가능하신 분은 버그도 좀 잡아주세요~

첨부파일
1. zSvc.class.php -> /public_html/zb5/classes/ 에 복사
2. popup.php  -> /public_html/zb5/ 에 복사
3. board_gallary_pop[디렉토리] -> /public_html/zb5/modules/ 에 복사
4. zArticle.class.php --> /public_html/zb5/classes/ 에 복사


ps. 소마세월님께 항상 감사하게 생각하고있습니다.
또한, 하하호호님께 감사드리고, 하하호호님의 DicaSajin Gallery를 일부 사용했음을 알려드립니다.
 
전체 리스트에서 이미지를 클릭하면 원래는 ./zb5/?sid=12&article_srl=13 이런식으로 불러지는데 약간수정을 봐서 ./zb5/popup.php?sid=12&article_srl=13&action=popup  이런 식으로 불러집니다. 나머지는 기존과 거의 유사합니다.

아래부분...아직도 해결이 안되서 기존버젼의 내용을 다시 올립니다.

zSvc.class.php에서 레이아웃을 null로 불러오기 위해 수정했습니다.

아~ 라이센스를 잊었네요...zb5의 라이센스를 존중합니다. 소스 무단 배포를 했군요...쩝
/public_html/zb5/classes/zSvc.class.php  를 열어보시면 164 라인에 function proc(){ 가 있습니다.
이 함수 밑에 다음을 추가해주시면 감사하겠습니다.
---------------다음-----------------------------------
 function proc_pop() {
      $this->preProc();

      $this->_doAction();

      $this->_getModulePageHtml();

      $this->_getLayoutPopHtml();

      require_class('zAnalytics');
      zAnalytics::record();

      $this->_printHtml();
    }

function _getLayoutPopHtml() {
      if(!$this->selected_layout) return;

      $layout_name = 'null';
      $theme = $this->selected_layout->theme;
     
      $this->addLang(LAYOUT_DIR.$layout_name.'/lang/');

      @include LAYOUT_DIR.$layout_name.'/require.var.php';

      foreach($layout as $key => $value) {
        if($value['type']=='plugin') {
          $plugin_srl = $this->selected_layout->{$key};
          $this->plugin_list[$key] = $this->oPage->getPluginHtml($plugin_srl);
        }
      }

      $this->image_path = sprintf("%s%s/theme/%s/images/", LAYOUT_DIR, $layout_name, $theme);     

      $layout_tpl = sprintf("%s%s/tpl/layout.tpl",LAYOUT_DIR,$layout_name);
      $this->tpl->content = $this->oSmarty->assign_fetch($layout_tpl, $this);

      $layout_theme_css_file = sprintf("%s%s/theme/%s/layout.css",LAYOUT_DIR,$layout_name,$theme);
      if(file_exists($layout_theme_css_file)) $this->addCssFile($layout_theme_css_file);

      $layout_js_file = sprintf("%s%s/layout.js",LAYOUT_DIR,$layout_name,$layout_name);
      if(file_exists($layout_js_file)) $this->addJsFile($layout_js_file);
    }

--------------------------끝-------------------------------------
무단으로 zb5 파일을 수정배포해서 대단히 죄송합니다. 이 파일을 수정해야만 팝업이 가능하기에....쩝
라이센스와 관련해서 말씀하신다면 파일을 삭제하도록 하겠습니다.


수정사항:
1. 2007/01/29 12:14 module.class.php 파일중 일부 함수의 버그를 미쳐 파악하지 못하고 잘못올렸습니다.

function getArticle() {
      if(!$this->article_srl) return;

      require_class('zArticle');
      $oArticle = &zArticle::instance($this);
      $oArticle->getArticle_PN($this->article_srl, $this->article, $this->cur_page);
   $this->total_articles_prev->title = $oArticle->prev->title;
   $this->total_articles_prev->article_srl = $oArticle->prev->article_srl;
   $this->total_articles_next->title = $oArticle->next->title;
   $this->total_articles_next->article_srl = $oArticle->next->article_srl;
      if($this->article && (!$this->hide_comment_cnt || ($this->hide_comment_cnt > $this->article->comment_cnt))) {
        $this->_getCommentList($this->article_srl, $this->comment_list);
        $this->comment_tpl = $this->readTpl("comment.tpl");
      }

      $trackback_output = $this->getTrackbackList($this->article_srl);
      $this->trackback_tpl = $trackback_output->tpl;
    }
 빨간색 부분은 제가 일부 테스트를 위해 함수를 수정한 것입니다. 이 부분은 기존의 사용자는 가지고 있지 않습니다. 그러므로 리스트에서 본문을 클릭시 본문이 보이지 않는 버그가 발생했습니다.
수정해서 다시 올립니다.

2. 2007//01/31 팝업이미지 설정메뉴 추가
3. 2007/02/15 팝업이미지에서 페이지가 다를경우 앞뒤로 이동되지않는 부분 수정
zArticle.class.php에서
  function getPrevArticle($article,&$prev_article) {

      $oDB = &zDB::instance();
      $module_srl = $oDB->addquotes($article->module_srl);
      $listorder = $oDB->addquotes($article->listorder);
      if(!$this->oModule->child_module_list) {
        $cond_list[] = "module_srl = '{$module_srl}'";
      } else {
        $child_module_list = implode(',',array_keys($this->oModule->child_module_list));
        $cond_list[] = "module_srl in ({$child_module_list})";
      }
      if($this->order_type== 'listorder')
      {
       $cond_list[] = "listorder > '{$listorder}'";
      // $listorder = 'modify_order';
      }else
      {
       $cond_list[] = "listorder < '{$listorder}'";
      }
    
        $prev_cnt = $oDB->getCount('articles',$cond_list);
       
        $prev_article =  $oDB->selectOne('*','articles',$cond_list,$this->order_type,$prev_cnt-1);
        $prev_article->url = zUrl::getViewUrl($prev_article->article_srl);
        $prev_article->title = strip_tags($prev_article->title);
    }
   function getNextArticle($article,&$next_article) {

      $oDB = &zDB::instance();

      $module_srl = $oDB->addquotes($article->module_srl);
      $listorder = $oDB->addquotes($article->listorder);

      if(!$this->oModule->child_module_list) {
        $cond_list[] = "module_srl = '{$module_srl}'";
      } else {
        $child_module_list = implode(',',array_keys($this->oModule->child_module_list));
        $cond_list[] = "module_srl in ({$child_module_list})";
      }
      if($this->order_type== 'listorder')
      {
       $cond_list[] = "listorder < '{$listorder}'";
     }else
     {
       $cond_list[] = "listorder > '{$listorder}'";
     }
      $next_article =  $oDB->selectOne('*','articles',$cond_list,$this->order_type);
        $next_article->url = zUrl::getViewUrl($next_article->article_srl);
        $next_article->title = strip_tags($next_article->title);
    }
함수 추가

2007/06/18  "scomsa" 님 도움으로 기존의 파일 입수하여 압축해서 올려드립니다.

이 게시물을..