Jump to content
Larry Ullman's Book Forums

Recommended Posts

I have been using the pagination script in an ecommerce site of mine, and when I started it was working great... but as the site has grown, so have the results.

I never imaged I'd have so many products and didn't really plan accordingly... I've got over 400 in one category, which gives me 20+ pages (this ends up breaking the formatting of the page).  If you wanted to limit the number of results shown, what would be the best way to accomplish this using the existing script as a base?

I'm thinking of something like....    <<  FIRST ... 4 | 5 | 6 | 7 | 8 ... LAST  >>

Instead of  PREVIOUS  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10  |  11  |  12  |  13  |  14  |  15  |  16 |  17 |  18  |  19  |  20  NEXT

Not looking for anyone to write the code, just trying to wrap my head around how to tackle the problem and have the pages be dynamic if there is more than a given number (say 10 pages.)

Thanks as always for the amazing book!

Share this post


Link to post
Share on other sites

Thanks for the nice words! As for this situation, first of all, congrats on the growth of your site! 

I've not done this particular thing before, but my inclination is to start by thinking about what variables would exist. You'd always have $current_page and $total_pages. I think I'd then add a $show variable, for the number of additional numbered links to show (e.g., 2 gets you 4 5 6 7 8). 

Then the logic becomes:

  • If $total_pages is greater than some figure (maybe $show * 4?), don't loop through every page number. And then...
  • If there's more than $show pages between 1 and $current_page, do "FIRST...". And also...
  • If there's more than $show pages between $current_page and $total_pages, do "...LAST"

I'm not sure if that's everything but off the top of my head that should get you going in the right direction! Let us know how it goes or if you have more questions!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...