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.
This commit is contained in:
ADmad 2012-11-18 22:41:10 -08:00
commit 165035faa8
2 changed files with 39 additions and 3 deletions

View file

@ -865,6 +865,14 @@ class PaginatorHelperTest extends CakeTestCase {
); );
$this->assertTags($result, $expected); $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'); $result = $this->Paginator->next('Next');
$expected = array( $expected = array(
'span' => array('class' => 'next'), 'span' => array('class' => 'next'),
@ -885,6 +893,14 @@ class PaginatorHelperTest extends CakeTestCase {
); );
$this->assertTags($result, $expected); $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)); $result = $this->Paginator->prev('<< Previous', array('escape' => true));
$expected = array( $expected = array(
'span' => array('class' => 'prev'), 'span' => array('class' => 'prev'),
@ -944,6 +960,14 @@ class PaginatorHelperTest extends CakeTestCase {
); );
$this->assertTags($result, $expected); $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( $this->Paginator->request->params['paging'] = array(
'Client' => array( 'Client' => array(
'page' => 1, 'page' => 1,
@ -1016,6 +1040,14 @@ class PaginatorHelperTest extends CakeTestCase {
); );
$this->assertTags($result, $expected); $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( $this->Paginator->request->params['paging'] = array(
'Client' => array( 'Client' => array(
'page' => 2, 'current' => 1, 'count' => 13, 'prevPage' => true, 'page' => 2, 'current' => 1, 'count' => 13, 'prevPage' => true,

View file

@ -247,7 +247,7 @@ class PaginatorHelper extends AppHelper {
* *
* ### Options: * ### 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 * - `escape` Whether you want the contents html entity encoded, defaults to true
* - `model` The model to use, defaults to PaginatorHelper::defaultModel() * - `model` The model to use, defaults to PaginatorHelper::defaultModel()
* *
@ -271,7 +271,7 @@ class PaginatorHelper extends AppHelper {
* *
* ### Options: * ### 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 * - `escape` Whether you want the contents html entity encoded, defaults to true
* - `model` The model to use, defaults to PaginatorHelper::defaultModel() * - `model` The model to use, defaults to PaginatorHelper::defaultModel()
* *
@ -468,12 +468,16 @@ class PaginatorHelper extends AppHelper {
${$key} = $options[$key]; ${$key} = $options[$key];
unset($options[$key]); unset($options[$key]);
} }
$url = array_merge(array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)), $url);
if ($this->{$check}($model)) { 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')); return $this->Html->tag($tag, $this->link($title, $url, array_merge($options, compact('escape', 'model'))), compact('class'));
} else { } else {
unset($options['rel']); unset($options['rel']);
$tag = $tag ? $tag : $_defaults['tag'];
return $this->Html->tag($tag, $title, array_merge($options, compact('escape', 'class'))); return $this->Html->tag($tag, $title, array_merge($options, compact('escape', 'class')));
} }
} }