pagination, fixed vertical offset

This commit is contained in:
Ryan Walberg 2012-11-12 05:17:05 +00:00
parent 9d76f9b999
commit b5de4289d1
2 changed files with 38 additions and 11 deletions

View file

@ -31,15 +31,15 @@ if (!empty($_GET["message"])) {
} }
/* if we've got `page' on the query string, set the session page indicator. */ /* if we've got `page' on the query string, set the session page indicator. */
if (!empty($_GET["page"])) { if (isset($_GET["offset"])) {
$_SESSION["page"] = $_GET["page"]; $_SESSION["offset"] = $_GET["offset"];
$page = $_GET["page"]; $offset = $_GET["offset"];
} }
else if (isset($_SESSION["page"])) { else if (isset($_SESSION["offset"])) {
$page = $_SESSION["page"]; $offset = $_SESSION["offset"];
} }
else { else {
$page = 1; $offset = 0;
} }
if (!empty($_GET["action"])) { if (!empty($_GET["action"])) {
@ -99,8 +99,13 @@ else {
} }
$query = "SELECT itemid, description, c.category, price, url, rendered, comment, image_filename FROM {$OPT["table_prefix"]}items i LEFT OUTER JOIN {$OPT["table_prefix"]}categories c ON c.categoryid = i.category LEFT OUTER JOIN {$OPT["table_prefix"]}ranks r ON r.ranking = i.ranking WHERE userid = " . $userid . " ORDER BY $sortby"; $query = "SELECT itemid, description, c.category, price, url, rendered, comment, image_filename FROM {$OPT["table_prefix"]}items i LEFT OUTER JOIN {$OPT["table_prefix"]}categories c ON c.categoryid = i.category LEFT OUTER JOIN {$OPT["table_prefix"]}ranks r ON r.ranking = i.ranking WHERE userid = " . $userid . " ORDER BY $sortby";
$rs = mysql_query($query) or die("Could not query: " . mysql_error()); $rs = mysql_query($query) or die("Could not query: " . mysql_error());
$myitems_count = mysql_num_rows($rs);
$myitems = array(); $myitems = array();
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { for ($i = 0; $i < $offset; $i++) {
$row = mysql_fetch_array($rs, MYSQL_ASSOC);
}
$i = 0;
while ($i++ < $OPT["items_per_page"] && $row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
$row['price'] = formatPrice($row['price']); $row['price'] = formatPrice($row['price']);
$myitems[] = $row; $myitems[] = $row;
} }
@ -222,7 +227,7 @@ if ($OPT["shop_requires_approval"]) {
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
$pending[] = $row; $pending[] = $row;
} }
mysql_free_result($pending); mysql_free_result($rs);
} }
if (($_SESSION["admin"] == 1) && $OPT["newuser_requires_approval"]) { if (($_SESSION["admin"] == 1) && $OPT["newuser_requires_approval"]) {
@ -236,7 +241,7 @@ if (($_SESSION["admin"] == 1) && $OPT["newuser_requires_approval"]) {
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) { while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
$approval[] = $row; $approval[] = $row;
} }
mysql_free_result($approval); mysql_free_result($rs);
} }
define('SMARTY_DIR',str_replace("\\","/",getcwd()).'/includes/Smarty-3.1.12/libs/'); define('SMARTY_DIR',str_replace("\\","/",getcwd()).'/includes/Smarty-3.1.12/libs/');
@ -247,6 +252,8 @@ if (isset($message)) {
$smarty->assign('message', $message); $smarty->assign('message', $message);
} }
$smarty->assign('myitems', $myitems); $smarty->assign('myitems', $myitems);
$smarty->assign('myitems_count', $myitems_count);
$smarty->assign('offset', $offset);
$smarty->assign('shoppees', $shoppees); $smarty->assign('shoppees', $shoppees);
$smarty->assign('prospects', $prospects); $smarty->assign('prospects', $prospects);
$smarty->assign('messages', $messages); $smarty->assign('messages', $messages);

View file

@ -30,10 +30,15 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
} }
</script> </script>
</head> </head>
<body data-offset="80" data-target=".subnav" data-spy="scroll"> <body>
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="/">Gift Registry</a> <a class="brand" href="/">Gift Registry</a>
<div id="main-menu" class="nav-collapse"> <div id="main-menu" class="nav-collapse">
<ul id="main-menu-left" class="nav"> <ul id="main-menu-left" class="nav">
@ -62,7 +67,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
</div> </div>
</div> </div>
</div> </div>
<div class="container"> <div class="container" style="padding-top: 60px;">
{if isset($message)} {if isset($message)}
<section id="message"> <section id="message">
<div class="row"> <div class="row">
@ -130,6 +135,21 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
{/foreach} {/foreach}
</tbody> </tbody>
</table> </table>
{if $myitems_count > $opt.items_per_page}
<div class="pagination">
<ul>
{if $offset >= $opt.items_per_page}
<li><a href="index.php?offset={$offset - $opt.items_per_page}">&lt;</a></li>
{/if}
{for $i=0 to $myitems_count step $opt.items_per_page}
<li {if $offset >= $i && $offset < $i + $opt.items_per_page}class="active"{/if}><a href="index.php?offset={$i}">{$i + $opt.items_per_page}</a></li>
{/for}
{if $offset + $opt.items_per_page < $myitems_count}
<li><a href="index.php?offset={$offset + $opt.items_per_page}">&gt;</a></li>
{/if}
</ul>
</div>
{/if}
<h5><a href="item.php?action=add">Add a new item</a></h5> <h5><a href="item.php?action=add">Add a new item</a></h5>
</div> </div>
</section> </section>