Widget komentar blogger dengan filter admin
Sobat blogger, sangat tidak lucu kan kalo di widget recent comment yg muncul kebanyakan malah nama kita sendiri sebagai blog owner. Ya mau gimana lg karena kita baru sempat membalas komentar setelah beberapa lama gak online, sedangkan widget recent comment pasti akan me-list komentar2 terakhir dr blog.. #WTF
Widget komentar atau recent comment dengan filter admin ini saya comot langsung dari widget yg ada di home nextbiker.com . Silahkan diedit sendiri css dan setingnya . Untuk penempatan CSS bisa dijadikan satu dalam widget atau dipisah .
Edit value dari // CONFIG START: sampai // CONFIG END atau teks yg berwarna hijau
** Nama blog owner / admin case sensitive yg artinya huruf besar dan kecil berpengaruh.
** Tidak semua lambang alay / special character untuk nama blog owner bisa bekerja .
** Ganti teks hijau dengan yang sesuai .
readmore... »
Widget komentar atau recent comment dengan filter admin ini saya comot langsung dari widget yg ada di home nextbiker.com . Silahkan diedit sendiri css dan setingnya . Untuk penempatan CSS bisa dijadikan satu dalam widget atau dipisah .
<style type="text/css"> .recent-comment { margin:6px 0px 10px 4px;} .recent-comment-admin { background-color: #F8F1DF; } .recent-comment-ico { padding: 2px; background: #fefefe; -webkit-box-shadow: 0 1px 1px #ccc; -moz-box-shadow: 0 1px 1px #ccc; box-shadow: 0 1px 1px #ccc; float: left; margin: 0 6px 0 0; position: relative; overflow: hidden;} .avatarRound { -moz-border-top-left-radius: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-bottom-right-radius: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } .recent-comment-header {} .recent-comment-body { padding-right: 4px; font-size: 90%; color:#666; font-style:italic } .recent-comment-footer { font-size: 85%; } </style>
Edit value dari // CONFIG START: sampai // CONFIG END atau teks yg berwarna hijau
NOTE :<script type="text/javascript"> // CONFIG START: var numRecentComments = 6; var numPerPost = 2; // max comments per post (to try) or 0 var maxCommentChars = 0; var maxPostTitleChars = 30; // if 0, use full post title var txtWrote = '<!--wrote-->'; var txtMore = '<!--readmore-->'; var txtTooltip = '[title]'; var txtAnonymous = 'Anonym'; // empty, or Anonymous user name localized // Variables [xxx] in texts: // supports [title], [user], [date], [time], [datetime], [date format] // format supports: yyyy=long year, yy=short year, MM=month(01-12), dd=monthday, hh=hour, mm=min, ss=sec var getTitles = true; // false faster var trueAvatars = true; // false faster var urlMyAvatar = ''; // can be empty (then it is fetched) or url to image var urlMyProfile = ''; // set if you have no profile gadget on page // var cropAvatar = true; var sizeAvatar = 30; var urlNoAvatar = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ptnZ0qOmKagvCy5JGt6HUhP2fBEvXumJQViy74bpLnPLz4zY0Ljn4IareiCPp08wlFBLY_HG0Wu8B2PLbEIb6FgQBXQSWq77EBB1ZNpB6D5kX3AU8hwcbGkJ3Po1qJK3pIyov3wnXNE/"+sizeAvatar+"/avatar_blue_m_96.png"; // var urlAnoAvatar = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar; var maxResultsPosts = ""; // or for example "&max-results=100" var maxResultsComments = ""; // or for example "&max-results=300" // CONFIG END var urlToTitle = {}; function replaceVars(text, user, title, date) { text = text.replace('[user]', user); text = text.replace('[date]', date.toLocaleDateString()); text = text.replace('[datetime]', date.toLocaleString()); text = text.replace('[time]', date.toLocaleTimeString()); text = text.replace('[title]', title.replace(/"/g,'"')); var i = text.indexOf("[date "); if(i > -1) { var format = /[dates+(.+?)]/.exec(text)[1]; if(format != '') { var txtDate = format.replace(/yyyy/i, date.getFullYear()); txtDate = txtDate.replace(/yy/i, date.getFullYear().toString().slice(-2)); txtDate = txtDate.replace("MM", String("0"+(date.getMonth()+1)).slice(-2)); txtDate = txtDate.replace("mm", String("0"+date.getMinutes()).slice(-2)); txtDate = txtDate.replace("ss", String("0"+date.getSeconds()).slice(-2)); txtDate = txtDate.replace("dd", String("0"+date.getDate()).slice(-2)); //or: txtDate = txtDate.replace("dd", date.getDate()); txtDate = txtDate.replace("hh", String("0"+date.getHours()).slice(-2)); //or: txtDate = txtDate.replace("hh", date.getHours()); text = text.replace(/[dates+(.+?)]/, txtDate) } } return text; } if(urlMyProfile == "") { var elements = document.getElementsByTagName("*"); var expr = /(^| )profile-link( |$)/; for(var i=0 ; i<elements.length ; i++) if(expr.test(elements[i].className)) { urlMyProfile = elements[i].href; break; } } function getPostUrlsForComments(json) { for(var i = 0 ; i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; for (var k = 0; k < entry.link.length; k++ ) { if (entry.link[k].rel == 'alternate') { href = entry.link[k].href; break; } } urlToTitle[href] = entry.title.$t; } } function showRecentComments(json) { var postHandled = {}; var j = 0; if(numPerPost) { while(numPerPost < numRecentComments) { for(var i = 0 ; i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Admin Nextbiker") continue; if(entry["thr$in-reply-to"]) { if(!postHandled[entry["thr$in-reply-to"].href]) postHandled[entry["thr$in-reply-to"].href] = 1; else postHandled[entry["thr$in-reply-to"].href]++; if(postHandled[entry["thr$in-reply-to"].href] <= numPerPost) j++; } } if(j >= numRecentComments) break; numPerPost++; j = 0; postHandled = {}; } if(numRecentComments == numPerPost) numPerPost = 0; } postHandled = {}; j = 0; for(var i = 0 ; j < numRecentComments && i < json.feed.entry.length ; i++ ) { var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Admin Nextbiker") continue; if(numPerPost && postHandled[entry["thr$in-reply-to"].href] && postHandled[entry["thr$in-reply-to"].href] >= numPerPost) continue; if(entry["thr$in-reply-to"]) { if(!postHandled[entry["thr$in-reply-to"].href]) postHandled[entry["thr$in-reply-to"].href] = 1; else postHandled[entry["thr$in-reply-to"].href]++; j++; var href=''; for (var k = 0; k < entry.link.length; k++ ) { if (entry.link[k].rel == 'alternate') { href = entry.link[k].href; break; } } if(href=='') {j--; continue; } var hrefPost = href.split("?")[0]; var comment = ""; if("content" in entry) comment = entry.content.$t; else comment = entry.summary.$t; comment = comment.replace(/<br[^>]*>/ig, " "); comment = comment.replace(/<S[^>]*>/g, ""); var postTitle="-"; if(urlToTitle[hrefPost]) postTitle=urlToTitle[hrefPost]; else { if(hrefPost.match(//([^/]*).html/)) postTitle = hrefPost.match(//([^/]*).html/)[1].replace(/_d{2}$/, ""); postTitle = postTitle.replace(/-/g," "); postTitle = postTitle[0].toUpperCase() + postTitle.slice(1); } if(maxPostTitleChars && postTitle.length > maxPostTitleChars) { postTitle = postTitle.substring(0, maxPostTitleChars); var indexBreak = postTitle.lastIndexOf(" "); postTitle = postTitle.substring(0, indexBreak) + "..."; } var authorName = entry.author[0].name.$t; var authorUri = ""; if(entry.author[0].uri && entry.author[0].uri.$t != "") authorUri = entry.author[0].uri.$t; var avaimg = urlAnoAvatar; var bloggerprofile = "http://www.blogger.com/profile/"; if(trueAvatars && entry.author[0].gd$image && entry.author[0].gd$image.src && authorUri.substr(0,bloggerprofile.length) == bloggerprofile) avaimg = entry.author[0].gd$image.src; else { var parseurl = document.createElement('a'); if(authorUri != "") { parseurl.href = authorUri; avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname; } } if(urlMyProfile != "" && authorUri == urlMyProfile && urlMyAvatar != "") avaimg = urlMyAvatar; if(avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar != "") avaimg = urlNoAvatar; var newsize="s"+sizeAvatar; avaimg = avaimg.replace(//sdd+-c//, "/"+newsize+"-c/"); if(cropAvatar) newsize+="-c"; avaimg = avaimg.replace(//sdd+(-c){0,1}//, "/"+newsize+"/"); if(authorName == 'Anonymous' && txtAnonymous != '' && avaimg == urlAnoAvatar) authorName = txtAnonymous; var imgcode = '<img class="avatarRound" height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="'+authorName+'" src="'+avaimg+'" />'; if (authorUri!="") imgcode = ''+imgcode+''; var clsAdmin = ""; if(urlMyProfile != "" && authorUri == urlMyProfile) clsAdmin = " recent-comment-admin"; var datePart = entry.published.$t.match(/d+/g); // assume ISO 8601 var cmtDate = new Date(datePart[0],datePart[1]-1,datePart[2],datePart[3],datePart[4],datePart[5]); var txtHeader = txtWrote; if(txtWrote.indexOf('[')==-1) txtHeader = authorName + ' ' + txtWrote; else txtHeader = replaceVars(txtHeader, authorName, postTitle, cmtDate); var tooltip = replaceVars(txtTooltip, authorName, postTitle, cmtDate); if(!/#/.test(href)) href += "#comments"; document.write('<div title="'+tooltip+'" class="recent-comment'+clsAdmin+'">'); document.write('<div title="'+tooltip+'" class="recent-comment-header'+clsAdmin+'"><div title="'+tooltip+'" class="recent-comment-ico avatarRound'+clsAdmin+'">'+imgcode+'</div> ' + txtHeader + ' <br/>@ <a style="font-weight:small;text-transform:lowercase;color:#CFEC45;" title="'+tooltip+'" href="' + href + '">' + tooltip + '</a></div>'); if(comment.length < maxCommentChars) document.write('<div title="'+tooltip+'" class="recent-comment-body'+clsAdmin+'">' + comment + '</div>'); else { comment = comment.substring(0, maxCommentChars); var indexBreak = comment.lastIndexOf(" "); comment = comment.substring(0, indexBreak); document.write('<div title="'+tooltip+'" class="recent-comment-body'+clsAdmin+'">' + comment + '<!--...--></div>'); if(txtMore != "") { var moretext = replaceVars(txtMore, authorName, postTitle, cmtDate); document.write('<div title="'+tooltip+'" class="recent-comment-footer'+clsAdmin+'"><a title="'+tooltip+'" href="' + href + '">' + moretext + '</a></div>'); } } document.write('<div style="clear:both;"></div></div>'); } } } if(getTitles) document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/posts/summary?redirect=false'+maxResultsPosts+'&alt=json-in-script&callback=getPostUrlsForComments"></'+'script>'); document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false'+maxResultsComments+'&alt=json-in-script&callback=showRecentComments"></'+'script>'); </script>
** Nama blog owner / admin case sensitive yg artinya huruf besar dan kecil berpengaruh.
** Tidak semua lambang alay / special character untuk nama blog owner bisa bekerja .
** Ganti teks hijau dengan yang sesuai .
