게시판 페이지네이션 선택 시 전체페이지로 가지지 않고 선택한 카테고리의 페이지네이션을 뽑아내려 합니다

게시판 페이지네이션 선택 시 전체페이지로 가지지 않고 선택한 카테고리의 페이지네이션을 뽑아내려 합니다

QA

게시판 페이지네이션 선택 시 전체페이지로 가지지 않고 선택한 카테고리의 페이지네이션을 뽑아내려 합니다

본문

$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './board.php?bo_table='.$bo_table.$qstr."&wr_1=".$_GET['wr_1'].'&page=');

 

이 구문을 

 

$write_pages2로 바꿔서 사용해도 적용이 되나요?

 

 

$wr_cnt = 0;
$wr_page = 1;
if ($_GET['wr_1']) {

  $list_table = $g5['write_prefix'] . $bo_table;

  $sql_wr = "select count(*) as cnt from ".$list_table." where wr_1 = '".$_GET['wr_1']."'";

  $row_wr = sql_fetch($sql_wr);

  $wr_cnt = $row_wr['cnt'];
  $wr_page = ceil($wr_cnt / $page_rows);

}

 

$write_pages2 = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $wr_cnt, './board.php?bo_table='.$bo_table.$qstr."&wr_1=".$_GET['wr_1'].'&page=');

 

이런식으로 사용하려 합니다.

wr_1을 사용한 카테고리 게시판인데, 기존에 코드 그대로 사용하면 wr_1의 카테고리를 누른 후 페이지네이션을 누르면 전체페이지로 가져서요 ㅠ

 

전체페이지로 가지지 않고 선택한 카테고리의 페이지네이션을 뽑아내려 합니다 ㅠ

이 질문에 댓글 쓰기 :

답변 3

$write_pages2 = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $wr_cnt, './board.php?bo_table='.$bo_table.$qstr."&wr_1=".$_GET['wr_1'].'&page=');

 

=> 이건 wr_1 값이 board.php 에서 비교값으로 작동하지 않으므로 페이징이 되지 않습니다.

=> list.php 에서 wr_1 조건문을 넣어주거나 별도 수정이 필요합니다.

 

thumb-3718479241_1608008238.2232_730x296.png

 

게시판에 분류 기능이 있으므로 해당 부분을 이용하시는게 나을거 같습니다.

단순 조건문 추가한다고 되지는 않을겁니다.

 

list.php

L39 ~ L66
L174  ~ L181
=> 이부분을 수정해야 되는데 해당 부분을 잘못 수정시 게시판전체가 작동하지 않기 때문에

=> 개발자가 아니면 좀 수정하기가 힘들겁니다.

39 -

// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
//검색인지 아닌지 구분하는 변수 초기화
$is_search_bbs = false;

if ($sca || $stx) {
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);
   
    if ($bo_table == "company")
  $sql_search = str_replace('ca_name', 'wr_1', $sql_search);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $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);
   
} else {
    $sql_search = "";
   
    //-------------------------추가함
      $notice_cnt=0;
      $arr_notice = array();
      $arr_notice = explode("\n", trim($board['bo_notice']));
      $notice_idStr = implode(",",  $arr_notice);
      if($notice_idStr ){
    $notice_cnt= count($arr_notice);
    $no_notice_qry= " and wr_id not IN($notice_idStr) ";
      }
    //-----여기까지 추가
   

    //$total_count = $board['bo_count_write'];
    $total_count = $board['bo_count_write'] - $notice_cnt;
}

if(G5_IS_MOBILE) {
    $page_rows = $board['bo_mobile_page_rows'];
} else {
    $page_rows = $board['bo_page_rows'];
}

//$total_page  = ceil($total_count / $page_rows);  // 전체 페이지 계산
//if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
//$from_record = ($page - 1) * $page_rows; // 시작 열을 구함

$total_page  = ceil($total_count / $board['bo_page_rows']);  // 전체 페이지 계산

이런식으로 바꾼 상태이긴 하거든요 ㅠㅠ ㅎ

if ($sca || $stx || $wr_1) {

 

이것도 변경을 하셔야 될겁니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 196
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT