December 16, 2013

Mengatasi Tombol Balas/Reply Yang Tidak Berfungsi

Semangat pagi !

Kali ini CMX akan share sebuah pengalaman pribadi tentang cara Mengatasi Tombol Balas/Reply Yang Tidak Berfungsi Pada Blog, artikel ini saya ambil dari salah satu website favorit ane yaitu blog.kangismet.net. Langsung saja kawan saya sudah membuatkan tutorialnya , disimak ya :D

Kemarin" saya dibuat galau oleh blog saya ,kenapa ??karena tombol balas komentar diblog saya tidak berfungsi ! karena banyaknya sobat blogger yg berkomentar diblog saya maka sayapun mengambil keputusan cepat untuk mencari solusi dari masalah saya ini.Setelah ngubek" mbah google akhirnya saya menemukan artikel yg 100% berhasil saya terapkan diblog saya. Usut punya usut hal tersebur disebabkan ada perubahan pada JavaScript threaded comment.

Untuk mengatasi hal tersebut, ikuti langkah-langkah di bawah ini :

   1. Masuk ke Dasbor > Rancangan > Edit HTML
   2. Menjaga kegagalan, backup dulu template anda > Download Template Lengkap
   3. Centang Expand Template Widget
   4. Cari kode dibawah ini :

  <b:includable id='threaded_comment_js' var='post'>
  <script defer='defer' expr:src='data:post.commentSrc' type='text/javascript'/>

    sampai dengan  


  </script>
   </b:includable>

   5. Ganti semuanya dengan kode dibawah ini :

  <b:includable id='threaded_comment_js' var='post'>
  <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>

  <script type='text/javascript'>
    (function() {
      var items = <data:post.commentJso/>;
      var msgs = <data:post.commentMsgs/>;
      var config = <data:post.commentConfig/>;

// <![CDATA[
      var cursor = null;
      if (items && items.length > 0) {
        cursor = parseInt(items[items.length - 1].timestamp) + 1;
      }

      var bodyFromEntry = function(entry) {
        if (entry.gd$extendedProperty) {
          for (var k in entry.gd$extendedProperty) {
            if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
              return '<span class="deleted-comment">' + entry.content.$t + '</span>';
            }
          }
        }
        return entry.content.$t;
      }

      var parse = function(data) {
        cursor = null;
        var comments = [];
        if (data && data.feed && data.feed.entry) {
          for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
            var comment = {};
            // comment ID, parsed out of the original id format
            var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
            comment.id = id ? id[2] : null;
            comment.body = bodyFromEntry(entry);
            comment.timestamp = Date.parse(entry.published.$t) + '';
            if (entry.author && entry.author.constructor === Array) {
              var auth = entry.author[0];
              if (auth) {
                comment.author = {
                  name: (auth.name ? auth.name.$t : undefined),
                  profileUrl: (auth.uri ? auth.uri.$t : undefined),
                  avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
                };
              }
            }
            if (entry.link) {
              if (entry.link[2]) {
                comment.link = comment.permalink = entry.link[2].href;
              }
              if (entry.link[3]) {
                var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
                if (pid && pid[1]) {
                  comment.parentId = pid[1];
                }
              }
            }
            comment.deleteclass = 'item-control blog-admin';
            if (entry.gd$extendedProperty) {
              for (var k in entry.gd$extendedProperty) {
                if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
                  comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
                }
              }
            }
            comments.push(comment);
          }
        }
        return comments;
      };

      var paginator = function(callback) {
        if (hasMore()) {
          var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
          if (cursor) {
            url += '&published-min=' + new Date(cursor).toISOString();
          }
          window.bloggercomments = function(data) {
            var parsed = parse(data);
            cursor = parsed.length < 50 ? null
                : parseInt(parsed[parsed.length - 1].timestamp) + 1
            callback(parsed);
            window.bloggercomments = null;
          }
          url += '&callback=bloggercomments';
          var script = document.createElement('script');
          script.type = 'text/javascript';
          script.src = url;
          document.getElementsByTagName('head')[0].appendChild(script);
        }
      };
      var hasMore = function() {
        return !!cursor;
      };
      var getMeta = function(key, comment) {
        if ('iswriter' == key) {
          var matches = !!comment.author
              && comment.author.name == config.authorName
              && comment.author.profileUrl == config.authorUrl;
          return matches ? 'true' : '';
        } else if ('deletelink' == key) {
          return config.baseUri + '/delete-comment.g?blogID='
               + config.blogId + '&postID=' + comment.id;
        } else if ('deleteclass' == key) {
          return comment.deleteclass;
        }
        return '';
      };

      var replybox = null;
      var replyUrlParts = null;
      var replyParent = undefined;

      var onReply = function(commentId, domId) {
        if (replybox == null) {
          // lazily cache replybox, and adjust to suit this style:
          replybox = document.getElementById('comment-editor');
          if (replybox != null) {
            replybox.height = '250px';
            replybox.style.display = 'block';
            replyUrlParts = replybox.src.split('#');
          }
        }
        if (replybox && (commentId !== replyParent)) {
          document.getElementById(domId).insertBefore(replybox, null);
          replybox.src = replyUrlParts[0]
              + (commentId ? '&parentID=' + commentId : '')
              + '#' + replyUrlParts[1];
          replyParent = commentId;
        }
      };

      var hash = (window.location.hash || '#').substring(1);
      var startThread, targetComment;
      if (/^comment-form_/.test(hash)) {
        startThread = hash.substring('comment-form_'.length);
      } else if (/^c[0-9]+$/.test(hash)) {
        targetComment = hash.substring(1);
      }

      // Configure commenting API:
      var configJso = {
        'maxDepth': config.maxThreadDepth
      };
      var provider = {
        'id': config.postId,
        'data': items,
        'loadNext': paginator,
        'hasMore': hasMore,
        'getMeta': getMeta,
        'onReply': onReply,
        'rendered': true,
        'initComment': targetComment,
        'initReplyThread': startThread,
        'config': configJso,
        'messages': msgs
      };

      var render = function() {
        if (window.goog && window.goog.comments) {
          var holder = document.getElementById('comment-holder');
          window.goog.comments.render(holder, provider);
        }
      };

      // render now, or queue to render when library loads:
      if (window.goog && window.goog.comments) {
        render();
      } else {
        window.goog = window.goog || {};
        window.goog.comments = window.goog.comments || {};
        window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
        window.goog.comments.loadQueue.push(render);
      }
    })();
// ]]>
  </script>
  </b:includable>

   6. Save Template dan silakan lihat hasilnya.

Before
Mengatasi Tombol Balas/Reply Yang Tidak Berfungsi

After
Mengatasi Tombol Balas/Reply Yang Tidak Berfungsi

 Semoga bermanfaat :)

Bagikan Artikel

Jangan lewatkan

Mengatasi Tombol Balas/Reply Yang Tidak Berfungsi
4/ 5
Oleh

Ingin mendapatkan uang dari internet??

Mau tau bangaimana saya menghasilkan uang dari internet?? Tambahkan email Anda untuk mengetahuinya.

12 komentar

Tulis komentar
avatar
Anonymous
December 16, 2013 at 3:52 PM

wah, untung punyaku masih work dengan baik

Reply
avatar
December 16, 2013 at 5:33 PM

iya gan syukur deh hehehe :D

Reply
avatar
December 16, 2013 at 6:06 PM

wah sangat bermanfaat gan. saya sudah follow blog anda ditunggu follbacknya

Reply
avatar
Anonymous
December 16, 2013 at 6:08 PM

Wah kodenya lumayan panjang juga yah,, :) :) oya link blog sobat sudah aku pasang balik,, silahan di cek,,,

Reply
avatar
December 17, 2013 at 11:47 AM

hem.. yayaya makasih gan atas tutorialnya
ane sering mampir nih kesini :)

Reply
avatar
December 17, 2013 at 11:51 AM

iya gan sama" :)
makasih bgt gan , ane juga sering mampir keblog agan :D

Reply
avatar
Anonymous
December 17, 2013 at 11:55 AM

iya gan kmrin udah saya cek , trimakasih atas kerjasamanya :)

Reply
avatar
December 17, 2013 at 4:44 PM

gan cara bikin tombol next ama previous kyk agan gmana sih

Reply
avatar
December 17, 2013 at 5:07 PM

maaf gan ane belum bisa kasih solusi , soalnya scrpit blog ane lgi ada masalah :'(
ntar kalo udah beres ane bantuin gan

Reply

Peraturan Berkomentar di situs alfiancmx.blogspot.co.id

1. Berkomentarlah Sesuai Topik Artikel
2. Berkomentarlah Menggunakan Bahasa Yang Jelas
3. Berkomentarlah Dengan Sopan
4. Tidak Menyisipkan Link Aktif (Live Link)
5. Tidak Berkomentar Promosi
6. Tidak Berkomentar Spam

Apabila melanggar mohon maaf komentar pasti saya hapus :)