Problemas con posts aleatorios | Oloblogger A través de un correo, ayer me avisaron de que el botón para acceder a una entrada al azar, no funcionaba bien. Exactamente, lo que ocurría ...

1 de octubre de 2008

Problemas con posts aleatorios

A través de un correo, ayer me avisaron de que el botón para acceder a una entrada al azar, no funcionaba bien. Exactamente, lo que ocurría era que en lugar de ir a una entrada del blog, nos llevaba a un comentario en concreto dentro del feed de comentarios. Eso sí, lo hacía cojonudamente porque también era de forma aleatoria.

Pero en fin, como no era de eso de lo que se trataba, he logrado encontrar la fuente original del script y resulta que ya habían resuelto el problema. Al parecer, algún cambio en el sistema de feed ha sido el origen de todo.


Este es el nuevo código para la barra lateral, que habrá que poner en lugar del que se indicó en la entrada del 26 de Junio. Aunque no me parece necesario, si quereis poner el artilugio en la plantilla, en Phydeaux3 encontrareis cómo hacerlo:

<div id="myLuckyPost"></div>
<script type='text/javascript'>
function showLucky(root){
var feed = root.feed;
var entries = feed.entry || [];
var entry = feed.entry[0];
for (var j = 0; j < entry.link.length; ++j) {
if (entry.link[j].rel == "alternate") {
window.location = entry.link[j].href;
}
}
}
function fetchLuck(luck){
script = document.createElement('script');
script.src = '/feeds/posts/summary?start-index='+luck+'&max-results=1&alt=json-in-script&callback=showLucky';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
function readLucky(root){
var feed = root.feed;
var total = parseInt(feed.openSearch$totalResults.$t,10);
var luckyNumber = Math.floor(Math.random()*total);
luckyNumber++;
fetchLuck(luckyNumber);
}
function feelingLucky(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/feeds/posts/summary?max-results=0&alt=json-in-script&callback=readLucky';
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
<a href="#random" onclick="feelingLucky()" title="Entrada al azar">Entrada al azar</a>


Aunque parezca lo contrario, el código no es muy distinto del anterior ya que sólo se ha incorporado una función más. Lo que ocurre es que en la otra ocasión se puso del tirón.

Igual que entonces, se puede incluir una imagen a continuación de la frasecita "Entrada al azar" o en lugar de ella.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

28 comentarios :

  1. Muchas gracias, habia detectado el problema (tambien en otros widgets, como el de "posts mas comentados", que supongo tendrá la misma raiz), pero no se me había ocurrido ir a la fuente original :D

    Saludos y de nuevo gracias, mi botoncito ya refunciona.

    ResponderEliminar
  2. nosotros elegimos en qué categoría votarte???...me pregunto: se suman los votos por ejemplo: tecnología, ayuda, revelación.
    Creo que has hecho bien en anotarte, porque es un blog espectacular...no sé si tenías otro antes, pero está bárbaro. Saludos!!!

    ResponderEliminar
  3. Pues no, no creo que se sumen, pero es que realmente no sé en que categoría encasillarme...
    Dijiste ayuda pero no hay esa categoría.

    ResponderEliminar
  4. Oloman hola!!!, ya he visto la página...primero me dice ingresa, luego no te has adherido...realizo todo nuevamente...ya estás adherida, veré cómo se hace.
    No está ayuda, sí tecnología...ahí te pondré, besitos!!!

    ResponderEliminar
  5. ...o blog Revelación jajaja...no sé cúal de los dos...veremos

    ResponderEliminar
  6. Muchas gracias, había tenido problemas con el código y no sabia si se podía arreglar :D

    Muchas Gracias

    ResponderEliminar
  7. como pongo una imagen en lugar del texto ?? salu2

    ResponderEliminar
  8. y tambien que se muestren mas de 1 entrada .. por ejemplo unas 10 entradas aleatorias espero respuestas salu2 y gracias de antemano

    ResponderEliminar
  9. Muchas gracias Oloman al final utilizez se metodo de tanto buscar pero me alegro de que hayas respondido :) ... aqui te dejo algo que busco desde hace tiempo ... se trata de poner una imagen flotante " http://blog-bazar.com.ar/2007/12/agregar-una-imagen-flotante-fija.html#comments "

    mi pregunta la es la ultima "spirit warrior" no me responden nadien en el otro blog :P espero que me puedas ayudar. salu2

    ResponderEliminar
  10. Hace un montón que quería poner el random y suerte que llegué acá. Gracias. Es bueno que haya gente que se dedique a esto, jeje.

    Saludos!

    ResponderEliminar
  11. Ö gracias, ya veo porque no funciono desde algun principio :)

    ResponderEliminar
  12. ¿Dónde lo tienes puesto? Lo único que puedo hacer es que lo instales y darme una vuelta para repasar lo que pusiste, porque como podrás comprobar en mi barra lateral (dados), a día de hoy funciona correctamente.

    ResponderEliminar
  13. Muchas gracias!!!
    me ha servido, para mi blog.. lo puse dentro de una de las celdas de la tabla que hice para el menú de arriba.. y al texto "Entrada al azar" lo reemplacé por la div con imagen de sustitución.. que saqué de aquí tambien..
    vaya... tienen un blog genial.
    muchos saludos.

    ResponderEliminar
  14. Hola Luis. Te quedó muy bien ese menú. Saludos.

    ResponderEliminar
  15. Gracias, ¿y para insertarlo en la entrada como lo tienes tu es todas tus entradas?

    ResponderEliminar
  16. Es fácil nEjO, pero como es algo largo, déjame que prepare un post para explicarlo.

    ResponderEliminar
  17. hola, hace un tiempo instalé este gadget pero ahora no me funciona. Cuando clicas en "ver una entrada al azar", en la barra de direcciones me sale "http://retroroc.blogspot.com/#random" y continúa en la página de inicio. Antes funcionaba perfectamente. ¿alguna solución?.
    Gracias

    ResponderEliminar
    Respuestas
    1. Sólo se me ocurre una. La universal: salir y volver a entrar o lo que es lo mismo, reiniciar. Elimina el gadget y vuelve a poner el código que aquí se explica. Es posible que cambiaras algo sin querer, porque puedes comprobar en las frases al final de cada uno de mis posts, que todavía sigue funcionando bien.

      Eliminar
  18. Ya lo probé. Lo eliminé y lo volví a poner. También probé con 3 ó 4 distintos que venían en otras webs, y con un código directamente en la plantilla al que se llamaba con una línea a través de otro gadget de html. No funcionó nada. Hace un tiempo toqué bastante la plantilla para dejar el blog a mi gusto, pero con la última que tengo guardada tampoco funciona.
    Muy bueno oloblogger. Los que tenemos poca idea podemos hacer algo gracias a vosotros.

    ResponderEliminar
    Respuestas
    1. Pues de verdad que lo he probado por segunda vez y sigue funcionando correctamente. Esta vez lo hice en otro blog también bastante modificado y pitó bien tanto en gadget como en plantilla.

      Para esta última variante lo único que hay que hacer es añadir unas etiquetas para que Blogger trague con el código sin problemas:

      <script type='text/javascript'>
      //<![CDATA[
      CODIGO DEL SCRIPT
      //]]>
      </script>

      Lo acabo de añadir de esta manera en Musicae Memorandum, en el menú superior.

      Eliminar
    2. Podrías por favor decirme, estimado Oloman, si ya publicaste una entrada sobre ello (que preguntaba nEjo), o podrías decirme cómo implementar (así como en tu web) lo de las entradas al azar que sea desde la misma entrada.

      Eliminar
    3. No, no lo publiqué al final, pero fíjate en mi comentario anterior. Tienes que ir antes de </head> y añadir todo el código del principio, con la única precaución que se explica en 20.1. Todo excepto la última línea:
      <a href='#random' onclick='feelingLucky();' title='Entrada al azar'>Entrada al azar</a>

      Esa es la que tienes que poner, tal y como la puse ahora, con comillas simples, al principio del post-footer o justo después de <data:post.body/>

      Eliminar
  19. Cuántos habremos añadido este widget a nuestro blog... =)
    ¿Hay alguna idea sobre cómo restringir las entradas para que seleccione sólo las que cumplan alguna condición, o algo similar?
    Gracias.

    ResponderEliminar
    Respuestas
    1. Supongo que sí pero habría que reprogramar bastante. Tras conseguir el post aleatorio (función feelingLucky) habría que comprobar si cumple la condición y si no volver a llamar a esa función para que escogiera una segunda al azar y así sucesivamente hasta que la cumpliera ¿Pero qué tipo de condición podría ponerse?

      Eliminar
    2. Perdón por no contestar antes, había perdido el hilo de la entrada.
      Por ejemplo una condición tal que sólo se busquen las palabras que incluyan una etiqueta determinada.
      La idea busca hacer viajes aleatorios a entradas de una página en concreto, no sé si me explico.
      ¡Gracias!

      Eliminar
    3. En ese caso quizás sería más fácil cambiar la dirección del feed que figura en el código (/feeds/posts/summary) por /feeds/posts/default/-/NOMBRE_ETIQUETA, pero de verdad que no sé si funcionará. Ese código es algo complicado de entender por mí.

      Eliminar
  20. Grande Manolo como siempre- Abrazo desde Uruguay

    ResponderEliminar