2011-12-08 14 views
7

Soy nuevo en Yii. Quiero implementar paginación personalizada. Quiero cambiar la apariencia del buscapersonas. ¿Cómo cambio las etiquetas de los enlaces del buscapersonas?¿Cómo puedo personalizar las etiquetas para el buscapersonas en Yii?

Quiero que los enlaces que aparezcan de este modo:

<< < 1 2 3 4 > >> 

en lugar de su apariencia por defecto, que es la siguiente:

[first] [previous] 1 2 3 4 [next] [last] 

estoy usando CListView para mostrar los datos, que tengo configurar de esta manera:

$this->widget('zii.widgets.CListView', array(
      'dataProvider' => $categoryProjects, 
      'itemView' => '_itemDetailsView',   
      'ajaxUpdate'=>false, 
     )); 

¿Alguien puede decirme cómo puedo estrella t con eso? He visto algunas publicaciones pero no he podido obtener la información correcta.

Gracias de antemano.

Respuesta

12

Debe establecer la propiedad pager del CListView. Por defecto, este es un CLinkPager; no tener que cambiarlo (este componente tiene sus necesidades cubiertas), pero hay que configurarlo:

$this->widget('zii.widgets.CListView', array(
      'dataProvider' => $categoryProjects, 
      'itemView'  => '_itemDetailsView', 
      'ajaxUpdate' => false, 
      'pager'  => array(
           'class'   => 'CLinkPager', 
           'firstPageLabel' => '<<', 
           'prevPageLabel' => '<', 
           'nextPageLabel' => '>', 
           'lastPageLabel' => '>>', 
          ), 
     )); 

Actualización: Si desea "cocer en" la configuración personalizada anterior para toda la lista vistas en su aplicación, debe crear un nuevo componente CustomListView derivado de CListView. Por lo que necesita esta clase:

Yii::import('zii.widgets.CListView'); 

class CustomListView extends CListView { 
    public function init() { 
     parent::init(); 

     $this->pager = array( 
          'class'   => 'CLinkPager', 
          'firstPageLabel' => '<<', 
          'prevPageLabel' => '<', 
          'nextPageLabel' => '>', 
          'lastPageLabel' => '>>', 
         ); 
    } 
} 

Después de incluir esto, puede simplemente usar CustomListView como el widget de lista en lugar de zii.widgets.CListView.

+0

Gracias Jon por la rápida respuesta. ¿Hay alguna manera de implementar esto en un solo archivo y se aplicará automáticamente a todos los archivos. He usado este cListView en muchos archivos. ¿Y también dónde puedo cambiar el CSS para los números de página? –

+0

@RSK: Consulte [este debate] (http://www.yiiframework.com/forum/index.php?/topic/26055-change-the-general-pager-css-for-all-application/) para el CSS. En breve estaré actualizando la respuesta para su otra pregunta. – Jon

+0

¿Cómo limito los números de página a 5? La configuración predeterminada muestra 10 números de página. Probé este public $ maxButtonCount = 5; pero esto no está funcionando para mí. ¿Alguna sugerencia? También quiero cambiar un poco el diseño para que me guste <1 ... 8 9 10 11 12 .... 30> porque muestra 10 páginas ... –

Cuestiones relacionadas