Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2009, 23:34
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
[Zend Framework] Problema con Zend_Paginator

Que tal compañeros, tengo un problema con Zend_Paginator, no logro mostrar los controles (anterior 1 2 4 siguiente) del paginador.

Aqui les muestro el codigo que tenemos

Mi Action del Controller
Código PHP:
    public function indexAction() {
        
$this->view->titulo 'Mensajes';
        
        
//iniciamos las clases
        
$objMsn = new IOMGame_Mensajes();
        
        
//obtengo los mensajes del usuario
        
$mensajes $objMsn->getMsns($this->_Identity->user);
        
        
//paginamos los resultados
        
$paginador Zend_Paginator::factory($mensajes);
        
//indico el numero de items por pagina
        
$paginador->setItemCountPerPage(20)
                  
//indico en que pag estamos
                  
->setCurrentPageNumber($this->_getParam('page',1))
                  
//indicamos el rango de paginas
                  
->setPageRange(10);
        
        
Zend_Paginator::setDefaultScrollingStyle('Sliding');
        
Zend_View_Helper_PaginationControl::setDefaultViewPartial(
            
'IOMGame/Controllers/Views/Helpers/paginator_control.phtml'
        
);
                  
        
//obtenemos los resultados
        
$pageMsn $paginador->getCurrentItems();
        
//envio los mensajes al layout
        
$this->view->msn $pageMsn;
    } 
Mi Script/index/index.phtml
Código PHP:
<p class="text_bold">Mensajes</p>
<?php
//obtento los mensajes
$mensajes $this->msn;
//imprimo la tabla, este un un helper que yo desarrolle
$this->Tabla($mensajes,$campos,$header,$opciones);
echo 
$this->paginationControl($mensajes);
?>
y este es el paginationControl
Código PHP:
<?php
echo '<div id="div-paginator">';
echo 
'    <div id="div-paginator-prev">';
    if (isset(
$this->previous)) {
        echo 
'<p><a href="'.$this->url(array('page'=>$this->previous)).'">&lt;&lt; Anterior</a></p>';
    }else {
        echo 
'<p>&lt;&lt; Anterior</p>';
    }
echo 
'</div>';
echo 
'<div id="div-paginator-pages">';
foreach(
$this->pagesInRange as $page) { 
    if (
$page != $this->current) {
        echo 
'<p><a href="'.$this->url(array('page'=>$page)).'">'.$page.'</a></p>';
    }else {
        echo 
'<p>'.$page.'</p>';
    }
}
echo 
'</div>';
echo 
'</div>';
?>
el problema es que cuando quiero ver los "mensajes" no me carga el layout, solo me carga el "script/index/index.phtml" y no mustra los controles y me imprime el siguiente error

Catchable fatal error: Argument 1 passed to Zend_View_Helper_PaginationControl::paginationCont rol() must be an instance of Zend_Paginator, instance of ArrayIterator given in /media/DATOS/Servidor/WWW/Zend/View/Helper/PaginationControl.php on line 88

Alguien podria decirme cual es el error, ya que cheque en el manual y busque en internet y no encuentro el problema
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 26/02/2009 a las 02:15