Adrian León consultó en la lista
spip-es:
Estoy intentado poner balizas de este tipo:
#BOUTON_BLOCK
#DEBUT_BLOCK
Desde el editor del sitio privado en el texto de un artículo. No
conozco la forma de que funcione desde ahí (sale escrito como texto
en la página resultante. ¿Hay alguna manera de hacerlo?
Estaba intentando, me enteré después, usar este
plugin
Al otro día yo contesté:
Hola Adrián. Desconocía de qué hablabas hasta que Marina mandó el
link. Me parece que en el algunas ocasiones los plugins están
opacando las soluciones más eficientes e ingeniosas, esas que
buscabamos antes de que todo fuese "enchufable". ¡Spip se está
wordpressisando!
Lo que quiero decir es que me parece que hay formas mejores de hacer
eso. Yo tengo un ejemplo para
darte
Andá al pie del artículo, y hacé click en Opinar: despliega (u
oculta, depende del estado) el formulario de comentarios.
Es, sin balizas ni plugins, lo que parece que hace esa contrib.
Y el código es de risa: un pelín de jQuery (con su efecto
toggle() )
El esqueleto del ejemplo que
propongo
es bien sencillo. El formulario aparece encerrado en una div
y
escondido con la propiedad CSS display:none
. De manera simplificada
[1] :
[(#FORMULAIRE_FORUM)]
Y el link que produce el efecto mostrar/ocultar (en este caso «opinar»
)tiene este código.
Opinar
En perfecto argentino se diría: ¡una papa!
Breve explicación: Al hacer click sobre el link, se ejecuta el evento
Onclick, que mendiante jQuery (que ya se encuentra en todo sitio SPIP si
existe la baliza #INSERT_HEAD en el <head>
de los esqueletos), se
busca la el bloque con ID «form-comment» (o sea, el div
contenedor
del formulario), y se aplica toggle()
, que es una funcion que si el
bloque está oculto, lo muestra, y se está visible lo oculta. Simple y
efectivo.
Permitiendo el uso desde la redacción
Hasta aquí el reemplazo al plugin, que no da una solución completa a la
consulta de Adrían, porque esta solución también está programado en los
esqueletos del sitio. Pero, con simples modificaciones, se puede usar
dentro del texto de los artículos.
El truco es este: la balizas no se pueden usar en el texto, pero los
modelos sí. Y como spip respeta el HTML, tenemos solución: generamo el
link interruptor a través de un
modelo
[2].
Creamos un modelo dentro de modeles/toggle.html (dentro de la carpeta
de nuestros esqueletos) con el siguiente código:
#ENV{texto}
¡Y listo!
Para usarlo, en el cuerpo del artículo se invocaría al modelo con dos
parámetros: el identificador del contenedor, y el texto de link
controlador.
Donde se quiera mostrar el link escribimos:
System Message: WARNING/2 (<string>, line 95)
Literal block expected; none found.
y donde queramos que vaya el contenido oculto:
Hola amigos, esto es una astucia para el compañero Adrian!
</div>
Sólo hay que asegurarse de que el ID del contenedor sea el mismo que el
parametro div que pasamos a nuestro modelo. Por supuesto, esto permite
tener múltiples bloques ocultos y link controladores.
El resultado
esto
funciona?
¡Hola amigos, esto es una astucia para el compañero Adrian!