Halaman ini akan tertutup otomatis setelah meng-klik tombol diatas
Terimakasih!

Sunday, March 2, 2014
Sebelum saya share tentang Cara Mengatasi tombol reply atau Balas komentar Yang tidak berfungsi silahkan bagi yang belum ada fasilitas reply / balas komentar untuk membaca coretan Cara membuat fitur reply pada blog . Jika anda sudah membuat fitur reply tetapi belum berfungsi berikut caranya:

  • 1. Masuk ke Dasbor  Lalu Rancangan dan Edit HTML
  • 2. Menjaga kegagalan, backup dulu template anda dengan 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'/>

  <script type='text/javascript'>
    (function() {
      var items = <data:post.commentJso/>;
      var msgs = <data:post.commentMsgs/>;
      var postId = &#39;<data:post.id/>&#39;;
      var feed = &#39;<data:post.commentFeed/>&#39;;
      var authorName = &#39;<data:post.author/>&#39;;
      var authorUrl = &#39;<data:post.authorUrl/>&#39;;
      var blogId = &#39;<data:top.id/>&#39;;
      var baseUri = &#39;<data:post.commentBase/>&#39;;

// <![CDATA[
      feed += '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
      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) {
                console.log(entry.gd$extendedProperty[k].name + ' - ' + entry.gd$extendedProperty[k].value);
                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 = feed;
          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 == authorName
              && comment.author.profileUrl == authorUrl;
          return matches ? 'true' : '';
        } else if ('deletelink' == key) {
          return baseUri + '/delete-comment.g?blogID=' + 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 tok = 'comment-form_';
      var hash = window.location.hash || '';
      var startThread = hash.indexOf(tok) == 1 ? hash.substring(tok.length + 1) : undefined;

      // Configure commenting API:
      var configJso = {
        'maxDepth': 2
      };
      var provider = {
        'id': postId,
        'data': items,
        'loadNext': paginator,
        'hasMore': hasMore,
        'getMeta': getMeta,
        'onReply': onReply,
        'rendered': true,
        '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>




  • 5. Ganti smua kode di atas deng kode di bawah 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 Tempale dan lihat hasilnya..
Sobat blogger Sudah tidak asing lagi dengan treaded comment.. kali ini yang saya bahas mengenai reply / balas comment karena tidak semua template ada fasilitas ini. Jika tidak ada reply maka akan terlihat acak atau sedikit berantakan. Lihat screenshot di bawah ini:
Untuk membuat balas atau reply komentar ikuti langkah berikut:
1.Loggin ke account blogger sobat
2.pilih"Opsi lainya" - Template - Edit HTML -Lanjutkan(jangan lupa centang"Expand Template Widget"
3.Cari kode seperti ini <b:include data='post' name='comments'/>
Masing-masing template memiliki kode deklarator yang berbeda-beda,adakalanya memiliki lebih dari satu seperti blog saya.
4.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>

5. Setelah itu"Save template" dan lihat hasilnya...

Cara di atas untuk template blog secara umum.. Jika blog anda tidak bisa menggunakan cara di atas atau tidak ada tautan apapun atau tidak ada respon silahkan baca Cara Mengatasi tombol Reply atau Balas komentar Yang tidak berfungsi
Kemarin saya di buat bingung dengan idm fake serial number, saya coba dengan cara yang saya dengan masuk regedit tapi hasilnya nihil. Dan ketika saya lihat ternyata IDM sudah berhasil memblock banyak patch, sehingga yang menggunakan patch tersebut di IDMnya secara otomatis akan terblock. setelah cari di mbah google akhirnya ketemu cara yang ampuh. Silahkan anda pilih sendiri cara mana yang anda suka.
1. Menggunakan Patch Baru
Inilah cara yang saya gunakan untuk membuat IDM milik saya tidak terblock lagi. Alasan saya menggunakan patch karena lebih simpel dan tidak memakan banyak waktu. Silahkan cari patch Disini
2. Membersihkan Regedit
Cara ini saya dapatkan dari blog sahabat saya yaitu cara-baru-andie.blogspot.com. Baik, langsung saja kita bahas bagaimana cara memperbaiki IDM Fake Serial Number dengan cara ini :
Download dahulu IDM baru versi terserah. (cari digoogle)
Usahakan untuk tidak terhubung dengan internet dahulu setelah download IDM baru selesai
Hapus installan IDM anda ( Uninstall ) yang sudah ada di PC atau laptop
Masuk menu “Run”, atau anda bisa menggunakan cara “tekan tombol windows + R”
Ketikan “Regedit” pada kolom Lalu tekan “OK”
Cari “HKEY_LOCAL_MACHINE”  lalu pilih folder “Software”
Pilih “Internet download manager” Lalu delete Internet Download Manager tersebut. Hal ini dimaksudkan agar tidak ada lagi registry yang terdetek Fake Serial Number dalam system Computer.
Setelah itu Install kembali IDM baru yang sudah anda download di awal tadinya.

Masukkan serial number dan patchnya sesua dengan petunjuk yang tertera / seperti proses anda semua.
Ingat kembali, Jika mengintasll IDM tersebut, tetap jangan koneksikan dengan Internet
Sekedar info saja, jika anda ingin update IDM versi yang terbaru, jangan langsung download secara online tetapi update manual saja karena anda menggunakan patch dan serial nomor yang bajakan.
3. Mengedit File Host
Cara ini saya dapatkan dengan browsing di internet. Tanpa membuang waktu langsung saja menuju ke tutorialnya : 
Cari dan Buka file “host” yang terdapat di folder C:\WINDOWS\system32\drivers\etc jika sudah ketemu klik kanan host>> menu>> Open with pilih>> Notepad
Setelah terbuka tambahkan tulisan yang berwarna merah dibawah tulisan yang berwarna biru (berada tepat paling bawah sendiri). Agar mudah silahkan copy-paste saja.

127.0.0.1 local host: 
127.0.0.1 tonec.com 
127.0.0.1 www.tonec.com 
127.0.0.1 registeridm.com 
127.0.0.1 www.registeridm.com 
127.0.0.1 secure.registeridm.com 
127.0.0.1 secure.internetdownloadmanager.com 
127.0.0.1 mirror.internetdownloadmanager.com 
127.0.0.1 mirror2.internetdownloadmanager.com 
127.0.0.1 www.internetdownloadmanager.com  

Kemudian Save file host ini, kemudian ubah properti file ini menjadi Read Only dengan meng-klik kanan file host pilih>> properties>> kemudian beri tanda centang pada read only. Berikutnya jalankan IDM. (Jika file host tidak bisa di edit atau tidak bisa di utak-utik dengan alasan kamu tidak di beri izin untuk memodif tu file, coba matikan dulu anti virusnya. sebab kamu oleh program anti virus di kesan sebagai virus yang sedang mencoba mengakses file host di sistem 32,dan ingat dalam proses pengeditan ini matikan dulu connecting internet anda ). 
Jika muncul kotak pengisian data-data user dan serial number dari IDM, isilah dengan data-data anda (bisa anda isi sesuka anda) namun untuk serial number isi dengan ini (pilih salah satu):
3J5U-8U66N-D0B9M-54SLM
EC0Q6-QN7UH-5S3JB-YZMEK
GZLJY-X50S3-0S20D-NFRF9 

Selamat, IDM anda sudah tidak fake serial number lagi. 
4. Rename File IDMGrHlp.exe
Berikut cara Menghilangkan Pop-up Notifikasi "Fake Serial Number" IDM :
Keluar/Tutuplah Terlebih dahulu IDM, dan tutup juga IDM yang berada Tray Icon.
Lalu buka directory software IDM yang biasanya berada di (C:\Program Files\Internet Download Manager) dan cari File yang bernama "IDMGrHlp.exe" lalu rubah/ubahlan nama dan ekstensinya dengan klik kanan lalu rename.
Tekan "Enter" atau oke setelah selesai merename Filenya. Notifikasi Fake Serial Number Internet Download Manager yang biasanya menggangu Tidak akan muncul lagi.

Dan setelah anda merestart PC anda, pasti akan ada keluhan satu lagi yaitu akan muncul suatu peringatan baru dari IDM. Sebenarnya peringatan yang muncul itu tidak mempengaruhi kinerja IDM tapi disini akan tetap saya beritahukan bagaimana Cara Menhilangkan Notifikasi Reinstall IDM :
Hampir sama dengan cara diatas namun kali ini langsung loncat ke step-2 ,Buka directory software IDM yang biasanya berada di (C:\Program Files\Internet Download Manager) dan cari File yang bernama "idmBroker.exe" lalu rubah/ubahlan nama dan ekstensinya.
Selesai, silahkan gunakan IDM anda untuk mendownload tanpa batas (dibatasi kuota dan waktu) dan tanpa ada gangguan seperti Fake Serial Number atau ada Files yang Hilang.

Semua cara saya coba dan berhasil.. Selamat mencoba, semoga membantu..
Sumber: Klik disini

Pages

Search