Return to Snippet

Revision: 39531
at January 18, 2011 04:31 by kendsnyder


Initial Code
function getResultPaging($perPage, $currPage, $total) {
	$paging = new stdClass;

	// get text
	$startRec = ($perPage * ($currPage - 1)) + 1;
	$endRec = min($total, $perPage * $currPage);
	$totalPages = ceil($total / $perPage);
	$paging->text = "Viewing records $startRec–$endRec of $total";
	$paging->links = array();

	// do we have a search string to append to each paging link?
	if (($searchName = trim(@$_REQUEST['search']))) {
		$searchString = "&search=" . rawurlencode($searchName);
	}
	else {
		$searchString = '';
	}
	$_SESSION['last-search'] = '?page=' . $currPage . $searchString;

	// get pages that should be listed
	if ($currPage > 5 && $totalPages > 10) {
		$posFromLast = $totalPages - $currPage;
		if ($posFromLast >= 5) {
			$pages = range($currPage - 4, $currPage + 5);
		}
		else {
			$pages = range($currPage - 9 + $posFromLast, $totalPages);
		}
	}
	else {
		$pages = range(1, $totalPages > 10 ? 10 : $totalPages);
	}

	// prev link
	$paging->links[] = $currPage > 1 ?
		'<a class="item prev-next prev" href="?page='.($currPage-1).$searchString.'"><span class="quo">&laquo;</span> Prev</a>' :
		'<span class="item prev-next prev inactive"><span class="quo">&laquo;</span> Prev</span>';

	if ($pages[0] != 1) {
		$paging->links[] = '<span class="item elipses">...</span>';
	}

	// regular links
	foreach ($pages as $page) {
		$paging->links[] = $currPage == $page ?
			'<span class="item inactive current">'.$page.'</span>' :
			'<a class="item" href="?page='.$page.$searchString.'">'.$page.'</a>';
	}

	if ($pages[count($pages) - 1] != $totalPages) {
		$paging->links[] = '<span class="item elipses">...</span>';
	}

	// next link
	$paging->links[] = $currPage < $totalPages ?
		'<a class="item prev-next prev" href="?page='.($currPage+1).$searchString.'">Next <span class="quo">&raquo;</span></a>' :
		'<span class="item prev-next prev inactive">Next <span class="quo">&raquo;</span></span>';

	return $paging;
}

Initial URL

                                

Initial Description

                                

Initial Title
SQL results pager HTML

Initial Tags
sql, html

Initial Language
PHP