jueves, enero 24, 2008

Ahora me ves, ahora no me ves

Última respuesta genérica de la semana complice

¿Es posible personalizar la sidebar para que ciertos elementos no se muestren cuando estamos en las páginas de posts individuales y si lo hagan en la página principal? ¿Puede ocultarse? ¿Pueden tenerse dos sidebars distintas, una vertical para la página principal y otra horizontal para las páginas individuales?


La respuesta genérica es SI ... pero confuso

En todos los casos, lo más sencillo es utilizar los códigos condicionales de Blogger. Por ejemplo, si queremos que la sidebar se muestre distinta en las página individuales, justo antes de </head>, agregamos lo siguiente:
<b:if cond='data:blog.pageType == "item"'>
<style type='text/css'>
... aquí colocamos las propiedades ...
</style>
</b:if>
Es decir, tenemos dos grupos de propiedades, las normales están en <b:skin> </b:skin> que son las que se utilizan por defecto y las nuevas las colocamos dentro de un condicional que sobrescribe, agrega o cambia las primeras.

Lo mismo podemos hacer para que cieros elementos se muestren o se oculten pero, para eso, debemos buscar en la plantilla el ID de cada uno. Sin expandir, podríamos ver algo así:
<b:section class='sidebar' id='sidebar' preferred='yes'>
<b:widget id='HTML1' locked='false' title='elemento1' type='HTML'/>
<b:widget id='Feed1' locked='false' title='elemento2' type='Feed'/>
<b:widget id='HTML2' locked='false' title='elemento5' type='HTML'/>
<b:widget id='Label1' locked='false' title='elemento3' type='Label'/>>
<b:widget id='BlogArchive1' locked='false' title='elemento4' type='BlogArchive'/>
</b:section>
¿Queremos que en la página principal se vean sólo cuatro y el quinto permanezca oculto? Pués entonces, dentro de <b:skin> </b:skin> debemos indicarle que se oculte con:

#HTML2 {display:none;}

¿Queremos que en la página de posts se oculten los elementos 2 y 4? Entonces, antes de </head> ponemos:
<b:if cond='data:blog.pageType == "item"'>
<style type='text/css'>
#Feed1 {display:none;} /* ocultamos el elemento 2 */
#BlogArchive1 {display:none;} /* ocultamos el elemento 4 */
#HTML2 {display:block;} /* mostramos el elemento 5 */
</style>
</b:if>
Resumiendo, haciendo uso de los condicionales, determinamos qué elementos se muestran y cuales se ocultan. Pero claro, todo lo demás dependerá de cada plantilla y habrá miles de posibles combinaciones.

5 comentarios:

Azul

Hola!

Mi pregunta no tiene nada que ver con el post que publicas hoy(eso si, me esta gustando porque me va a servir para algo específico de mi blog) sino, algo más sencillo, o eso espero.

Cómo puedo hacer que el enlace para los comentarios en mi blog, aparezcan al final de cada post, como en el tuyo y la mayoría de los blogs. En el mío aparece junto a la fecha de publicación y título y honestamente no me gusta, ya he toqueteado la plantilla, pero no encuentro como ponerlos al final de cada post.

Espero que puedas ayudarme....te dejo mi correo, por si tienes tiempo me orientes.

Gracias!!

ventana.azul@gmail.com

JMiur

Te he enviado un mail con una explicación a ver si te resulta útil.

Azul

Me ha resultado genial....gracias, gracias...Un bikiño enorme! :D

p.d. te he enviando otro con otra duda...claro, soy abusona.

JMiur

Me alegra que funcionara, ahora voy a leer tu mail :)

Azul

Lo he visto, ya....gracias otra vez....por tu atención, mañana lo aplico y seguro que funciona!

:D!

¿Quiere dejar un comentario?

Utilice el formulario adjunto para comunicarse.

Agregar un comentario al viejo estilo ...