[TUTs] fb_Vote đánh giá bài viết và thông báo lên tường

  Bài viết hay nhất1
First topic message reminder :

fb_Vote đánh giá bài viết và thông báo lên tường


fb_Vote sẽ thay đổi giao diện nút #vote mặc định thành giao diện nút like của #facebook().

Chức năng


  1. Vote plus chuyển thành nút Thích, có thể gửi một lời khen lên tường người viết. (nếu họ cho phép)
  2. Vote minus chuyển thành nút Báo xấu, có thể gửi một báo cáo đến Ban quản trị diễn đàn.
  3. Các thông số hiển thị ngay bên cạnh nút bấm.
  4. Cả 2 nút đều có thể gửi thông điệp trực tiếp.
  5. Thông điệp không được gửi nếu người dùng không nhấn Gửi.
  6. Có một thông điệp mặc định nếu người dùng không nhập nội dung.


Demo

[TUTs] fb_Vote đánh giá bài viết và thông báo lên tường - Page 3 11-25-16
fb_Vote chưa nhấn

[TUTs] fb_Vote đánh giá bài viết và thông báo lên tường - Page 3 11-25-17
Sau khi nhấn có thể gửi tin


Hướng dẫn


Bước 1

Tắt kiểm duyệt và kích hoạt chức năng Vote, Report của diễn đàn.

ACP >> QLTT >> Forum >> Security
Unauthorize unofficial forms to post messages and private messages on the forum : Không

ACP >> Modules >> Points and reputation >> Points system
Activate points system :
Display average points per message :

ACP >> QLTT >> Reports >> Report Post Hack - Configuration
Report status : Members
Allows users to report their own posts. Self-Reports :
Allows your users to edit their own reports. Report edit by users :


Bước 2

ACP >> Display >> Pictures and Colors >> Colors >> CSS Stylesheet

Code:
/* fb_Vote - DEVs.forumvi.com */
.vote-Zzbaivong, .vote-Zzbaivong *,.vote-Zzbaivong *:before,.vote-Zzbaivong *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.vote-Zzbaivong{margin-left:13em} /* 13em là khoảng cách đến mép trái, sửa nó về 0 hoặc số khác nếu bị lệch */
.vote-Zzbaivong{float:left;height:26px;line-height:24px;position:relative;text-align:left;white-space:nowrap}
.vote-plus-post,.vote-minus-post{z-index:10;position:absolute;top:32px;left:0;display:none;width:250px;background:#FFF;border:1px solid #F2F2F2;box-shadow:4px 4px 7px 0 #999;padding:5px}
.vote-minus-post{left:120px}
.vote-note{height:20px;line-height:20px;font-size:11px;background:#ffffd3;border:1px solid #F7EB93;margin-bottom:2px;padding:0 5px}
.vote-mess{width:200px;resize:vertical;min-height:40px;height:40px}
.vote-Zzbaivong .vote-send{width:36px;margin-top:0!important;margin-left:2px;cursor:pointer;text-align:center;vertical-align:top;height:40px;background:#0085FF;border:1px #87CEEB;color:#FFF}
.vote-plus-post:before,.vote-minus-post:before{content:'';display:inline-block;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #E2E2E2;position:absolute;left:10px;width:10px;right:-10px;top:-10px}
.vote-plus-post:after,.vote-minus-post:after{content:'';display:inline-block;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fff;position:absolute;left:11px;right:-9px;width:9px;top:-9px}
.vote-plus{background:url(http://i57.servimg.com/u/f57/17/05/17/70/like10.png) no-repeat 5px 2px #deeaf7;height:24px;border:1px solid #C8D7EC;color:#5089BE!important;font-family:sans-serif;border-radius:2px;display:inline-block;padding:0 5px 0 25px}
.vote-plus:hover{border-color:#6A9AD6}
.vote-plus[href="javascript:;"]{color:#666!important;background-color:#DDD;cursor:no-drop;background-image:url(http://i57.servimg.com/u/f57/17/05/17/70/gpqbxh10.png);border-color:#CCC}
.vote-time{position:relative;border-radius:2px;display:inline-block;height:24px;line-height:22px;border:1px solid #D8D7D7;margin:auto 5px;padding:0 5px}
.vote-time:before{content:'';display:inline-block;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid #CCC;position:absolute;left:-6px;width:6px;top:5px}
.vote-time:after{content:'';display:inline-block;border-bottom:5px solid transparent;border-top:5px solid transparent;border-right:5px solid #fff;position:absolute;left:-5px;width:5px;top:6px}
.vote-minus{margin-left:20px;color:#666!important}
.vote-minus:hover{color:red!important}
.vote-minus[href="javascript:;"]{color:#C5C5C5!important;cursor:no-drop}

Bước 3

ACP >> Display >> QLTT >> Templates >> viewtopic_body

Tìm và xóa đoạn sau:
Code:
<!-- BEGIN switch_vote_active -->
...
<!-- END switch_vote_active -->
Tìm:
Code:
<div class="post-options profile_{postrow.displayed.PROFILE_POSITION}">
hoặc:
Code:
<div class="post-options">
Và thêm vào bên dưới nó code sau:
Code:
<div class="vote-Zzbaivong">
   <!-- BEGIN switch_vote_active -->
   <a class="vote-plus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}<!-- END switch_vote -->">
    Thích
    </a>
   <span class="vote-time plus-time">0</span>
   <a class="vote-minus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}<!-- END switch_vote -->">
    Báo xấu
    </a>
   <span class="vote-time minus-time">0</span>
   <div class="vote-plus-post vote-cmt">
      <p class="vote-note">Gửi một tin nhắn lên tường.</p>
      <textarea class="vote-mess"></textarea>
      <input class="vote-send" tyle="button" value="Gửi" />
   </div>
   <div class="vote-minus-post vote-cmt">
      <p class="vote-note">Gửi báo cáo lỗi về bài viết này.</p>
      <textarea class="vote-mess"></textarea>
      <input class="vote-send" tyle="button" value="Gửi" />
   </div>
   <input class="vote-tip" type="hidden" value="<!-- BEGIN switch_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_bar --><!-- BEGIN switch_no_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_no_bar -->" />
   <!-- END switch_vote_active -->
</div>
Thêm script dưới đây vào cuối temp viewtopic_body:
Code:
<script type="text/javascript">
 //<![CDATA[
 $(".vote-Zzbaivong").each(function() {
   var b = $(this);
   if (b.is(":empty")) b.html('<a class="vote-plus" href="">Thích</a><span class="vote-time plus-time">0</span><a class="vote-minus" href="">Báo xấu</a><span class="vote-time minus-time">0</span>');
   else {
      var a = b.find(".vote-tip").val(),
         c;
      /Message\sreputation\s:/.test(a) ? (c = a.split(/\W/), a = Math.round(parseInt(c[4], 10) / 100 * parseInt(c[7], 10)), c = parseInt(c[7], 10) - a) : a = c = 0;
      b.find(".plus-time").text(a);
      b.find(".minus-time").text(c)
   }
});
$(document).click(function(b) {
   $(".vote-cmt").fadeOut()
});
$(".vote-Zzbaivong").click(function(b) {
   b.stopPropagation()
});
$(".vote-plus, .vote-minus").one("click", function(b) {
   b.preventDefault();
   var a = $(this);
   b = a.attr("href");
   /us\&p_vote\=/.test(this.href) && (a.parent().children(".vote-plus, .vote-minus").attr("href", "javascript:;"), a.next(".vote-time").text(function() {
      return parseInt($(this).text(), 10) + 1
   }), a.parent().find(".vote-plus").css("background-image", "url(http://i57.servimg.com/u/f57/17/05/17/70/preloa10.gif)"), $.get(b, function() {
      a.parent().children(".vote-plus").removeAttr("style")
   }), a.siblings("." + a.attr("class") +
      "-post").fadeIn().children(".vote-mess").focus())
});
$(".vote-send").one("click", function() {
   var b = $(this),
      a = b.closest(".post"),
      c = a.find("a[href^='/report']").attr("href"),
      d = b.parent().children(".vote-mess").val(),
      f = b.parent().children(".vote-note");
   f.text("Đang xử lý...");
   if ("vote-plus-post vote-cmt" == b.parent().attr("class")) {
      var e = "http://" + location.host + location.pathname + "#" + c.replace(/.*p=(\d+).*/, "$1"),
         c = $.trim(a.find(".user a[href^='/u']:not(:has(img)):first").text()),
         a = a.find(".user a[href^='/u']:first").attr("href").replace(/.*\/u(\d+).*/, "$1"),
         e = "Mình thích bài viết của bạn tại [url=" +
         e + "]" + document.title + "[/url]";
      d.replace(/\s/g, "").length && (e = e + "[quote]" + d + "[/quote]");
      $.post("/privmsg", {
         subject: "Bài viết hay",
         message: e,
         username: c,
         u: a,
         mode: "post_profile",
         folder: "profile",
         post: "Send"
      }, function() {
         f.text("Tin nhắn đã được gửi");
         b.closest(".vote-cmt").delay(300).fadeOut()
      })
   } else 3 >= d.replace(/\s/g, "").length && (d = "Bài viết vi phạm nội quy diễn đàn."), $.post(c, {
      message: d,
      post: "Save"
   }, function() {
      f.text("Báo cáo đã được gửi");
      b.closest(".vote-cmt").delay(300).fadeOut()
   })
});
$(".vote-Zzbaivong > a[href='']").attr("href", "javascript:;");
 //]]>
</script>


Cách dùng khác


  1. Không viết lên tường: https://devs.forumvi.com/t15p45-code-fb_vote-danh-gia-bai-viet-va-thong-bao-len-tuong#2170
  2. Tự động viết lên tường: https://devs.forumvi.com/t15p60-code-fb_vote-danh-gia-bai-viet-va-thong-bao-len-tuong#2195


Tác giả

Zzbaivong (devs.forumvi.com)
The author of this message was banned from the forum - See the message
  Bài viết hay nhất52
Do cấu trúc viewtopic sửa quá nhiều, các class cần thiết đã bị xóa hoặc nằm sai vị trí.
The author of this message was banned from the forum - See the message
  Bài viết hay nhất54
Nếu còn lỗi thì gửi nick test để kiểm tra nhé!

Code:
<!-- BEGIN switch_user_logged_in -->
<div id="pun-visit" class="clearfix">
  <ul>
      <!-- BEGIN switch_plus_menu -->
      <li>
        <script type="text/javascript">//<![CDATA[
            var url_favourite = '{switch_user_logged_in.U_FAVOURITE_JS_PLUS_MENU}';
            var url_newposts = '{U_NEWPOSTS_JS_PLUS_MENU}';
            var url_egosearch = '{U_EGOSEARCH_JS_PLUS_MENU}';
            var url_unanswered = '{U_UNANSWERED_JS_PLUS_MENU}';
            var url_watchsearch = '{U_WATCHSEARCH_JS_PLUS_MENU}';
            var url_tellfriend = '{U_TELLFRIEND_JS_PLUS_MENU}';
            insert_plus_menu_new('f{FORUM_ID}&amp;t={TOPIC_ID}','{JS_SESSION_ID}', {JS_AUTH_FAVOURITES});
        //]]>
        </script>
      </li>
      <!-- END switch_plus_menu -->
     
      <li><a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a></li>
      <li><a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a></li>
      <!-- BEGIN watchtopic -->
      <li>{S_WATCH_TOPIC}</li>
      <!-- END watchtopic -->
  </ul>
  <p>{LOGGED_AS}. {LAST_VISIT_DATE}</p>
</div>
<!-- END switch_user_logged_in -->
<!-- BEGIN switch_user_logged_out -->
<div id="pun-visit">
  <p>{L_NOT_CONNECTED} {L_LOGIN_REGISTER}</p>
</div>
<!-- END switch_user_logged_out -->
 
<div class="pun-crumbs noprint">
  <p class="crumbs">
      <a href="{U_INDEX}">{L_INDEX}</a>{NAV_CAT_DESC} »
      <strong><a href="{TOPIC_URL}">{TOPIC_TITLE}</a></strong>
   
  </p>
</div>
 
<div class="main paged">
  <div class="paged-head clearfix">
      <!-- BEGIN topicpagination -->
      <p class="paging">{PAGINATION}</p>
      <!-- END topicpagination -->
      <p class="posting">
        <!-- BEGIN switch_user_authpost -->
        <a href="{U_POST_NEW_TOPIC}" rel="nofollow"><img src="{POST_IMG}" class="{POST_IMG_CLASS}" alt="{L_POST_NEW_TOPIC}" /></a> 
        <!-- END switch_user_authpost -->
 
        <!-- BEGIN switch_user_authreply -->
        <a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" class="i_reply" alt="{L_POST_REPLY_TOPIC}" /></a>
        <!-- END switch_user_authreply -->
      </p>
  </div>
  {POLL_DISPLAY}
  <div class="main-head clearfix">
      <p class="h2">
        <a href="{U_VIEW_OLDER_TOPIC}">{L_VIEW_PREVIOUS_TOPIC}</a> <a href="{U_VIEW_NEWER_TOPIC}">{L_VIEW_NEXT_TOPIC}</a> <a href="#bottom">{L_GOTO_DOWN}</a> 
        {L_MESSAGE} [{PAGE_NUMBER}]
      </p>
  </div>
 
  <div class="main-content topic">
      <!-- BEGIN postrow -->
        <!-- BEGIN displayed -->
<div class="post"{postrow.displayed.THANK_BGCOLOR}>
<table align="center" cellpadding="0" cellspacing="0" style="width: 100%; ">
  <tbody>
    <tr><td class="vifuser"><div class="petvif"></div><button class="xempet">TESTING...</button><div class="infovifus" style="width:100%;height:150px;">
       
      <fieldset><legend><span style=width:100;height:30;text-align:center;color:black;filter:glow(color=##56CDE0)><b>Tài sản</b></span></a> </strong></span></legend>
<div style="overflow: auto; max-height: 100px;">
<table cellspacing="1" cellpadding="0" border="0" onclick="if(this.getElementsByTagName('td')[1].style.display == 'none'){ this.getElementsByTagName('td')[1].style.display = '';this.getElementsByTagName('td')[2].style.display = 'none'; }else{ this.getElementsByTagName('td')[1].style.display = 'none';this.getElementsByTagName('td')[2].style.display = '';}" style="cursor: pointer;">
<tr><td><span class="genmed"></td></tr><tr><td class="smallfont" style="display: '';">Xem tài sản của <strong>{postrow.displayed.POSTER_NAME}</strong></span></a></strong></td>
<td style="display: none;"> 
{postrow.displayed.POSTER_RPG}</td></div></tr>
</div>
</table></div></fieldset> 
        <div class="user-ident dropRight"><div class="poster-avatar">{postrow.displayed.POSTER_AVATAR}</div>
        <div class="poster-info"><div>
          <span class="poster-name user">{postrow.displayed.POSTER_NAME}</span>
          <span class="poster-connect">{postrow.displayed.ONLINE_IMG}</span>
          <span class="poster-rank">{postrow.displayed.RANK_IMAGE}</span>
        </div>
        <div class="poster-field"> <!-- BEGIN profile_field --><p>
        {postrow.displayed.profile_field.LABEL}{postrow.displayed.profile_field.CONTENT}</p>
        <!-- END profile_field --></div>
        <div class="poster-link">
        <a target="_blank" href="/profile.forum?mode=viewprofile&u=[POSTER_NAME]&page_profil=messages">
          <img alt="Tường nhà" src="http://i48.servimg.com/u/f48/16/58/89/73/profil10.png" />Tường nhà
        </a>
          <a target="_blank" href="/spa/[POSTER_NAME]">
        <img alt="Xem bài viết" src="http://i48.servimg.com/u/f48/16/58/89/73/total_10.gif" />Bài viết
          </a>
        <a target="_blank" href="/profile?friend=[POSTER_NAME]&mode=editprofile&page_profil=friendsfoes">
          <img alt="Kết bạn" src="http://i48.servimg.com/u/f48/16/58/89/73/friend10.png" />Kết bạn
        </a>
          <a target="_blank" href="/profile?foe=[POSTER_NAME]&mode=editprofile&page_profil=friendsfoes">
        <img alt="Chặn người này" src="http://i57.servimg.com/u/f57/17/05/17/70/button10.png" />Ngăn cấm
          </a></div></div></div>
      </div></td>
    </tr>
  </tbody>
</table>
<table align="center" border="0" cellpadding="0" cellspacing="0" style="width: 100%; ">
  <tbody>
      <tr>
        <td>
            <a name="{postrow.displayed.U_POST_ID}"></a>
            <div class="postmain"{postrow.displayed.THANK_BGCOLOR}>
  </div>
                        <div id="p{postrow.displayed.U_POST_ID}" class="posthead"{postrow.displayed.THANK_BGCOLOR}>
            <h2>
              <strong>Bài viết: {postrow.displayed.COUNT_POSTS}</strong>
              {postrow.displayed.ICON} <a href="{postrow.displayed.POST_URL}">{postrow.displayed.POST_SUBJECT}</a> {postrow.displayed.POST_DATE_NEW}
            </h2>
        </div>
              <div class="postbody"{postrow.displayed.THANK_BGCOLOR}>
                  <div class="post-entry">
                    <div class="entry-content">
                       
                        <div>
                          <div>{postrow.displayed.MESSAGE}</div>
                          <!-- BEGIN switch_attachments -->
                          <dl class="attachbox">
                              <dt>{postrow.displayed.switch_attachments.L_ATTACHMENTS}</dt>
                              <dd>
                                <!-- BEGIN switch_post_attachments -->
                                <dl class="file">
                                    <dt>
                                      <img src="{postrow.displayed.switch_attachments.switch_post_attachments.U_IMG}" />
 
                                      <!-- BEGIN switch_dl_att -->
                                      <a class="postlink" href="{postrow.displayed.switch_attachments.switch_post_attachments.switch_dl_att.U_ATTACHMENT}">{postrow.displayed.switch_attachments.switch_post_attachments.switch_dl_att.ATTACHMENT}</a> {postrow.displayed.switch_attachments.switch_post_attachments.switch_dl_att.ATTACHMENT_DEL}
                                      <!-- END switch_dl_att -->
 
                                      <!-- BEGIN switch_no_dl_att -->
                                      {postrow.displayed.switch_attachments.switch_post_attachments.switch_no_dl_att.ATTACHMENT} {postrow.displayed.switch_attachments.switch_post_attachments.switch_no_dl_att.ATTACHMENT_DEL}
                                      <!-- END switch_no_dl_att -->
                                    </dt>
 
                                    <!-- BEGIN switch_no_comment -->
                                    <dd>
                                      <em>{postrow.displayed.switch_attachments.switch_post_attachments.switch_no_comment.ATTACHMENT_COMMENT}</em>
                                    </dd>
                                    <!-- END switch_no_comment -->
 
                                    <!-- BEGIN switch_no_dl_att -->
                                    <dd>
                                      <em><strong>{postrow.displayed.switch_attachments.switch_post_attachments.switch_no_dl_att.TEXT_NO_DL}</strong></em>
                                    </dd>
                                    <!-- END switch_no_dl_att -->
 
                                    <dd>({postrow.displayed.switch_attachments.switch_post_attachments.FILE_SIZE}) {postrow.displayed.switch_attachments.switch_post_attachments.NB_DL}</dd>
                                </dl>
                                <!-- END switch_post_attachments -->
                              </dd>
                          </dl>
                          <!-- END switch_attachments -->
                          <div class="clear"></div>
                        </div>
                        <p>
                          {postrow.displayed.EDITED_MESSAGE}
                        </p>
                    </div>
                  </div>
              </div>
 
              <!-- BEGIN switch_signature -->
              <div class="sig-content">
                  <hr>{postrow.displayed.SIGNATURE_NEW}</div>
              <!-- END switch_signature -->
 
                                <div class="postmain"{postrow.displayed.THANK_BGCOLOR}>
            <div class="postfoot">
                  <div class="user-contact">
                    {postrow.displayed.PROFILE_IMG} {postrow.displayed.PM_IMG} {postrow.displayed.EMAIL_IMG}<!-- BEGIN contact_field --> {postrow.displayed.contact_field.CONTENT}<!-- END contact_field -->
                  </div>
                  <div class="post-options">
                    <div class="vote-Zzbaivong">
  <!-- BEGIN switch_vote_active -->
  <a class="vote-plus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}<!-- END switch_vote -->">
      Thích
    </a>
  <span class="vote-time plus-time">0</span>
  <a class="vote-minus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}<!-- END switch_vote -->">
      Báo xấu
    </a>
  <span class="vote-time minus-time">0</span>
  <div class="vote-plus-post vote-cmt">
      <p class="vote-note">Gửi một tin nhắn lên tường.</p>
      <textarea class="vote-mess"></textarea>
      <input class="vote-send" tyle="button" value="Gửi" />
  </div>
  <div class="vote-minus-post vote-cmt">
      <p class="vote-note">Gửi báo cáo lỗi về bài viết này.</p>
      <textarea class="vote-mess"></textarea>
      <input class="vote-send" tyle="button" value="Gửi" />
  </div>
  <input class="vote-tip" type="hidden" value="<!-- BEGIN switch_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_bar --><!-- BEGIN switch_no_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_no_bar -->" />
  <!-- END switch_vote_active -->
</div>
                    {postrow.displayed.THANK_IMG} {postrow.displayed.MULTIQUOTE_IMG} {postrow.displayed.QUOTE_IMG} {postrow.displayed.EDIT_IMG} {postrow.displayed.DELETE_IMG} {postrow.displayed.IP_IMG} {postrow.displayed.REPORT_IMG}
                  </div>
                                  <div style="clear:both;"></div></div>
                                  </div>
                    </td>
      </tr>
  </tbody>
</table>
        <!-- BEGIN first_post_br -->
      </div>
      <hr id="first-post-br" />
      <div class="main-content topic">
        <!-- END first_post_br -->
  </div>
        <!-- END displayed -->
        <!-- BEGIN hidden -->
            <p class="p-hidden">{postrow.hidden.MESSAGE}</p>
        <!-- END hidden -->
      <!-- END postrow -->
  </div>
 
  <div class="main-foot clearfix">
      <p class="h2">
        <a href="{U_VIEW_OLDER_TOPIC}">{L_VIEW_PREVIOUS_TOPIC}</a> <a href="{U_VIEW_NEWER_TOPIC}">{L_VIEW_NEXT_TOPIC}</a> <a href="#top">{L_BACK_TO_TOP}</a> 
        {L_MESSAGE} [{PAGE_NUMBER}]
      </p>
      <p class="options">
        <input type="hidden" name="t" value="{TOPIC_ID}" />
 
        <!-- <input type="hidden" name="sid" value="{S_SID}" /> -->
        <input type="hidden" name="{SECURE_ID_NAME}" value="{SECURE_ID_VALUE}" />
 
        <!-- BEGIN viewtopic_bottom -->
        {S_TOPIC_ADMIN}
        <!-- END viewtopic_bottom -->
      </p>
  </div>
 
  <a name="bottomtitle"></a>
 
  <div class="paged-foot clearfix">
      <!-- BEGIN topicpagination -->
      <p class="paging">{PAGINATION}</p>
      <!-- END topicpagination -->
    <p class="posting">
        <!-- BEGIN switch_user_authpost -->
        <a href="{U_POST_NEW_TOPIC}" rel="nofollow"><img src="{POST_IMG}" class="{POST_IMG_CLASS}" alt="{L_POST_NEW_TOPIC}" /></a> 
        <!-- END switch_user_authpost -->
 
        <!-- BEGIN switch_user_authreply -->
        <a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" class="i_reply" alt="{L_POST_REPLY_TOPIC}" /></a>
        <!-- END switch_user_authreply -->
      </p>
  </div>
 
</div>
 
<div class="pun-crumbs">
  <p class="crumbs">
      <a href="{U_INDEX}">{L_INDEX}</a>{NAV_CAT_DESC} »
      <strong><a href="{TOPIC_URL}">{TOPIC_TITLE}</a></strong>
  </p>
</div>
 
<!-- BEGIN promot_trafic -->
 
<!-- END promot_trafic -->
 
<!-- BEGIN switch_forum_rules -->
<div class="main" id="forum_rules">
  <div class="main-head clearfix">
      <p class="h2">{L_FORUM_RULES}</p>
  </div>
  <table class="main-content frm">
      <tr>
        <!-- BEGIN switch_forum_rule_image -->
        <td class="logo">
            <img src="{RULE_IMG_URL}" />
        </td>
        <!-- END switch_forum_rule_image -->
        <td class="rules entry-content">
            {RULE_MSG}
        </td>
      </tr>
  </table>
</div>
<!-- END switch_forum_rules -->
 
<!-- BEGIN switch_user_logged_in -->
<a name="quickreply"></a>
{QUICK_REPLY_FORM}
<!-- END switch_user_logged_in -->
 
<div id="pun-info" class="main">
  <div class="main-content">
      <div id="stats">
        <p>{L_TABS_PERMISSIONS} <br />{S_AUTH_LIST}</p>
      </div>
  </div>
</div>
 
<!-- BEGIN switch_image_resize -->
<script type="text/javascript">
//<![CDATA[
$(resize_images({ 'selector' : '.post-entry .entry-content', 'max_width' : {switch_image_resize.IMG_RESIZE_WIDTH}, 'max_height' : {switch_image_resize.IMG_RESIZE_HEIGHT} }));
//]]>
</script>
<!-- END switch_image_resize -->
<script type="text/javascript">
$(".poster-info .label:contains('Status')").parent().addClass("status");
$(".poster-link a").attr("href", function () {
  return this.href.replace("[POSTER_NAME]", encodeURI($(this).closest(".poster-info").find(".poster-name strong").text()));
});
</script>
<script type="text/javascript">
  //<![CDATA[
  $(".vote-Zzbaivong").each(function () {
      var b = $(this);
      if (b.is(":empty")) b.html('<a class="vote-plus" href="">Th\u00edch</a><span class="vote-time plus-time">0</span><a class="vote-minus" href="">B\u00e1o x\u1ea5u</a><span class="vote-time minus-time">0</span>');
      else {
        var a = b.find(".vote-tip").val(),
            c;
        /Message\sreputation\s:/.test(a) ? (c = a.split(/\W/), a = Math.round(c[4] / 100 * c[7]), c = c[7] - a) : a = c = 0;
        b.find(".plus-time").text(a);
        b.find(".minus-time").text(c)
      }
  });
  $(document).click(function (b) {
      $(".vote-cmt").fadeOut()
  });
  $(".vote-Zzbaivong").click(function (b) {
      b.stopPropagation()
  });
  $(".vote-plus, .vote-minus").one("click", function (b) {
      b.preventDefault();
      var a = $(this);
      b = a.attr("href");
      /us\&p_vote\=/.test(this.href) && (a.parent().children(".vote-plus, .vote-minus").attr("href", "javascript:;"), a.next(".vote-time").text(function () {
        return parseInt($(this).text()) + 1
      }), a.parent().find(".vote-plus").css("background-image", "url(http://i57.servimg.com/u/f57/17/05/17/70/preloa10.gif)"), $.get(b, function () {
        a.parent().children(".vote-plus").removeAttr("style")
      }), a.siblings("." + a.attr("class") +
        "-post").fadeIn().children(".vote-mess").focus())
  });
  $(".vote-send").one("click", function () {
      var b = $(this),
        a = b.closest(".post"),
        c = a.find("a[href^='/report']").attr("href"),
        d = b.parent().children(".vote-mess").val(),
        f = b.parent().children(".vote-note");
      f.text("\u0110ang x\u1eed l\u00fd...");
      if ("vote-plus-post vote-cmt" == b.parent().attr("class")) {
        var e = "http://" + location.host + location.pathname + "#" + c.replace(/.*p=(\d+).*/, "$1"),
            c = $.trim(a.find(".user a[href^='/u']:not(:has(img)):first").text()),
            a = a.find(".user a[href^='/u']:first").attr("href").replace(/.*\/u(\d+).*/, "$1"),
            e = "M\u00ecnh th\u00edch b\u00e0i vi\u1ebft c\u1ee7a b\u1ea1n t\u1ea1i [url=" +
              e + "]" + document.title + "[/url]";
        d.replace(/\s/g, "").length && (e = e + "[quote]" + d + "[/quote]");
        $.post("/privmsg", {
            subject: "B\u00e0i vi\u1ebft hay",
            message: e,
            username: c,
            u: a,
            mode: "post_profile",
            folder: "profile",
            post: "Send"
        }, function () {
            f.text("Tin nh\u1eafn \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1eedi");
            b.closest(".vote-cmt").delay(300).fadeOut()
        })
      } else 3 >= d.replace(/\s/g, "").length && (d = "B\u00e0i vi\u1ebft vi ph\u1ea1m n\u1ed9i quy di\u1ec5n \u0111\u00e0n."), $.post(c, {
        message: d,
        post: "Save"
      }, function () {
        f.text("B\u00e1o c\u00e1o \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1eedi");
        b.closest(".vote-cmt").delay(300).fadeOut()
      })
  });
  $(".vote-Zzbaivong > a[href='']").attr("href", "javascript:;");
  //]]>
</script>
The author of this message was banned from the forum - See the message
  Bài viết hay nhất56
Mình không dùng cái viết lên tường thì làm sao vậy BaiVong?
  Bài viết hay nhất57
https://devs.forumvi.com/t329-hoi-dap-cach-lam-nut-vote-khong-load-trang#2121
  Bài viết hay nhất58
Mình có tìm thấy bài đó rồi, nhưng thích cái nút này hơn. Và mình chỉ hỏi cách xóa đoạn js thừa dành cho việc đăng stt lên wall thôi, phần js còn lại thì mình dùng (vì để đoạn js dài vậy sợ load lâu mà không cần thiết :) )
  Bài viết hay nhất59
CSS
Code:
/* fb_Vote - DEVs.forumvi.com */
.vote-Zzbaivong, .vote-Zzbaivong *,.vote-Zzbaivong *:before,.vote-Zzbaivong *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.vote-Zzbaivong{margin-left:2em;float:left;height:26px;line-height:24px;position:relative;text-align:left;white-space:nowrap}
.vote-plus-post,.vote-minus-post{z-index:10;position:absolute;top:32px;left:0;display:none;width:250px;background:#FFF;border:1px solid #F2F2F2;box-shadow:4px 4px 7px 0 #999;padding:5px}
.vote-plus{background:url(http://i57.servimg.com/u/f57/17/05/17/70/like10.png) no-repeat 5px 2px #deeaf7;height:24px;border:1px solid #C8D7EC;color:#5089BE!important;font-family:sans-serif;border-radius:2px;display:inline-block;padding:0 5px 0 25px}
.vote-plus:hover{border-color:#6A9AD6}
.vote-plus[href="javascript:;"]{color:#666!important;background-color:#DDD;cursor:no-drop;background-image:url(http://i57.servimg.com/u/f57/17/05/17/70/gpqbxh10.png);border-color:#CCC}
.vote-time{background:#FFF;position:relative;border-radius:2px;display:inline-block;height:24px;line-height:22px;border:1px solid #D8D7D7;margin:auto 5px;padding:0 5px}
.vote-time:before{content:'';display:inline-block;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid #CCC;position:absolute;left:-6px;width:6px;top:5px}
.vote-time:after{content:'';display:inline-block;border-bottom:5px solid transparent;border-top:5px solid transparent;border-right:5px solid #fff;position:absolute;left:-5px;width:5px;top:6px}
.vote-minus{margin-left:20px;color:#666!important}
.vote-minus:hover{color:red!important}
.vote-minus[href="javascript:;"]{color:#C5C5C5!important;cursor:no-drop}


Temp
Code:
<div class="vote-Zzbaivong">
   <!-- BEGIN switch_vote_active -->
   <a class="vote-plus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}<!-- END switch_vote -->">
      Thích
   </a>
   <span class="vote-time plus-time">0</span>
   <a class="vote-minus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}<!-- END switch_vote -->">
      Báo xấu
   </a>
   <span class="vote-time minus-time">0</span>
   <input class="vote-tip" type="hidden" value="<!-- BEGIN switch_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_bar --><!-- BEGIN switch_no_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_no_bar -->" />
   <!-- END switch_vote_active -->
</div>


javascript
Code:
<script type="text/javascript">
   //<![CDATA[
   $(".vote-Zzbaivong").each(function() {
      var b = $(this);
      if (b.is(":empty")) b.html('<a class="vote-plus" href="">Th\u00edch</a><span class="vote-time plus-time">0</span><a class="vote-minus" href="">B\u00e1o x\u1ea5u</a><span class="vote-time minus-time">0</span>');
      else {
         var a = b.find(".vote-tip").val(),
            c;
         /Message\sreputation\s:/.test(a) ? (c = a.split(/\W/), a = Math.round(parseInt(c[4], 10) / 100 * parseInt(c[7], 10)), c = parseInt(c[7], 10) - a) : a = c = 0;
         b.find(".plus-time").text(a);
         b.find(".minus-time").text(c)
      }
   });
   $(".vote-plus, .vote-minus").on("click", function(b) {
      b.preventDefault();
      var a = $(this);
      b = a.attr("href");
      /us\&p_vote\=/.test(this.href) && (a.parent().children(".vote-plus, .vote-minus").attr("href", "javascript:;"), a.next(".vote-time").text(function() {
         return parseInt($(this).text(), 10) + 1
      }), a.parent().find(".vote-plus").css("background-image", "url(http://i57.servimg.com/u/f57/17/05/17/70/preloa10.gif)"), $.get(b, function() {
         a.parent().children(".vote-plus").removeAttr("style")
      }))
   });   
   $(".vote-Zzbaivong > a[href='']").attr("href", "javascript:;");
   //]]>
</script>
  Bài viết hay nhất60
Cảm ơn rất nhiều :)
  Bài viết hay nhất61
Anh baivong, xin chỉ em cách khi nhấn thích sẽ tự động gửi lời cảm ơn lên tường được không ạ.
  Bài viết hay nhất62
CSS
Code:
/* fb_Vote - DEVs.forumvi.com */
.vote-Zzbaivong, .vote-Zzbaivong *,.vote-Zzbaivong *:before,.vote-Zzbaivong *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.vote-Zzbaivong{margin-left:2em;float:left;height:26px;line-height:24px;position:relative;text-align:left;white-space:nowrap}
.vote-plus-post,.vote-minus-post{z-index:10;position:absolute;top:32px;left:0;display:none;width:250px;background:#FFF;border:1px solid #F2F2F2;box-shadow:4px 4px 7px 0 #999;padding:5px}
.vote-plus{background:url(http://i57.servimg.com/u/f57/17/05/17/70/like10.png) no-repeat 5px 2px #deeaf7;height:24px;border:1px solid #C8D7EC;color:#5089BE!important;font-family:sans-serif;border-radius:2px;display:inline-block;padding:0 5px 0 25px}
.vote-plus:hover{border-color:#6A9AD6}
.vote-plus[href="javascript:;"]{color:#666!important;background-color:#DDD;cursor:no-drop;background-image:url(http://i57.servimg.com/u/f57/17/05/17/70/gpqbxh10.png);border-color:#CCC}
.vote-time{background:#FFF;position:relative;border-radius:2px;display:inline-block;height:24px;line-height:22px;border:1px solid #D8D7D7;margin:auto 5px;padding:0 5px}
.vote-time:before{content:'';display:inline-block;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid #CCC;position:absolute;left:-6px;width:6px;top:5px}
.vote-time:after{content:'';display:inline-block;border-bottom:5px solid transparent;border-top:5px solid transparent;border-right:5px solid #fff;position:absolute;left:-5px;width:5px;top:6px}
.vote-minus{margin-left:20px;color:#666!important}
.vote-minus:hover{color:red!important}
.vote-minus[href="javascript:;"]{color:#C5C5C5!important;cursor:no-drop}


Temp
Code:
<div class="vote-Zzbaivong">
   <!-- BEGIN switch_vote_active -->
   <a class="vote-plus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_PLUS}<!-- END switch_vote -->">
      Thích
   </a>
   <span class="vote-time plus-time">0</span>
   <a class="vote-minus" href="<!-- BEGIN switch_vote -->{postrow.displayed.switch_vote_active.switch_vote.U_VOTE_MINUS}<!-- END switch_vote -->">
      Báo xấu
   </a>
   <span class="vote-time minus-time">0</span>
   <input class="vote-tip" type="hidden" value="<!-- BEGIN switch_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_bar --><!-- BEGIN switch_no_bar -->{postrow.displayed.switch_vote_active.L_VOTE_TITLE}<!-- END switch_no_bar -->" />
   <!-- END switch_vote_active -->
</div>


javascript
Code:
<script type="text/javascript">
   //<![CDATA[
   $(".vote-Zzbaivong").each(function() {
      var a = $(this);
      if (a.is(":empty")) a.html('<a class="vote-plus" href="">Thích</a><span class="vote-time plus-time">0</span><a class="vote-minus" href="">Báo xấu</a><span class="vote-time minus-time">0</span>');
      else {
         var b = a.find(".vote-tip").val(),
            c;
         /Message\sreputation\s:/.test(b) ? (c = b.split(/\W/), b = Math.round(parseInt(c[4], 10) / 100 * parseInt(c[7], 10)), c = parseInt(c[7], 10) - b) : b = c = 0;
         a.find(".plus-time").text(b);
         a.find(".minus-time").text(c)
      }
   });
   $(document).click(function(a) {
      $(".vote-cmt").fadeOut()
   });
   $(".vote-Zzbaivong").click(function(a) {
      a.stopPropagation()
   });
   $(".vote-plus, .vote-minus").one("click", function(a) {
      a.preventDefault();
      var b = $(this);
      a = b.attr("href");
      /us\&p_vote\=/.test(this.href) && (b.parent().children(".vote-plus, .vote-minus").attr("href", "javascript:;"), b.next(".vote-time").text(function() {
         return parseInt($(this).text(), 10) + 1
      }), b.parent().find(".vote-plus").css("background-image", "url(http://i57.servimg.com/u/f57/17/05/17/70/preloa10.gif)"), $.get(a, function() {
         b.parent().children(".vote-plus").removeAttr("style")
      }));
      a = $(this);
      var b = a.closest(".post"),
         c = b.find("a[href^='/report']").attr("href");
      a.hasClass("vote-plus") ? (a = "http://" + location.host + location.pathname + "#" + c.replace(/.*p=(\d+).*/, "$1"), c = $.trim(b.find(".user a[href^='/u']:not(:has(img)):first").text()), b = b.find(".user a[href^='/u']:first").attr("href").replace(/.*\/u(\d+).*/, "$1"), a = "Mình thích bài viết của bạn tại [url=" + a + "]" + document.title + "[/url]", $.post("/privmsg", {
         subject: "Bài viết hay",
         message: a,
         username: c,
         u: b,
         mode: "post_profile",
         folder: "profile",
         post: "Send"
      })) : $.post(c, {
         message: "Bài viết vi phạm nội quy diễn đàn.",
         post: "Save"
      })
   });
   $(".vote-Zzbaivong > a[href='']").attr("href", "javascript:;");
   //]]>
</script>
  Bài viết hay nhất63
cám ơn anh rất nhiều.
  Bài viết hay nhất64
Em làm như hướng dẫn nhưng sao nút thích và báo xấu không hoạt động vậy?
Demo: http://thegioi-tinhoc.forumvi.com/t6-topic#10
  Bài viết hay nhất65
nick test?
  Bài viết hay nhất66
alo
The author of this message was banned from the forum - See the message
  Bài viết hay nhất68
tinhcoanhgapem wrote:Em làm như hướng dẫn nhưng sao nút thích và báo xấu không hoạt động vậy?
Demo: http://thegioi-tinhoc.forumvi.com/t6-topic#10
Chưa kích hoạt Points system, xem bước 1

Gang wrote:giờ em thấy chỉ dùng đc cách ko viết hay tự động viết lên tường thôi, dùng cách chính như trên ko đc (khi bấm gửi nó xử lý hoài và load liên miên ko thành công)
Đã sửa viewtopic_body, mất những thành phần chính thì làm muôn đời cũng thế.
  Bài viết hay nhất69
Thanks Anh Zzbaivong! Đã thành công!
  Bài viết hay nhất70
tình trạng này mình bị lâu rùi hôm nay mới xem lại
DEMO
http://toilait.forumvi.com/t1161p60-topic#9300

tình trạng là khi mình gửi thông điêp nó cứ dứng yên ở đó mà hok chịu đi..! bác nào biết giúp mình với
nick test :
NAME: user123
pass: user123456


[TUTs] fb_Vote đánh giá bài viết và thông báo lên tường - Page 3 F8SoXHA
  Bài viết hay nhất71
đã làm như này chưa bước 1 ở topic này chưa thế bạn https://devs.forumvi.com/t15-code-fb_vote-danh-gia-bai-viet-va-thong-bao-len-tuong
  Bài viết hay nhất72
Chưa kích hoạt Reports
Xem lại Bước 1

Nếu đã kích hoạt thì xem trong viewtopic_body còn {postrow.displayed.REPORT_IMG} hay không, nếu thiếu thì bổ sung vào.
  Bài viết hay nhất73
ok thanh 2 bác nhìu nha đã làm dc
  Bài viết hay nhất74
Ad, em gặp lỗi như thế này, giờ em muốn xóa cái này, để đưa về mặc định phải làm sao ạ, em cảm ơn trc :D
  Bài viết hay nhất75
nghiahungdn2000 wrote:Ad, em gặp lỗi như thế này, giờ em muốn xóa cái này, để đưa về mặc định phải làm sao ạ, em cảm ơn trc :D
Lỗi như thế này là lỗi như thế nào?
Muốn đưa về mặc định thì làm ngược lại các bước là xong
  Bài viết hay nhất76
You cannot reply to topics in this forum