/** * Prepara e retorna/imprime os controles de navegação * * O primeiro parâmetro corresponde a uma referência a classe PaginatorHelper * instanciada pelo controlador, enquanto o segundo parâmetro é um array com as opções * de saída. * * * @param PaginatorHelper $paginator * @param array $options Possui dois índices reconhecidos: * - 'return' do tipo bool, se true faz o método retornar o resultado ao invés de imprimir. * Valor padrão é false * - 'filters' do tipo array que contém as condições para a paginação, acrescido de todos * os parâmetros passados via url */ public function controls(&$paginator, $options = array()) { $this->_paginator =& $paginator; if (!empty($options['filters']) && is_array($options['filters'])) { $filters['url'] = array_merge($options['filters'], $this->params['pass']); } else { $filters['url'] = $this->params['pass']; } $options = Set::merge($filters, $this->_paginator->options); $this->_paginator->options($options); $out = $this->_paginator->first('<< ' . __d('r_search', 'first', true), array(), null, array('class' => 'disabled')) . $this->_paginator->prev(__d('r_search', 'previous', true), array(), null, array('class' => 'disabled')) . $this->_paginator->numbers(array('separator' => '')) . $this->_paginator->next(__d('r_search', 'next', true), array(), null, array('class' => 'disabled')) . $this->_paginator->last(__d('r_search', 'last', true) . ' >>', array(), null, array('class' => 'disabled')); if (isset($options['return']) && $options['return'] === true) { return $out; } else { echo $out; } }