* @link http://ifphp.cn
* @version $Id$
* @package if
* @subpackage plugin.pager
*/
/**
* 仿Yahoo搜索的分页
*
* @version $Id$
* @package if
* @subpackage plugin.pager
* @since 1.0
*/
import("@.RPage");
class RPageStyle1 extends RPage {
function __toString() {
$pages = array();
$pageNum = $this->length();
$currPageNo = $this->current();
$query = $this->query();
$size = $this->size();
$total = $this->total();
$pageSetNum = $this->pageSetNum();
$middlePageNum = ceil($pageSetNum/2);
if ($pageNum > 0) {
if ($currPageNo <= $middlePageNum) {
$start = 1;
$end = min($pageNum, $pageSetNum);
}
else if ($currPageNo + $middlePageNum - 1 > $pageNum) {
$start = max(1, $pageNum - $pageSetNum - 1);
$end = $pageNum;
}
else {
$start = max(1, $currPageNo - $middlePageNum);
$end = min($currPageNo + $middlePageNum - 1, $pageNum);
}
if ($pageNum > 1) {
$pages[] = "url(1) . "\" title=\"First Page\">« ";
}
if ($currPageNo > 1) {
$pages[] = "url($currPageNo - 1) . "\" title=\"Previous {$size}\">" . $this->message("pager_prev") . " ";
}
for ($i = $start; $i <= $end; $i++) {
$_start = $size * ($i - 1) + 1;
$_end = min($size * $i, $total);
if ($i != $currPageNo) {
$pages[] = "url($i) . "\" title=\"Results {$_start} - {$_end}\">{$i}";
}
else {
$pages[] = "url($i) . "\" title=\"Results {$_start} - {$_end}\">{$i}";
}
}
if ($currPageNo < $pageNum) {
$pages[] = " url($currPageNo + 1) . "\" title=\"Next {$size}\">" . $this->message("pager_next") . "";
}
if ($pageNum > 1) {
$pages[] = "url($pageNum) . "\" title=\"Last Page\">» ";
}
}
$string = implode(" ", $pages);
return $string;
}
}