diff --git a/Cake/Test/TestCase/View/Helper/PaginatorHelperTest.php b/Cake/Test/TestCase/View/Helper/PaginatorHelperTest.php index b2863eedfa2..decc7991f85 100644 --- a/Cake/Test/TestCase/View/Helper/PaginatorHelperTest.php +++ b/Cake/Test/TestCase/View/Helper/PaginatorHelperTest.php @@ -717,19 +717,19 @@ public function testPassedArgsMergingWithUrlOptions() { $result = $this->Paginator->numbers(); $expected = array( - array('span' => array('class' => 'current')), '1', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/articles/index/2?page=2&foo=bar&x=y')), '2', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=2&foo=bar&x=y')), '2', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/articles/index/2?page=3&foo=bar&x=y')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=3&foo=bar&x=y')), '3', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/articles/index/2?page=4&foo=bar&x=y')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=4&foo=bar&x=y')), '4', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/articles/index/2?page=5&foo=bar&x=y')), '5', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=5&foo=bar&x=y')), '5', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/articles/index/2?page=6&foo=bar&x=y')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=6&foo=bar&x=y')), '6', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/articles/index/2?page=7&foo=bar&x=y')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/articles/index/2?page=7&foo=bar&x=y')), '7', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1035,28 +1035,6 @@ public function testNumbers() { ) ); $result = $this->Paginator->numbers(); - $expected = array( - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', - ' | ', - array('span' => array('class' => 'current')), '8', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/span', - ); - $this->assertTags($result, $expected); - - $result = $this->Paginator->numbers(array('tag' => 'li')); $expected = array( array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', ' | ', @@ -1066,7 +1044,7 @@ public function testNumbers() { ' | ', array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('li' => array('class' => 'current')), '8', '/li', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', @@ -1078,43 +1056,29 @@ public function testNumbers() { ); $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(array('tag' => 'li', 'separator' => false)); - $expected = array( - array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', - array('li' => array('class' => 'current')), '8', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/li', - array('li' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/li', - ); - $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(true); $expected = array( - array('span' => array()), array('a' => array('href' => '/index', 'rel' => 'first')), 'first', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + array('li' => array('class' => 'first')), array('a' => array('href' => '/index', 'rel' => 'first')), 'first', '/a', '/li', + '...', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '8', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=15', 'rel' => 'last')), 'last', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/li', + '...', + array('li' => array('class' => 'last')), array('a' => array('href' => '/index?page=15', 'rel' => 'last')), 'last', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1130,23 +1094,23 @@ public function testNumbers() { ); $result = $this->Paginator->numbers(); $expected = array( - array('span' => array('class' => 'current')), '1', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1162,23 +1126,23 @@ public function testNumbers() { ); $result = $this->Paginator->numbers(); $expected = array( - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '14', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=15')), '15', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=15')), '15', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1193,55 +1157,11 @@ public function testNumbers() { ) ); - $result = $this->Paginator->numbers(array('first' => 1, 'class' => 'page-link')); - $expected = array( - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' | ', - array('span' => array('class' => 'current page-link')), '2', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', - ); - $this->assertTags($result, $expected); - - $result = $this->Paginator->numbers(array('first' => 1, 'currentClass' => 'active')); - $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' | ', - array('span' => array('class' => 'active')), '2', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', - ); - $this->assertTags($result, $expected); - - $result = $this->Paginator->numbers(array('first' => 1, 'tag' => 'li', 'currentClass' => 'active', 'currentTag' => 'a')); + $result = $this->Paginator->numbers(array('first' => 1)); $expected = array( array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', ' | ', - array('li' => array('class' => 'active')), array('a' => array()), '2', '/a', '/li', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', ' | ', @@ -1259,47 +1179,25 @@ public function testNumbers() { ); $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(array('first' => 1, 'class' => 'page-link', 'currentClass' => 'active')); - $expected = array( - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' | ', - array('span' => array('class' => 'active page-link')), '2', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', - ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', - ); - $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(array('last' => 1)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '2', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1316,26 +1214,25 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 1)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=14')), '14', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=14')), '14', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '15', '/span', - + array('li' => array('class' => 'active')), 'assertTags($result, $expected); @@ -1352,27 +1249,27 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 1, 'last' => 1)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '10', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=11')), '11', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=12')), '12', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=13')), '13', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=14')), '14', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=14')), '14', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=15')), '15', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=15')), '15', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1389,27 +1286,27 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 1, 'last' => 1)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '6', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=8')), '8', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=9')), '9', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=10')), '10', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=42')), '42', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=42')), '42', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1426,30 +1323,37 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 1, 'last' => 1)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=33')), '33', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=33')), '33', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=34')), '34', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=34')), '34', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=35')), '35', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=35')), '35', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=36')), '36', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=36')), '36', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '37', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=38')), '38', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=38')), '38', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=39')), '39', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=39')), '39', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=40')), '40', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=40')), '40', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=41')), '41', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=41')), '41', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=42')), '42', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=42')), '42', '/a', '/li', ); $this->assertTags($result, $expected); + } +/** + * Test modulus option for numbers() + * + * @return void + */ + public function testNumbersModulus() { $this->Paginator->request->params['paging'] = array( 'Client' => array( 'page' => 1, @@ -1463,17 +1367,7 @@ public function testNumbers() { $options = array('modulus' => 10); $result = $this->Paginator->numbers($options); $expected = array( - array('span' => array('class' => 'current')), '1', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ); - $this->assertTags($result, $expected); - - $result = $this->Paginator->numbers(array('modulus' => 3, 'currentTag' => 'span', 'tag' => 'li')); - $expected = array( - array('li' => array('class' => 'current')), array('span' => array()), '1', '/span', '/li', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', ' | ', @@ -1481,27 +1375,13 @@ public function testNumbers() { ); $this->assertTags($result, $expected); - $this->Paginator->request->params['paging'] = array( - 'Client' => array( - 'page' => 2, - 'current' => 10, - 'count' => 31, - 'prevPage' => true, - 'nextPage' => true, - 'pageCount' => 4, - 'sort' => 'Client.name', - 'direction' => 'DESC', - ) - ); - $result = $this->Paginator->numbers(array('class' => 'page-link')); + $result = $this->Paginator->numbers(array('modulus' => 3)); $expected = array( - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?sort=Client.name&direction=DESC')), '1', '/a', '/span', - ' | ', - array('span' => array('class' => 'current page-link')), '2', '/span', + array('li' => array('class' => 'active')), ' array('class' => 'page-link')), array('a' => array('href' => '/index?page=3&sort=Client.name&direction=DESC')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', ' | ', - array('span' => array('class' => 'page-link')), array('a' => array('href' => '/index?page=4&sort=Client.name&direction=DESC')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1518,17 +1398,17 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '4895', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); @@ -1536,189 +1416,179 @@ public function testNumbers() { $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '3', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', ' | ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2, 'separator' => ' - ')); + $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '3', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); - $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 5, 'last' => 5, 'separator' => ' - ')); + $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 5, 'last' => 5)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '3', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); $this->Paginator->request->params['paging']['Client']['page'] = 4893; - $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - ')); - $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5)); + $expected = array( + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4891')), '4891', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4892')), '4892', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '4893', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4891')), '4891', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4892')), '4892', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); $this->Paginator->request->params['paging']['Client']['page'] = 58; - $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - ')); - $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/span', + $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5)); + $expected = array( + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=5')), '5', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=56')), '56', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=57')), '57', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '58', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=59')), '59', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=60')), '60', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=56')), '56', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=57')), '57', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=59')), '59', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=60')), '60', '/a', '/li', '...', - array('span' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); $this->Paginator->request->params['paging']['Client']['page'] = 5; - $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - ')); - $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '5', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/span', - '...', - array('span' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', - ); - $this->assertTags($result, $expected); - - $this->Paginator->request->params['paging']['Client']['page'] = 3; - $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2, 'separator' => ' - ', 'ellipsis' => ' ~~~ ')); + $result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '3', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - ' ~~~ ', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=3')), '3', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=6')), '6', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=7')), '7', '/a', '/li', + '...', + array('li' => array()), array('a' => array('href' => '/index?page=4893')), '4893', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4894')), '4894', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4895')), '4895', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); $this->Paginator->request->params['paging']['Client']['page'] = 3; - $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2, 'separator' => ' - ', 'ellipsis' => '...')); + $result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2)); $expected = array( - array('span' => array()), array('a' => array('href' => '/index')), '1', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/span', - ' - ', - array('span' => array('class' => 'current')), '3', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/span', - array('span' => array('class' => 'ellipsis')), '...', '/span', - array('span' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/span', - ' - ', - array('span' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/index')), '1', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=2')), '2', '/a', '/li', + ' | ', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/index?page=4')), '4', '/a', '/li', + '...', + array('li' => array()), array('a' => array('href' => '/index?page=4896')), '4896', '/a', '/li', + ' | ', + array('li' => array()), array('a' => array('href' => '/index?page=4897')), '4897', '/a', '/li', ); $this->assertTags($result, $expected); + } +/** + * test numbers() with routing parameters. + * + * @return void + */ + public function testNumbersRouting() { $this->Paginator->request->params['paging'] = array( 'Client' => array( 'page' => 2, @@ -1742,11 +1612,11 @@ public function testNumbers() { $result = $this->Paginator->numbers(); $expected = array( - array('span' => array()), array('a' => array('href' => '/clients/index')), '1', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/clients/index')), '1', '/a', '/li', ' | ', - array('span' => array('class' => 'current')), '2', '/span', + array('li' => array('class' => 'active')), ' array()), array('a' => array('href' => '/clients/index?page=3')), '3', '/a', '/span', + array('li' => array()), array('a' => array('href' => '/clients/index?page=3')), '3', '/a', '/li', ); $this->assertTags($result, $expected); } diff --git a/Cake/View/Helper/PaginatorHelper.php b/Cake/View/Helper/PaginatorHelper.php index 74626aa1aed..32302eade02 100644 --- a/Cake/View/Helper/PaginatorHelper.php +++ b/Cake/View/Helper/PaginatorHelper.php @@ -81,6 +81,7 @@ class PaginatorHelper extends Helper { 'first' => '
  • {{text}}
  • ', 'last' => '
  • {{text}}
  • ', 'number' => '
  • {{text}}
  • ', + 'current' => '
  • {{text}}
  • ', 'ellipsis' => '...', 'separator' => ' | ', 'sort' => '{{text}}', @@ -639,32 +640,29 @@ public function counter($options = []) { * - `after` Content to be inserted after the numbers * - `model` Model to create numbers for, defaults to PaginatorHelper::defaultModel() * - `modulus` how many numbers to include on either side of the current page, defaults to 8. - * - `separator` Separator content defaults to ' | ' - * - `tag` The tag to wrap links in, defaults to 'span' * - `first` Whether you want first links generated, set to an integer to define the number of 'first' * links to generate. * - `last` Whether you want last links generated, set to an integer to define the number of 'last' * links to generate. - * - `ellipsis` Ellipsis content, defaults to '...' - * - `class` Class for wrapper tag - * - `currentClass` Class for wrapper tag on current active page, defaults to 'current' - * - `currentTag` Tag to use for current page number, defaults to null * - * @param array $options Options for the numbers, (before, after, model, modulus, separator) + * The generated number links will include the 'ellipsis' template when the `first` and `last` options + * are used and a range of page links will not be generated because they fall outside the range defined + * by modulus. + * + * @param array $options Options for the numbers, (before, after, model, modulus) * @return string numbers string. * @link http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::numbers */ public function numbers($options = array()) { if ($options === true) { $options = array( - 'before' => ' | ', 'after' => ' | ', 'first' => 'first', 'last' => 'last' + 'first' => 'first', 'last' => 'last' ); } $defaults = array( - 'tag' => 'span', 'before' => null, 'after' => null, 'model' => $this->defaultModel(), 'class' => null, - 'modulus' => '8', 'separator' => ' | ', 'first' => null, 'last' => null, 'ellipsis' => '...', - 'currentClass' => 'current', 'currentTag' => null + 'before' => null, 'after' => null, 'model' => $this->defaultModel(), + 'modulus' => '8', 'first' => null, 'last' => null, ); $options += $defaults; @@ -675,96 +673,103 @@ public function numbers($options = array()) { return false; } - extract($options); - unset($options['tag'], $options['before'], $options['after'], $options['model'], - $options['modulus'], $options['separator'], $options['first'], $options['last'], - $options['ellipsis'], $options['class'], $options['currentClass'], $options['currentTag'] - ); - $out = ''; + $separator = $this->_templater->format('separator', []); + $ellipsis = $this->_templater->format('ellipsis', []); - if ($modulus && $params['pageCount'] > $modulus) { - $half = intval($modulus / 2); + if ($options['modulus'] && $params['pageCount'] > $options['modulus']) { + $half = intval($options['modulus'] / 2); $end = $params['page'] + $half; if ($end > $params['pageCount']) { $end = $params['pageCount']; } - $start = $params['page'] - ($modulus - ($end - $params['page'])); + $start = $params['page'] - ($options['modulus'] - ($end - $params['page'])); if ($start <= 1) { $start = 1; - $end = $params['page'] + ($modulus - $params['page']) + 1; + $end = $params['page'] + ($options['modulus'] - $params['page']) + 1; } - if ($first && $start > 1) { - $offset = ($start <= (int)$first) ? $start - 1 : $first; + if ($options['first'] && $start > 1) { + $offset = ($start <= (int)$options['first']) ? $start - 1 : $options['first']; + $out .= $this->first($offset); if ($offset < $start - 1) { - $out .= $this->first($offset, compact('tag', 'separator', 'ellipsis', 'class')); + $out .= $ellipsis; } else { - $out .= $this->first($offset, compact('tag', 'separator', 'class', 'ellipsis') + array('after' => $separator)); + $out .= $separator; } } - $out .= $before; + $out .= $options['before']; for ($i = $start; $i < $params['page']; $i++) { - $out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), $options), compact('class')) . $separator; + $vars = [ + 'text' => $i, + 'url' => $this->url(['page' => $i]), + ]; + $out .= $this->_templater->format('number', $vars) . $separator; } - if ($class) { - $currentClass .= ' ' . $class; - } - if ($currentTag) { - $out .= $this->Html->tag($tag, $this->Html->tag($currentTag, $params['page']), array('class' => $currentClass)); - } else { - $out .= $this->Html->tag($tag, $params['page'], array('class' => $currentClass)); - } + $out .= $this->_templater->format('current', [ + 'text' => $params['page'], + 'url' => $this->url(['page' => $params['page']]), + ]); + if ($i != $params['pageCount']) { $out .= $separator; } $start = $params['page'] + 1; for ($i = $start; $i < $end; $i++) { - $out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), $options), compact('class')) . $separator; + $vars = [ + 'text' => $i, + 'url' => $this->url(['page' => $i]), + ]; + $out .= $this->_templater->format('number', $vars) . $separator; } if ($end != $params['page']) { - $out .= $this->Html->tag($tag, $this->link($i, array('page' => $end), $options), compact('class')); + $vars = [ + 'text' => $i, + 'url' => $this->url(['page' => $end]), + ]; + $out .= $this->_templater->format('number', $vars); } - $out .= $after; + $out .= $options['after']; - if ($last && $end < $params['pageCount']) { - $offset = ($params['pageCount'] < $end + (int)$last) ? $params['pageCount'] - $end : $last; - if ($offset <= $last && $params['pageCount'] - $end > $offset) { - $out .= $this->last($offset, compact('tag', 'separator', 'ellipsis', 'class')); + if ($options['last'] && $end < $params['pageCount']) { + $offset = ($params['pageCount'] < $end + (int)$options['last']) ? $params['pageCount'] - $end : $options['last']; + if ($offset <= $options['last'] && $params['pageCount'] - $end > $offset) { + $out .= $ellipsis; } else { - $out .= $this->last($offset, compact('tag', 'separator', 'class', 'ellipsis') + array('before' => $separator)); + $out .= $separator; } + $out .= $this->last($offset); } } else { - $out .= $before; + $out .= $options['before']; for ($i = 1; $i <= $params['pageCount']; $i++) { if ($i == $params['page']) { - if ($class) { - $currentClass .= ' ' . $class; - } - if ($currentTag) { - $out .= $this->Html->tag($tag, $this->Html->tag($currentTag, $i), array('class' => $currentClass)); - } else { - $out .= $this->Html->tag($tag, $i, array('class' => $currentClass)); - } + $out .= $this->_templater->format('current', [ + 'text' => $params['page'], + 'url' => $this->url(['page' => $params['page']]), + ]); } else { - $out .= $this->Html->tag($tag, $this->link($i, array('page' => $i), $options), compact('class')); + $vars = [ + 'text' => $i, + 'url' => $this->url(['page' => $i]), + ]; + $out .= $this->_templater->format('number', $vars); } if ($i != $params['pageCount']) { $out .= $separator; } } - $out .= $after; + $out .= $options['after']; } return $out;