Patologico
Post anterior: el día después »Caso Papalógico »La corte del pueblo: Chilly contra Patologico »Enseñando las garras »Consejo a la juventud soltera »Blogger tip: Cambiar el orden de los posts »Por andar de chaqueto »Jicaletas »El papel del DF en la transformacion del hombre en... »Blogger Status »
Google compartidos
Lecturas Recomendadas. Fuente:Sindicalizador compartido google
lunes, abril 17, 2006
- Blogger tip: Botón para ir a un post al azar
Nivel de complejidad
◊◊◊◊◊
Un detalle muy cuco y egocéntrico para el blog es tener un botón disponible para que nuestros lectores puedan navegar aleatoriamente entre nuestros posts.
Esto no es complicado, hay varias formas de hacerlo con javascript. Lo interesante de este Blogger Tip es que usamos del.icio.us para obtener los links de los posts a "saltar". La ventaja de hacerlo así es que no es necesario modificar el template para agregar los links, bastará con agregarlos en delicious.
English
This is not a big issue, there are several javascript codes. But this Blogger hack use del.icio.us for load the post url randomly. This way is not necessary modify the blogger template for add new URLs, only need add it to your delicious account.
PASO 1
Crear un usuario en del.icio.us.
Dar de alta los posts. Esto parece de flojera, pero instalando este add-on de delicious basta con un par de clicks de ratón para agregar los posts.
IMPORTANTE:Del.icio.us solo permite recuperar hasta 100 links por "tag" por lo que si tienes mas de 100 posts para un tag te recomiendo crear nuevos tags (por ejemplo, "tips1" "tips2").
English
IMPORTANT:Del.icio.us only allow load 100 links by "tag"; if you have more than 100 posts for one tag i recommend create new tags (for example, "tips1" "tips2").
PASO 2
Copiar/Pegar en donde se quiere el botón de "post al azar".
English
<form action="javascript:azar();" id="azform" method='get'> <input type='button' id="azbotonn" value='¡Post al azar!' onclick='azar(); return false;' /> </form>
<div id="taggicontainer"></div>
<div style="display:none">
<script type="text/javascript" src="http://del.icio.us/feeds/js/tags/XXXXXXXXXXXXX?totals;flow=list;size=15-25;color=000099-000000;"></script>
</div>
<script type="text/javascript">
//<![CDATA[
// Ultima version: http://adivina.blogspot.com
var usuariodelicious = "XXXXXXXXXXXXX";
var taggicuentadel = 0;
var lostaggis="";
var tlostaggis=0;
Function.prototype.bg = function(ms){
this.PID = setInterval(this,ms);
return this;
}
Function.prototype.kill = function(){
clearInterval(this.PID)
}
String.prototype.onReady = function(func){
var str = this;
return function(){
try{
eval("var res=("+str+")");
if(res){
arguments.callee.kill();
func()
}
}catch(e){
}
}.bg(10)
}
function taggideliload(user){
taggicuentadel++;
if (taggicuentadel >= 2) return;
document.body.style.cursor="wait";
document.getElementById("taggicontainer").innerHTML="<br /><"+'span style="color:white;background-color:black">Cargando...<'+"/span><br /><br />";
"Delicious.posts".onReady(taggifeed_onload);
var s = document.createElement("script");
s.src = "http://del.icio.us/feeds/json/"+user;
s.charset = "utf-8";
document.body.appendChild(s);
}
function taggifeed_onload(){
var i = 0;
var elpost="";
var delpost="";
for (var i=0, post; post = Delicious.posts[i]; i++) {
if (i == (tlostaggis - 1) ) {
elpost=post.u;
delpost=post.d;
}
}
taggicuentadel = 0;
document.getElementById("taggicontainer").innerHTML='Redireccionando a <'+'span style="font-weight:bold;">'+delpost+"<"+"/span>";
document.body.style.cursor="default";
delete Delicious.posts;
location.href=elpost;
}
function aleatorio(a,b) {
return Math.round(Math.random()*(b-a)+a);
}
function azar() {
lostaggis=document.getElementById("delicious-tags-"+usuariodelicious).innerHTML;
tlostaggis=0;
var rlostaggis=0;
lostaggis = lostaggis.replace(/<[^>]+>/g, "");
slostaggis = lostaggis.split(" ");
for(var iM=0;iM < slostaggis.length;iM++) {
if ((iM/2) == Math.floor(iM/2)) if (parseInt(slostaggis[iM])) tlostaggis=tlostaggis + parseInt(slostaggis[iM]);
}
rlostaggis=aleatorio(1,tlostaggis);
tlostaggis=0;
for(var iM=0;iM < slostaggis.length;iM++) {
if ((iM/2) == Math.floor(iM/2)) {
if (parseInt(slostaggis[iM])) {
lostaggis = slostaggis[iM + 1];
tlostaggis=tlostaggis + parseInt(slostaggis[iM]);
if (tlostaggis >= rlostaggis) {tlostaggis = rlostaggis - (tlostaggis - parseInt(slostaggis[iM]));break;}
};
}
}
taggideliload(usuariodelicious+'/'+lostaggis+'?count=100');
}
//]]>
</script>
DEBES sustituir las dos XXXXXXXXXXXXX con tu usuario de deli.icio.us. Por ejemplo, mi usuario es adivina26.
Puedes modificar el texto del botón que dice ¡Post al azar!.
English
You can change the button text ¡Post al azar! for random post! or something.
PASO 3
Es todo. Salvar y Republicar el blog.
English
.-.-.-.-.-.-.-.-.-.-.-.-.-
Delicious lo estamos usando en este caso para leer la url de un post al azar y redireccionar, pero con pequeñas modificaciones se puede usar por ejemplo para dar una frase celebre aleatoria, cambiar la imagen del "header", etc.
English
EDIT 06MAY06: Para blogs de BLOGSOME también funciona el código. Aquí el ejemplo. La única diferencia es que el código javascript se debe poner en un archivo aparte (ver ejemplo).
English
EDIT 09MAY06: Para blogs de BITACORAS.COM y BLOGSPIRIT también funciona el código. Aquí el ejemplo y acá el de blogspirit. La única diferencia es que el código javascript se debe poner en un archivo aparte.
EDIT 21MAY06:Si en lugar de botón quieres que aparezca la opción como un link, debes sustituir el código del form (<form action=...</form>) por <a href="javascript:azar()" target="_self">¡Post al Azar!</a>
Post anterior: el día después »Caso Papalógico »La corte del pueblo: Chilly contra Patologico »Enseñando las garras »Consejo a la juventud soltera »Blogger tip: Cambiar el orden de los posts »Por andar de chaqueto »Jicaletas »El papel del DF en la transformacion del hombre en... »Blogger Status »
CSS Válido | WAI-AA | Licencia CC | Contacto

Currículum blogae
Expandibles
+ Porno links
Categorías
Últimos Posts
"Todos hemos oído decir que si un millón de monos aporrearan un millón de máquinas de escribir con el tiempo llegarían a reproducir las obras completas de Shakespeare. Ahora, gracias a los blogs, sabemos que eso no es cierto."



