Friday, August 14, 2009

Membuat Artikel Terkait (Versi Klasik)

Posted by dav On 11:36 PM
Artikel terkait atau Recent Posts jenis yang ini merupakan versi klasik, yaitu versi yang pertama kali di kembangkan untuk platform Blogger jenis Layout. Mungkin artikel ini tertinggal atau sudah usang tetapi tidak ada salahnya Blogger TuneUp kembali menyuguhkannya sebagai arsip yang bisa digunakan sebagai perbandingan dalam pengembangan fasilitas yang lebih lengkap dan sederhana. Berbeda dengan jenis artikel terkait sebelumnya, yaitu Artikel Terkait (Versi 2.0) dan Artikel Terkait (Versi 1.0). Jenis klasik memang cenderung rumit dengan script yang lebih banyak dari versi terbaru, tetapi menurut beberapa blogger jenis ini selalu berhasil, kecil kemungkinan kegagalan pemasangan pada blogger.

Mengintegrasikan Artikel Terkait Versi Klasik

Langkah 1
Login ke Blogger
Langkah 2
Masuk ke bagian "Tata Letak - Edit HTML"
Langkah 3
Checklist "Expand Template Widget"
Langkah 4
Cari kode dibawah ini:
<div class='post-footer-line post-footer-line-3'/>
Langkah 5
Masukan (copy paste) kode dibawah ini tepat dibawah kode pada langkah 4:
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='similiar'>
<div class='widget-content'>
<h3>Artikel terkait :</h3>
<div id='data2007'/><br/><br/>
<script type='text/javascript'>
var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;
maxNumberOfPostsPerLabel = 100;
maxNumberOfLabels = 3;
function listEntries10(json) {
var ul = document.createElement(&#39;ul&#39;);
var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i &lt; maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;
for (var k = 0; k &lt; entry.link.length; k++) {
if (entry.link[k].rel == &#39;alternate&#39;) {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement(&#39;li&#39;);
var a = document.createElement(&#39;a&#39;);
a.href = alturl;
if(a.href!=location.href) {
var txt = document.createTextNode(entry.title.$t);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
}
for (var l = 0; l &lt; json.feed.link.length; l++) {
if (json.feed.link[l].rel == &#39;alternate&#39;) {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+13);
var k;
for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
var txt = document.createTextNode(label);
var h = document.createElement(&#39;b&#39;);
h.appendChild(txt);
var div1 = document.createElement(&#39;div&#39;);
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById(&#39;data2007&#39;).appendChild(div1);
}
}
}
function search10(query, label) {
var script = document.createElement(&#39;script&#39;);
script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
+ label +
&#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
document.documentElement.firstChild.appendChild(script);
}
var labelArray = new Array();
var numLabel = 0;
<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
textLabel = &quot;<data:label.name/>&quot;;
var test = 0;
for (var i = 0; i &lt; labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel &lt; maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>
</div>
</b:if>
Langkah 6
Simpan template dan preview.

Keterangan:
  • <h3>Artikel terkait :</h3> : Ganti Artikel Terkait sesuai dengan keinginan anda
  • var maxNumberOfPostsPerLabel = 4; : Ubah nilai 4 untuk menentukan jumlah maksimal artikel (posting) per label yang ingin di tampilkan
  • var maxNumberOfLabels = 10; : Ubah nilai 10 untuk menentukan jumlah maksimal label (kategori) yang ingin di tampilkan
Semoga berhasil, tinggalkan pesan jika mengalami kegagalan. Happy Blogging... :)