14 Jan 2010

Show new post in you blog

To add the "Newest Post" module to blog like I did,



add a HTML/JavaScript module then copy and paste the following script.
you can also change the parameters to control the appreance.
Please read the comments and backup your template before your action.


<script>
//credit to hoctro
function rp(json) {
    document.write('<ul>');

    for (var i = 0; i < numposts; i++) {
        document.write('<li>');
        var entry = json.feed.entry[i];
        var posttitle = entry.title.$t;
        var posturl;

        if (i == json.feed.entry.length) break;

        for (var k = 0; k < entry.link.length; k++) {
            if (entry.link[k].rel == 'alternate') {
                posturl = entry.link[k].href;
                break;
            }
        }

        posttitle = posttitle.link(posturl);
        var readmorelink = "(more)";
        readmorelink = readmorelink.link(posturl);
        var postdate = entry.published.$t;
        var cdyear = postdate.substring(0,4);
        var cdmonth = postdate.substring(5,7);
        var cdday = postdate.substring(8,10);
        var monthnames = new Array();
        monthnames[1] = "Jan";
        monthnames[2] = "Feb";
        monthnames[3] = "Mar";
        monthnames[4] = "Apr";
        monthnames[5] = "May";
        monthnames[6] = "Jun";
        monthnames[7] = "Jul";
        monthnames[8] = "Aug";
        monthnames[9] = "Sep";
        monthnames[10] = "Oct";
        monthnames[11] = "Nov";
        monthnames[12] = "Dec";

        if ("content" in entry) {
            var postcontent = entry.content.$t;
        } else if ("summary" in entry) {
            var postcontent = entry.summary.$t;
        } else
            var postcontent = "";
            var re = /<\S[^>]*>/g;
            postcontent = postcontent.replace(re, "");
            document.write(posttitle);

            if (showpostdate == true) document.write(' - ' + monthnames[parseInt(cdmonth,10)] + ' ' + cdday);

        if (showpostsummary == true) {
            if (postcontent.length < numchars) {
                document.write(postcontent);
            } else {
                postcontent = postcontent.substring(0, numchars);
                var quoteEnd = postcontent.lastIndexOf(" ");
                postcontent = postcontent.substring(0,quoteEnd);
                document.write(postcontent + '...' + readmorelink);
            }
        }
        document.write('</li>');
    }
    document.write('</ul>');

}
</script>

<script>
// parameters
var numposts = 10; //number to show
var showpostdate = false; // show date
var showpostsummary = false; // show summary
var numchars = 100; // summary chars
</script>

<h2>New Post</h2>
<script src="http://your-site-url/feeds/posts/default?orderby=published&alt=json-in-script&callback=rp"></script>

No comments :

Post a Comment