Te adjunto un buscador generico, tenes que tomar una variable de session
para que el paginator funcione despues de pagina uno, tendrias que cambiar
un poco las variables y esas cosas para qeu funcione con cake 2, pero nada
de otro mundo:
function search(){
//$this->layout = 'sistema'; -> Ac� va el layout que quieras
usar!!
$this->autoRender = false;
if(!empty($this->data)){
$this->Session->write('Buscar',
$this->data[$this->modelClass]['Buscar']);
$this->Session->write('Accion', $this->referer());
}
$search = $this->Session->read('Buscar');
$cond ="";
$i=0;
foreach($this->{$this->modelClass}->_schema as $field => $value){
//debug($field);
if($i>0){
$cond = $cond. " OR ";
}
$cond = $cond. " ".$this->modelClass.".".$field." LIKE
'%".$search."%' ";
$i++;
}
$conditions = array('limit'=> 10, 'conditions' => $cond);
$this->paginate = $conditions;
$this->set(strtolower($this->name), $this->paginate());
$this->render('index');
}
function restablecer_search() {
$this->Session->write('Buscar', '');
$accion = $this->Session->read('Accion');
$this->Session->write('Accion', '');
if ($accion != '') {
$this->redirect($accion);
} else {
$this->redirect($this->referer());
}
}
//Esto lo reemplazas por el texto que dice Viendo tantas paginas de bla
bla bla
<p>
<?php
echo $form->create('', array('action'=>'search',
'style' => 'margin: 0 0 0 25px;'));
echo $form->input('Buscar', array('type'=>'text'));
echo $this->Html->link('Restablecer', array('action' =>
'restablecer_search'));
echo $form->end('Buscar');
?>
</p>
Saludos!!!
El 22 de abril de 2013 14:30, Miguel Leugim <[email protected]> escribió:
> Hola
> mira esto
>
> http://mrphp.com.au/blog/search-forms-cakephp
>
> saludos
>
>
> El 22 de abril de 2013 08:00, Sebastian Andrade <[email protected]>escribió:
>
> Gracias Cristian.
>> No pude implementarlo a eso, habra alguna guia para eso?
>>
>> Sebastián Andrade
>>
>>
>> El 21 de abril de 2013 15:09, Cristian haunsen <[email protected]
>> > escribió:
>>
>> https://github.com/CakeDC/search
>>>
>>>
>>> El 20 de abril de 2013 18:34, Sebastian Andrade
>>> <[email protected]>escribió:
>>>
>>>> Hola, queria saber si alguien me podia ayudar en realizar opciones de
>>>> filtrado para un listado de clientes. Seria lo basico, filtrar por
>>>> apellido, nombre, etc y no pierda la paginacion.
>>>>
>>>> Donde puedo conseguir algun ejemplo para ver y que funcione.
>>>> Muchas gracias
>>>>
>>>> --
>>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
>>>> de Grupos de Google.
>>>> Para anular la suscripción a este grupo y dejar de recibir sus correos
>>>> electrónicos, envía un correo electrónico a
>>>> [email protected].
>>>> Para publicar una entrada en este grupo, envía un correo electrónico a
>>>> [email protected].
>>>> Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
>>>> Para obtener más opciones, visita
>>>> https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Es tiempo de cambiar!
>>>
>>> --
>>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>>> Grupos de Google.
>>> Para anular la suscripción a este grupo y dejar de recibir sus correos
>>> electrónicos, envía un correo electrónico a
>>> [email protected].
>>> Para publicar una entrada en este grupo, envía un correo electrónico a
>>> [email protected].
>>> Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
>>> Para obtener más opciones, visita
>>> https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>> --
>> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
>> Grupos de Google.
>> Para anular la suscripción a este grupo y dejar de recibir sus correos
>> electrónicos, envía un correo electrónico a
>> [email protected].
>> Para publicar una entrada en este grupo, envía un correo electrónico a
>> [email protected].
>> Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
>> Para obtener más opciones, visita
>> https://groups.google.com/groups/opt_out.
>>
>>
>>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos
> electrónicos, envía un correo electrónico a
> [email protected].
> Para publicar una entrada en este grupo, envía un correo electrónico a
> [email protected].
> Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out
> .
>
>
>
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos
electrónicos, envía un correo electrónico a
[email protected].
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Visita este grupo en http://groups.google.com/group/cakephp-es?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.