Helper URL

El helper URL es uno de los helpers más utilizados en cualquier aplicación realizada con CodeIgniter. Nos proporciona tres funciones muy interesantes que son: **base_url()**, **anchor()**, y **redirect()**.

La función **base_url()** nos permite independizarnos del entorno en el que nos encontremos, por ejemplo, si necesitamos hacer referencia a una imagen en el directorio raíz del servidor, podemos base_url () para asegurarnos que la imagen se encuentra en el lugar correcto.

echo base_url() . '/images/logo.gif';

Genera este código HTML:

<img src="http://localhost/proyecto/images/logo.gif">
  • El URI

  • Texto del vínculo que mostrará el enlace

echo anchor ( 'usuarios/loginform' , 'Iniciar sesi&oacute;n' )

Que genera el siguiente código:

<a href="http://localhost/proyecto/index.php/usuarios/loginform">Iniciar sesion</a>

La función anchor() recibe un tercer parámetro opcional en el cual podemos incluir un listado de opciones a añadir al enlace. Los atributos pueden ser una cadena o un array de opciones, por ejemplo:

echo anchor ( 'usuarios/loginform' , 'Iniciar sesi&oacute;n' , 'title="Inicia sesion"')

generando:

<a href="http://localhost/proyecto/index.php/usuarios/loginform"
   title="Inicia sesion">Iniciar sesion</a>

o un array de opciones:

echo anchor ( 'usuarios/loginform' , 'Iniciar sesi&oacute;n' ,
   array ( 'title' => 'Inicia sesi&oacute;n') )

generando el mismo código HTML.

Por último, la función **redirect ()** nos permite crear redirecciones de forma sencilla, por ejemplo si el usuario ha realizado alguna acción en base de datos (registrarse, insertar un comentario, etc.) o dicho usuario no tiene permisos para acceder al contenido de una página en concreto. Para nuestro proyecto, podemos utilizar la función **redirect()** para redirigir a un usuario a la página de login si el usuario no está logeado. Por ejemplo:

if ( $this->session->userdata('usuario_valido') ) {
   redirect ( 'usuarios/login', 'refresh' );
}

La función redirect() admite tres parámetros, uno obligatorio y los otros dos optativos. El primero es el destino de la redirección y el segundo parámetro nos permite elegir entre el método "location" (por defecto) o el método "refresh". Según el manual, Location es más rápido, pero puede causar problemas en servidores Windows.

El tercer parámetro nos permite enviar códigos de respuesta HTTP específicos (HTTP Response Code), muy útiles, por ejemplo, para crear redireccionamientos 301 relacionados con los motores de búsqueda. El código de respuesta predeterminado es 302. Veamos un ejemplo:

if ($this->session->userdata('usuario_valido') === FALSE)
{
   redirect ( 'usuarios/login', 'refresh' );
}
// realizamos una redireccion con codigo 301
redirect ('/libros/ver/2' , 'location', 301);

HTTP Response Code: http://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP

Hasta aquí el repaso al helper URL. Destacar que en el manual de CodeIgniter hay más funciones que nos facilitarán el trabajo con direcciones URL.

results matching ""

    No results matching ""