My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Project Information
Members

// ---------------------------------------- // TABLE OF CONTENT FOR BLOGGER // ---------------------------------------- // This functions takes a blogger-feed in JSON // format and displays it. // // Date: 01-02-2010 // Author: Kang eNeS // URL: ruangsc.blogspot.com // ----------------------------------------

var cl_summlen = jumlah_kata_dalam_ringkasan; var all_entries; var entries; var all_labels = ; var json;

function createEntries(json){

var entries_obj_list = ; var entries = json.feed.entry; for(var i=0; i<entries.length; i++){
var entry = entriesi; var entry_obj = new Object; entry_obj.id = entry.id.$t; entry_obj.title = entry.title.$t; entry_obj.href = getEntryHref(entry); entry_obj.content = getEntryContent(entry); entry_obj.labels = getEntryLabels(entry); entry_obj.published = entry.published.$t.substr(0, 10); entries_obj_list.push(entry_obj);
} return entries_obj_list;
} function getEntryById(id){
for(var i=0; i<all_entries.length; i++){
if(all_entriesi.id == id){return all_entriesi;}
} return null;
} function getEntryContent(entry){
return entry.content ? entry.content.$t : entry.summary.$t;
} function getEntryHref(entry){
var links = entry.link; for(var i=0; i<links.length; i++){
if(linksi.rel == "alternate"){return linksi.href;}
} return null;
} function getEntryLabels(entry){
var labels = ; var categories = entry.category; if(!categories){return labels;} for(var i=0; i<categories.length; i++){
var label = categoriesi.term; if(!isExists(all_labels, label)){all_labels.push(label);} // while collecting all labels labels.push(label);
} return labels;
} function getSomeEntries(cmp){
entries = ; for(var i=0; i<all_entries.length; i++){
var entry = all_entriesi; if(cmp(entry)){entries.push(entry);}
} return entries;
} function isExists(array, val){
for(var i=0; i<array.length; i++){
if(arrayi == val){return true;}
} return false;
} function onLoadFeed(json_arg){
json = json_arg; setTimeout("onLoadFeedTimeout()", 100);
} function onLoadFeedTimeout(){
entries = createEntries(json); all_entries = entries; showHeaderOption(); showEntries(entries);
} function showEntries(entries){
var s = ""; for(var i=0; i<entries.length; i++){
var entry = entriesi; s += "

"; s += titleCode(entry); s += "Label: " + labelsCode(entry); s += " pada " + publishedDateCode(entry) + ""; s += "

";
} s += "

"; s += "
"; s += "Widget by "; s += "Info Blog"; s += " | Edit by "; s += "SC Community"; s += "
"; document.getElementById("cl_content_list").innerHTML = s;
} function showHeaderOption(){
var s = ""; s += ""; s += ""; s += ""; s += "
Urut berdasarkan: "; s += "
<select onchange="sortBy(this.value.substr(1), this.value.substr(0,1))">
"; s += "
<option value="0published">
</option>
Tanggal dipublikasikan - "; s += "
<option value="1title">
</option>
Judul Artikel"; s += "
</select>
"; s += "
Lihat kategori: "; s += "
<select onchange="showPostsWLabel(this.value)" id="cl_labels">
"; s += "
<option value="*">
</option>
Semua kategori - "; for(var i=0; i<all_labels.length; i++){
var label = all_labelsi; s += "
<option value=""+label+"">
</option>
" + label;
} s += "
</select>
"; s += "

Unknown end tag for </table>

"; document.getElementById("cl_option").innerHTML = s; } function shortenContent(entry){
var content = entry.content; content = stripHTML(content); if(content.length > cl_summlen){
content = content.substr(0, cl_summlen); if(content.charAt(content.length-1) != " "){content = content.substr(0, content.lastIndexOf(" ")+1);} content += "...";
} entry.content = content; return content;
} function showHideSummary(obj){
var p = obj.nextSibling; while(p.className != "cl_content"){p = p.nextSibling;} var id = p.id; var entry = getEntryById(id); var content = shortenContent(entry); if(p.innerHTML == ""){
p.innerHTML = content + "

"; obj.innerHTML = "▼"; obj.title = "Sembunyikan rangkuman";
} else {
p.innerHTML = ""; obj.innerHTML = "►"; obj.title = "Lihat rangkuman";
}
} function sortBy(attribute, asc){
var cmp = function(entry1, entry2){
if(entry1attribute == entry2attribute){return 0;} else if(asc=='1'){return entry1attribute.toLowerCase() > entry2attribute.toLowerCase();} else{return entry1attribute.toLowerCase() < entry2attribute.toLowerCase();}
} entries.sort(cmp); showEntries(entries);
} function stripHTML(s) {
var c; var intag = false; var newstr = ""; for(var i=0; i<s.length; i++){
c = s.charAt(i); if(c=="<"){intag = true;} else if(c==">"){intag = false;} if(c == ">"){newstr += " ";} else if(!intag){newstr += c;}
} return newstr;
}

// --------------------- functions returning HTML code -------------------- \\ function labelsCode(entry){

var s = ""; if(entry.labels.length == 0){return " (tidak berlabel) ";} for(var j=0; j<entry.labels.length; j++){
var label = entry.labelsj; s += "<a href='javascript:showPostsWLabel(\""+label+"\")' "; s += "title='lihat post dengan label \""+label+"\"'>" + label + "

Unknown end tag for </a>

"; s += (j != entry.labels.length-1) ? ", " : "";
} return s;
} function publishedDateCode(entry){
var y = entry.published.substr(0, 4); var m = entry.published.substr(5, 2); var d = entry.published.substr(8, 2); var s = "" + y + "/"; s += "" + m + "/"; s += "<a href='javascript:showPostsInDate(\""+y+"-"+m+"-"+d+"\")'title='Lihat artikel pada "+y+"/"+m+"/"+d+"'>" + d + "

Unknown end tag for </a>

"; return s;
} function titleCode(entry){
var s = " "; s += "" + entry.title + "

"; s += ""; return s;
}

// ----------------------- selection functions ------------------------------ \\

function showPostsInDate(date){

var cmp = function(entry){return entry.published.indexOf(date) == 0;} var entries = getSomeEntries(cmp); showEntries(entries);
} function showPostsWLabel(label){
var cmp = function(entry){
if(label == ""){return true;} for(var i=0; i<entry.labels.length; i++){
if(entry.labelsi == label){return true;}
} return false;
} var entries = getSomeEntries(cmp); showEntries(entries); document.getElementById("cl_labels").value = label;
}