Aprovechando la aplicación que estamos creando del Gestor de Noticias, voy a intentar satisfacer algunas peticiones de algunos usuarios que me preguntan cómo hacer un buscador en CodeIgniter (aunque en PHP es lo mismo ya que para esto apenas uso nada de CodeIgniter).
Antes de empezar la explicación aclarar que lo que lo que estoy haciendo es un buscador muy simple y funcional, el hacer un buscador tiene muchos caminos y complicaciones extras pero no entraré en ello, al menos hoy, así que si estáis buscando cómo hacer un buscador completo y complejo este no es vuestro articulo, aquí vamos a tratarlo desde un punto de vista de iniciación.
Primero de todo necesitaremos crear unos índices FULLTEXT en nuestra base de datos para que podamos realizar bien la búsqueda con la sintaxis MATCH...AGAINST, para ello lo haremos con este código SQL:
ALTER TABLE `noticias` ADD FULLTEXT(`titulo`, `cuerpo`);
En la primera publicación de este taller planificamos de forma muy genérica como queríamos nuestro sistema de usuarios. Hoy vamos a concretar un poco más y empezaremos a definir como sera nuestra clase 'Centinela' que se encargará de controlar nuestro sistema.
Nuestra 'clase', será una librería por lo tanto nos miraremos en la fantástica guía de CodeIgniter cómo funcionan las librerías. En definitiva lo que nos interesa es que alojaremos nuestro "Centinela.php" en application/libraries. Nuestro archivo empezará con una mayúscula. Al principio de nuestro php pondremos para que no puedan acceder de manera no controlada a nuestra clase:
if(!defined('BASEPATH'))
exit('No direct script access allowed');
Nuestra clase necesitará de unas variables para que podamos almacenar los datos que usaremos:
- id: será la id de nuestro usuario un valor numerico y único.
- nick: será el nombre de nuestro usuario.
- clave: será la contraseña de nuestro usuario (encriptada)
- nivel: se refiere al nivel del usuario (invitado, operador, administrador, etc..). Como mayor sea el valor más alto será el cargo.
- auth: será una variable booleana. Si vale "TRUE", es que el usuario estará bien autentificado.
Un elemento siempre importante en una web es el sistema de autentificación, es decir un sistema de control de usuarios, con login, registro de usuarios y todo esto. A diferencia de otros frameworks en PHP, CodeIgniter no tiene uno por defecto así que lo mejor es crear uno suficientemente "genérico" para que nos sirva en todas nuestra aplicaciones.
Nota: si es vuestra primera toma de contacto con CodeIgniter os recomiendo que probéis primero con el Gestor de Noticias, ya que en este tutorial no repetiré aquellas cosas que ya expliqué en ese otro.
En este sistema introduciremos:
- Crear librerías en CodeIgniter
- Usar la Session Class
- Trabajar con el Cookie Helper
- Enviar emails con Email Class
- Y seguramente alguna cosa más que ira surgiendo a medida que avancemos.
Bueno pido disculpas por este periodo de tiempo que no estoy escribiendo nada, pero la razón es esta: estoy de exámenes!
Así que lo primero es lo primero, hay que aplicarse para no suspender ninguna y asi tener todo el verano libre, de manera que intentare ir avanzando algo pero no puedo deciros exactamente cuando publicaré el siguiente post, estad atentos pues.
Para ir abriendo boca os diré cuales serán mis siguientes tres artículos, espero que os gusten:
- "Validation Class" y los buenos formularios
- Gestor de noticias (Sexta parte): Crear un buscador
- Sistema de Usuarios (Primera parte): Planificación y estructuras
Deseadme suerte ;-)