Exemplo n.º 1
0
 public function buscar($campo = 'NombrePagina', $orden = 'asc', $limit = '5', $busqueda = '', $offset = 0)
 {
     $this->titulo = 'Búsqueda';
     $this->load->library('form_validation');
     $this->load->library('pagination');
     if ($this->uri->segment(1) == 'admin') {
         $this->permisos('admin');
         $this->pagina = 'web';
         $this->carpeta = 'administrador';
         $this->menu = 'menu_admin_paginas';
         $this->estilo = array($this->pagina, 'tablas');
         $this->javascript = array('marcar_checkbox', 'redireccion');
         $datos['busqueda'] = TRUE;
         if ($busqueda != '') {
             $datos['buscador'] = array('class' => 'search-query input-medium', 'type' => 'text', 'name' => 'buscador', 'placeholder' => 'Buscar', 'value' => urldecode($busqueda), 'autofocus' => 'autofocus');
         } else {
             $datos['buscador'] = array('class' => 'search-query input-medium', 'type' => 'text', 'name' => 'buscador', 'placeholder' => 'Buscar', 'value' => $this->input->post('buscador'), 'autofocus' => 'autofocus');
         }
         $datos['boton'] = array('class' => 'btn', 'id' => 'buscador', 'name' => 'button', 'value' => 'Buscar');
         $datos['borrar'] = array('class' => 'btn btn-danger', 'id' => 'borrar', 'value' => 'Borrar selección', 'data-confirm' => "¿Estás seguro?");
         $datos['fields'] = array('NombrePagina' => 'Nombre', 'Posicion' => 'Posición', 'Texto' => 'Texto', 'Administrador' => 'Administrador');
     } else {
         $this->pagina = 'busqueda';
         $this->estilo = array($this->pagina);
         $this->javascript = array('tamanyo', 'confirmacion');
     }
     $this->form_validation->set_rules('buscador', 'Buscador', 'trim|required|xss_clean');
     $this->form_validation->set_message('required', '%s no puede estar vacio');
     $this->form_validation->set_message('xss_clean', ' %s no es una búsqueda válida');
     if ($this->form_validation->run() == FALSE) {
         if ($busqueda != '') {
             $busqueda = urldecode($busqueda);
             $opciones = $this->seleccion(Paginas_model::busqueda_cantidad($busqueda));
             $datos['opciones'] = $opciones;
             if ($this->input->post('cantidad') != '') {
                 if ($opciones[$this->input->post('cantidad')] == 'Todo') {
                     $limit = Paginas_model::busqueda_cantidad($busqueda);
                 } else {
                     $limit = $opciones[$this->input->post('cantidad')];
                 }
             }
             $datos['elementos'] = $limit;
             if ($this->input->post('cantidad') != '') {
                 $datos['limit'] = $this->input->post('cantidad');
             } else {
                 $aux = 0;
                 if ($limit % 5 != 0) {
                     $aux = 1;
                 }
                 $datos['limit'] = floor($limit / 5) - 1 + $aux;
             }
             $datos['busq'] = $busqueda;
             $datos['paginas'] = Paginas_model::buscar($busqueda, $campo, $orden, $offset, $limit, true);
             $datos['numero'] = Paginas_model::busqueda_cantidad($busqueda);
             $config = array();
             if ($this->uri->segment(1) == 'admin') {
                 $config['base_url'] = base_url() . "admin/web/buscar/" . $campo . "/" . $orden . "/" . $limit . "/" . $busqueda . "/";
             } else {
                 $config['base_url'] = base_url() . "buscar/" . $campo . "/" . $orden . "/" . $limit . "/" . $busqueda . "/";
             }
             $config['total_rows'] = Paginas_model::busqueda_cantidad($busqueda);
             $config['per_page'] = $limit;
             if ($this->uri->segment(1) == 'admin') {
                 $config['uri_segment'] = 8;
             } else {
                 $config['uri_segment'] = 6;
             }
             $config['prev_link'] = 'anterior';
             $config['next_link'] = 'siguiente';
             $config['first_link'] = '<<';
             $config['last_link'] = '>>';
             $config['num_tag_open'] = '<li>';
             $config['num_tag_close'] = '</li>';
             $config['cur_tag_open'] = '<li class="disabled"><a href="#">';
             $config['cur_tag_close'] = '</a></li>';
             $config['prev_tag_open'] = '<li>';
             $config['prev_tag_close'] = '</li>';
             $config['next_tag_open'] = '<li>';
             $config['next_tag_close'] = '</li>';
             $config['first_tag_open'] = '<li>';
             $config['first_tag_close'] = '</li>';
             $config['last_tag_open'] = '<li>';
             $config['last_tag_close'] = '</li>';
             $this->pagination->initialize($config);
             $datos['links'] = $this->pagination->create_links();
             $datos['campo'] = $campo;
             $datos['orden'] = $orden;
         } else {
             $datos['numero'] = 0;
             $datos['opciones'] = array(0);
             $datos['campo'] = $campo;
             $datos['orden'] = $orden;
             $datos['buscar'] = '';
             $datos['limit'] = 0;
             $datos['elementos'] = 0;
             $datos['busq'] = '';
             $datos['vacio'] = TRUE;
         }
     } else {
         $busqueda = $this->input->post('buscador');
         $opciones = $this->seleccion(Paginas_model::busqueda_cantidad($busqueda));
         $datos['opciones'] = $opciones;
         if ($this->input->post('cantidad') != '') {
             if ($opciones[$this->input->post('cantidad')] == 'Todo') {
                 $limit = Paginas_model::numero();
             } else {
                 $limit = $opciones[$this->input->post('cantidad')];
             }
         }
         $datos['elementos'] = $limit;
         if ($this->input->post('cantidad') != '') {
             $datos['limit'] = $this->input->post('cantidad');
         } else {
             $aux = 0;
             if ($limit % 5 != 0) {
                 $aux = 1;
             }
             $datos['limit'] = floor($limit / 5) - 1 + $aux;
         }
         $datos['busq'] = $busqueda;
         $datos['paginas'] = Paginas_model::buscar($busqueda, $campo, $orden, $offset, $limit, true);
         $datos['numero'] = Paginas_model::busqueda_cantidad($busqueda);
         $config = array();
         if ($this->uri->segment(1) == 'admin') {
             $config['base_url'] = base_url() . "admin/web/buscar/" . $campo . "/" . $orden . "/" . $limit . "/" . $busqueda . "/";
         } else {
             $config['base_url'] = base_url() . "buscar/" . $campo . "/" . $orden . "/" . $limit . "/" . $busqueda . "/";
         }
         $config['total_rows'] = Paginas_model::busqueda_cantidad($busqueda);
         $config['per_page'] = $limit;
         if ($this->uri->segment(1) == 'admin') {
             $config['uri_segment'] = 7;
         } else {
             $config['uri_segment'] = 5;
         }
         $config['prev_link'] = 'anterior';
         $config['next_link'] = 'siguiente';
         $config['first_link'] = '<<';
         $config['last_link'] = '>>';
         $config['num_tag_open'] = '<li>';
         $config['num_tag_close'] = '</li>';
         $config['cur_tag_open'] = '<li class="disabled"><a href="#">';
         $config['cur_tag_close'] = '</a></li>';
         $config['prev_tag_open'] = '<li>';
         $config['prev_tag_close'] = '</li>';
         $config['next_tag_open'] = '<li>';
         $config['next_tag_close'] = '</li>';
         $config['first_tag_open'] = '<li>';
         $config['first_tag_close'] = '</li>';
         $config['last_tag_open'] = '<li>';
         $config['last_tag_close'] = '</li>';
         $this->pagination->initialize($config);
         $datos['links'] = $this->pagination->create_links();
         $datos['campo'] = $campo;
         $datos['orden'] = $orden;
     }
     if ($this->uri->segment(1) == 'admin') {
         $this->mostrar($datos);
     } else {
         $this->mostrar($datos);
     }
 }