сряда, януари 02, 2008

Притурка за случайна публикация в Blogger

Често откривам интересни публикации в каретата "Случаен пост" (Random post) по хорските блогове. Днес реших да си активирам random post widget в Blogger и открих, че такъв няма. Разбира се, в интернет пък има. Оригиналната версия не изписва името на случайната публикация, поради което се наложиха доработки. Ако искате случаен пост и за вашия блог, цъкнете бутончето Add to Blogger по-долу.







Текстът на притурката следва:

<div id="myLuckyPost"></div>
<script type="text/javascript">
var blogBase = 'http://cheffotest.blogspot.com';

function trim($t) {
$t = $t.replace(/^s+/, '').replace(/s+$/, '');
}

function fetchFeed($parameters, $hook) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = blogBase + '/feeds/posts/summary?alt=json-in-script&'+$parameters+'&callback='+$hook;
document.getElementsByTagName('head')[0].appendChild(script);
}

function buildLinks(root){
var feed = root.feed;
if(!feed.entry[0]) {
return;
}
var entry = feed.entry[0];
a = document.createElement('a');
a.href = entry.link[0].href;
var innerHTML = feed.entry[0].title.$t;
if(!innerHTML || trim(innerHTML)=='') {
innerHTML = 'Untitled';
}
a.innerHTML = innerHTML;
document.getElementById('myLuckyPost').appendChild(a);
}

function feelingLucky(root){
var feed = root.feed;
var total = parseInt(feed.openSearch$totalResults.$t,10);
var luckyNumber = Math.floor(Math.random()*total);
luckyNumber++;
fetchFeed('start-index='+luckyNumber+'&max-results=1', 'buildLinks');
}

function initLucky(){
fetchFeed('max-results=0', 'feelingLucky');
}
initLucky();
</script>

1 коментар:

Анонимен каза...

Hi, I have been using this code and it has been working great until recently. Phydeaux3 updated its code to make it work for the new Blogger, could you update the code here so that works as well? Thanks!