0) { //ajax pagination $startitem = (intval(@$_GET['pageno']) - 1) * $ipp; } elseif (@$rewrite[sizeof($rewrite) - 2] == 'page') { //non-ajax pagination $startitem = (intval($rewrite[sizeof($rewrite) - 1]) - 1) * $ipp; array_pop($rewcopy); array_pop($rewcopy); } else { $startitem = 0; } if ($startitem >= $totalitems) $startitem = $totalitems - 1; if ($startitem < 0) $startitem = 0; $currentpage = ($startitem / $ipp) + 1; $limits = "$startitem,$ipp"; $sql .= " LIMIT $limits"; $pagination = array( 'totalitems' => $totalitems, 'totalpages' => $totalpages, 'startitem' => $startitem, 'currentpage' => $currentpage, 'itemsperpage' => $ipp, 'itemfrom' => $startitem + 1, 'itemto' => min($startitem + $ipp, $totalitems) ); if ($currentpage > 1) { $pagination['pageprev'] = $currentpage - 1; $pagination['hrefprev'] = rewrite(implode('/', $rewcopy) . '/page/' . ($currentpage - 1)); } if ($currentpage < $totalpages) { $pagination['pagenext'] = $currentpage + 1; $pagination['hrefnext'] = rewrite(implode('/', $rewcopy) . '/page/' . ($currentpage + 1)); } $pagination['hrefs'] = array(); for ($i = 1; $i <= $totalpages; $i++) { $pagination['hrefs'][] = array( 'page' => "$i", 'text' => "$i", 'href' => rewrite(implode('/', $rewcopy) . '/page/' . $i) ); } $smarty->assign('pagination', $pagination); return $startitem; } else { trigger_error("CANNOT PAGINATE LIMITED QUERIES"); return false; } } ?>