Mostrando entradas con la etiqueta codeigniter. Mostrar todas las entradas
Mostrando entradas con la etiqueta codeigniter. Mostrar todas las entradas

viernes, 25 de enero de 2013

Empezando de cero con CodeIgniter

Ayer quise empezar un nuevo proyecto PHP con el framework CodeIgniter. Como otras tantas veces, no me acordaba en absoluto de como se hacía pero al ir recordándolo, me lleve una grata sorpresa al ver cuan fácil es comenzar un proyecto codeigniter

Los pasos a seguir para una primera instalación son:

  1. Descargar desde su página oficial

  2. Descomprimir y colocar en la carpeta del servidor, ya sea en local o subiéndolo a la red vía ftp, por ejemplo. El archivo 'index.php' debe quedar en el directorio raíz de nuestro servidor web

  3. Abrir el archivo 'application/config/config.php' y editarlo para configurar la 'base_url' que será la dirección web donde estará nuestra aplicación:
    $config['base_url']= 'http://midominio.com/misubcarpeta';
  4. Si se va a usar una base de datos con la aplicación, también hay que abrir 'application/config/database.php' y editarlo para introducir la información de nuestra página.

Y eso es todo. Al abrir la URL que hemos indicado en el paso 3 debería de aparecer la página de bienvenida de CodeIgniter informándonos de que ya podemos empezar a trabajar cuando queramos.





miércoles, 24 de octubre de 2012

Enviar emails con Codeigniter y Gmail

Sigo aprendiendo como funciona Codeigniter y hoy una de las cosas que he aprendido y me ha gustado es la simplicidad para mandar correos electrónicos.

Una de las limitaciones que tenía hasta ahora cuando probaba en local es que no podía mandar correos por no tener ningún servidor montado. Seguramente haya otras posibilidades, pero tampoco me había molestado en aprender.

Hoy, con codeigniter, he conseguido mandar emails desde mi propio ordenador a través de mi cuenta de gmail, en tan solo unos minutos:


  1. Para empezar, hay que crear un archivo de configuración llamado "email.php" (tiene que llamarse así exactamente) y que esté situado dentro de la carpeta de configuración.
    En este archivo colocaremos las propiedades del servidor de correo que serán algo así:

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.googlemail.com';
    $config['smtp_port'] = 465;
    $config['smtp_user'] = 'youremail@gmail.com';
    $config['smtp_pass'] = 'yourpassword';
    $config['smtp_timeout'] = '7';
    $config['charset']    = 'utf-8';
    $config['newline']    = "\r\n";
    $config['mailtype'] = 'text'; // or html
    $config['validation'] = TRUE; // bool whether to validate email or not

  2. Segundo, tenemos que cargar la librería en el lugar donde queramos enviar el email:

    $this->load->library('email','','correo');

  3. Y por último preparar el email para enviar

    $this->correo->from('noreply@yourdomain.com', 'Your Name');
      $this->correo->to('toemail@gmail.com');
      $this->correo->subject('This is an email test');
      $this->correo->message('This is the body of the message');
    if($this->correo->send())
      {
       echo 'Correo enviado';
      }
    
      else
      {
       show_error($this->correo->print_debugger());
      }

  4. Y eso es todo! Correo enviado

martes, 23 de octubre de 2012

Añadir la extensión .html a algunas páginas de Codeigniter

En la configuración de codeigniter, en el archivo config.php, tenemos la opción de añadir una extensión a todas las páginas de nuestra aplicación de manera que la página

/pagina/de/contacto

se convierta en

/pagina/de/contacto.html

Pero esto tiene la pega de que se aplicará a cualquier URL de la aplicación y a lo mejor no queremos que esto sea así.

Si sólo queremos añadir el sufijo a algunas páginas, pero que siga funcionando el motor de codeigniter, podemos añadirlas en el archivo de routes.php. Por ejemplo podría quedar de la siguiente manera

$routes['/pagina/de/contacto.html'] = "nuestro_controlador/contacto"

También se pueden poner expresiones regulares del tipo


$route['^([^\/]*).html$''pages/view/$1'