JMiur [E]

Mostrar una entrada al azar es un tema recurrente y, lo confieso, nunca me ha parecido demasiado útil pero, como siguen preguntando, primero que nada, debo decirles que pueden verlo explicado acá, acá y acá así que, lo que sigue no aportará nada nuevo.

Es muy fácil de implementar, sólo necesitamos un pequeño script y un botón con un enlace donde hacer click.

Vamos al Diseño de la plantilla y en la solapa Edición HTML, sin expandir los artilugios agregamos el código justo antes de </head>:
<script type="text/javascript">
//<![CDATA[
var _yourBlogUrl = "URL_blog";
function randomPost() {
  var script = document.createElement("script");
  script.setAttribute("type", "text/javascript");
  var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script &callback=getTotalPostsCallback&start-index=1&max-results=1";
  script.setAttribute("src", theUrl);
  document.documentElement.firstChild.appendChild(script);
}
function getTotalPostsCallback(json) {
  var totalResults = json.feed.openSearch$totalResults.$t;
  if (totalResults > 0) {
    getRandomPostNumber(totalResults);
  }
}
function getRandomPostNumber(totalResults) {
  var randomNumber = Math.floor((Math.random() * totalResults) + 1);
  getRandomUrl(randomNumber);
}
function getRandomUrl(randomNumber) {
  var script = document.createElement("script");
  script.setAttribute("type", "text/javascript");
  var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script&callback=getTheUrlCallback&start-index=" 
+ randomNumber + "&max-results=1";
  script.setAttribute("src", theUrl);
  document.documentElement.firstChild.appendChild(script);
}
function getTheUrlCallback(json) {
  var theUrl;
  for(var i = 0; i < json.feed.entry[0].link.length; i++) {
    if (json.feed.entry[0].link[i].rel == "alternate") {
      theUrl = json.feed.entry[0].link[i].href;
      break;
  }
}
if(theUrl) { window.location.href = theUrl; }
}
//]]>
</script>
Donde, lo único que debemos cambiar el la dirección del blog. Ahora falta agregar el enlace. Creamos entonces un elemento HTML y allí colocamos el texto o la imagen que nos servirá de botón:
<a href="javascript:randomPost();"> TEXTO/IMAGEN </a>

21 comentarios:

littoXD hace 16 años  

Holas muy bueno este "truquillo"que te busca automaticamente un post aleatorio, bueh pasabah porque hace rato que no andaba x aca, y de paso a agradecerte la mano que me diste con la barra menu. Un abrazo Jorge..
Eternamente agradecido littoXD

Responder
La Blogueria hace 16 años  

Mostrar un post aleatorio siempre me pareció una tontería más... hasta que me di cuenta de que es una opción más para navegar por un blog que te gusta y aún estás descubriendo, y me pareció divertido.

Más divertido que poner un reloj, al menos

Responder
susana espíndola hace 16 años  

hola! La verdad que a mí sí me parece útil para un blog que tengo de poesía y que como no he cargado muchos poemas, mi idea es que al entrar pero de manera automática muestre siempre un post distinto. Y es esto todavía lo que no encuentro que muestre aleatoriamente un post pero de manera automática. ¿Será posible esto? Justamente esta mañana pensaba pasar por tu blog para hacerte esta consulta. Para mí sería muy útil en ese blog que tengo pocas entradas y que la idea sería no subir de continuo poemas.
Ojalá me des alguna idea!!!saludos y gracias desde ya!!!

Responder
JMiur hace 16 años  

¿Cómo anda, littoXD? Me alegro que el tema se haya solucionado.

La Blogueria: Ayyyyy eso del reloj, dolió

Hablando en serio me parece que la utilidad, depende mucho del tipo de blog. Pero, también es cierto que hay algo muy subjetivo y que eso no puede medirse ¿Te parece divertido? Entonces es útil

Susana:
Técnicamente, parecería sencillo hacer eso pero, produciría un efecto indeseado: se generaría un bucle infinito. Voy a tratar de explicarlo.

Si colocas algo así:
<body onload='randomPost();'>

Cuando se carga una página, aleatoriamente, se dirigirá a un post cualquiera ¿y que pasará entonces? Comenzará a cargarse ese post y, otra vez se encontrara con ese código que le dice, cargue un post aleatorio así que, lo hará y volverá a cargarse otra página que, encontrará la misma instrucción y volverá a cargarse. Así hasta el infinito. Moraleja, nunca se cargará ninguna.

Sólo tendría sentido si, desde un blog, tienes un enlace a otro blog y entonces sí, allí se cargaría cualquier post de ese segundo blog.

¿Se comprende el problema?

Responder
La Blogueria hace 16 años  

Pues no iba con intención de chinchar... y confieso que... errhh..estoy "diseñando" un relojito... ehhrr... para mi blog...

Responder
JMiur hace 16 años  

Jajaja Podríamos diseñar uno con un buho que en lugar de manecillas, gire la cabeza o mueva los ojos en círculo

Si esto es difícil ¿que tal un reloj cucú con una lechuza?

Imagina, cientos de lectores esperando la hora exacta para verlo salir.

Ya lo veo ... un ambiente tenso, un contador marca el tiempo que falta para la nueva aparición ... 5 ... 4 ... 3 ... la gente grita lo números ... 2 ... es un coro perfecto ... ¡¡¡¡¡¡¡UNO!!!!!!! Y sale la lechuza, hace su monería (o su lechucería) y la gente aplaude. Lentamente, se retiran con una sonrisa en los labios, felices de haber participado del acontecimiento

Sí, está bien, mejor me callo

Responder
La Blogueria hace 16 años  

¡¡¡cóóóómooo!!!???

¡¡QUIERO UNO ASÍÍÍÍÍÍ!!!

Responder
JMiur hace 16 años  

Jajajaja, ¿No conoces alguien que sepa trabajar con Flash? No creo que sea tan complicado.

¿Y si lo colocas en un post como propuesta para tus lectores? Que envien colaboraciones, hacemos un concurso. Si te decides, lo promovemos. Sería divertido

Responder
La Blogueria hace 16 años  

¡Me encanta la idea! Lo que ya no tengo tan claro es en qué se puede basar el concurso, me refiero a los incentivos, si me puedes orientar un poco, soltamos el golem... ¿estamos seguros de que queremos que la gente vaya haciendo cosas así?

Tras releer la descripción del reloj, digo SÍIIIIIII, y que sea lo que dios quiera...

Ufff me deja sin respiración la sola idea... retiro todo lo que dije de relojes sosos e inútiles, ¡son un campo de inspiración tremendo! si no fuera porque ni pajolera de flash, ya habría puesto 10... hay que ver...

Necesito ese reloj...

Responder
JMiur hace 16 años  

Buena pregunta. Descartemos una Ferrari Testarosa, un viaje a Tahití y cosas similares

Podríamos hablar de ... no sé, ¿un enlace destacado? Confiemos en la buena voluntad y en las ganas de colaborar :$

Establece las bases técnicas, formato, tamaño, donde enviarlo, ese tipo de detalles y vamos para adelante ... no hay nada que perder

Responder
elpops hace 16 años  

ufff muy buena opcion. men gracias...

lo que si me gustaria es hacer mi propio boton aleatorio...

saludos desde www.popista.blogspot.com

Responder
JMiur hace 16 años  

Pops: Se puede usar cualquier imagen.

Responder
La Blogueria hace 16 años  

Te tomo la palabra! me pongo a ello con mi lentitud habitual.

La sola idea me hace feliz

Responder
JMiur hace 16 años  

¡Adelante entonces! Aquí espero para lo que necesite

Responder
SebaContreras hace 16 años  

ese codigo podria mejorarse, cambiando:
var _yourBlogUrl = "URL_blog";
por:
var _yourBlogUrl = "http://" + document.domain;
asi quien usa el codigo se ahorra un poco de su tiempo, y si despues cambia la url de su blog, no se debe estar buscando el codigo para cambiarlo.

Responder
JMiur hace 16 años  

Tienes razón, Malina. He actualizado el post y la modificación que hay que hacer al script está marcada en amarillo.

Responder
JMiur hace 16 años  

Si me hubiera acordado que lo tenía ella, me habría ahorrado trabajo

Parece que es un problema reciente, algún cambio en la forma en que funcionan los feeds; como no lo uso, no lo había notado.

Responder
cpxondo hace 16 años  

Funciono de maravilla, muchas gracias!

Responder
JMiur hace 16 años  

Saludos, cpxondo.

Responder
Anónimo hace 15 años  

A mi no me funcionó
Y puse todo como debía... No entiendo

Responder
JMiur hace 15 años  

Puén no sé qué has hecho ni donde está tu ejemplo para decirte en qué te has equivocado.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR