miércoles, 25 de abril de 2007

listas, menús y otras lindezas

Cuando empecé a estudiar XHTML estricto con aspecto controlado por CSS una de las cosas que más me sorprendieron fue que una lista desordenada XHTML se convertía por la magia del CSS en un menú para la web.

Es decir, que algo tan simple como esto

[ul]
[li]Inicio[/li]
[li]Empresa[/li]
[li]Productos[/li]
[li]Contactar[/li]
[/ul]


se convertía en un bonito menú horizontal o vertical o como prácticamente nos de la gana, tan sólo aplicando css con conocimiento de causa.

Un sitio extremadamente recomendable para ver ejemplos y aplicaciones de esta y otras técnicas puede ser A List Apart.

Si analizamos el contenido de muchas webs podemos ver que casi todo puede reducirse a listas de cosas; un blog es una lista inversa en el tiempo de anotaciones y sus comentarios correspondientes, un foro es una lista de posts categorizados, un catálogo de productos es una lista de productos, etc.

Y Velneo, aparte de muchas otras ventajas, podemos decir que es el rey de las listas, con un simple Cargar lista, ya tenemos disponibles todos los registros de una tabla, preparados para ser mostrados en una lista XHTML y formateados con CSS.

Siguiendo esta técnica, tenemos webs hechas en cuatro patadas.

Por ejemplo, para el menú de la web, si tenemos una tabla MENU donde vamos dando de alta las diferentes opciones del menú web, todo se reduce a lo siguiente:

  • Un proceso que Carga la lista-> MENU, indice_apropiado
  • Un componente html tal como este

[ul]
[avpr]
[li]Campo_Nombre[/li]
[/avpr]
[/ul]


  • Un CSS que se encargue de hacer que esa lista parezca un menú

Un listado de noticias o un catálogo de productos sería algo muy similar, más complejo, pero a fin de cuentas, la idea es la misma.

Si a esto unimos la potencia, todavía muy poco explotada, de los campos Fórmula de Velneo, tenemos la herramienta definitiva para la web.

Veamos el tema de los campos fórmula con un ejemplo sencillo.

Queremos saber qué opción del menú ha pinchado un usuario para resaltarla con un estilo especial que llamaremos por ejemplo "current".

Bien, si disponemos una variable global independiente por usuario que alimentamos con el código de la opción de menú pinchada, podemos agregar a la tabla MENU un campo CLASS que sea del tipo fórmula alfabética cuya fórmula sea una decisión:

"Si el código de la opción es igual al valor de la variable global, entonces current y si no , nada"


y si a la hora de representar el menú, aparte de sacar de la tabla el nombre de la opción, el link y otras cosas, sacamos también el estilo que le corresponda según el campo fórmula alfabética CLASS, ya tenemos lo que queríamos sin programar ni una sola línea de código, símplemente utilizando la potencia de ese otro gran desconocido en Velneo, los campos fórmula.

Si, no pongais caras raras, yo ya lo hice cuando lo pensé la primera vez; pero cómo voy a hacer depender el valor de un campo de una tabla de una variable global independiente por usuario?...

E inmediatamente me dije; y por qué no?

Pues señores, dicho y hecho, y a funcionar, que funciona. A Velneo le sobra potencia para ese cálculo al vuelo independiente por usuario, y para mucho más.

Life is Soft!