Edit: So with a little help from chump2877, I got the function working without throwing errors. Now I'm having trouble with my implimentation.
My problem is that I only want to display the current page number and the prev/next arrows.
on the "Print navigation: line, i defined the variable for 12 items total, only one item per page, 1 active link, 0 Near by links.
All I want is for it to display the < and > links with the current page number between them, like so:
< 5 >
The code to create the links from this function is:
You can see that I have a rudimentry version working of the function and the print navigation. Howeverm it needs refining.
The relevant code is:
PHP Code:
function navigation($pre_href, $post_href, $num_items, $items_per_page, $active, $nearby, $threshold)
{
# … is the ellipse character: "..."
$space = '<span class="spacer"> … '."\n\t".'</span>';
# There's no point in printing this string if there are no items,
# Or if they all fit on one page.
if ($num_items > 0 && $num_items > $items_per_page)
{
# STEP 1:
# Force variables into certain values.
# $items_per_page can't be smaller than 1!
# Also, avoid division by zero later on.
$items_per_page = max($items_per_page, 1);
# Calculate the number of listing pages.
$total = ceil($num_items/$items_per_page);
# $active can't be higher than $total or smaller than 1!
$active = max( min($active,$total), 1);
# STEP 2:
# Do the rest.
# Get the sequence of pages to show links to.
$pages = navigationSequence($total, $active, $nearby, $threshold);
# Print a descriptive string.
$first = ($active-1)*$items_per_page + 1;
$last = min($first+$items_per_page-1, $num_items);
if ($first == $last)
$listing = $first;
else
# – is the EN dash, the proper hyphen to use.
$listing = $first.'–'.$last;
$r = '<p class="navigation">'."\n\tShowing $listing of $num_items<br />\n";
# Decide how the each link should be presented.
for($i=0; $i<sizeof($pages); $i++)
{
# Current link.
$curr = $pages[$i];
# See if we should any $spacer in connection to this link.
if ($i>0 AND $i<sizeof($pages)-1)
{
$prev = $pages[$i-1];
$next = $pages[$i+1];
# See if we should any $spacer *before* this link.
# (Don't add one if the last link is already a spacer.)
if ($prev < $curr-1 AND $links[sizeof($links)-1] != $space)
$links[] = $space;
}
# Add the link itself!
# If the link is not the active page, link it.
if ($curr != $active)
$links[] = '<a href="'.$pre_href.$curr.$post_href.'">'.$curr.'</a>';
# Else don't link it.
else
$links[] = '<strong class="active">'.$active.'</strong>';
if ($i>0 AND $i<sizeof($pages)-1)
{
# See if we should any $spacer *after* this link.
# (Don't add one if the last link is already a spacer.)
if ($next > $curr+1 AND $links[sizeof($links)-1] != $space)
$links[] = $space;
}
}
function navigation($pre_href='index.php?id=brewery&id2=?', $post_href='', $num_items=12, $items_per_page=1, $active=1, $nearby=0, $threshold=3)
Your code is returning a value at the end, so it would seem to indicate that this code is a user-defined function...
Thank You!
I got it working and printing links the minute I followed your advice!
I edited the first post to try and figure out why the links are not behaving as I expected, but thank you for helping me with the function. I suspect I made a fairly obvious mistake.