[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


fb_Vote chưa nhấn


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: http://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: http://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ất77
@ZuniThoang wrote:k thấy hiện chô để viết và gửi, chỉ có Thích và báo sấu thôi ad ui :3
đã nhấn vào thích chưa bạn
để hiện khung textarea đó thì phải nhấn vào thích thì mới hiện nha
hoặc bạn có thể quăng demo onl + acc test lên đây để mọi người xem lỗi nha :)
  Bài viết hay nhất78
Bee dùng cái code không tự thông báo lên wall, thì xài ngon lành, like, báo cáo tốt. Nhưng lâu lâu đăng 1 topic thì kéo xuống xem thì thấy nó tự like 1 cái, nhiều khi thì tự báo cáo 1 cái :( khó hiểu lắm huynh :((
  Bài viết hay nhất79

dtpn wrote:Bee dùng cái code không tự thông báo lên wall, thì xài ngon lành, like, báo cáo tốt. Nhưng lâu lâu đăng 1 topic thì kéo xuống xem thì thấy nó tự like 1 cái, nhiều khi thì tự báo cáo 1 cái :( khó hiểu lắm huynh :((

Có thể là do bạn xóa bài đã like do đó các bài viết mới tiếp theo nó sẽ cộng lại.
  Bài viết hay nhất80

@markai30 wrote:
dtpn wrote:Bee dùng cái code không tự thông báo lên wall, thì xài ngon lành, like, báo cáo tốt. Nhưng lâu lâu đăng 1 topic thì kéo xuống xem thì thấy nó tự like 1 cái, nhiều khi thì tự báo cáo 1 cái :( khó hiểu lắm huynh :((

Có thể là do bạn xóa bài đã like do đó các bài viết mới tiếp theo nó sẽ cộng lại.
Ô chắc đúng vậy rồi, vì Bee có xóa vài topic test ấy :D cảm ơn markai30 :D
  Bài viết hay nhất81
Mình cho thẻ <span class="vote-time plus-time">Số like</span> vào trong <a class="vote-plus votez" href="javascript:;"></a> với cấu trúc như sau

Code:
<a class="vote-plus votez" href="javascript:;"> <i class="fa suki fa-2"></i>Suki<span class="vote-time plus-time">1</span></a>

Vậy phải chỉnh sửa script như thế nào để nó load số like mới vậy BaiVong?
  Bài viết hay nhất82
Bạn giữ nguyên cấu trúc rồi dùng css sửa lại giao diện sẽ dễ hơn.
The author of this message was banned from the forum - See the message
  Bài viết hay nhất84
Nếu nó báo đang xử lý tức là lỗi không tìm thấy 1 thành phần nào đó, ví dụ như thông tin người viết.
FM có thể sửa được temp, lại có 4 phiên bản khác nhau nên khó có thể viết 1 code chuẩn cho tất cả được.
The author of this message was banned from the forum - See the message
  Bài viết hay nhất86
Xem mục Cách dùng khác.
The author of this message was banned from the forum - See the message
  Bài viết hay nhất88


Các bạn ơi, xem giúp mình với, mình làm theo hướng dẫn ở trên hay voteplus cũng bị như vậy, để con chuột vào nó con trỏ chuột biến thành hình tròn đen có gạch chéo, không cho nhấn like hay gì cả.

Cảm ơn trước các bạn!
  Bài viết hay nhất89
Code này dùng nút vote + và vote - mặc định chuyển thành nút thích, vì vậy nếu bài viết đó do tài khoản của bạn đăng lên thì bạn vote không được là đúng rồi :) Mà không cho link diễn đàn của bạn thì sao mọi người xem được?
  Bài viết hay nhất90
http://bvtpvithanh.forumvi.com/ mình có thử tạo member mới để test mà vẫn ko like đc, các bạn xem giúp mình với
  Bài viết hay nhất91

@AT Hoàng wrote:http://bvtpvithanh.forumvi.com/ mình có thử tạo member mới để test mà vẫn ko like đc, các bạn xem giúp mình với

Nhìn sơ qua cái wall trong forum bạn. Mình thấy có vẻ như bạn chưa bật reputation như đã hướng dẫn ở bước 1.

Bạn thử bật nó bằng cách làm theo hướng dẫn này xem sao.

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

ACP >> Modules >> Points and reputation >> Reputation
Activate reputation system : Có
Activate "Thanks" button : Có

Còn nếu không được nữa. Thì chép nguyên cái code viewtopic_body lên đây thử xem.
Nhớ là để lại acc test nữa nhé.
  Bài viết hay nhất92
hihi, mình quên bật trong Reputation, cảm ơn bạn đã chỉ giúp nha
  Bài viết hay nhất93
mình xài code tự động post wall, nh mình muốn xóa nút báo xấu dc ko ạ
  Bài viết hay nhất94
cho mình hỏi ngu một xí >_<, dòng
Code:
<div class="post-options profile_{postrow.displayed.PROFILE_POSITION}">
Code:
<div class="post-options">
tại mình mò hoài hẻm thấy
  Bài viết hay nhất95
quăng cái link lên xem
  Bài viết hay nhất96
http://eng-lite-math-ict.forumvi.com/
  Bài viết hay nhất97
Mình dùng cái js load comment không chuyển trang của BaiVong nhưng nó không load nút like, BaiVong giúp mình vụ này nhé

DEMO:

Forum: http://www.congdongotakuviet.com/

Nick test: Nick_test/test123456
  Bài viết hay nhất98

@anhdaodaica1 wrote:Mình dùng cái js load comment không chuyển trang của BaiVong nhưng nó không load nút like, BaiVong giúp mình vụ này nhé

DEMO:

Forum: http://www.congdongotakuviet.com/

Nick test: Nick_test/test123456

Code này không tối ưu cho việc đó.
  Bài viết hay nhất99

@Zzbaivong wrote:Code này không tối ưu cho việc đó.
Lúc trước mình có nhờ BaiVong làm 1 việc tương tự với zzRank, thấy BaiVong thêm phần rankavatar(".rankavatar:last"); và đã thành công
Mình làm tương tự nhưng lại không hiện, BaiVong xem lại giúp mình đc ko? tại lần trước thấy BaiVong làm đc :D
  Bài viết hay nhất100

@anhdaodaica1 wrote:
@Zzbaivong wrote:Code này không tối ưu cho việc đó.
Lúc trước mình có nhờ BaiVong làm 1 việc tương tự với zzRank, thấy BaiVong thêm phần rankavatar(".rankavatar:last"); và đã thành công
Mình làm tương tự nhưng lại không hiện, BaiVong xem lại giúp mình đc ko? tại lần trước thấy BaiVong làm đc :D
Đâu phải nói làm không được, chỉ là không tối ưu, phải viết lại nhiều chỗ.
Mà code này lúc trước mình viết cấu trúc không đẹp, tăng số like lên là lệch ngay.
You cannot reply to topics in this forum