Thư viện

Trải nghiệm

Thứ Ba, tháng 6 18, 2013

Tạo Thread comment nhiều cấp Ves 4 cho Blogspot

Chia sẻ:
Bạn luôn muốn có một mẫu Thread comment có thể phân nhiều cấp để blog của bạn chuyên nghiệp. Tiếp theo ves 3 hôm nay namkna sẽ giới thiệu cho các bạn thêm style 4 mới được tùy biến giúp mẫu commnet của bạn cố thể phân nhiều cấp. Về cơ bạn style này giống với style 2 và 3 mà mình đã giới thiệu trước đây. Các bạn có thể xem ảnh minh họa bên dưới (đẹp phải không).
Tạo Thread comment nhiều cấp Ves 4 cho Blogspot

☼ Tính năng mới của Thread comment ves 4:

Phiên bản này được namkna tùy biến từ mẫu VinaLuv của Tiến Nguyên nhưng đã được mình tùy chỉnh giao diện cho khác đi nhìn đẹp và bắt mắt hơn. Vơi các tính năng mới như:
» Thêm phần viền và nền cho phần nội quy của khung comment.
» Dùng bộ Ecomotion mới.
» Sử dụng thư viện Jquery do vậy load mượt hơn.
» Thêm scrip chèn ảnh, video, nhạc mà không cần sử dụng cá thẻ [img] hay [youtobe] hoặc [nct] mà chỉ cần dán trực tiếp link ảnh, link video từ youtube, link nhạc từ nhacucatui.
» Thêm scipt tạo khung cho code bạn chỉ càn dán đoạn code muốn đóng khung vào thẻ [pre]ư và [/pre]
» Giao diện đẹp, thích hợp với mọi blog tiếng việt và tiếng anh.
»Tích hợp phân trang cho bài viết có trên 200 comment.

☼ Cách Chèn Thread comment nhiều cấp vào Blogspot Ver 3:

1- Đăng nhập vào Blog
2- Vào Mẫu (Template) => Chỉnh sửa HTML => Mở rộng tiện ích mẫu
3. Tìm đoạn code:
<b:include data='post' name='threaded_comments'/>
- Thay thế bằng đoạn code sau:
<b:include data='post' name='comments'/>
4. Thay thế toàn bộ đoạn code ở giữa <b:includable id='comments' var='post'></b:includable> thành
<div class='comments' id='comments'>
 
        <a name='comments'/>
        <b:if cond='data:post.allowComments'>
        
          
          
         <b:if cond='data:post.numComments != 0'>
          <h4>
           <b:if cond='data:post.numComments == 1'>
            1 <data:commentLabel/>:
           <b:else/>
            <data:post.numComments/> <data:commentLabelPlural/>
           </b:if>
          </h4>
         </b:if>
                
         <b:if cond='data:post.commentPagingRequired'>
          <span class='paging-control-container'>
           <a expr:class='data:post.oldLinkClass' expr:href='data:post.oldestLinkUrl'><data:post.oldestLinkText/></a>
           &#160;
           <a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'><data:post.olderLinkText/></a>
           &#160;
           <data:post.commentRangeText/>
           &#160;
           <a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'><data:post.newerLinkText/></a>
           &#160;
           <a expr:class='data:post.newLinkClass' expr:href='data:post.newestLinkUrl'><data:post.newestLinkText/></a>
          </span>
         </b:if>
                        
         <div class='clear'/>
         <div id='comment_block'>

<div id='comment-holder'>
          <b:loop values='data:post.comments' var='comment'>
           <div class='comment_wrap' expr:auclass='data:comment.adminClass' expr:id='data:comment.anchorName' level='0'>
<div class='cm_head'>
              <div class='comment_avatar'>
               <data:comment.authorAvatarImage/>
              </div>
              <div class='comment_reply'>
               <a expr:href='&quot;#r_&quot;+data:comment.anchorName' expr:id='&quot;r&quot;+data:comment.anchorName' onclick='javascript:Display_Reply_Form(this)'>Reply</a>
           </div>

</div>
            <a expr:name='data:comment.anchorName'/>
            <b:if cond='data:post.adminClass == data:comment.adminClass'>
             &lt;div class=&#39;comment_inner comment_admin&#39;&gt;
            <b:else/>
             &lt;div class=&#39;comment_inner&#39;&gt;
            </b:if>
             <div class='comment_header'>
              <div class='comment_name'>
               <b:if cond='data:comment.authorUrl'>
                <a expr:href='data:comment.authorUrl' rel='nofollow' target='_blank'><data:comment.author/></a>
               <b:else/>
                <data:comment.author/>
               </b:if>        
              </div>             
              <div class='comment_service'>
               <span class='comment_date'><data:comment.timestamp/></span>
               <b:include data='comment' name='commentDeleteIcon'/> 
              </div>
              <div class='clear'/>
             </div> 
      
               <div class='para visitor-comment' itemprop='text'><data:comment.body/></div>
              
            &lt;/div&gt;
            <div class='clear'/>
            <div class='comment_child'/>
            <a expr:name='&quot;r_&quot;+data:comment.anchorName'/>
             <div class='comment_reply_form' expr:id='&quot;r_f_&quot;+data:comment.anchorName'>
             </div>

             </div>
  </b:loop>  </div>             
         </div>      
         <div class='clear'/>
         <b:if cond='data:post.commentPagingRequired'>
          <span class='paging-control-container'>
           <a expr:class='data:post.oldLinkClass' expr:href='data:post.oldestLinkUrl'><data:post.oldestLinkText/></a>
           &#160;
           <a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'><data:post.olderLinkText/></a>
           &#160;
           <data:post.commentRangeText/>
           &#160;
           <a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'><data:post.newerLinkText/></a>
           &#160;
           <a expr:class='data:post.newLinkClass' expr:href='data:post.newestLinkUrl'><data:post.newestLinkText/></a>
          </span>
         </b:if>
         <div class='clear'/>
         <div class='comment_form'>          
          
          <b:if cond='data:post.embedCommentForm'>
           <b:if cond='data:post.allowNewComments'>
            <div class='comment_emo_list'/>
            <b:include data='post' name='threaded-comment-form'/>
           <b:else/>
            <data:post.noNewCommentsText/>
           </b:if>
          <b:else/>
           <b:if cond='data:post.allowComments'>
            <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
           </b:if>
          </b:if>
         </div>
        </b:if>
       </div>
       
       <!--b:include data='post' name='threaded_comment_js'/-->
       <script type='text/javascript'>
      //<![CDATA[
       if (typeof(jQuery) == 'undefined') {
//output the script (load it from google api)
 document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></scr" + "ipt>");
}
      //]]>
       </script>

       <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
       <script type='text/javascript'>
         
         <b:if cond='data:post.numComments != 0'>
         var Items = <data:post.commentJso/>;
         var Msgs = <data:post.commentMsgs/>;
         var Config = <data:post.commentConfig/>;
        <b:else/>
         var Items = {};
         var Msgs = {};
         var Config = {&#39;maxThreadDepth&#39;:&#39;0&#39;};
        </b:if>
      //<![CDATA[
       /*
       ***************************************************************
       Project name: VinaLuv - multi-threaded comment design
       Author name: Tien Nguyen Van
       Site name: http://www.bloggeritems.com
       Lisence: Creative Commons
       Version 1.2
       ***************************************************************
       */
     //Global setting
        Config.maxThreadDepth = 5//How threaded level that you want
        Display_Emo = true//Display emoticon or not? set "false" to no display
        Replace_Youtube_Link = true //Auto replace youtube link to iframe embedded, choose "false" to disable
        Replace_Image_Link = true //Auto replace an image link  choose "false" to disable.
        Replace_Image_Ext = ['JPG', 'GIF', 'PNG', 'BMP']//(support: jpg, gif, png, bmp),only effect when Replace_Image_Link=true
        
       //Config emoticons declare
        Emo_List = [
       
        ];
        
          //Don't modify this , we use this to get feed source
var Cur_Cform_Hdr = '.comment_form';
var Cur_Cform_Url = $('#comment-editor').attr('src');

function trim(str) {
    var whitespace = ' \n\r\t\f\x5b\x5d\x7c\x7d\x3c\x3e\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
    for (var i = 0; i < str.length; i++) {
        if (whitespace.indexOf(str.charAt(i)) != -1) {
            str = str.substring(0, i);
            break
        }
    }
    return str
}
$('#comment_block .comment_body p').html(function (index, oldhtml) {
    if (Replace_Youtube_Link) {
        var search_key = 'http://www.youtube.com/watch?v=';
        var check_index = oldhtml.indexOf(search_key);
        while (check_index != -1) {
            ht = oldhtml.substring(check_index);
            yt_link = trim(ht);
            var yt_code_index = yt_link.indexOf('&');
            var yt_code = '';
            if (yt_code_index == -1) {
                yt_code = yt_link.substring(search_key.length)
            } else {
                yt_code = yt_link.substring(search_key.length, yt_code_index)
            }
            var yt_video = '<iframe class="comment_youtube" src="http://www.youtube.com/embed/' + yt_code + '?autohide=1" frameborder="0" allowfullscreen></iframe>';
            oldhtml = oldhtml.substring(0, check_index) + yt_video + oldhtml.substring(check_index + yt_link.length);
            check_index = oldhtml.indexOf(search_key);
            if (check_index == -1) {
                search_key = 'https://www.youtube.com/watch?v=';
                check_index = oldhtml.indexOf(search_key)
            }
        }
    }
    if (Replace_Image_Link) {
        var save_html = '';
        var temp_html = oldhtml;
        for (var i = 0; i < Replace_Image_Ext.length; i++) {
            var search_key = '.' + Replace_Image_Ext[i];
            var upper_html = temp_html.toUpperCase();
            var check_index = upper_html.indexOf(search_key);
            while (check_index != -1) {
                img_src = temp_html.substring(0, check_index + search_key.length);
                upper_html = img_src.toUpperCase();
                var http_search = 'HTTP://';
                var find_http = upper_html.indexOf(http_search);
                var save_http = '';
                while (find_http != -1) {
                    save_http = http_search.toLowerCase();
                    img_src = img_src.substring(find_http + http_search.length);
                    upper_html = img_src.toUpperCase();
                    find_http = upper_html.indexOf(http_search)
                }
                http_search = 'HTTPS://';
                upper_html = img_src.toUpperCase();
                find_http = upper_html.indexOf(http_search);
                while (find_http != -1) {
                    save_http = http_search.toLowerCase();
                    img_src = img_src.substring(find_http + http_search.length);
                    upper_html = img_src.toUpperCase();
                    find_http = upper_html.indexOf(http_search)
                }
                if (save_http == '' || img_src.length < 6) {
                    break
                }
                img_src = save_http + img_src;
                save_html += temp_html.substring(0, check_index + search_key.length - img_src.length) + '<img src="' + img_src + '" class="comment_img"/>';
                temp_html = temp_html.substring(check_index + search_key.length);
                upper_html = temp_html.toUpperCase();
                check_index = upper_html.indexOf(search_key)
            }
        }
        oldhtml = save_html + temp_html
    }
    if (Display_Emo) {
        var length = Emo_List.length;
        if (length % 2 == 1) {
            length--
        }
        for (var i = 0; i < length; i += 2) {
            var img_html = '<img src="' + Emo_List[i + 1] + '" class="comment_emo"/>';
            check_index = oldhtml.indexOf(Emo_List[i]);
            while (check_index != -1) {
                oldhtml = oldhtml.substring(0, check_index) + img_html + oldhtml.substring(check_index + Emo_List[i].length);
                check_index = oldhtml.indexOf(Emo_List[i])
            }
        }
    }
    if (Replace_Force_Tag) {
        var length = Force_Tag.length;
        if (length % 2 == 1) {
            length--
        }
        for (var i = 0; i < length; i += 2) {
            while (1) {
                var temp_html = oldhtml.toLowerCase();
                check_index = temp_html.indexOf(Force_Tag[i]);
                if (check_index != -1) {
                    oldhtml = oldhtml.substring(0, check_index) + Force_Tag[i + 1] + oldhtml.substring(check_index + Force_Tag[i].length)
                } else {
                    break
                }
            }
        }
    }
    return oldhtml
});
$('.comment_emo_list').html(function (index, oldhtml) {
    if (Display_Emo) {
        var length = Emo_List.length;
        if (length % 2 == 1) {
            length--
        }
        var newhtml = '';
        for (var i = 0; i < length; i += 2) {
            var img_code = '<span>' + Emo_List[i] + '</span>';
            var img_html = '<img src="' + Emo_List[i + 1] + '" class="comment_emo"/>';
            newhtml += '<div class="item">' + img_html + img_code + '</div>'
        }
        return newhtml
    }
});
$('.comment_wrap .comment_body p').html(function (i, h) {
    temp = h.toLowerCase();
    index = temp.indexOf('@<a href="#c');
    if (index != -1) {
        index_tail = temp.indexOf('</a>', index);
        if (index_tail != -1) {
            h = h.substring(0, index) + h.substring(index_tail + 4)
        }
    }
    return h
});

function Valid_Par_Id(par_id) {
    r = par_id.indexOf('c');
    if (r != -1) par_id = par_id.substring(r + 1);
    return par_id
}function Cform_Ins_ParID(par_id) {
    par_id = '&parentID=' + par_id + '#%7B';
    n_cform_url = Cur_Cform_Url.replace(/#%7B/, par_id);
    return n_cform_url
}function Reset_Comment_Form() {
    html = $(Cur_Cform_Hdr).html();
    $(Cur_Cform_Hdr).html('');
    Cur_Cform_Hdr = '.comment_form';
    $(Cur_Cform_Hdr).html(html);
    $('#comment-editor').attr('src', Cur_Cform_Url)
}function Display_Reply_Form(e) {
    par_id = $(e).attr('id');
    par_id = Valid_Par_Id(par_id);
    html = $(Cur_Cform_Hdr).html();
    if (Cur_Cform_Hdr == '.comment_form') {
        reset_html = '<a href="#origin_cform" onclick="Reset_Comment_Form()">' + Msgs.addComment + '</a><a name="origin_cform"/>';
        $(Cur_Cform_Hdr).html(reset_html)
    } else {
        $(Cur_Cform_Hdr).html('')
    }
    Cur_Cform_Hdr = '#r_f_c' + par_id;
    $(Cur_Cform_Hdr).html(html);
    $('#comment-editor').attr('src', Cform_Ins_ParID(par_id))
}
cur_url = window.location.href;
search_formid = '#comment-form_';
search_index = cur_url.indexOf(search_formid);
if (search_index != -1) {
    ret_id = cur_url.substring(search_index + search_formid.length);
    Display_Reply_Form('#rc' + ret_id)
}
for (var i = 0; i < Items.length; i++) {
    if ('parentId' in Items[i]) {
        var par_id = Items[i].parentId;
        var par_level = parseInt($('#c' + par_id + ':first').attr('level'));
        $('#c' + par_id + ' .comment_child:first').html(function (index, oldhtml) {
            var child_id = Items[i].id;
            if (par_level >= Config.maxThreadDepth) {
                $('#c' + child_id + ':first .comment_reply').remove()
            }
            var child_html = $('#c' + child_id + ':first').html();
            child_html = '<div class="comment_wrap" id="c' + child_id + '" level="' + (par_level + 1) + '">' + child_html + '</div>';
            $('#c' + child_id).remove();
            return (oldhtml + child_html)
        })
    }
}
        
        
      //]]>
         </script>
» Tùy chỉnh:

  • Config.maxThreadDepth = 5; là số cấp comment sẽ hiển thị. mặc định mình để lad 5. bạn có thể thay thành số khác. Tuy nhiên không nên phân quá nhiều cấp nếu độ rộng blog của bạn khiêm tốn.
  • Display_Emo = true; Cài đặt hiện thị mặt cười emoticons. Nếu không muốn hiển thị hãy thay true thành false.
  • Replace_Youtube_Link = true; Cài đặt tự động chuyển link video từ trang youtobe thành trình phát video trên comment. Nếu không muốn hiển thị hãy thay true thành false.
  • Replace_Image_Link = true;Cài đặt tự động chuyển link hình ảnh từ thành hình ảnh trên comment. Nếu không muốn hiển thị hãy thay true thành false.
5. Thêm đoạn code bên dưới vào trên thẻ ]]></b:skin> :
#comments h4{text-indent:-999em;height:3px;background:#0186CB;margin-top:26px}
.unneeded-paging-control{display:none}
.comment_child .comment_wrap{background:url(http://3.bp.blogspot.com/-Hf9K_9vHOjY/Ug4IL2Hn51I/AAAAAAAALtU/U1kJ2CUQGv8/s1600/reply_bg-thread-commet-namkna.png) no-repeat;padding:0 0 0 20px;margin-left:10px}
.comment_inner{margin:10px 0 0 0;padding:1.26em;border:1px solid #3c3c3c;background-color:#333;-webkit-box-shadow:0 1px 2px black;-moz-box-shadow:0 1px 2px black;box-shadow:0 1px 2px black;overflow:hidden;position:relative;-webkit-transition:all 1s ease-out;-moz-transition:all 1s ease-out;-ms-transition:all 1s ease-out;-o-transition:all 1s ease-out;transition:all 1s ease-out}
.comment_header{border:1px solid #555;background-color:#444;padding:.5em .8em}
.comment_name{font-weight:bold;font-style:normal;float:left}
.comment_name a{color:#fff;text-decoration:none;text-shadow:0 0 1px #DDD}
.comment_name a:hover{color:#F90}
.comment_service{font-size:84%;font-style:italic;line-height:1.8;color:#888;float:right}
.comment_reply a{color:#fff!important;}
.comment_reply{display:block;width:auto;margin:0 0 1px 3px;padding:2px 7px 3px;text-transform:none;color:#fff!important;background-color:#527915;background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.2));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.2));background-image:-ms-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.2));background-image:-o-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.2));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.2));font:inherit;font-size:80%;line-height:normal;-webkit-box-shadow:0 2px 2px black;-moz-box-shadow:0 2px 2px black;box-shadow:0 2px 2px black;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;-webkit-transition:all .16s ease-in-out;-moz-transition:all .16s ease-in-out;-ms-transition:all .16s ease-in-out;-o-transition:all .16s ease-in-out;transition:all .16s ease-in-out}
.comment_reply:hover{color:white!important;margin:0 0 1px -3px!important;padding:2px 10px 3px 7px!important;outline:none!important;text-decoration:none!important}
.comment_reply:active{position:relative;top:1px}
.comment_body p{font-size:12px;margin:10px 15px;color:#666;word-wrap:break-word}
.comment_avatar img{border-width:1px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-background-clip:padding-box}
.comment_avatar .avatar-image-container{margin:0 0 3px;border:1px solid #3c3c3c;padding:4px;width:45px;height:45px;max-width:100%;max-height:100%;float:none;-webkit-box-shadow:0 1px 2px black;-moz-box-shadow:0 1px 2px black;box-shadow:0 1px 2px black;background-color:#666;-webkit-background-clip:content-box;-moz-background-clip:content-box;background-clip:content-box;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-ms-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out}
.comment-form{max-width:100%!important}
#comment-editor{width:101%!important}
.cm_wrap #comment-form{margin:4px 0 0;border:1px solid #3c3c3c;-webkit-box-shadow:0 1px 2px black;-moz-box-shadow:0 1px 2px black;box-shadow:0 1px 2px black}
.comment_form a{text-decoration:none;font-weight:bold;font-size:12px}
.comment_form a:hover{text-decoration:none}
.comment_reply_form{padding:0 0 0 20px}
.comment_reply_form .comment-form{margin:4px 0 0;padding:2%;border:1px solid #3c3c3c;-webkit-box-shadow:0 1px 2px black;-moz-box-shadow:0 1px 2px black;box-shadow:0 1px 2px black}
.comment_emo{max-width:1.5em;max-height:1.5em;vertical-align:middle;margin:-0.3em 0 0 0}
.comment_emo_list .item{float:left;padding:10px 10px 0 10px;text-align:center}
.comment_emo_list span{display:block;font-weight:bold;font-size:11px;letter-spacing:1px}
.comment_youtube{max-width:100%!important;width:400px;height:225px;display:block;margin:auto}
.comment_img{max-width:100%!important}
.comments .avatar-image-container img{width:45px!important;height:45px!important;max-width:45px!important}
.deleted-comment{padding:10px;display:block;color:#CCC}
.cm_head{width:58px;float:left}
.para{border:1px solid #555;background-color:#444;padding:.5em .8em;margin-top:3px}
.comment_admin{border:3px solid transparent;border-color:transparent #900 #900 transparent}
.fbcm{width:100%;overflow-x:hidden;max-height:500px}
.emo{height:25px}
#comment-holder pre,#comment-holder i[rel=&quot;pre&quot;]{display:block;font:normal 12px Monaco,&quot;Courier New&quot;,Courier,monospace !important;padding:0.5em 0.5em 0.5em 1em;background-color:#002b36;border-left:4px solid #268bd2;position:relative;overflow:auto;white-space:pre;word-wrap:normal !important}
#comment-holder blockquote,#comment-holder b[rel=&quot;quote&quot;]{display:block;font-weight:normal;position:relative;background-color:#5D73B5;color:white;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;text-shadow:0 1px 0 rgba(0,0,0,0.2);margin:.75em 0;padding:15px 20px}
#comments blockquote:before,#comments b[rel=&quot;quote&quot;]:before{content:&quot;&quot;;width:0;height:0;position:absolute;bottom:100%;right:15px;border-color:transparent transparent #5D73B5;border-style:solid;border-width:7px}
.comments .note,em[rel=&quot;note&quot;]{display:block;padding:5px 10px;border:1px solid black;background-color:#222;background-image:-webkit-linear-gradient(#333,#222);background-image:-moz-linear-gradient(#333,#222);background-image:-ms-linear-gradient(#333,#222);background-image:-o-linear-gradient(#333,#222);background-image:linear-gradient(#333,#222);-webkit-box-shadow:0 0 0 1px #555;-moz-box-shadow:0 0 0 1px #555;box-shadow:0 0 0 1px #555;color:#ccc;font:normal normal 11px/normal Tahoma,Verdana,Arial,Sans-Serif;text-shadow:0 1px 0 black}
.comments a.allow,i[rel=&quot;anchor&quot;]{font-size:97%;color:#5687B8}
Chúc thành công!

35 nhận xét:

  1. Mình vẫn bị lổi như vậy bạn à, nhờ bạn khắc phục giùm!
    http://www.goctienganh.net/2013/10/verbs-followed-by-ing-or-infinitive.html

    Trả lờiXóa
    Trả lời
    1. Thấy lu bu quá nên tạm thời mình đóng lại cái comment của Blogger, có gì sẽ gửi file xml nhờ bạn check giùm, thanks!

      Xóa
    2. Oke bạn gửi vào tavannam01@gmail.com mình thêm cho cũng được :)

      Xóa
    3. Đã gửi cho bạn, nhờ bạn chỉnh sửa giùm mình. Không hiểu sao giờ cái khung comment đâu mất tiêu luôn mặc dù mình đã cài đặt là Embedded cho comment.

      Xóa
    4. Oke lát check mail mình sẽ trả lời bạn nha :)

      Xóa
    5. Mình vẫn chưa nhận được mail bạn à!

      Xóa
    6. Hiện tại ngày hôm nay mình vẫn chưa có thời gian kiểm tra mail bạn ak. Có thể mai mình sẽ trả lời bạn nha :)

      Xóa
    7. Bạn hãy gửi rỗ yêu cầu trong mail nha vì mail mình rất nhiều thư mình không thể nhớ hết từng yêu cầu bạn ak :)

      Xóa
  2. em làm dk cái này rồi @@ có phân cấp nhưng mà lại mấy cái biểu tượng emotions thì cmt vào ko dk @@ nó chỉ hiện cái mã chứ ko hiện được cái emotion :(( ,mong anh giúp em với ạ :)

    Trả lờiXóa
    Trả lời
    1. Em chú ý đoạn kích hoạt này Display_Emo = nha,. Anh không có địa chỉ blog em đã áp dụng thủ thuật này nên không thể nói chi tiết hơn. Em có thể để lại ỦL blog của em ở đây nha em.

      Xóa
    2. dạ đây anh :D : http://congdongl3.blogspot.com/

      Xóa
  3. Mình đã làm như bạn hướng dẫn nhưng mà cái khi click vào phần đăng nhận xét thì toàn tự nhảy sang 1 trang nhận xét mới . không biết là bị lỗi ở đâu nữa bạn giúp mình được chứ

    Trả lờiXóa
    Trả lời
    1. 1. Bạn phải áp dụng thì mình mới hỗ trợ được.

      2. Bạn nên tắt phần nhập mã trước khi nhận xét.

      3. Và để khuyến khích người đọc comment thì không nên để phên duyệt nhận xét na bạn.

      Xóa
    2. cảm ơn bạn nhé bạn hướng dẫn mình cách tắt phan duyet comment dc chứ

      Xóa
    3. 1. Bạn đăng nhập vào blog
      2- chọn CÀI ĐẶT
      3. chọn BÀI ĐĂNG VÀ NHẬN XÉT => Tại phần HIỂN THỊ XÁC MINH TỪ bạn chọn KHÔNG
      4- Tại phần KIỂM DUYỆT NHẬN XÉT => Bạn chọn KHÔNG BAO GIỜ .

      5- Lưu lại .

      Xóa
  4. Trả lời
    1. hãy áp dụng nó để được trợ giúp hoặc là gửi tem vào tavannam01@gmail.com để mình chỉnh sửa luôn cho nha.

      Xóa
    2. chỉnh sửa giúp mình với , mình không làm được

      Xóa
  5. Muốn đổi màu chữ cmt thì đổi thế nào vậy anh ? Nó màu đen không nhìn thấy gì hết.

    => Xem.

    Trả lờiXóa
    Trả lời
    1. Mã màu ở đoạn này:

      .comment_service{font-size:84%;font-style:italic;line-height:1.8;color:#888;float:right}

      có thể sửa color:#888; thành: color:#fff;

      Xóa
    2. Cũng vậy à a ơi, color:#888 là màu của Ngày Tháng Năm mà ?

      Xem

      Xóa
    3. Nhận xét này đã bị tác giả xóa.

      Xóa
  6. anh ơi, em đã áp dụng xong. khi đưa link ảnh vào thì vẫn là link ảnh, cũng chẳng thấy emo đâu.
    có cần phải xóa bộ emo mà em thêm từ trước và bỏ tính năng tự chuyền lịnk ảnh thành ảnh mà em đã them vào từ trước ko?

    Trả lờiXóa
  7. à mà anh kiểm tra lại hệ thống cmt giúp em. khanh98.blogspot.com

    Trả lờiXóa
    Trả lời
    1. E gửi mẫu vào mail tavannam01@gmail.com để anh kiểm tra fix lỗi cho nha.

      Xóa
    2. em gửi rồi, quockhanh.abc@gmail.com nhé!!!

      Xóa
    3. Oke để lát a check mail :)

      Xóa
  8. Anh cho em hỏi là đoạn mã này nó có tác dụng gì với ạ. <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>

    Trả lờiXóa
    Trả lời
    1. Thẻ này chính là dòng chữ THÊM NHẬN XÉT và nút Trả lời cuối của khung comment đó.

      Thuộc tính async để đồng bộ một số thuộc tính không đồng bộ (tương thích với trang), giúp cho những phần đó không bị chặn lại trong quá trình tải trang.

      Khi xóa đoạn đó đi nút trả lời và nút thêm nhận xét mới sẽ không hoạt động hay nói cách khác tác dụng phân cấp không ổn định,lúc được lúc không.

      Xóa
  9. Casino889 là website cung cấp các trò chơi cá độ bóng đá và thể thao trong ibet888 với tỷ lệ ăn cao hơn bên ngoài rất nhiều và có nhiều chương trình khuyến mại.

    Trả lờiXóa
  10. trc đây e có cài emotion rồi.....nhưng h nó k hiện nữa...a giúp e với...chả lẽ lại dùng emotion trong code cua a

    Trả lờiXóa
  11. trc đây e có cài emotion rồi.....nhưng h nó k hiện nữa...a giúp e với...chả lẽ lại dùng emotion trong code cua a

    Trả lờiXóa
  12. ibet888 – Casino889 là website cung cấp các trò chơi ca cuoc bong da và thể thao với tỷ lệ ăn cao hơn bên ngoài rất nhiều và có nhiều chương trình khuyến mại.

    Trả lờiXóa
  13. Casino889 là Nhà ca do bong da uy tín nhất Việt Nam Tặng ngay 8.889.000 cho thành viên mới khi tham gia.Để biết thêm chi tiết mời truy cập website:
    Link truy câp: ca do bong da | cá độ bóng đá

    Trả lờiXóa
  14. Casino889 là Nhà ca do bong da uy tín nhất Việt Nam Tặng ngay 8.889.000 cho thành viên mới khi tham gia.Để biết thêm chi tiết mời truy cập website:
    Link truy câp: ca do bong da | cá độ bóng đá

    Trả lờiXóa