¿Cómo puedo mostrar/ocultar mis Post (entradas) en Blogger? (Modo Peek-a-boo)

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:

  1. .posthidden {display:none}
  2. .postshown {display:inline}

Osea estas 2 líneas de código deben estar dentro de <b:skin><![CDATA[/* y ]]></b:skin>

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 <b:skin><![CDATA[/* y ]]></b:skin>. 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>:

  1. function expandcollapse (postid) {
  2.    whichpost = document.getElementById(postid);
  3.    if (whichpost.className=="postshown") {
  4.       whichpost.className="posthidden";
  5.    }
  6.    else {
  7.       whichpost.className="postshown";
  8.    }
  9. }

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 Ocultarlo debemos primero eliminar esta línea de código:

<a expr:name=’data:post.id’/>

Ahora buscamos las siguientes líneas de código:

  1. <p></p>
  2.       <div style='clear: both' /> <!-- clear for photos floats -->
  3.     </div>

Y las reemplazamos por:

  1. <span class='posthidden'>
  2. <div class='post-body'>
  3.   <p></p>  
  4. <div style='clear: both' /> <!-- clear for photos floats --></div>
  5. </span>
  6. <a>[+/-] show/hide this post</a>

Como resultado obtendríamos esto:
ejemploentradaexpandible1_beta.JPG

Si quieren que solo aparesca el titulo del blog, con el link que se hará expandible sin el [+/-], primero tendríamos que eliminar el título del post que viene en la plantilla original, para esto debemos borrar las siguientes lineas de código (y obviamente también hay que borrar la linea <a expr:href='”javascript:expandcollapse(“” + data:post.id + “”)”‘>[+/-] show/hide this post</a>):

  1. <b>
  2.       <h3 class='post-title entry-title'>
  3.      <b>
  4.        <a></a>
  5.      <b />
  6.         <b>
  7.           <a></a>
  8.         <b />
  9.          
  10.         </b>
  11.      </b>
  12.       </h3>
  13.     </b>

Y reemplazar las líneas borradas por:

  1. <a><h3 class='post-title entry-title'></h3></a>

Como resultado obtendríamos esto:
ejemploentradaexpandible2_beta.JPG

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í:

  1. </span>
  2.   </div>
  3. </b>

ejemploentradaexpandible3_beta.JPG

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:

  1. <b>
  2.         <h2 class='date-header'></h2>
  3.       </b>

El resultado de todos los pasos anteriores correponde a la lista de los post (solo los titulos) que se muestran en la primera página del blog, este es el resultado (expandí uno de los post para que vieran que funciona):

ejemploentradaexpandible4_beta.JPG

La parte más importante de este código es el empaquetador <span> que rodea el código <data:post.body/>. Observe que esta sección empieza oculta y utiliza data:post.id para crear un número de identificación exclusivo(id). 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.

Artículos Relacionados

Soy Blogger desde hace mucho tiempo. Inicialmente este blog se creó para entregar tutoriales paso a paso a las personas que estuvieran ingresando al mundo online. Muchos de mis tutoriales no requieren de conocimiento previo ni habilidades, la idea siempre fue tender una mano a los que usualmente no entienden nada. Como pueden ver estuvo bastante abandonado por varios años pero ahora lo retomaré con otro énfasis, explicación de herramientas mas complejas, y en la medida de lo posible se irán renovando los post que con el tiempo han quedado obsoletos.

About patriram

Soy Blogger desde hace mucho tiempo. Inicialmente este blog se creó para entregar tutoriales paso a paso a las personas que estuvieran ingresando al mundo online. Muchos de mis tutoriales no requieren de conocimiento previo ni habilidades, la idea siempre fue tender una mano a los que usualmente no entienden nada. Como pueden ver estuvo bastante abandonado por varios años pero ahora lo retomaré con otro énfasis, explicación de herramientas mas complejas, y en la medida de lo posible se irán renovando los post que con el tiempo han quedado obsoletos.

Leave a Reply

Your email address will not be published. Required fields are marked *