2009/2/20 Paco <caudetano@gmail.com>
Hola esto no va con el mensaje pero lo enlazo por el tema tratado, desconozco totalmente estas sentencias, pero me gustaría aprenderlo, hasta ahora me he apañado con los boucles sencillos, pero creo que podría sacar más partido a spip, sabiendo el uso de esas balizas, por ejemplo #ENV no tengo ni idea de como se usa ni para que sirve. Donde puedo leer más información sobre el uso de esto.
Muchas gracias.
Bueno Paco, voy a explicarlo.
La baliza está explicada en el capítulo « Balizas propias del sitio ».
http://www.spip.net/es_article2132.html
[(#ENV{xxxx,zzzz})] a partir de [SPIP 1.8], permite acceder a la variable de de nombre xxxx pasada en la petición HTTP. zzzz es una parte opcional que permite devolver un valor aunque la variable xxxx no exista.
Por omisión, se filtra la baliza #ENV con htmlspecialchars. Si se quiere obtener el resultado bruto, se puede usar el asterisco «*» como para las otras balizas: [(#ENV*{xxxx})].
Por ejemplo, para limitar la lista de autores que se muestran:
<BOUCLE_autores(AUTEURS) {nom == #ENV{letra,^A}}>
En el ejemplo que yo propuse, la intención es complementar a la baliza #EXPOSE para que « resalte » links a páginas genéricas (esqueletos hechos ad hoc).
mapa
Para saber por qué funciona primero sería deseable saber qué debería hacer. Hay que conocer para qué sirve la baliza #EXPOSE
Eso se explica en el artículo « Resaltar un artículo de una lista »
http://www.spip.net/es_article2594.html
Lo básico de esta baliza es:
Por omisión, SPIP reemplaza la baliza #EXPOSE por «on» si el objeto pertenece al contexto actual; de lo contrario la baliza simplemente se ignora
Un ejemplo concreto: ves la página un artículo o sección (cuyo ID se pasa por URL) y en esa página también hay un menú a todas las secciones. Con la baliza #EXPOSE se puede destacar (agregando una clase CSS, por ejemplo).
Pero EXPOSE sólo funciona s hay un dato de contexto (en la URL o en un bucle superior) para comparar con el objeto del bucle donde se encuentra la baliza. Como un link a una página creada ad hoc (por ejemplo mapa.html) no tiene ID, #EXPOSE no sirve para este caso.
Ahora, sí. La explicación.
Un link a una página cualquiera, tiene la forma (por omisión), ./spip.php?page=ESQUELETO
Esa variable en la URL (page), puede leerse a través de la baliza #ENV, que es un array con todos los datos del contexto actual (prueben poner #ENV sólo en un esqueleto y vean toda la información que tiene)
Entonces podemos leer la variable page y en caso de que su valor sea el nombre de la pagina del link, agregamos la clase CSS llamada ‹ on ›.
Eso hace esto:
[class=« (#ENV{page}|=={mapa}|?{on,}) »]
- Lee la variable page
- Si es igual a « mapa », entonces devuelve el texto ‹ on ›. Si no es igual no escribe nada.
- Y además, si hay algun resultado positivo (o sea, si escribe ‹ on › -nada es equivalente a falso-) escribe lo que está antes y después de la baliza (entre los cochetes y los parentesis).
El resultado es que si la página que estamos viendo es spip.php?page=mapa, el link aparecerá así
mapa
Y si la página es cualquier otra,
mapa
Por supuesto, en algun lado hay que definir la clase « on » para que el link sea visualmente distinto al resto.
a.on {
color: orange;
background-color: cyan;
text-decoration:blink ;
}
Obviamente, el estilo a definir queda a tu criterio (¡este que puse yo es broma!)
Bueno, espero que haya servido.
Abrazos.
PD: Estoy con plan de comenzar un weblog técnico (o sea, escribir artículos más seguido y permitir comentarios). Trataría, entre algunas otras cosas, sobre SPIP. Ya les contaré en cuanto lo haga.