조회 : 123
많고 많은 페이징 처리함수입니다.
다시 게시판 만드면서 다시 만들어 봤습니다.
그전에는 include로 파일로 처리했는데
생각해보니깐 함수로 처리하는 편이 좋을것 같아서 만들어 봤습니다.
#사용법
//$cfg['page']=10; //현제 페이지 , 지정을 안하면 $_REQUEST['page']를 사용합니다
$cfg['page_max']=27; //총 페이지수
$cfg['page_step']=10; //나눌 페이지수
$cfg['url']='?'; //기본 URL, page부분이 표시 안되는
//URL에는 자동을 &page=N 처럼 붙어서 처리됩니다.
//xHTML기준으로 만들어졌기 때문에 &는 & 로 처리합니다.
$cfg['template']='[%]'; //숫자형 출력형식 %문자를 수자로 대치합니다.
$cfg['template2']='<b>[%]</b>'; //해당 페이지 일때
$cfg['icon']['first']=$mv4_bi['skin_url'].'/img/icon.toleft.gif'; //맨 처음 아이콘
$cfg['icon']['before']=$mv4_bi['skin_url'].'/img/icon.toleft.gif'; //그전 아이콘
$cfg['icon']['next']=$mv4_bi['skin_url'].'/img/icon.toright.gif'; //다음 아이콘
$cfg['icon']['last']=$mv4_bi['skin_url'].'/img/icon.toright.gif'; //마지막 아이콘
//아이콘을 지정안하면 << , < , > , >> 가 대신 사용됩니다.
print implode(' ' , mv4_paging($cfg));
or
mv4_paging_print($cfg);
#함수 설명
mv4_paging();
페이징 처리된 내용을 배열로 반환합니다.
앞의 2개는, 맨처음,그전
뒤의 2개는, 다음,마지막
입니다.
그 중간은 숫자로 된 부분입니다.
mv4_paging_print($cfg);
xHTML은 <img>으 align에 absmiddle를 사용할 수 없습니다.
그래서 middle로 할 경우 글자와 위치가 이상하기 때문에
그것을 방지하기 위해서 table로 출력하도록 하는 함수입니다.
테이블은 border=0이며 class는 page로 되어있습니다.
CSS로 간단하게 조작하실 수 있습니다.
#예제
..없습니다.
이건 따로 사용하는 함수가 아니라서 아직 인터넷 상에 적용된 페이지를 올리지 않았습니다.
#사용제약
언제나의 그것.
#p.s.
함수 이름이나 기본값 등등은 바꿔서 사용하세요.
//===============
// 페이징 처리
//===============
function mv4_paging_print($cfg=null){
$parr = mv4_paging($cfg);
print('<table class="page" border="0" cellspacing="0" cellpadding="1"><tr>');
for($i=0,$m=count($parr);$i<$m;$i++){
print("<td valign=middle>{$parr[$i]}</td>");
}
print('</tr></table>');
}
function mv4_paging($cfg=null){
$arr = array();
if(!$cfg){
//$cfg['page']='';
$cfg['page_max']=0;
$cfg['page_step']=10;
$cfg['url']='';
$cfg['template']=' [%] ';
$cfg['template2']=' <b>[%]</b> ';
$cfg['icon']['first']='';
$cfg['icon']['before']='';
$cfg['icon']['next']='';
$cfg['icon']['last']='';
}
if(!$cfg['page_max']){
$arr[]='NO DATA';
return $arr;
}
if(!$cfg['page_step']){
$arr[]='SETTING ERROR';
return $arr;
}
$page = isset($cfg['page'])?$cfg['page']:$_REQUEST['page'];
if(!$page){$page=1;}
//URL처리
$turl = (!$cfg['url']||$cfg['url']=='?')?'?':$cfg['url'].'&';
//=== page 처리
if($page<1){$page=1;}
else if($page>$cfg['page_max']){$page=$cfg['page_max'];}
$sti = floor(($page-1)/$cfg['page_step'])*$cfg['page_step']+1;
if($sti<1){$sti=1;}
$edi = $sti+$cfg['page_step']-1;
if($edi>$cfg['page_max']){$edi=$cfg['page_max'];}
//xHTML은 absmiddle를 사용할 수 없다.
$icon['first']=$cfg['icon']['first']?"<img border=0 align='middle' src='{$cfg['icon']['first']}' />":str_replace('%','<<',$cfg['template']);
$icon['before']=$cfg['icon']['before']?"<img border=0 align='middle' src='{$cfg['icon']['before']}' />":str_replace('%','<',$cfg['template']);
$icon['next']=$cfg['icon']['next']?"<img border=0 align='middle' src='{$cfg['icon']['next']}' />":str_replace('%','>',$cfg['template']);
$icon['last']=$cfg['icon']['last']?"<img border=0 align='middle' src='{$cfg['icon']['last']}' />":str_replace('%','>>',$cfg['template']);
if($page <= $cfg['page_step'] || $sti <= 1){
$arr[] = $icon['first'];
$arr[] = $icon['before'];
}else{
$url = $turl.'page=1';
$arr[] = "<a title='처음' href='{$url}'>".$icon['first']."</a>";
$url = $turl.'page='.($sti-1);
$arr[] = "<a title='이전' href='{$url}'>".$icon['before']."</a>";
}
for($i=$sti;$i<=$edi;$i++){
$url = $turl.'page='.$i;
if($i==$page) $t1 = str_replace('%',$i,$cfg['template2']);
else $t1 = str_replace('%',$i,$cfg['template']);
$arr[]="<a href='{$url}'>{$t1}</a>";
}
if($page > ($cfg['page_max']-$cfg['page_max']%$cfg['page_step']) || $edi==$cfg['page_max']){
$arr[] = $icon['next'];
$arr[] = $icon['last'];
}else{
$url = $turl.'page='.($edi+1);
$arr[] = "<a title='다음' href='{$url}'>".$icon['next']."</a>";
$url = $turl.'page='.$cfg['page_max'];
$arr[] = "<a title='마지막' href='{$url}'>".$icon['last']."</a>";
}
return $arr;
}
제목 | 작성자 | 날짜 |
---|---|---|
공대여자 | ||
공대여자 | ||
mins01 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 |