Tilted Forum Project Discussion Community

Tilted Forum Project Discussion Community (https://thetfp.com/tfp/)
-   Tilted Technology (https://thetfp.com/tfp/tilted-technology/)
-   -   {PHP} Prev Next code for a gallery (https://thetfp.com/tfp/tilted-technology/103774-php-prev-next-code-gallery.html)

arch13 04-23-2006 07:17 PM

{PHP} Prev Next code for a gallery
 
Edit: Got it working. Please see my post below. I edited the php in this post to show the working function.

Reference Page:
http://www.arch13.com/index.php?id=brewery&id2=2

I have a function I found that I can't seem to modify to save my life. I'd like to humbly ask for help from the TFP members...

I am trying to get a page to print < 1 >, where clicking on either "arrow" takes you to the next page (In this case an image)

The first error occurs at line two, where it does not like the "{"
The basic code follows:

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 && $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_page1);

        
# 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 maxmin($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";
    
        
# Initialize the list of links.
        
$links = array();
    
        
# Add "previous" link.
        
if ($active && $total 1)
            
$links[] = '<a href="'.$pre_href.($active-1).$post_href.
                       
'" class="prev" title="Previous">&laquo;</a>';
    
        
# 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>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-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>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+AND $links[sizeof($links)-1] != $space)
                    
$links[] = $space;
            }
        }
    
        
# Add "next" link.
        
if ($active $total && $total 1)
            
$links[] = '<a href="'.$pre_href.($active+1).$post_href.
                       
'" class="next" title="Next">&raquo;</a>';
    
        
# Put it all together.
        
$r .= "\t".implode($links"\n\t")."\n</p>\n";
        
$r str_replace("\n\t".$space."\n\t"$space$r);

        return 
$r;
    }
    else
        return 
false;


This worries me also, but I can't even get the script to get far enough to see if it works:
PHP Code:

$pre_href='index.php?id=brewery&id2=' 

It's spitting out errors like crazy!
Mostly syntax based. I'm what they call "Know just enough to screw it up"

I just want next and previous links for a photo gallery!

trache 04-25-2006 10:29 AM

Quote:

# See if we should any $spacer in connection to this link.
if ($i>0 AND $i<sizeof($pages)-1)
{
I'm no PHP guru, however I don't recall ever seeing the word "AND" in a PHP if/then/else statement. Change it to '&&'. In fact, I see 'AND' throughout. Change them all.

You could always wrap your conditions in brackets to isolate them from any other tests. That's what I do, anyway. It makes it easier to read and understand what is being tested.

One thing I do to make sure I'm debugging the correct code (sometimes PHP errors are hard to track because of the output you actually get on your page) is just insert "print "boo"" or whatever to track where in the execution pipeline my code is at the moment. PHP is pretty good at telling you what line number it messed up on, but sometimes is the line you don't have to change to debug your program.

arch13 04-25-2006 05:53 PM

I got the function working.

It's located here:
http:www.arch13.com/prevnext.php

The code to print the links is:
PHP Code:

$pre_href 'index.php?id=brewery/brewery&id2=';
$post_href '';
$page_no $HTTP_GET_VARS['id2'];
print 
navigation($pre_href$post_href121103$page_no); 

However, I just want it to print < 5 >, etc where the number is the active page, and the arrows are for next and previous.

I edited the first post to show the function in a working form.
Any ideas are greatly appreciated.

trache 04-26-2006 01:55 PM

Quick and dirty? Take out the code that references the actual prev/next page numbers leaving the code that displays or appends the current page number to the line of HTML you output from that function.

arch13 05-01-2006 12:35 PM

Quote:

Originally Posted by trache
Quick and dirty? Take out the code that references the actual prev/next page numbers leaving the code that displays or appends the current page number to the line of HTML you output from that function.

Do you mean this area?
This seems to be what prints the adjoining numbers to the current page.


PHP Code:

            # See if we should any $spacer in connection to this link.
            
if ($i>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-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>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+AND $links[sizeof($links)-1] != $space)
                    
$links[] = $space


trache 05-01-2006 08:33 PM

That would be it. Put /* */ around it so you can comment it out but leave it in the code if you want to use it later. :)


All times are GMT -8. The time now is 05:17 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76