goiintra/public_html/include/page_class.php

213 lines
9.5 KiB
PHP

<?php
// 페이징 클래스.
//
// 인자값
// 1. 구분키 (리스트가 한 개일 경운 대부분 page 겠죠?)
// 1. 총레코드 갯수($total_record),
// 2. 한 페이지당 출력 레코드 수($rnum_per_page).
// 3. 한 블럭당 출력 페이지 수($num_list_link).
// 4. 현재 페이지($page).
// 5. 페이지 넘길때 넘어갈 값들($page_string).
// $current_page_color // 현재 페이지 색.
// $other_page_color // 그 외 페이지 색.
// $block_color // 블럭 색.
// $direct_color // 첫 페이지, 마지막 페이지 바로가기 색.
// $virtual_link_color // 가상 링크 색.
// 호출예.
// $page_string = "&sdate=$sdate&state=$state&yn=$yn&sother=$sother&condition=$condition";
// $paging = new PAGE('page',$total_record,$rnum_per_page,$num_list_link,$page,$page_string,'red','','','336699','');
class PAGE {
var $code;
var $rows;
var $pagesize;
var $listsize;
var $startpage;
var $totalpage;
var $page;
function __construct($code,$rows,$pagesize,$listsize,$page,$page_string,$color1,$color2,$color3,$color4,$color5) {
$this->code = $code;
$this->rows = $rows;
$this->pagesize = $pagesize;
$this->listsize = $listsize;
$this->page = $page;
$this->page_string = $page_string;
//echo"$page_string";
if($color1){$this->color1 = $color1;}
if($color1){$this->color2 = $color2;}
if($color1){$this->color3 = $color3;}
if($color1){$this->color4 = $color4;}
if($color1){$this->color5 = $color5;}
if ($rows % $pagesize) {
$this->totalpage = ceil($rows / $pagesize);
} else {
$this->totalpage = $rows / $pagesize;
}
$this->paging($this->code,$this->rows,$this->pagesize,$this->listsize,$this->page,$this->totalpage,$this->page_string,$this->color1,$this->color2,$this->color3,$this->color4,$this->color5);
//$this->paging($rows,$pagesize,$listsize,$page,$totalpage,$page_string,$color1,$color2,$color3,$color4,$color5);
} // end of function PAGE
function paging($code,$total_record,$rnum_per_page,$num_list_link,$page,$totalpage,$page_string,$current_page_color,$other_page_color,$block_color,$direct_color,$virtual_link_color) {
// $current_page_color // 현재 페이지 색.
// $other_page_color // 그 외 페이지 색.
// $block_color // 블럭 색.
// $direct_color // 첫 페이지, 마지막 페이지 바로가기 색.
// $virtual_link_color // 가상 링크 색.
if(!$virtual_link_color){$virtual_link_color="#AAAAAA";}
$first_num_per_page = $rnum_per_page * ($page-1); // 각 페이지의 첫번째 레코드 번호
$last_num_per_page = $rnum_per_page * $page; // 각 페이지의 임시 마지막 레코드 번호
$block = ceil($page/$num_list_link); // 현재 블럭.
$total_block = ceil($totalpage / $num_list_link); // 총 블럭 수
$frist_page_per_block = $num_list_link*($block-1); // 각 블럭당 첫 페이지
$last_page_per_block = $num_list_link*$block; // 각 블럭당 임시 마지막 페이지
// 첫 페이지 바로가기
//$go_first_page_shape = "<b>[First]</b>"; // <<---- #### 첫 페이지 바로가기 모양 설정. (활성)
//$go_first_page_shape2 = "<b>[First]</b>"; // <<---- #### 첫 페이지 바로가기 모양 설정. (비활성)
//$go_first_page_shape = "<img src='/images/board/navarrow_left2.jpg' border=0 align=top alt='First Page' hspace=2>";
//$go_first_page_shape2 = "<img src='/images/board/navarrow_left2.jpg' border=0 align=top alt='First 5 Page' hspace=2>";
if ($page!=1){
echo "<a href='" . $_SERVER['PHP_SELF'] . "?$code=1&$page_string'>";
echo "<i class='bi bi-arrow-left'></i>";
// echo "<font color='$direct_color' size=2>$go_first_page_shape</font>";
echo "</a>";
}else {
//echo ("<font color='$virtual_link_color' size=2>$go_first_page_shape2</font>");
echo "<a href='#'><i class='bi bi-arrow-left'></i></a>";
}
//echo "&nbsp;&nbsp;";
// 이전 블럭 바로가기
$go_pre_block_shape = "<b>[Pre $num_list_link]</b>"; // <<---- #### 이전 블럭 바로가기 모양 설정. (활성)
$go_pre_block_shape2 = "<b>[Pre $num_list_link]</b>"; // <<---- #### 이전 블럭 바로가기 모양 설정. (비활성)
//* Prev 버튼 보여주지 않음
if ($block>1){
$a = $frist_page_per_block;
echo "<a href='" . $_SERVER['PHP_SELF'] . "?$code=$a&$page_string'>";
//echo "<font color='$block_color'>$go_pre_block_shape</font>";
echo "&#60;&nbsp;Prev";
echo "</a>";
} else {
//echo ("<font color='$virtual_link_color'>$go_pre_block_shape2</font>");
echo "<a href='#'>&#60;&nbsp;Prev</a>";
}
//echo "&nbsp;&nbsp;";
// 블럭내 페이지 바로가기
$b=$frist_page_per_block+1;
for ($b;$b<=$last_page_per_block;$b++){
// 현재 페이지.
if($b==$page){
echo "<a href=\"#\" style=\"color: #fff;background-color: #4CAF50;font-weight: bold;\">$b</a>";
// 가상 페이지. ->> 페이지는 없으나 그냥 화면에만 표시.
}elseif($b>$totalpage){
//echo "<font color='$virtual_link_color' size=2>[$b]</font>";
// 그외 페이지.
}else{
echo "<a href='" . $_SERVER['PHP_SELF'] . "?$code=$b&$page_string'>";
echo "$b";
echo "</a>";
}
}
//echo "&nbsp;&nbsp;";
// 다음 블럭 바로가기
$go_next_block_shape = "<b>[Next $num_list_link]</b>"; // <<---- #### 이전 블럭 바로가기 모양 설정. (활성)
$go_next_block_shape2 = "<b>[Next $num_list_link]</b>"; // <<---- #### 이전 블럭 바로가기 모양 설정. (비활성)
//* NEXT 버튼 보여주지 않음
if ($block<$total_block){
$c = $last_page_per_block+1;
echo "<a href='" . $_SERVER['PHP_SELF'] . "?$code=$c&$page_string'>";
//echo "<font color='$block_color'>$go_next_block_shape</font>";
echo "Next&nbsp;&#62;";
echo "</a>";
} else {
//echo ("<font color='$virtual_link_color'>$go_next_block_shape2</font>");
echo "<a href='#'>Next&nbsp;&#62;</a>";
}
//echo "&nbsp;&nbsp;";
// 끝 페이지 바로가기
//$go_last_page_shape = "<b>[Last]</b>"; // <<---- #### 끝 페이지 바로가기 모양 설정. (활성)
//$go_last_page_shape2 = "<b>[Last]</b>"; // <<---- #### 끝 페이지 바로가기 모양 설정. (비활성)
//$go_last_page_shape = "<img src='/images/board/navarrow_right2.jpg' border=0 align=top alt='Last Page' hspace=2>";
//$go_last_page_shape2 = "<img src='/images/board/navarrow_right2.jpg' border=0 align=top alt='Last Page' hspace=2>";
if ($page!=$totalpage) {
echo "<a href='" . $_SERVER['PHP_SELF'] . "?$code=$totalpage&$page_string'>";
//echo "<font color='$direct_color' size=2>$go_last_page_shape</font>";
echo "<i class='bi bi-arrow-right'></i>";
echo "</a>";
} else {
//echo ("<font color='$virtual_link_color' size=2>$go_last_page_shape2</font>");
echo "<a href='#'><i class='bi bi-arrow-right'></i></a>";
}
} // end of function paging
} // end of class PAGE
?>