zb5beta - 모듈 자료실
아직 약간의 버그가 남아있습니다. 다 수정해서 올렸으면 더 좋았겠지만...일부는 제가 손대기에는 좀 무리가 있더군요. 차차 수정을 해나갈 생각입니다. 테스트 해보시고...가능하신 분은 버그도 좀 잡아주세요~
첨부파일
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" 님 도움으로 기존의 파일 입수하여 압축해서 올려드립니다.
list.tpl 90번대 줄
<div style="position:absolute;left:0;top:0;"><a onclick="window.open('./popup.php?sid={$obj->node_srl}&article_srl={$obj->article_srl}&action=popup','myWinName','left=0,top=0,width=800,height=700,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0')"><img src="{$obj->pic_path}" width="{$width}" height="{$height}" style="border:0px;"></a></div>
변경후
{if $config->popup_yn == "yes"}
<div style="position:absolute;left:0;top:0;"><a onclick="window.open('./popup.php?sid={$obj->node_srl}&article_srl={$obj->article_srl}&action=popup','myWinName','left=0,top=0,width=800,height=700,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0')"><img src="{$obj->pic_path}" width="{$width}" height="{$height}" style="border:0px;"></a></div>
{else}
<div style="position:absolute;left:0;top:0;"><a href="{$obj->url}"><img src="{$obj->pic_path}" width="{$width}" height="{$height}" style="border:0px;"></a></div>
{/if}
require.var.php 추가
$module->popup_yn = array(
'text' => 'popup_yn',
'type' => 'select',
'default' => 'yes',
'options' => array('yes','no'),
);
module.class.php 추가
$this->popup_yn = $this->config->popup_yn;
ko.lang.php 추가
$lang->module->popup_yn = '팝업';
모듈 적용순서중 일부가 잘못되었을 가능성이 있습니다.
먼저, 제가 올린 모듈의 이름은 board_gallary_pop였습니다. 이 모듈 이름을 board_gallary로 바꾸셨나요? 만일 이렇게 바꾸셨다면 일부 문제가 발생할 수 있습니다.
/public_html/zb5/modules/board_gallary_pop/폴더에 모듈을 복사하시고 모듈이름[폴더이름]을 board_gallary 로 바꾸신 경우 /public_html/zb5/modules/board_gallary/module.class.php 이 파일에서 board_gallary_pop로 되어있는 것들을 모두 board_gallary로 바꿔주신다면 간단히 해결될 수 있습니다.
하지만..갤러리 자체는 잘 돌아가더군요..그 팝업 기능만 빼구요...
밍구대디님 안녕하세요. 일단...제가 올린 모듈때문에 문제가 발생하게 된 것 대단히 죄송하게 생각합니다. 특별히 문제를 일으킬 만한 부분을 아직 발견하지 못했습니다.
http://beta.zb5.zeroboard.com/?sid=746&article_srl=329643&page=1 이 부분에는 제가 1차 팝업 갤러리를 올려놓았습니다. 만약, 이 버젼에서도 문제가 동일하게 발생한다면....글쎄요...모듈을 삭제하시고, 원래 사용하시던걸 사용하시는 것이 좋을 듯 합니다.
제가 잠순이 버젼을 쓰려고 했는데, 에러가 나서, 우선 소마세월님모듈로 테스틀 하려는데, 에러가 있습니다.
(말이 조금 이상하네요... ㅡ,.ㅡ)
이미지를 올리면 (이미지갤러리 체크하고) 본문위에 사진이 원래 540px 크기로 보이는거 아닌가요? 근데, 저의 갤러리에는 thumb nail 크기로만 보입니다. 그래서 그 위를 클릭하면 아무 변화도 없고요.
왜 그러는걸까요? 이것때문에 잠순이팝업 버젼도 안되나 싶구요...
참고로, 주소는
http://www.douloswpm.com/Community/?sid=166&article_srl=186
이걸 소마세월님한테 여쭤봐야 하는게 아닌가 싶고....
어떻게 해야 할까요?
아직 원인이 확실치 않습니다. 일단, 몇가지 질문 드립니다.
첫번째, ZB5가 기존 버젼이 아니고 새 버젼으로 패치를 하셨나요?
두번째, 갤러리의 경우, 글쓰기 권한을 갖지 못하면 갤러리 그림이 엑박으로 나옵니다. 혹시, 모든 권한을 갖도록 설정하셨나요?(손님에게 글작성 권한이 없으면 엑박이 나오는 걸로 기억합니다.)
세번째, 이번에 갤러리 모듈을 처음 사용하시는 건가요? 아니면 갑자기 이런 증상이 발생했나요?
아직 저는 기존 버젼의 ZB5를 사용하고있고 갤러리에는 손님도 글쓰기 권한이 있습니다. 흠...원인을 정확히 알아야 수정이 가능할 것 같습니다.
버그 관리쪽에 올라온 글입니다.
버그인가요?? zb5.The.beta.0.0.7.Release.Candidate 업그레이드 이후 최근게시글 연결이 안되고 홈으로 이동하는데 왜 그런가요??
이글을 참조해볼때 beta.0.0.7.Release에서는 이미지 갤러리가 정상동작하지 않는 듯 합니다.
안녕하세요 잠순이님
빠르고 따뜻한 답변에 우선 감사드리고, 저의 브라우져와 인터넷에 문제가 있어서 지금에서야 글을 올립니다.
우선 저의 zb5는 0.06 업그레이드/패치 버젼이고, 다운로드 레벨은 손님또는 아무도 설정을 안했습니다.
예, 처음으로 사용하는것이고요.
그런데 그사이에 발견된것은,
1. 파이어폭스에서는 로그인 하지 않고 보면, 모든 것이 정상으로 보이는데, 로그인하면 (최고관리자) 썸네일만 보이고 아래 큰 사진은 안보입니다.
2. IE 6 으로 보면 마찬가지로 로그인의 여부와 상관없이, 아래 썸네일 리스트 사진들이 박스에 없고 모두 위쪽으로 나옵니다.
그리고 로그인 하면 썸네일만 보이고 큰사진은 엑박, 로그인 안하면, 위의 썸네일과 큰사진은 정상.
이거 문제가 심각하네요. 0.0.5를 깔아야 하는지...
이것때문에 사진을 못올리고 있네요.
링크는
http://www.douloswpm.com/Community/?article_srl=330
이고, 제가 임으로 id. guest, pw. guest를 만들었습니다. 원하시면 본인것으로 등록 하셔도 되고요. ^^;
어찌해야 할까요?
감사합니다.
일단 작은사진 말고 큰사진에서 손님은 보이고 맴버는 안보이는 것은 아무래도 권한 설정을 손님만 체크 하신것 같습니다.
모듈 설정에서 일부 권한 부여 항목중에 단지 손님에만 체크되고 맴버에는 체크 안된 항목이 있을 듯합니다. 원래는 하위 클래스에 권한을 주면 상위 클래스는 당연히 그 권한을 같이 가져야 하지만 현재 모듈 구조는 그렇게 되있지 않습니다. 그러므로 갤러리를 볼 수있는 클래스를 모두 설정해줘야 합니다.
만일, 모든 사용자(맴버이건 맴버가 아니건)에게 갤러리 사용 권한을 주고 싶으시면 모든 체크박스에서 체크를 없애주세요.
Warning: getimagesize(http://modjoa.cafe24.com/zb5/plugins/calendar/theme/default/images//cal_th_3.gif): failed to open stream: no suitable wrapper could be found in /home/hosting_users/modjoa/www/zb5/modules/board_gallary_pop/module.class.php on line 285
이거 왜? 그런가요?? ^^;;
계정은 : cafe24 쓰는데.. 왜그런지 모르겠네요;;;
제가 내용 전달을 잘 못했나 보네요..^^
현재 이곳에 있는 board_gallary_pop.zip 파일안에는 스킨이 board_gallary 만 있고요..
제가 원하는 스킨은 첫번째 board_gallary_pop.zip 안에있는 soma_board_gallary 입니다.
분홍색 없고..본문내용 안나오는 타입이지요..
제가 첫번째 버젼의 soma_board_gallary 스킨을 가져다 두번재 버젼의 스킨폴더에다 올려놓고 적용시켜 보았지만 팝업동작은 되는데 해당 이미지를 찾을수 없다고 나오고 있어서요...



와~.....그런데 팝업 여부 Y/N 설정은 어떻게 하는건가요....
사진 누르면 글 내용으로 링크되게;;;