페이징 처리 부분에 질문~ 정보
페이징 처리 부분에 질문~첨부파일
본문
거시기 멀티스킨을 사용중 페이징처리 부분에서 문제가 발생하여 phpschool에서 페이징 클래스 부분을 가져와서 적용하면 위와 같이 이미지처럼 1 부터 맨마지막번호 -1 까지 쫘~악 나오네요...
번호를 클릭하면 색깔이나 진하게도 안되구요...
이걸 어찌해야할까요...
몰라서 리스트 스킨도 같이 첨부해 봅니다.
<?
//-- 페이징 처리부분-------------------------------
$posts = $total_count; // 전체 게시물 개수
$per_page = 20; // 한 페이지 나타낼 게시물 개수
$cur_page = 0; // 현재 선택한 페이지 번호, ex: $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
$pps_count = $total_count /20;
$pps = $pps_count; // 출력할 페이지 번호 개수
// $pps는 짝수이어야 한다.
if ($pps % 2 != 0) $pps++;
// 총 페이지 수
$npages = ($posts / $per_page) + (($posts % $per_page != 0) ? 1 : 0);
// 총 페이지 수가 1이면 적절하게 처리
if ($npages < 2) return;
$page1 = $cur_page - $pps / 2;
$page2 = $cur_page + $pps / 2;
if ($page1 < 1) {
$page2 -= $page1;
$page1 = 1;
}
elseif ($page2 > $npages) {
$page1 -= ($page2 - $npages);
$page2 = $npages;
}
if ($page1 < 1)
$page1 = 1;
if ($page2 > $npages)
$page2 = $npages;
$pageURL = array();
// 처음 페이지 출력
if ($page1 > 1) {
echo "<a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank'>처음</a> ";
}
// 이전 페이지 출력
if ($cur_page > 1) {
printf("<a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>이전</a> ", $cur_page - 1);
}
for ($i = $page1; $i <= $page2; $i++) {
$pageURL[] = ($i == $cur_page) ? $i : "[<a href=\"http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=$i\">$i</a>]";
}
echo implode(' ', $pageURL);
// 다음 페이지 출력
if ($cur_page < $npages) {
printf(" <a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>다음</a>", $cur_page + 1);
}
// 마지막 페이지 출력
if ($page2 < $npages) {
printf(" <a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>마지막</a>", $npages);
}
?>
번호를 클릭하면 색깔이나 진하게도 안되구요...
이걸 어찌해야할까요...
몰라서 리스트 스킨도 같이 첨부해 봅니다.
<?
//-- 페이징 처리부분-------------------------------
$posts = $total_count; // 전체 게시물 개수
$per_page = 20; // 한 페이지 나타낼 게시물 개수
$cur_page = 0; // 현재 선택한 페이지 번호, ex: $cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
$pps_count = $total_count /20;
$pps = $pps_count; // 출력할 페이지 번호 개수
// $pps는 짝수이어야 한다.
if ($pps % 2 != 0) $pps++;
// 총 페이지 수
$npages = ($posts / $per_page) + (($posts % $per_page != 0) ? 1 : 0);
// 총 페이지 수가 1이면 적절하게 처리
if ($npages < 2) return;
$page1 = $cur_page - $pps / 2;
$page2 = $cur_page + $pps / 2;
if ($page1 < 1) {
$page2 -= $page1;
$page1 = 1;
}
elseif ($page2 > $npages) {
$page1 -= ($page2 - $npages);
$page2 = $npages;
}
if ($page1 < 1)
$page1 = 1;
if ($page2 > $npages)
$page2 = $npages;
$pageURL = array();
// 처음 페이지 출력
if ($page1 > 1) {
echo "<a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank'>처음</a> ";
}
// 이전 페이지 출력
if ($cur_page > 1) {
printf("<a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>이전</a> ", $cur_page - 1);
}
for ($i = $page1; $i <= $page2; $i++) {
$pageURL[] = ($i == $cur_page) ? $i : "[<a href=\"http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=$i\">$i</a>]";
}
echo implode(' ', $pageURL);
// 다음 페이지 출력
if ($cur_page < $npages) {
printf(" <a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>다음</a>", $cur_page + 1);
}
// 마지막 페이지 출력
if ($page2 < $npages) {
printf(" <a href='http://192.168.0.3/bbs/board.php?bo_table=bank_mulit&geosigi_manse=bank&page=%d'>마지막</a>", $npages);
}
?>
댓글 전체
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("b>", "strong>", $write_pages);
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
?>
<?=$write_pages?>
그냥 이런식으로 출력하지시 .. 왜 이렇게 소스를 복잡하게 하시는지....
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("b>", "strong>", $write_pages);
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
?>
<?=$write_pages?>
그냥 이런식으로 출력하지시 .. 왜 이렇게 소스를 복잡하게 하시는지....
익명사용자님 답변 감사해요..
그누보드 basic 페이징인걸로 알고 있습니다. 하지만 멀티스킨(하나의 테이블 두개 스킨)을 사용하다보니..
제가 원하는 스킨에서 페이징이 안되고 기본으로 자꾸 페이징이 되어버려서요.. 페이징관련 질
답에서 해결을 못해서 스쿨에서 퍼온걸 적용을 할려고 하는겁니다...
그누보드 basic 페이징인걸로 알고 있습니다. 하지만 멀티스킨(하나의 테이블 두개 스킨)을 사용하다보니..
제가 원하는 스킨에서 페이징이 안되고 기본으로 자꾸 페이징이 되어버려서요.. 페이징관련 질
답에서 해결을 못해서 스쿨에서 퍼온걸 적용을 할려고 하는겁니다...
아 그렇군요.. 그럴경우에는 따로 list.php 파일열어서
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page="); < < 이부분 복사해서 변수명을 약간 수정해서 쓰면될꺼같네요.
저도 이렇게 해서 다 처리를햇거든요..
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page="); < < 이부분 복사해서 변수명을 약간 수정해서 쓰면될꺼같네요.
저도 이렇게 해서 다 처리를햇거든요..
정말 감사합니다. 주소만 변경하니 깔끔하니 잘 나오네요..