Jump to content

first/last page of array


Recommended Posts

Hey guys! This is probably a total newbi question, but I cant figure it out myself.

I use two links to get to the previous or next page. When the user is on the last page, I want the next link to show the first page.

When the user is on the first page I want the previous link to show the last page. How can I do this with the API?

This is my second site with PW, so Iam still trying to figure things out. Here is my code:

<ul id="nav">
  <li class="nav-left"><a href="<?php echo $page->prev->url; ?>" class="arrow"><img src="<?php echo $config->urls->templates?>img/site/arrow_left.svg"></a></li>
  <li class="nav-right"><a href="<?php echo $page->next->url; ?>" class="arrow"><img src="<?php echo $config->urls->templates?>img/site/arrow_right.svg"></a></li>


Link to comment
Share on other sites

  • 2 months later...

I wonder if there such a quick way to sort and filter this? 

What about doing a next|prev|last|first roundtrips for an ordered selection of the page's siblings only?

This does not work (always true):

$prev = ($page->prev($myfilter)->id) ? $page->prev($myfilter) : $page->siblings($myfilter)->last();
$next = ($page->next($myfilter)->id) ? $page->next($myfilter) : $page->siblings($myfilter)->first();

There must be something wrong with my thinking here...

Link to comment
Share on other sites

  • 3 months later...

I solved it by doing it a little bit differently - now sorting and filtering works:

$siblings = $page->siblings("sort=date");
$prev = $siblings->getNext($page);
$next = $siblings->getPrev($page);

"Last" and "first" can be tested easily: if you reach the last or first item, $next or §prev return NULL (or have no ID) - LostKobrakai's code works great to catch that.

So the difference was that I build my own pageArray ($siblings) instead of using $page, as suggested, to enable sorting.
It was so easy to solve that I did not see it right before my eyes :-)
  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Content

    • By kalimati
      Processwire allows us to define predefined tags for images. What if I want to use a repeater field on the page for the purpose? How can I use values of this repeater field as the list of available tags for image fields?
    • By Henrik
      How can I identify the current position of a page in a page array? I just want to know if the position is odd or even, to alternately place an image left or right. 
      Lets say I have this code:
      if($page->children) { foreach($page->children as $child) { // ... if($child->... position is odd ...) {  echo "<div class='image_left'> ..."; } if($child->... position is even ...) {  echo "<div class='image_right'> ..."; } // ... } } How can I identify if the current position of the page in the page array is odd or even?
      Thank you 
    • By Vineet Sawant
      Hello everyone,
      I'm creating a large scale application which will be used by thousands of people. Part of of the application requires storing temporary information about user's activities. For example, if user comments on certain topic, notification of same should be given to OP and people following the topic.
      I thought I'd create a subpage with a repeater field having few fields like user id, timestamp & notification status, read/unread (I just don't see why using page table is better in this case, if someone can enlighten me, that'd be great.).
      But I've read that every repeater item is same as new page, so I'm really confused whether I should just start keeping temporary pages or use a page with repeater field.
      But for every topic, there can be hundreds of notifications, which I think will be a problematic situation in future. So I am looking for any kind of temporary storage that will not included creating pages.
      Writing logs to file could be done but i'm not sure how good solution is that and how reliable it'll be.
      I'd really like a good conversation with someone who understands PW, so I'm here.
      Thank you all.
  • Create New...