Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #963 from sarce/paginator-tag

prev() and next() methods of PaginatorHelper now possible to place the 'tag' option to 'false' for disable the wrapper.
  • Loading branch information...
commit 165035faa88fbb5b99ea1aba8513b0f99787523d 2 parents c504fcf + d0d1570
@ADmad ADmad authored
View
32 lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
@@ -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'),
@@ -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'),
@@ -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,
@@ -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,
View
10 lib/Cake/View/Helper/PaginatorHelper.php
@@ -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()
*
@@ -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()
*
@@ -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')));
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.