Casomi enfermedad
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


English
Blogger hack: Random post button


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
A nice and self-centered add-on for the blog is to have a button for random "jump" from post to post.
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
Have a del.icio.us account.
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
Copy/Paste where you want the "random post" button.

<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 MUST replace the two XXXXXXXXXXXXX with your del.icio.us userid.
You can change the button text ¡Post al azar! for random post! or something.


PASO 3
Es todo. Salvar y Republicar el blog.
English
Save and Republish all.


.-.-.-.-.-.-.-.-.-.-.-.-.-

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
We use del.icio.us for read randomly an url and redirect, but with little changes can use for a random cite, random header image, etc.

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
The hack works for BLOGSOME blogs too. Here an example. The only difference, must put the javascript code into an external file (example)

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


↑Arriba

imgizqimgder
 Datos curiosos Cooooooge 

Currículum blogae

Expandibles

+ Porno links

Categorías

Combina (p.ej Chilly/Const)


Últimos Posts

online counter

"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."

no meme
no meme