Quantcast
Channel: Djangkaru Bumi
Viewing all articles
Browse latest Browse all 1371

Membuat Tombol Balas Atau Reply Komentar

$
0
0
Membuat Tombol Balas Atau Reply Komentar

Membuat Tombol Balas Atau Reply Komentar. Setiap model template pasti mempunyai kelebihan dan kekurangan. Salah satu kekurangan yang sering dikeluhkan adalah tidak adanya tombol balas atau reply di kolom komentar. Tidak adanya tombol balas atau reply, akan mempersulit sang Admin untuk memberikan balasan komentar. Ruang obrolan jadi terasa kurang hidup.

Tapi jangan kawatir, karena bisa diatasi dengan beberapa cara. Aku akan memberikan beberapa solusi, semoga bisa memecahkan keluhan tidak adanya tombol balas atau replya komentar blog tersebut.

Cara yang pertama adalah cara yang sangat mudah dan cepat ,tapi mempunyai resiko yaitu widget yang ada di blog1 atau  Posting Blog akan terhapus atau hilang. Misalnya widget artikel terkait, readmore otomatis dan hasil modif di label. Caranya adalah sebagai berikut :
  • Klik Desain.
  • Klik Template
  • Klik Edit HTML.
  • Klik Tombol Kembalikan Template Widget Ke Default, yang berada di pojok kanan atas.
Membuat Tombol Balas Atau Reply Komentar
  • Silahkan centang pada kolom Blog1.
Membuat Tombol Balas Atau Reply Komentar
  • Kemudian klik tombol Kembalikan Ke Widget Yang Dipilih.
  • Silahkan lihat hasilnya, semoga berhasil.

Cara yang kedua, cara ini sangat praktis dan tidak berisiko pada perubahan yang telah dilakukan di bagian blog posts. Pada umumnya berhasil tapi kadang juga  tombol balas atau reply tidak berfungsi. Caranya sebagai berikut :
  • Pada Klik Edit HTML.
  • Silahkan cari kode <b:include data='post' name='comments'/>. Cara cepat tekan tombol Ctrl+F pada keyboard dan paste kode tersebut pada kotak pencarian lalu tekan Enter pada keyboard.
  • Akan ditemukan kode tersebut lebih dari satu, dan ganti semua kode tersebut dengan kode dibawah ini :
<b:if cond='data:post.showThreadedComments'> <b:include data='post' name='threaded_comments'/> <b:else/> <b:include data='post' name='comments'/> </b:if>
  • Klik Simpan template.
  • Silahkan lihat hasilnya dan semoga berhasil.

Cara ketiga, setiap template mempunyai keunikan dalam penempatankan kode kodenya. Dan semoga cara ketiga ini mampu memecahkan solusinya jika cara yang kedua gagal. Caranya yaitu :
  • Pada Klik Edit HTML
  • Silahkan cari kode <b:includable id='threaded_comment_js' var='post'>
  • Klik pada deretan angka agar semua kode <b:includable id='threaded_comment_js' var='post'> menyatuatau terkumpul sehingga terbentuk kode seperti dibawah ini <b:includable id='threaded_comment_js' var='post'>...</b:includable>  liat gambar seperi dibawah ini:
  • Hapus kode tersebut dan  ganti dengan kode dengan dibawah ini.
Jangan Klik:
<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;
                } else if (entry.gd$extendedProperty[k].name == 'blogger.displayTime') {
                  comment.displayTime = 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>

  • Klik Simpan Template
  • Lihat hasilnya dan semoga berhasil.

Cara yang ketiga ini akan merubah tampilan header tanggal yang diawalnya disembunyikan. Untuk menyembunyikan kembali caranya sebagai berikut :
  • Klik Tata Letak
  • Klik Edit pada Blog Post yang berada di bawah kanan.
Membuat Tombol Balas Atau Reply Komentar
  • Hilangkan tanda centang dipenampilan tanggal posting pada opsi laman entri.
Membuat Tombol Balas Atau Reply Komentar
  • Terakhir klik Simpan

Gambar akan tampak rapi seperti dibawah ini, tanggal posting sudah tidak nampak lagi diatas judul artikel :

Membuat Tombol Balas Atau Reply Komentar

Cukup sekian artikel Membuat Tombol Balas Atau Reply Komentar.  Semoga bisa membantu memecahkan kendala pada template Sahabat yang tidak memiliki tombol balas atau reply. Sebelum melakukan uji coba tahapan diatas, silahkan  backup terlebih dahalu template Sahabat dengan cara copy-paste kode template tersebut di aplikasi Notepad. Agar saat menghadapi kegagalan bisa dikembalikan seperti semula. Dan aku sarankan silahkan uji coba pada template blog yang lainnya terlebih dahulu. Seorang blogger sejati pasti memiliki blog lebih dari satu, kan mumpung gratis betul tidak ?

Catatan :
Cara tiga , kemungkinan juga sama-sama gagalnya. pada intinya silahkan kreasi atau ganti sendiri kode kode dibawah :
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'>
yang berawalan <b:includable id=........>.....dan ditutup dengan > </b:includable>
Yang kode seperti dibawah ini :
<b:includable id='main' var='top'>...</b:includable>
<b:includable id='post' var='post'>...</b:includable> dan
<b:includable id='threaded_comment_js' var='post'>...</b:includable> 

Silahkan ganti dan coba satu persatu dengan kode bawaan blogpsot.

♥♥DjB♥♥


Viewing all articles
Browse latest Browse all 1371

Trending Articles