Zenth
Zenth

Reputation: 811

CakePHP pagination (last param cut)

I have a "little" problem with the Pagination system of CakePHP (1.2). Here is the query:

$this->paginate = array (
    'fields'     => array (
       'Content.slug',
       'Content.title',
       'Content.resume',
       'Content.format',
       'Content.image',
       'Content.video',
       'Criteria.name'
    ),
    'conditions' => $conditions,
    'order'      => 'Content.created DESC',
    'limit'      => 10,
    'contain'    => array (
        'Category',
        'Criteria',
    )
);

$this->set("PRODUCTS", $this->Paginate("Content"));

And the code of view:

<?php $total_pages  = (int)$paginator->counter(array('format' => '%pages%')); ?>
<?php if($total_pages > 1){ ?>
<div class="paginar">
    <div class="next_pre_arrow">
        <?=$paginator->prev("Anterior", array("class" => "pre", "escape" => false))?>
        <?=$paginator->next("Siguiente", array("class" => "next", "escape" => false))?>
        <div class="pages">
            <span>Página</span> <?=$paginator->numbers(array('separator' => ' | '))?> 
        </div>
    </div>
</div>
<?php } ?>

What is the problem? The pagination works OK but with a little problem. In the "next" and "prev" buttons, and in the page numbers, the URL is truncated, deleting the last param, for example:

"http://www.domain.com/controller-name/caction-name/option-1/option-2"

Show paging links with this URL:

"http://www.domain.com/controller-name/caction-name/option-1/page:2"

NOT the correct:

"http://www.domain.com/controller-name/caction-name/option-1/option-2/page:2"

What is the cause of this?

Upvotes: 0

Views: 334

Answers (1)

elitalon
elitalon

Reputation: 9447

I think you can customize the links that are generated by the Paginator helper using the options() method.

Specifically, you can use $options['url'] to pass a custom URL, as if you were setting parameters of a link() call:

$paginator->options(array(
  'url' => array(
    'controller' => 'YourController',
    'action' => 'your_action'
    'param1' => 'value_1',
    'param2' => 'value_2',
)));

Upvotes: 0

Related Questions