nine님이 올려주신 그누보드4 FAQ를 그누보드5로 변환 및 다듬었습니다. http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=150...
2단 카테고리 게시판
나중에 시간이 나면 모바일버전도 제작하겠습니다.
1단 카테고리는 wr_1 여분필드를 사용하였고, 2단 카테고리는 wr_2 여분필드를 사용하였습니다.
갤러리게시판을 수정한 버전입니다.
list 1차 카테고리에 마우스 롤오버하면 2차 카테고리가 보입니다. ajax를 사용한 게시판입니다.
사용 설명을 하겠습니다.
#########################설치방법시작##############################
1. 첨부파일의 cat_gallery 폴더를 ./skin/board/ 안에 업로드를 합니다.
[./는 루트를 뜻합니다.]
## 2번을 작업을 하기전에 주의!!##
./bbs/list.php 파일을 백업 해두시기 바랍니다.
만약 오류가 발생하더라도 책임지지 않습니다. 혹시나 list.php를 수정을 한 홈페이지는 기본 list.php와 다른 부분을 수정 하시면 사용하실 수 있습니다.
2. 첨부파일의 list.php는 ./bbs/에 업로드를 합니다.[덮어쓰기 하시면 됩니다.]
3. 게시판스킨을 cat_gallery로 설정을 합니다.
########################설치끝#####################################
#########################사용방법##################################
1. 먼저 1차 분류를 등록합니다.
[관리자페이지] -> [게시판설정] -> [해당게시판수정] -> [제일하단에 여분필드1]
##1차분류 등록방법 -> 가|나|다|라|마 로 구분합니다. (너무 많은 1차 카테고리는 레이아웃이 깨질수 있습니다.)
2. 그리고 2차 분류를 등록합니다.
[관리자페이지] -> [게시판설정] -> [해당게시판수정] -> [제일하단에 여분필드2]
##2차분류 등록방법 -> 가-1,가-2,가-3,가-4|나-1,나-2,|다-1,다-2|라_1,라_2,라_3|마_1,마_2
(1차분류 순서대로 작성을 해주시면 됩니다.)
[,]와[|]로 구분입니다.
#########################사용방법##################################
쉽게 만들기 위해 편법을 사용한 것이므로 오류가 발생 할 수 도 있습니다. 말씀 해주시면 수정하겠습니다.
아그리고 여분필드가 작아서 보기 힘드시면 ./adm/board_form.php 에 1243번째 줄에
<input type="text" name="bo_<?php echo $i ?>" value="<?php echo get_text($board['bo_'.$i]) ?>" id="bo_<?php echo $i ?>" class="frm_input" style="width:700px">
style="width:700px" 취향따라 넓이를 넣어주세요.
첨부파일
그누보드5 스킨
2,752건좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.
포트폴리오 관리하려고 예전에 G4로 만들어서 사용해왔습니다. 귀찮아서 미루고 미루다 이번에 G5로 변환했습니다. 필요하실분 계실듯 하여 올려봅니다. 기능은 보시는대로입니다. 관리자...
네이버 스타일로 만들었습니다. skin > outlogin 폴더에 다운받으신 후 사용하시면 됩니다.
오랜만에 올립니다. http://sir.co.kr/bbs/board.php?bo_table=g5_skin&wr_id=2426&sca=&sfl=wr_subject%7C%7Cwr_co...
원사랑님이 제공해준 소스를 기반으로 수정했습니다. http://sir.co.kr/bbs/board.php?bo_table=g5_skin&wr_id=2501 사진 크기 조절방법은 원...
안녕하세요 기존 모바일 더보기스킨에 리스트/이미지형 전환버튼을 추가하였습니다 이미지는 첫번째 업로드 파일이 출력됩니다 설치방법 1. 압축파일을 다운로드받아 모바일스킨폴더 mobil...
메인메뉴에 마우스 오버시 전체 메뉴가 한꺼번에 보여지는 형태의 레이아웃입니다. 설치방법은 다음과 같습니다. 1. 첨부된 압축파일을 다운 받으신 후 skin 폴더내에 압축풀어 놓습니...
습작 만들던 중에 쓸만할 것 같아서 올립니다. 총 7가지 종류입니다. 종류가 여러가지라 폴더명과 화면상의 위치로 설명드릴게요 main은 최상단 메인 슬라이더, aside는 최상단 ...
2단 카테고리 게시판입니다. 모바일버전은 시간상 만들지 않았습니다. 나중에 시간이 나면 모바일버전도 제작하겠습니다. 1단 카테고리는 wr_1 여분필드를 사용하였고, 2단 카테고리는...
grapedw님이 공개해주신 이미지 최신글의 소스를 수정해서 사용했습니다. http://sir.co.kr/bbs/board.php?bo_table=g5_skin&wr_id=1458...
제목 그대로 최신글 리스트 테두리 효과를 주어서 돋보이게 처리합니다. echo latest("redsalt", "board_name", "7","20") 세로 사이즈는 min-he...
댓글 13개
그런데 이거 3단으로는 구현이 어려울까요 ㅠㅠ?
싸우기 시작.
글수정시 2차카테고리가 하나씩 밀려나서 나오네요.
없는 실력에 아래처럼 수정해서 씁니다. 안되시는분 참고하시길.
<select name="wr_1" id="wr_1" required onchange="select_wr1();">
<option value="1차분류">1차분류 선택하세요.</option>
<?if($wr_id){?>
<option value="<?=$write[wr_1]?>" selected><?=$write[wr_1]?></option>
<?for($i = 0; $i < count($cat1); $i++){?>
<?if($cat1[$i] == $write[wr_1]){?>
<?}else{?>
<option id = "<?=$i?>"value="<?=$cat1[$i]?>"><?=$cat1[$i]?></option>
<?}?>
<?}?>
<?}else{?>
<?for($i = 0; $i < count($cat1); $i++){?>
<option id = "<?=$i?>"value="<?=$cat1[$i]?>"><?=$cat1[$i]?></option>
<?}?>
<?}?>
</select>
근데 이 스킨은 이상하게 카테고리 필수입력이 안 먹히네요.
혹시 해결하신분 계신가싶어 질문드려 봅니다.
필수입력이 안 먹혀서 간혹 카테고리를 빼먹고 글을 쓰면 수정시 카테고리를 지정할수가 없는 문제가 생깁니다.
그래서 글을 지우고 새로 써야하더라고요.
이부분이 오류라는데 뭐가문제인가요?
list.php부분입ㄴ디ㅏ.
그리고 댓글 사용 시 올바른 방법으로 이용해 주십시오.라는 멘트가 뜨는데 이부분은 어떻게 해야할까요 ㅠㅠ?
1페이지의 갯수를 12로 지정하고 12개 이상일 때 페이지네이션이 보이게 지정해버렸습니다..ㅎㅎ
전 설명을 들어도 모르겠네요 ㅜ -ㅠ
/bbs/list.php에서
if ($sca || $stx ) {
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
if($wr_1 && !$wr_2) {
$sql_search .= " and (wr_1 = '{$wr_1}' and wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
} else if($wr_1 && $wr_2) {
$sql_search .= " and (wr_1 = '{$wr_1}' and wr_2 = '{$wr_2}' and wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
} else {
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
}
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
이 부분을
if ($sca || $stx ) {
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
} else if ($wr_1 || $wr_2) {
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
if($wr_1 && !$wr_2) {
$sql_search .= " or (wr_1 = '{$wr_1}' and wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
} else if($wr_1 && $wr_2) {
$sql_search .= " or (wr_1 = '{$wr_1}' and wr_2 = '{$wr_2}' and wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
} else {
$sql_search .= " or (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
}
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
} else {
$sql_search = "";
$total_count = $board['bo_count_write'];
}
로 수정합니다. 또 list.skin.php에서
<? if($cat1) { ?>
<nav id="bo_cate">
<ul id="bo_cate_ul">
<li>
<a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>" id="bo_cate_on" <?if($wr_1 == '' || !$wr_1){?>style="background-color:#ccc;"<?}else{}?>>전체</a>
</li>
<?for($i = 0; $i < count($cat1); $i++){?>
<li>
<a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&wr_1=<?=$cat1[$i]?>" class="c_<?=$i?>" id="bo_cate_on"
<? if($wr_1 == $cat1[$i]) { ?>style="background-color:#ccc;"<?}else{}?>><?=$cat1[$i]?></a>
<ul>
<?for($j = 0; $j < count($cat2[$i]); $j++){?>
<li>
<a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&wr_1=<?=$cat1[$i]?>&wr_2=<?=$cat2[$i][$j]?>"
<?if($wr_2 == $cat2[$i][$j]){?>style="background-color:#3D3D3D;color:#fff;"<? } else { } ?>>
<?=$cat2[$i][$j]?>
</a>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</nav>
<? } ?>
이 부분을
<? if($cat1) { ?>
<nav id="bo_cate" style="border:0px solid blue">
<ul id="bo_cate_ul">
<li style="padding:3px"><a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>" id="bo_cate_on"
<? if($wr_1 == '' || !$wr_1) { ?> style="border-radius:3px; background-color:#d4d4d4;"<? } else { } ?>>전체</a>
<? for($i = 0; $i < count($cat1); $i++) { ?>
<li style="padding:3px">
<a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&wr_1=<?=$cat1[$i]?>&sfl='wr_1'&stx='<?=$cat1[$i]?>'" class="c_<?=$i?>" id="bo_cate_on"
<? if($wr_1 == $cat1[$i]) { ?> style="border-radius:3px; background-color:#d4d4d4;"<? } else { } ?>> <?=$cat1[$i]?></a>
<!-- 2차 메뉴 -->
<ul style="border:0px solid red">
<? for($j=0; $j<count($cat2[$i]); $j++) { ?>
<li>
<a href="<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&wr_1=<?=$cat1[$i]?>&wr_2=<?=$cat2[$i][$j]?>&sfl='wr_2'&stx='<?=$cat2[$i][$j]?>'"
<? if($wr_2==$cat2[$i][$j]) { ?> style="background-color:#3D3D3D;color:#fff;"<? } else { } ?>><?=$cat2[$i][$j]?></a>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</nav>
<? } ?>
로 바꿔줍니다.
또 하단 검색 부분에서
<input type="text" name="stx" value="stripslashes($stx):'' ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요">
이 부분을
<input type="text" name="stx" value="<?= ($wr_1 && $wr_1 !== $stx && $wr_2 && $wr_2 !== $stx)?stripslashes($stx):'' ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요">
로 바꿔 주면 정상적으로 total_count 수와 페이지네이션이 해결되는 것 같습니다.