Archivo

Archivo para la categoría ‘CodeIgniter’

Usando CodeIgniter para crear aplicaciones en Facebook

Lunes, 8 de Junio de 2009

Desde SentidoWeb, me entero de que se pueden crear aplicaciones de Facebook utilizando el framework CodeIgniter.

Nos encontramos 4 links con tutoriales bastantes bien explicados (en ingles) de como aprender a usarlo. Por lo que he podido ver básicamente es añadir una librería y configurarla con los 4 parámetros que nos da Facebook, por todo lo demás no parece que haya muchas mas complicaciones.

Si puedo intentaré escribir algún articulo al respecto.

Lagarto CodeIgniter , ,

XtraUpload, un “Megaupload” en CodeIgniter

Sábado, 21 de Marzo de 2009

Vía Webmastelibre me entero de que existe un software gratuito creado en CodeIgniter que nos permite fácilmente crear nuestro propio sistema de “uploads” de archivos, que ahora están de moda los típicos “Rapidshare”, “MegaUpload”, etc..

Si mas no es interesante echarle un vistazo a estas herramientas, ya que así podemos ver como están hechas las aplicaciones reales puesto que aquí normalmente trabajamos sobre tutoriales de ejemplos simples de aplicaciones.

XtraUpload, que asi se llama la aplición está escrito en PHP usando, como ya hemos dicho, el Framework de CodeIgniter. Tiene todas las caracteristicas que te esperarías para este tipo de paginas:

  • Control de usuarios, tanto gratuitos como “Premium”.
  • Usuarios Premium tienen opciones interesantes adicionales.
  • Puedes especificar tipos de fichero, tamaños y en general configurar la aplicación a tu gusto.
  • Permite pagos con PayPal y otros.

Lo interesante tambien de estas aplicaciones es indagar un poco en el codigo y ver como hacen determinadas cosas, como utilizan ciertas librerias, tanto de CodeIgniter como creadas por ellos mismos. Yo os recomiendo que echeis un vistazo de:

  • Como está hecho todo el tema de verificación de usuarios (login, etc..)
  • Todo lo referente a las descargas de archivos, control deMB bajados, y otras caracteristicas
  • Como hacen para conectar con las pasarelas de pagos de PayPal, 2CheckOut, MoneyBrokers, StormPay y eGold.
  • Upload, como lo gestionan, como lo controlan, etc.
  • Como funcionan con los templates y themes.

Yo la verdad que le he pegado un vistazo y he encontrado muchas cosas interesantes, y esta es otra manera de aprender.

Lagarto Aplicaciones reales, CodeIgniter , , , , , , , , , , , ,

Usando ‘Hooks’ en CodeIgniter

Martes, 17 de Marzo de 2009

Muchas veces nos encontraremos, al programar nuestras aplicaciones, que necesitamos realizar una tarea en todas las paginas por igual, en un mismo momento. Hay una solución para eso, muy muy mala, que es hacer un copy&paste del código en todas las paginas (si.. si.. quien no ha hecho eso alguna vez…).

Por suerte CodeIgniter nos trae de la mano una buena herramienta llamada ‘Hooks’ o ganchos, que simplemente nos permite hacer eso, ejecutar determinadas funciones en un determinado momento.

El “determinado momento”, básicamente puede ser:

  • pre_system: al principio de la ejecución del sistema, sin haber cargado básicamente nada.
  • pre_controller: ejecutar antes de cargar el controlador, una vez cargadas las librerías y todo el systema básico.
  • post_controller_constructor: justo se ejecutar tras el constructor del controlador pero antes de cualquier función.
  • post_controller: se ejecutará una vez lo haya hecho el controlador.
  • display_override: esto es para sobrescribir la función que nos muestra la pagina finalizada en el navegador.
  • cache_override: lo mismo pero para la función de cache, nos permite sobreescrivirla.
  • scaffolding_override: para crear nuestro propio scaffolding.
  • post_system: ejecutará el código al final de todos los procedimientos.

En la user_guide de Codeigniter podréis encontrar esta información más extendida.

Bien, para que quede más claro, vamos a ver un ejemplo. En este caso supondremos que estamos trabajando en una página web multilenguaje. Y queremos crear un ‘hook’ que nos lea una variable de sesión que contiene el idioma que hay seleccionada y con eso nos cargue el idioma especificado (para los que no sepáis como funciona la “language class”, echarle un vistazo en la guía).
Leer más…

Lagarto CodeIgniter, Programación web , , , , , , ,

Extender Helpers en CodeIgniter

Lunes, 16 de Marzo de 2009

Los ‘Helpers‘ de CodeIgniter son básicamente pequeñas librerías con 4 o 5 funciones que nos dan funcionalidades que nos ayudan con los problemas típicos al crear webs. A medida que vayamos experimentando y avanzando con la programación de una web nos encontraremos con que necesitamos añadir nuevas funcionalidades a los helpers existentes o a veces modificar las que ya están hechas.

Podemos pensar en ir a la carpeta “system” ahí buscar el helper y modificarlo. Si, se puede hacer pero es una manera muy “guarra” de proceder, básicamente por dos razones:

  • Nos actualizan el CodeIgniter y coincide que modifican ese helper, vamos a tener un problema.
  • Queremos reutilizar código, es muy engorroso ir haciendo copy&paste de funciones de algunos helpers.

Leer más…

Lagarto CodeIgniter, Programación web , , , , ,

Generar imagenes dinámicamente en CodeIgniter

Viernes, 13 de Marzo de 2009

A veces nos puede interesar crear imágenes dinámicamente a partir de alguna que ya tengamos alojada en nuestro servidor, a continuación veremos como hacerlo con la ayuda de CodeIgniter.

Una imagen generada dinámicamente puede tener varias ventajas como por ejemplo:

  • Podemos controlar fácilmente cuanta gente la esta viendo
  • Restringir la visión de esta a los usuarios que queramos
  • Evitar que los usuarios tengan acceso a la imagen original
  • Poder generar una imagen del tamaño que queramos según convenga
  • Generar thumbnails, o modificaciones de la imagen original sin tener que generar copias

Esta ultima ventaja también nos trae a la desventaja, según lo que queramos, ya que al generar una imagen dinámicamente en PHP lo que estamos haciendo es aligerar la carga en el disco duro pero augmentar el tamaño del procesamiento, con lo que estamos cargando al servidor. Leer más…

Lagarto CodeIgniter, Programación web , , , , , ,

Subidor de Imagenes (Tercera parte): Subir y miniaturizar

Jueves, 25 de Septiembre de 2008

Bueno seguimos con lo del ultimo día. Ahora lo que nos queda hacer es el controlador que se ocupe de subir nuestro fichero en el servidor y luego cree una imagen en miniatura de esta (thumbnail).

Como ya dije en el articulo anterior, usaremos estas dos librerías: File Uploading Class y Image Manipulation Class.

Al ser un solo formulario lo haremos todo en una misma función del controlador. Para empezar necesitaremos subir el archivo al servidor y a su vez almacenar la información en la base de datos:

				$config['upload_path'] = './uploads/';
				$config['allowed_types'] = 'gif|jpg|png';
				$config['max_size']	= '5000';
				$config['encrypt_name'] = TRUE;

				$this->load->library('upload', $config);

				if(!$this->upload->do_upload("imagen"))
				{
					echo $this->upload->display_errors();
				}
				else
				{
					$data = $this->upload->data();
					$this->db->query("INSERT INTO `imagenes` (`imagen`, `fecha`, `ip`) VALUES (?, ?, ?)", array($data['file_name'], time(), $_SERVER['REMOTE_ADDR']));

Como veis es muy fácil de usar, hay que especificar las distintas opciones que queremos en el array config (hay mas opciones disponibles en la guía de usuario de CI). Le pasamos el “name” input del formulario para subir la imagen en la función “do_upload”. Y luego simplemente añadir un registro en la base de datos con la información que nos da “$this->upload->data()”;

Ahora necesitaremos que a partir de esta imagen se cree un thumbnail, lo haremos así:
Leer más…

Lagarto CodeIgniter, Subidor de imagenes , , , , , ,

Subidor de Imagenes (Primera parte): Planificación

Martes, 16 de Septiembre de 2008

Hay muchas veces que no se me ocurren ideas para publicar artículos de la nada, sino que cuando estoy trabajando en alguna aplicación para mí o para asuntos profesionales pienso: “anda! esto quizá le interesa a alguien que lea el blog”.

Últimamente veo que esta muy de moda páginas como ImagesHack o Photobucket que son páginas que simplemente dejan al usuario subir una imagen de su ordenador a uno de los servidores para que luego se pueda mostrar a cualquier otra persona, normalmente se suele usar para foros y sitios públicos de este tipo.

Así que todo esto me viene muy bien para introduciros dos clases muy importantes en el CodeIgniter: File Uploading Class, que es la que nos ayudará a subir la imagen, controlar todos los parámetros de esta acción y demás. La segunda clase será la Image Manipulation que nos permitirá en este caso crear un thumbnail (una imagen en miniatura) de la versión original para mejor inserción en foros y otros sitios.

La aplicación será muy sencilla y constará de dos grandes pasos:

  • Subir y tratar la imagen
  • Mostrar el link, el bbccode para los foros, etc..

Pues de momento lo dejaré aquí y el próximo articulo empezaremos con el sistema en cuestión. Si queréis venir preparados “a clase”, iros mirando esas dos librerías que son las que usaremos básicamente.

Hasta pronto.

Lagarto CodeIgniter, Subidor de imagenes , , , , ,

Kohana o CodeIgniter… ser o no ser?

Martes, 12 de Agosto de 2008

Aunque no es la primera persona que me lo pregunta, ayer vi que alguien había usado el apartado de artículos a la carta (si! existe ese apartado) para preguntarme sobre el tema de Kohana.

Para lo que no lo sepáis Kohana es otro framework en PHP basado de CodeIgniter que entre otras cosas hace méritos de:

  • Proyecto desarrollado por una comunidad y no por una compañía.
  • Solo dan soporte para el PHP5 y lo usan de una manera bastante mas estricta
  • Muy ligero
  • GET, POST, COOKIE y SESSION funcionan como deberían
  • Carga automática de librerías funcionando bajo demanda de estas
  • Sin conflictos de namespace, que básicamente es ponerle a todo un sufijo para que no haya solapamientos
  • Fácilmente extensible
  • Consistencia en librerías y API
  • Gran posibilidad de manejar eventos, para una gran personalización
  • Ciclo de desarrollo rápido.

Antes que nada quiero dejar claro que de lo que hablaré aquí es mi opinión personal y que habrá (por supuesto) mucha gente que pensara diferente que yo. Personalmente he usado Kohana para una aplicación que hice así que mi experiencia con este framework no es muy extensa pero trataré de arrojar algo de luz sobre el tema.
Leer más…

Lagarto CodeIgniter

Sistema de Usuarios (Tercera parte): Usando la clase

Sábado, 9 de Agosto de 2008

Siguiendo la clase anterior (dónde construimos la clase Centinela), hoy toca acabar el sistema, creando la interfaz web para que los usuarios puedan registrarse, loguearse, desloguearse y acceder (o no) a secciones privadas.

Antes de empezar, deberíamos tocar algo de la configuración: ya que la clase centinela la cargaremos en la gran mayoría de veces, le diremos que nos la cargue siempre para mayor comodidad. Por lo que iremos a config/autoload.php y pondremos algo así como:

/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your system/application/libraries folder.
|
| Prototype:
|
|	$autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/

$autoload['libraries'] = array('database', 'session', 'centinela');

Una vez tenemos hecho esto, procederemos a crear las diferentes partes de la web dónde usaremos la clase.
Leer más…

Lagarto CodeIgniter, Sistema de usuarios , , , , , , , , ,

Sistema de Usuarios (Segunda parte): Clase ‘Centinela’ II

Jueves, 17 de Julio de 2008

Ahora procederemos a la parte mas importante de este tutorial dónde codificaremos las funciones de login, logout y check (comprobar), que explique a grandes rasgos como funcionarían en el articulo anterior.

Login

La función de login recibirá dos parámetros: usuario y contraseña que normalmente serán los que el usuario nos introduzca mediante un formulario. Pero también se usará para validarse automáticamente mediante las variables SESSION que tendremos almacenadas, asi siempre comprobaremos que las credenciales de los usuarios son siempre validas.

Entonces procederemos a comprobar que el usuario y la contraseña coinciden con la base de datos, si todo esta correcto crearemos las variables sesión (o las actualizaremos).

Aquí esta el código: Leer más…

Lagarto CodeIgniter, Sistema de usuarios , , , , , , ,