//
// Ôóíêöèè ïîñòðàíè÷íîãî âûâîäà äàííûõ.
//
// (C) Äìèòðèé Ëåáåäåâ detail@phpclub.net
// http://detail.phpclub.net
//
// Ïðè êîììåð÷åñêîì èñïîëüçîâàíèè ññûëêà îáÿçàòåëüíà.
//
function get_page($page, $total, $in_page) {
if ($page<0)
return 0;
elseif ($total>0) {
$max = $total/$in_page;
if (intval($max)==$max)
$max = intval($max)-1;
else
$max = intval($max);
if ($page>$max)
return $max;
else
return $page;
}
else
return 0;
}
function draw_bar ($page, $total, $in_page, $url) {
$page = get_page($page, $total, $in_page);
if ($total>0 && intval($total/$in_page)>0) {
$start=$page-2; $end=$page+2;
if ($start<0) {
$start=0;
$end=$start+4;
};
$end1 = intval(($total-1)/$in_page);
if ($end>$end1 && $start>$end-$end1) {
$end=$end1;
$start=$end-4;
}
elseif ($end>$end1) {
$end=$end1;
$start=0;
};
if ($start>0)
$nav_panel[] = "
<< first page";
if ($page>$start)
$nav_panel[] = "
<< previous";
for ($a=$start; $a<=$end; $a++) {
if ($a==$page)
$nav_panel[] = "
". ($a+1). "";
else
$nav_panel[] = "
". ($a+1). "";
};
if ($page<$end)
$nav_panel[] = "
next >>";
return implode(" | ", $nav_panel);
};
}
function get_limit ($page, $total, $in_page, $start_from) {
$page = get_page ($page, $total, $in_page);
if ($total>0) {
if (intval($total/$in_page)==0)
return " LIMIT ". $start_from. ", $in_page";
elseif ($page>0)
return " LIMIT ". ($page*$in_page + $start_from). ",$in_page";
else
return " LIMIT ". $start_from. ", $in_page";
}
else
return "";
}
function get_count_limit ($page, $total, $in_page) {
$page = get_page ($page, $total, $in_page);
return $page*$in_page;
}
?>