Así quedarán las entradas de nuestro blog, una vez que hayamos seguido los pasos. Solo hagan click en [+/-], para que vean como se despliega el resto del post que esta oculto.
Ejemplo:
function expandcollapse (postid) {
whichpost = document.getElementById(postid);
if (whichpost.className==”postshown”) { whichpost.className=”posthidden”; }
else { whichpost.className=”postshown”; }
}
.posthidden {display:none}
.postshown {display:inline}
Esta entrada es larga
Bueno, es verdad, no es tan larga. Pero es que no tengo mucho que decir. Sin embargo, debería incluir por lo menos un párrafo bastante largo aquí para que se haga una idea de cómo funciona esta opción. ¿Alguien conoce algún chiste bueno? Venga, seguro que sí. ¿Tengo que hacerlo todo yo solo? Me temo que sí. Lo cierto es que no me importa, porque tampoco tiene mucho sentido extenderse demasiado. Retroceda y lea el resto del artículo. (puede hacer clic en el siguiente vínculo para volver a ocultar esta entrada).
[+/-] mostrar/ocultar esta entrada
Con la implementación de este script no es necesario que el lector cargue una nueva pagina para ver el resto de la entrada. Solo tendrá que pinchar en el [+/-] y listo. Mucho más rápido que cargar una página de nuevo. Si quieren en vez de [+/-] pueden colocar cualquier cosa, una imagen, otras palabras como leer mas… , o pueden simplemente dejar solo el título de la entrada.
Esta funcionalidad es especialmente útil para los blogs que tienen entradas muy largas. El usuario sólo verá los títulos de sus entradas y podrá hojearlos para seleccionar los que realmente le interesan. A continuación, podrá hacer clic en el vínculo correspondiente para leer todo el texto de la entrada. Cuando termine, podrá volver a ocultar el texto. Todo esto sucede en la misma página, con lo que no deberá navegar por otras páginas ni cargarlas.
Esta funcionalidad se compone de tres elementos: CSS, Javascript y, cómo no, los códigos de plantilla de Blogger. Vayamos por pasos.
Paso 1:
CSS
Es la parte más sencilla. Necesitamos un par de ejemplos que oculten o muestren entradas.
Copie estas dos líneas en su hoja de estilos:
- .posthidden {display:none}
- .postshown {display:inline}
Osea estas 2 líneas de código deben estar dentro de <style>
y </style>
Para la mayoría de las plantillas de blogger, su hoja de estilos suele aparecer en la parte superior de su plantilla, entre los códigos <style>
y </style>
. Algunas plantillas simplemente hacen referencia a un archivo externo que contiene el style. Si se encuentra en un archivo externo, entonces deberán primero descargarlo, cambiarlo (agregándole las dos líneas mencionadas) y luego volver a subir el archivo a un servidor propio.
Paso 2:
Javascript
Añada el código siguiente a su plantilla, entre <head> y </head>
:
- function expandcollapse (postid) {
- whichpost = document.getElementById(postid);
- if (whichpost.className=="postshown") {
- whichpost.className="posthidden";
- }
- else {
- whichpost.className="postshown";
- }
- }
Lo importante del código anterior es que tenemos que darle un nombre exclusivo (id) a cada una de las secciones que necesitemos ocultar.
Paso 3:
Códigos de Blogger
Ahora que tenemos las herramientas preparadas, podemos aplicarlas a nuestras entradas.
Para la mayoría de las plantillas los Post (Entradas) se representan por estas líneas de código, que se encuentran entre <Blogger> y </Blogger>
:
- <!-- Begin .post -->
- <div class="post"><a name=""></a>
- <h3 class="post-title">
- <a href="" title="external link">
- </a>
- </h3>
- <div class="post-body">
- <p></p>
- </div>
- <p class="post-footer">
- <em> @ <a href="" title="permanent link"></a></em>
- <a class="comment-link" href=""><span></span></a>
- <a class="comment-link" href="#links"><span></span></a>
- </p>
- </div>
- <!-- End .post -->
Para Ocultarlo debemos primero eliminar esta línea de código:
<a name=”<$BlogItemNumber$>”></a>
Luego reemplazamos esta parte del código inicial, la que va desde <BlogItemTitle> a </BlogItemTitle>:
- <h3 class="post-title">
- <a href="" title="external link">
- </a>
- </h3>
Por estas líneas:
Y finalmente, reemplazamos esta otra parte del código:
- <div class="post-body">
- <p></p>
- </div>
Por esta otra:
- <span class="posthidden" id="">
- <div class="post-body">
- <br />
- </div>
- </span>
- <a href="javascript:expandcollapse('')">
- [+/-] show/hide this post</a>
Como resultado obtendríamos esto:
Si quieren que solo aparesca el titulo del blog, con el link que se hará expandible sin el [+/-], entonces el código quedaría así:
- <a href="javascript:expandcollapse('')"> </a>
- <span class="posthidden" id="">
- <div class="post-body">
- <br />
- </div>
- </span>
Como resultado obtendríamos esto:
Y si quieren que además desaparesca el pie del post, que tiene los comentarios, el nombre del creador del post, y la hora. Entonces el cierre (</span>) de la parte que necesitamos ocultar debe ir antes del último </div> que termina el código del Post. Quedaría así:
- <!-- Begin .post -->
- <div class="post">
- <a href="javascript:expandcollapse('')"> </a>
- <span class="posthidden" id="">
- <div class="post-body">
- <br />
- </div>
- <p class="post-footer">
- <em> @ <a href="" title="permanent link"></a></em>
- <a class="comment-link" href=""><span></span></a>
- <a class="comment-link" href="#links"><span></span></a>
- </p>
- </span>
- </div>
- <!-- End .post -->
Hasta el momento lo que tendrán como resultado, es una lista de todos los títulos de los últimos post que muestran en la página principal, con su correspondiente fecha, si aún no han eliminado la fecha, en mi caso ya lo había hecho antes (explicado en post anterior), entonces lo que deben hacer es simplemente borrar de la plantilla las siguientes 3 lineas de código que la despliegan (van desde <BlogDateHeader> hasta </BlogDateHeader>), que se encuentran entre la etiqueta <Blogger> y la linea de comentario que identifica el comienzo del post ( <!– Begin .post –> ):
- <h2 class="date-header"></h2>
- <!-- Begin .post -->
La parte más importante de este código es el empaquetador <span>
que rodea el código <$BlogItemBody$>
. Observe que esta sección empieza oculta y utiliza para crear un número de identificación exclusivo(id). Si quieren en vez de usar <$BlogItemNumber$> como id pueden utilizar <$BlogItemNumber$>1, de esta manera el “1” adicional garantiza la exclusividad del número de identificación en caso de que su plantilla ya utilice el número de elemento del blog para otra cosa como, por ejemplo, un vínculo perm. El vínculo de Javascript utiliza el mismo número de identificación para garantizar que se muestra u oculta la entrada adecuada.
Cuando finalicen los cambios en la plantilla, guarden los cambios y listo. El nuevo formato se aplicará automáticamente a todas sus entradas sin necesidad de realizar ninguna modificación.
Notas: