Foro!!
Ya se que hace mucho tiempo que no escribo por aqui. Las razones, pues supongo que las tipicas: mucho trabajo, estudios a la vez, proyectos personales, etc.. y poco a poco se va dejando el habito de escribir algún que otro articulo. Pero espero que en breves esto cambie y vuelva a cargar con fuerza con nuevos artículos y nuevas ideas.
Pero de momento, he estado viendo que hay actividad en cuanto a comentarios con dudas y ayudas de algunas entradas y he pensado en proporcionar un lugar mas adecuado para tratar estos temas: un foro.
Teneis el link arriba, en la barra principal. Poco a poco ire retocando el foro para que sea bonito y util, pero de momento es funcional!
Entrar en el foro
Busco colaboradores / escritores
Buenas, hacía tiempo que no escribía por estos lares.. la verdad que me gustaría tener el blog más activo y he recibido varios mails vuestros respecto a este tema. La verdad que por falta de tiempo y a veces de ideas no escribo mas artículos en el blog por eso he decidido buscar una solución.
Busco gente entendida en temas que se tratan en este blog: CodeIgniter, PHP, XHTML, CSS y cualquier cosa relacionada con el mundo web, que les gustaría participar en este blog como escritores y colaboradores.
Incluso si tenéis alguna sugerencia sobre algún tema nuevo a tratar no seguro que podemos llegar a un acuerdo. Venga animo y apuntaros!
Usando CodeIgniter para crear aplicaciones en Facebook
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.
XtraUpload, un “Megaupload” en CodeIgniter
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.
Usando ‘Hooks’ en CodeIgniter
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).
Extender Helpers en CodeIgniter
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.
Generar imagenes dinámicamente en CodeIgniter
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.
Haciendo una buena instalación de CakePHP
Bueno lo primero que habrá que hacer es instalar correctamente CakePHP para empezar a probar y aprender un poquito.
- Nos dirijiremos a la página web de CakePHP y bajaremos la ultima versión, yo en este caso he bajado la versión "1.2.0.7945 RC4", supongo que cualquier versión que sea 1.2.xxx será todo igual. Pondremos todos los archivos bajados en nuestro servidor (ya sea local o remoto).
Ojo! Hay que tener activado el módulo "Mod_Rewrite", lo mas seguro esque ya lo tengáis activado, en este caso veréis algo parecido a esto [captura], en caso de que no lo tengáis activado veréis algo sin "estilos cargados" [captura].
- Ahora hay que darle permisos de escritura a la carpeta "tmp" dentro de la carpeta app/
- Pasamos a crear una base de datos y añadimos los datos de conexión en app/config/database.php
- Cambiamos la cadena de seguridad en app/config/core.php, donde pone "Configure::write('Security.salt', '*****');" ponemos cualquier combinación de letras y simbolos que queramos.
Si todo se ha configurar correctamente al acceder a la carpeta de la aplicación os tendran que salir 4 recuadros de color verde que os dicen:
Your tmp directory is writable.
The FileEngine is being used for caching. To change the config edit APP/config/core.php
Your database configuration file is present.
Cake is able to connect to the database.
Con esto ya seremos capaces de empezar a trabajar con CakePHP. Si os surge algún problema en la instalación no dudéis en preguntarmelo.
Empezamos con CakePHP

Bueno creo que ya van bastantes artículos sobre CodeIgniter, al menos -creo yo- para dar una base bastante buena a gente que empiece con él para que se pueda desenvolver en aplicaciones complejas. No es que me haya cansado o algo parecido, pero por razones de trabajo ahora tengo que "aprender" a usar otro framework de PHP, en este caso el agraciado es CakePHP.
En un primer vistazo puedo ver como tiene cosas muy parecidas a CodeIgniter (claro los dos son frameworks que siguen el modelo MVC) pero este es mucho mas estricto en ese tema.
Así que he pensado, porque no compartir con los lectores mi camino de aprendizaje de este nuevo framework, porque a veces es la mejor manera de aprender, con alguien que mas o menos esta a tu mismo nivel y que tiene los mismo problemas o dificultados a la hora de enfrentarse a este framework.
Por lo que de ahora en adelante creo que intentare focalizar algo mas en CakePHP, que la verdad que tiene mas "tela" que CI y es bueno saber un poco de todo para no encontrarte sorpresa en un futuro ¿no?
Enlaces: CakePHP
Problemas
Bueno por desgracia parece que alguien logró hackear el blog o alguna aplicación y hemos estado teniendo varios problema para restablecerlo todo.
Por razones de seguridad los ejemplos del "Subidor de Imágenes" han sido totalmente eliminados, aunque he dejado el código para que os lo podáis bajar.
Si veis algún problema o algo no dudéis en comentármelo.