Skip to content

Commit c39416d

Browse files
committed
Update Link header
1 parent d64d6ae commit c39416d

4 files changed

Lines changed: 43 additions & 23 deletions

File tree

application/Config/Pager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Pager extends BaseConfig
2020
public $templates = [
2121
'default_full' => 'CodeIgniter\Pager\Views\default_full',
2222
'default_simple' => 'CodeIgniter\Pager\Views\default_simple',
23-
'default_header' => 'CodeIgniter\Pager\Views\default_header'
23+
'default_head' => 'CodeIgniter\Pager\Views\default_head',
2424
];
2525

2626
/*

system/HTTP/Response.php

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
use Config\App;
4141
use Config\Format;
4242
use CodeIgniter\HTTP\Exceptions\HTTPException;
43+
use CodeIgniter\Pager\PagerInterface;
4344

4445
/**
4546
* Redirect exception
@@ -386,14 +387,35 @@ public function setDate(\DateTime $date)
386387
/**
387388
* Set the Link Header
388389
*
389-
* @param \CodeIgniter\Pager\Pager $pager
390+
* @param \CodeIgniter\Pager\PagerInterface $pager
391+
*
392+
* @see http://tools.ietf.org/html/rfc5988
390393
*
391394
* @return Response
392395
*/
393-
public function setLink(Pager $pager)
396+
public function setLink(PagerInterface $pager)
394397
{
395-
// http://tools.ietf.org/html/rfc5988
396-
$this->setHeader('Link', $pager->links('default', 'default_header'));
398+
//$pager->setSurroundCount(0);
399+
$links = '';
400+
401+
if ($previous = $pager->getPreviousPageURI())
402+
{
403+
$links .= '<' . $pager->getPageURI($pager->getFirstPage()) . '>; rel="first",';
404+
$links .= '<' . $previous . '>; rel="prev"';
405+
}
406+
407+
if (($next = $pager->getNextPageURI()) && $previous)
408+
{
409+
$links .= ',';
410+
}
411+
412+
if ($next)
413+
{
414+
$links .= '<' . $next . '>; rel="next",';
415+
$links .= '<' . $pager->getPageURI($pager->getLastPage()) . '>; rel="last"';
416+
}
417+
418+
$this->setHeader('Link', $links);
397419

398420
return $this;
399421
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
/**
3+
* @var \CodeIgniter\Pager\Pager $pager
4+
*/
5+
6+
if ($pager->getPreviousPageURI())
7+
{
8+
echo '<link rel="prev" href="' . $pager->getPreviousPageURI() . '">' . PHP_EOL;
9+
}
10+
11+
echo '<link rel="canonical" href="' . $pager->getPageURI($pager->getCurrentPage()) . '">' . PHP_EOL;
12+
13+
if ($pager->getNextPageURI())
14+
{
15+
echo '<link rel="next" href="' . $pager->getNextPageURI() . '">' . PHP_EOL;
16+
}

system/Pager/Views/default_header.php

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)