ceberlin Posted December 11, 2013 Share Posted December 11, 2013 Google wants special code in the header to identify pages with a paginator correctly: <link rel="prev" href="http://www.example.com/article?page=1" /><link rel="next" href="http://www.example.com/article?page=3" /> Is there a way to do that with the paginator module already - or with some small tweaks? All the needed information should be there already (like "is there a next/prev page" and "what are the links") and there might be just some additional rendering for the header part of the webpage necessary. Source/read more: http://googlewebmastercentral.blogspot.de/2011/09/pagination-with-relnext-and-relprev.html Link to comment Share on other sites More sharing options...
Philipp Posted December 11, 2013 Share Posted December 11, 2013 Couldn't you just use the current page number and generate the URLs according to this? $input->pageNum gives you the current page. Example: $nextURL = $config->httpHost . "page-" . $input->pageNum + 1; Of course, you would need to deal with the last and first page. Link to comment Share on other sites More sharing options...
teppo Posted December 11, 2013 Share Posted December 11, 2013 Philipp is right -- this is roughly the logic I used a while ago: if ($input->pageNum) { $limit = 15; // whatever limit you're actually using if ($input->pageNum > 1) { echo "<link rel='prev' href='{$page->url}{$config->pageNumUrlPrefix}".($input->pageNum-1)."' />"; } if ($input->pageNum * $limit < $items->getTotal()) { echo "<link rel='next' href='{$page->url}{$config->pageNumUrlPrefix}".($input->pageNum+1)."' />"; } } 3 Link to comment Share on other sites More sharing options...
ceberlin Posted December 11, 2013 Author Share Posted December 11, 2013 I see... I need to calculate the loop earlier (in the head already) and then have the info I need ... Here is my code in case s.o. wants to play with it further:I am trying this now within the page's head: $limit = 12; // the "limit"-setting used on this page $children = $page->children("limit=" . $limit); $totalpages = ceil($children->getTotal() / $limit); // PAGINATOR: set SEO tags for Google if ($input->pageNum) { if ($input->pageNum < $totalpages) { echo "<link rel='next' href='" . $page->url . $config->pageNumUrlPrefix . ($input->pageNum + 1) . "' />"; } if ($input->pageNum > 1) { echo "<link rel='prev' href='" . $page->url . $config->pageNumUrlPrefix . ($input->pageNum - 1) . "' />"; } } Within the body comes the loop and the paginator: <?php foreach($children as $child): ?> ... <?php endforeach; ?> <?=$children->renderPager(); ?> Link to comment Share on other sites More sharing options...
Soma Posted December 11, 2013 Share Posted December 11, 2013 This would give you a pager without enabling PageNumbers on template, thus using /?page=2 instead of /page2 $pageNum = $input->get->page ? $input->get->page - 1 : 0; $limit = 5; $start = $pageNum * $limit; $result = $page->children("start=$start, limit=$limit"); echo $result->renderPager(); foreach($result as $p) echo "<p>$p->url</p>"; echo $result->renderPager(); 4 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now