Administrando publicidades con PHP y MySQL

Para la productora de televisión Gente de Mente, desarrollamos la web del programa “Clase Turista”, que se emite por el canal local de Posadas.

La web se basa, casi exclusivamente, en los mismos videos que se emiten por televisión. Así que desarrollamos un sistema de administración que les permite publicar estos videos (usamos el servicio de blip.tv), junto con los resúmenes textuales de cada video y fotografías relacionadas con cada programa.

El sitio necesitaba incorporar publicidades en cada página y para ello desarrollamos una sección especial del sistema de administración que permite al personal de la productora manejar los avisos. Todo el desarrollo es Web 2.0, es decir que diseñamos una interfaz amigable, intuitiva y administrable por cualquier persona sin mas conocimientos que los básicos de cualquier internauta actual. En un formulario con sólo tres campos el usuario publica un aviso, determinando su ubicación y duración.

El sistema de adminstración de publicidades de Clase Turista

El sistema de administración de publicidades de Clase Turista (clic para ver en tamaño completo)

Todos los formularios son “auto-explicados” es decir, que en cada campo se incluye una descripción de las opciones y requerimientos a cumplir para cumplir la tarea correctamente. Claro que además entregamos un “manual de uso” del backend en formato PDF e impreso.

El sistema de las “publis” permite seleccionar un aviso distinto en formato JPG, PNG o SWF para cada uno de los 10 lugares disponibles en el sitio y publicarlo al servidor. El requerimiento es que las dimensiones se ajusten a las dimensiones de los espacios en las páginas.

Además, al momento de publicar el aviso se determina el tiempo (en días) que estará publicado. Cuando el plazo se cumple, el sistema dá de baja al aviso y lo reemplaza por un aviso “default” de la misma productora.

En cada página incorporamos (usando la función include del PHP) una función que se encarga de revisar los avisos publicados en la base de datos MySQL, buscar si hay avisos publicados para el espacio actual y verificar si el aviso está dentro de su período de contrato. Si hay aviso, revisa si el archivo relacionado es JPG, PNG o SWF e incluye el HTML necesario para publicarlo en la página. Si no hay archivo, publica el aviso default que mencionaba antes.

Los espacios de publicidad, en la página principal del sitio

Los espacios de publicidad, en la página principal del sitio. Todavía con los avisos default (clic para ver en tamaño completo).

Por medio del include nos ahorramos una buena porción de código que deberíamos repetir en cada una de las páginas del sitio dos veces (porque hay dos espacios de publicidad por página). Lo único que hacemos en cada página es llamar al include, pasándole una variable que identifica el espacio actual y que se corresponde con el idespacio de la tabla de la BD que guarda los avisos.

Publicado en Aplicaciones on line, Bases de datos, MySQL, PHP, Publicidad, Web 2.0 | Etiquetado , , , , , | Deja un comentario

El feedback inesperado

El mismo dia que comencé a publicar en este blog, comencé a revisar ansiosamente las estadísticas de cantidad de visitantes, deseoso de saber si alguien me leía. Si bien los números muy difícilmente me ubiquen entre los blogs mas leídos (ni del mundo, ni de mi barrio) el blog tiene su caudal de visitas, lo que me hacía preguntar porqué nunca aparecía un comentario.

Antes de que te pongas a revisar, aclaro: el blog sigue absolutamente invicto de comentarios. Pero la semana pasada recibí el primer feedback de este blog y de la forma mas interesante e inesperada: en una charla con un probable cliente.

Resulta que esta persona se había tomado el tiempo de navegar todo el sitio de BeBop diseño y encontró el link a este blog. Leyó la entrada en la cual hablo de sistemas on line, copió el texto en un documento de Word y lo releyó y discutió con su socio.
Todo esto antes de llamarme por teléfono y concertar una entrevista en la cual hablamos (y bastante) sobre el tema de los sistemas on line y cómo a él le había parecido interesante lo que yo escribí, al punto de que reflejaba exactamente lo que me querían encargar para su sitio.

El encargo me pareció a mí también una idea interesante, ya envié el presupuesto y ya veremos si el trabajo se concreta o no, eso es anecdótico a los efectos de esta entrada (no así a los efectos económicos, laborales, etc).

Lo interesante es cómo en este caso exponer mis ideas sobre un tema facilitó la comunicación con el posible cliente a partir de la identificación de sus necesidades y las ideas de la entrada en cuestión. Vuelvo también sobre algo que decía en entrada de los sistemas on line: los clientes buscan que su sitio en internet les solucione problemas y claramente preferirán trabajar con alguien que muestre estar orientado a la solución de esos problemas.

Publicado en Aplicaciones on line, Diseño Web | Etiquetado , | 2 comentarios

Sobre los sistemas online

Desde un tiempo a esta parte, notamos en los encargos recibidos en el estudio una tendencia que nos ha parecido saludable: los clientes ya no quieren “solamente” un sitio web, ahora también piden distintas aplicaciones on line para solucionar aspectos de la gestión de sus negocios.

Digo que nos ha parecido saludable por dos cuestiones:

_ Por un lado se está dejando de lado la idea (antigua, pero todavía vigente) de que para administrar un sitio web había que contratar a alguien especializado que ejecutaría una serie de operaciones misteriosas para mantener el sitio funcionando y actualizado. Supongo que en parte gracias al auge de la web 2.0 (y en particular de las redes sociales), la gente se ha ido dando cuenta de que la web “no muerde” y que no necesariamente debe ser algo misterioso entendido por unos pocos. El cliente se ha dado cuenta de que se puede pedir mas: de la interacción con su propia web y de la persona que ha contratado para hacer el desarrollo: tanto la web como el desarrollador deben responder a esas expectativas.

_ Por el otro: el cliente (en nuestro caso en BeBop diseño, mayoría de profesionales y pequeños/medianos empresarios) ya no solamente quiere una “página web porque hay que figurar en internet” (frase textual de más de un cliente en la primer llamada telefónica y/o  reunión). Ahora quiere que esa web le ayude a resolver problemas. Y no solamente problemas de “comunicación con sus potenciales clientes” (frase textual de mas de un sitio de diseño web/comunicación/marketing).
Quiere que la web lo ayude a atender a sus clientes (en la mayor parte de los casos) o a administrar sus negocios.

Las aplicaciones web pueden ayudar a resolver problemas de gestión a cambio de un costo inicial relativamente bajo, un costo de mantenimiento casi nulo y sin inversión en equipamiento especial: cualquier “compu” de oficina y una conexión de internet (cada vez mas populares, de crecimiento constante hace unos años en Argentina) bastan para conectarnos con nuestra propia “nube”.

Desde el punto de vista del desarrollador, utilizando software de código abierto (nuestro querido open source, tan temido por la IIPA y las corporaciones) se pueden ofrecer soluciones cloud-computing de buena calidad, cumpliendo estándares y de máxima compatibilidad con sistemas operativos, navegadores y hardware.

Publicado en Aplicaciones on line, Diseño Web | 1 comentario

Sitio en Flash con PHP+MySQL

Cuando me convencí que el sitio de mi estudio ya no decía lo que yo quería que diga y no mostraba lo que yo quería que muestre había llegado la hora de desarrollar el sitio nuevo.

La idea era no salirme del Flash,  que me resulta cómodo para
agregar “chichecitos” y mejorar la presentación.

Pero también tenía ganas de generar un backend desde el cual administrar los contenidos, sobre todo el portfolio de trabajos que siempre termina desactualizado solamente por que es complicado actualizarlo. Puesto a analizar la cuestión, decidí que ya era hora de fabricarme un backend como la gente.

Hasta entonces, los sitios en Flash que había desarrollado se nutrían de contenidos desde documentos XML, bastan dos o tres instrucciones y cualquiera puede editar medianamente bien un XML! Y además siempre me pueden llamar por teléfono para que revise que pasó cuando no anda (generalmente falta una comilla).

Por otro lado, los desarrollos potenciados por base de datos que había hecho hasta ese momento eran todos HTML (o mejor dicho, PHP).

La idea era, ahora, unir “ambos mundos”: diseñamos un frontend en Flash que tomaría todos sus contenidos desde una base de datos MySQL, por la vía de scripts PHP conectados con la función LoadVars del Flash. Todo esto estaría manejado desde un backend HTML + PHP.

La base de datos

Las tablas de la base de datos, en el PHPMyAdmin

Las tablas de la base de datos, en el PHPMyAdmin

La base de datos es muy sencilla: hay tablas para los contenidos textuales y otra serie de tablas para administrar el portfolio de trabajos.

_ Tiene dos tablas que manejan contenidos: secciones y subsecciones. Con la primera genero el menú principal del sitio y las subsecciones son las que en realidad tienen los contenidos. Los textos en las tablas y las imágenes como URLs para no cargar tanto la base (las imágenes que usamos son bastante pesadas).

_ Las tablas que manejan el dichoso portfolio son varias: la principal es la que tiene los datos de cada trabajo (ID, Cliente, Partner, un parrafo de texto, fecha, etc). Hay otra que tiene los datos de cada una de las imágenes publicadas (no las imágenes en sí, sino de nuevo sus URLs) cada una de ellas vinculada a un trabajo por medio del ID del trabajo.
Además hay otras tablas “accesorias” con los listados de clientes, partners, tipo de trabajo, etc.

Cada vez que publico una nueva imagen, está vinculada obligatoriamente a un trabajo (esto lo manejo en el proceso del backend).

El sitio

El sitio Flash de BeBop diseño (http://www.bebopweb.com.ar)

El sitio Flash de BeBop diseño (http://www.bebopweb.com.ar)

El sitio desde que arranca está conectado con la base de datos: el menú principal se carga desde un PHP que lee los nombres de las secciones en la tabla de la BD y cuáles de ellas son las que tienen subsecciones (para generar el menu secundario, en caso de que sea necesario).

Por defecto carga la sección de “Home” y por defecto carga la subsección de ID mas bajo de las que tiene esa sección: en este caso es la bienvenida al sitio y la foto correspondiente.

Cada vez que se hace un clic en el menú principal se ejecuta la misma función dentro del ActionScript: con el ID que envía el menú, carga la sección correspondiente y su subsección “por defecto”. Es decir que una sola pieza de código en el ActionScript (mi función readConts) maneja toda la presentación de contenidos del sitio.

Hay otras dos funciones principales: drawPortfolio y drawLaburo, la primera genera el menú de trabajos, cargando el listado completo de trabajos de cada categoría (de acuerdo al IDCategoría que envía el menú en el Flash) desde la tabla de portfolio y una foto por defecto para cada trabajo que hace las veces de botón para disparar la función drawLaburo, que es la que va a cargar todas las imágenes que tengan el ID del trabajo en cuestión con sus correspondientes epígrafes.

Ese listado de fotos de cada trabajo se carga en el Flash desde el PHP en forma de un array lo que facilita recorrer las imágenes con los botones de “anterior-y-siguiente”.

Hay otras funciones secundarias que manejan cuestiones visuales: el fade-in y fade-out de las imágenes al cargarse y descargarse, los movimientos del menú del portfolio y los tamaños de todos los elementos del sitio para que se adapten a distintas resoluciones de pantalla.

El backend

El backend del sitio

El backend del sitio, en el formulario de agregar trabajos al portfolio

El backend está desarrollado en PHP y tiene dos tareas principales:

_ administrar los contenidos de secciones y subsecciones

_ actualizar, modificar o borrar elementos del portfolio: trabajos completos o  imágenes de éstos.

La parte de manejo de contenidos “textuales” no tiene mayor complicación: listados de secciones y subsecciones y formularios de ABM para cada una de estas dos categorías.

El portfolio llevó un poco más de desarrollo:

_ Al dar de alta un cliente, además de cargar los datos del mismo en la BD, se genera un directorio en el servidor en el cual se guardarán todos los trabajos del mismo. La dirección de este directorio también se guarda en la BD como uno de los atributos del cliente.

_ Al dar de alta un trabajo, se debe seleccionar el cliente al cual pertenece y se genera un directorio para el trabajo dentro del directorio del cliente correspondiente.

_ Finalmente, al cargar las imágenes se van guardando en un directorio cuyo nombre es la fecha en la cual se realiza la carga (esto es a fines de organizarme mejor con las actualizaciones).

Dos versiones

Y para terminar: una vez publicado el sitio Flash, vimos que era necesario tener otro sitio mas accesible. Así que armamos una sencilla versión HTML que se mantiene desde la misma base de datos y con el mismo backend.

Cada vez que editamos contenidos, agregamos secciones o trabajamos en el portfolio, los cambios se reflejan en ambos sitios a la vez.

La versión HTML del sitio, en la sección Home.

La versión HTML del sitio, en la sección Home.

Clic aquí para ver la versión HTML.

La versión Flash del sitio, en la sección Home.

La versión Flash del sitio, en la sección Home.

Clic aquí para ver la versión Flash.

Publicado en Bases de datos, Diseño Web, Flash, MySQL, PHP | Etiquetado , , , | 10 comentarios

Video con Nikon Capture

Y acá está: el video de introducción al sitio de nuestro estudio (BeBop diseño), versión comprimida para web.

Pronto la versión 2.

Publicado en Fotografía, Visuales | Etiquetado , , , | Deja un comentario