Skip to content

Commit

Permalink
prev() and next() methods of PaginatorHelper now possible to place th…
Browse files Browse the repository at this point in the history
…e 'tag' option to 'false' for disable the wrapper.
  • Loading branch information
sarce committed Nov 17, 2012
1 parent 26e3184 commit d0d1570
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
32 changes: 32 additions & 0 deletions lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
Expand Up @@ -865,6 +865,14 @@ public function testPagingLinks() {
);
$this->assertTags($result, $expected);

$result = $this->Paginator->prev('<< Previous', array('tag' => false), null, array('class' => 'disabled'));
$expected = array(
'a' => array('href' => '/index/page:1', 'rel' => 'prev', 'class' => 'prev'),
'&lt;&lt; Previous',
'/a'
);
$this->assertTags($result, $expected);

$result = $this->Paginator->next('Next');
$expected = array(
'span' => array('class' => 'next'),
Expand All @@ -885,6 +893,14 @@ public function testPagingLinks() {
);
$this->assertTags($result, $expected);

$result = $this->Paginator->next('Next', array('tag' => false));
$expected = array(
'a' => array('href' => '/index/page:3', 'rel' => 'next', 'class' => 'next'),
'Next',
'/a'
);
$this->assertTags($result, $expected);

$result = $this->Paginator->prev('<< Previous', array('escape' => true));
$expected = array(
'span' => array('class' => 'prev'),
Expand Down Expand Up @@ -944,6 +960,14 @@ public function testPagingLinks() {
);
$this->assertTags($result, $expected);

$result = $this->Paginator->prev('<< Previous', array('tag' => false), '<strong>Disabled</strong>');
$expected = array(
'span' => array('class' => 'prev'),
'&lt;strong&gt;Disabled&lt;/strong&gt;',
'/span'
);
$this->assertTags($result, $expected);

$this->Paginator->request->params['paging'] = array(
'Client' => array(
'page' => 1,
Expand Down Expand Up @@ -1016,6 +1040,14 @@ public function testPagingLinks() {
);
$this->assertTags($result, $expected);

$result = $this->Paginator->next('Next', array(), null, array('tag' => false));
$expected = array(
'span' => array('class' => 'next'),
'Next',
'/span'
);
$this->assertTags($result, $expected);

$this->Paginator->request->params['paging'] = array(
'Client' => array(
'page' => 2, 'current' => 1, 'count' => 13, 'prevPage' => true,
Expand Down
10 changes: 7 additions & 3 deletions lib/Cake/View/Helper/PaginatorHelper.php
Expand Up @@ -247,7 +247,7 @@ public function sortDir($model = null, $options = array()) {
*
* ### Options:
*
* - `tag` The tag wrapping tag you want to use, defaults to 'span'
* - `tag` The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this option
* - `escape` Whether you want the contents html entity encoded, defaults to true
* - `model` The model to use, defaults to PaginatorHelper::defaultModel()
*
Expand All @@ -271,7 +271,7 @@ public function prev($title = '<< Previous', $options = array(), $disabledTitle
*
* ### Options:
*
* - `tag` The tag wrapping tag you want to use, defaults to 'span'
* - `tag` The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this option
* - `escape` Whether you want the contents html entity encoded, defaults to true
* - `model` The model to use, defaults to PaginatorHelper::defaultModel()
*
Expand Down Expand Up @@ -468,12 +468,16 @@ protected function _pagingLink($which, $title = null, $options = array(), $disab
${$key} = $options[$key];
unset($options[$key]);
}
$url = array_merge(array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)), $url);

if ($this->{$check}($model)) {
$url = array_merge(array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)), $url);
if ($tag === false) {
return $this->link($title, $url, array_merge($options, compact('escape', 'model', 'class')));
}
return $this->Html->tag($tag, $this->link($title, $url, array_merge($options, compact('escape', 'model'))), compact('class'));
} else {
unset($options['rel']);
$tag = $tag ? $tag : $_defaults['tag'];
return $this->Html->tag($tag, $title, array_merge($options, compact('escape', 'class')));
}
}
Expand Down

0 comments on commit d0d1570

Please sign in to comment.