Issue Manager (Gestor de incidencias para Joomla!)

Issue Manager se trata de una extensión, o más bien dos extensiones, que he realizado para el CMS Joomla!, mediante el uso conjunto de PHP con el framework de Joomla!, así como Javascript y AJAX, y CSS para los estilos. Las extensiones son concretamente un componente y un módulo. El fin de estas extensiones es el de permitir, a quienes proporcionen algún tipo de servicio mediante el uso de Joomla!, una monitorización centralizada para el seguimiento de las posibles incidencias que el cliente desee informar. Es especialmente útil en conjunto con la extensión VirtueMart, para soluciones e-commerce. Para más información puedes visitar la web donde está la documentación, y desde donde podrás descargártelo gratuitamente o bien probar la demo. Sólo has de hacer clic aquí:

Issue Manager para Joomla!

También está publicada en el directorio de extensiones de Joomla!, sección Clients / Help Desk:

http://extensions.joomla.org/extensions/clients/help-desk/11538

Os dejo un par de imágenes de la parte administrativa y de la interfaz de usuario.

Interfaz Administrativa (Back-End)

Interfaz Administrativa (Back-End)

Interfaz de Usuario (Front-End)

Efecto de nieve en Actionscript 3 para Flash

No hay nada más típico en estas fechas con Flash que crear banners, anuncios y demás con efectos de nieve.

La mayoría de veces se trata de una simple secuencia de fotogramas que se va repitiendo, y el efecto puede ser logrado, pero si te fijas bien acabas reconociendo el patrón de repetición. Pero para eso tiene Flash a Actionscript 3, para realizar efectos de nieve más realistas, añadiendo aleatoriedad.

He querido crear mi propio efecto de nieve mediante código Actionscript 3. Pero además de manejar los factores típicos de los copos de nieve, le he querido añadir otras variables, como la influencia del viento, y que el usuario pueda controlar la intensidad de la nevada.

Analizando cómo realizarlo, decidí crear una clase llamada Copo que se controlara a sí misma, de forma que toda su funcionalidad esté integrada en la clase, y una clase Viento, que sería estática puesto que no necesitaría varias instancias de dicha clase. El resultado es este:

Continue reading

Probador virtual de gafas de sol en Actionscript 3

Se trata de un trabajo que realicé para una empresa de venta de gafas de sol y otros artículos tales como perfumería y cosmética por Internet. Aquel trabajo lo realicé en Actionscript 2. Meses después decidí mejorarlo por mi cuenta añadiéndole más funcionalidad y programándolo en Actionscript 3. Había mucho código a adaptar a la nueva versión, que la verdad, cambia bastante. Así que decidí crear la aplicación desde cero, sólamente conservando la mayoría de elementos gráficos. Sin embargo programando código completamente nuevo usando programación orientada a objetos.

Haz clic en la imagen de abajo para ver lo que realicé. Las instrucciones de uso aparecen al clicar el botón de ayuda en el extremo inferior derecho:

Probador virtual de gafas de sol

Probador virtual de gafas de sol

Los datos son leídos externamente. En este caso uso un documento XML, pero se podría adaptar fácilmente a la tienda virtual de cualquier empresa para que a través del código de su servidor (php, .NET, etc) obtuviera los datos disponibles de su base de datos y los enviase al navegador del usuario/cliente en forma de datos xml.

Gracias a esta aplicación, el usuario puede desde su casa usar su propia fotografía para colocar sobre ella una de las gafas de sol disponibles, adaptarla a la fotografía, y así tener una idea orientativa del tipo de gafa que le puede sentar bien. Una forma de incentivar al posible cliente a comprar en la empresa, o de ahorrarle esfuerzos a la hora de acudir a una óptica y no saber por dónde empezar. Lógicamente esta aplicación tiene sus limitaciones, dado que está representada en 2-dimensiones y por lo tanto sólo funciona bien con fotografías frontales.

Reproductor de música en Actionscript 3, usando POO y patrón MVC

Bueno, este es un reproductor de canciones MP3 hecho en Flash, usando la versión 3 de Actionscript, Programación Orientada a Objetos (POO) y siguiendo la técnica Modelo Vista Controlador (MVC). Por qué? Bueno, usar POO para realizar aplicaciones en Flash es recomendable sobre la programación procedural (también llamada estructurada u orientada a funciones), sobretodo en AS3, que está mucho más pensado para este tipo de programación que las versiones anteriores. En cuanto a usar el patrón de arquitectura MVC, podría no haberse hecho en este caso. Seguramente incluso habría necesitado menos código si no lo hubiera hecho así, pero usar esta técnica es una forma muy buena de hacer aplicaciones escalables (o ampliables) y reutilizables. Separando la lógica de datos de la forma en que ha de presentarse y el control sobre ambas es recomendable sobretodo para aplicaciones grandes o que en un futuro puedan llegar a serlo. Quienes hayan tenido que programar con aplicaciones como osCommerce, una aplicación/framework de php enfocado al marketing por Internet, sabrán bien de lo que hablo. osCommerce no sigue un patrón MVC, sin contar un fork creado a partir de ella llamado Zen Cart que la adapta a esta arquitectura, y las actualizaciones y ampliaciones personalizadas llegan a ser tediosas. Pero bueno eso es otra historia.

Para que os hagais una idea, este es el reproductor final que he realizado:

Antes de meterse a escribir código, es siempre aconsejable, a menos que se trate de algo muy simple y sencillo, pasar por un proceso de análisis y diseño. Así que antes de nada hay que preguntarse, qué es lo que se quiere hacer y cómo.

En este caso se va a tratar de un reproductor de varias canciones, que inicialmente serán indexadas gracias a un archivo XML que será cargado previamente. Estos datos sobre las canciones serán almacenados localmente, de forma que en sucesivas visitas por parte del usuario, no hará falta leer el archivo XML de nuevo, a no ser que el usuario borre la cache de su navegador. En este caso se volverá a descargar el archivo XML.

El resto de funciones las mostraré sobre la marcha. Pero voy a hacer un pequeño inciso en las fases de análisis y diseño.sd