DominoBlog: Como Disponer de mas de un tema segun el Navegador
Daniel Recio  Julio 29 2010
Daniel Recio  Julio 29 2010
Bueno, mientras vemos como se muere el servidor de ESLUG escribiremos algo.

En este caso ha surgido una necesidad, que es como no, poder navegar por nuestro Blog desde un Dispositivo movil (de los que el amigo Martin es un apasionado).

Lo primero que nos encontramos es que el tema que hemos puesto, no esta pensado logicamente para un navegador de 320px de ancho, asi que la navegacion se convierte en un incordio de Scroll horizontal y vertical.

Segun vemos en el documento de configuracion solo es posible asignar un tema a nuestro blog, y necesitamos tener al menos 2, uno general y otro para los navegadores "moviles" tipo Iphone

Asi que este es el motivo de "tunear" de nuevo la plantilla de dominoBlog.

Opciones que se me ocurren.

La mas sencilla o eso parecia era la de Crear otro documento de configuracion en nuestro blog, y que luego en funcion del navegador utilizado elija uno u otro, pero...el esfuerzo parece descomunal y habria que cambiar demasiadas cosas en nuestra plantilla, con lo que en un futuro con nuevas versiones se convertiria en algo muy dificil de mantener.

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Asi que nos planteamos otra opcion que es la de añadir los campos necesarios al formulario de configuracion y crear una libreria de LotusScript que hiciera estas funciones, ademas esto nos permite ampliar la funcionalidad de nuestro blog, con futuros "plugins" o nuevas "DXTags" a medida (Esto ya lo hemos hecho antes)

Pasos Hechos:

Documento de Configuracion


Añadir una pestaña en el documento de configuracion con los campos necesarios para esta necesidad, para ello añadimos una pestaña dentro de la seccion "Templates" que hemos llamado "Special", dentro y por organizar la cosa hemos creado una copia de todos los campos que utiliza el Blog para construir las paginas, agregando el sufijo "_special" o "_sp" si el nombre del campo era muy largo.

Tambien y lo mas importante hemos añadido el campo "User_agents", como campo de texto multivalor donde pondremos los navegadores que veran este segundo tema, en caso de que el navegador entrante no este en esta lista se veria el tema principal.

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Libreria de Scripts propia "SLUGLibrary"


Hemos creado la libreria con el fin de que en un futuro se vayan añadiendo aqui las nuevas funcionalidades, y asi modificar lo menos posible la aplicacion original

Como vereis es bastante senciliita, crea unas variables globales relaccionadas con los campos que hemos añadido antes y luego el script recorre el campo User_agents y determina si el navegador que ha entrado pertenece a alguno de los que hemos puesto en el campo, en funcion de si pertenece o no, coge la plantilla que hay en uno u otro campo.

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Modificaciones en Libreria DXLiveContentEngine


Una vez creada esta libreria la incluimos en la libreria principal del blog

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Asi de esta manera nuestras variables se convertiran en Globales y nuestras funciones estaran disponibles siempre, puesto que esta libreria es la que construye las paginas.

Modificaciones en los agentes que "pintan" las paginas, por ejemplo "homepage" que es el encargado de pintar la pagina home.

En este caso llamamos a nuestro proedimiento para que carge las variables globales y mas abajo sustituimos la "key" utiilizada para localizar la plantilla por nuestras variables.

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Otros agentes a modificar son Document, Archive, Searchpage.

Añadir campo HTTP_USER_AGENT en los formularios donde no este, por ejemplo "$$NavigatorTemplate for launch"


Esto es necesario para que funcione nuestro script ya que sin este campo no sabremos el tipo de navegador que entra en nuestro blog

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador


Listo a probar

Lo primero logicamente tener mas de un tema en nuestro blog, para el ejemplo he puesto uno especialmente preparado para Iphone y ademas tenemos el estandar

Asi que vamos a nuestro doc de configuracion y le decimos que navegadores utilizaran este tema

Image:DominoBlog: Como Disponer de mas de un tema segun el Navegador

Como yo no tengo Iphone, ni ningun cacharrito de apple, he tenido que añadir Firefox para poder probarlo, asi que esta opcion no es solo para dispositivos moviles, lo podemos aplicar a otras utilidades.

Espero que os haya resultado util, como todavia lo estoy depurando no lo pongo de momento para bajar, pero la semana que viene pondre una NSF para poder descargarlo

Un Saludo

DominoBlogIphoneBlog

DominoBlog: Como Disponer de mas de un tema segun el Navegador