Code này viết cũng khá lâu rồi và thấy code của thaian2009 cũng khá hay nhưng hơi loằng ngoằng nên có thể các bạn sẽ hơi khó hiểu.nay share code này hi vọng các bạn sẽ thấy dễ hiểu hơn và dùng vào nhiều mục đích khác
Code viết dựa trên code like bằng javascript mà trước Mrken đã share thôi chức năng bỏ like vì chưa có thời gian nên cũng lười viết nên bạn nào chịu khó nghiên cứu viết hộ luôn nhé ^_^
Ưu điểm: gọn nhẹ và dễ hiểu
Nhược điểm: dễ bị hack
Cách thực hiện code
Bước 1: thêm topic lịch sử để làm nơi lưu data
Ô 1:
{{message_list}}
Ô 2:
{{_self.env.addGlobal('list_like',message|split(';')|slice(0,100)|join(';')|raw)}} {% macro like(id,a) %} {% set like=_self.env.getGlobals()['list_like']|split(id~',')[1]|split(';')[0] %} {% if like|length > 1 %} {% if a==0 %}{{like|split('+')|length}}{% elseif a==1 %}{% for i in 0..(like|split('+')|length-1) %}{% if api.u.get(like|split('+')[i]).uid %}{{api.u.get(like|split('+')[i]).nick}}{% if i < (like|split('+')|length-1) %}, {% endif %}{% endif %}{% endfor %}{% elseif a==2 %}{{like}}{% endif %} {% endif %} {% endmacro %} {% import _self as likes %} {{_self.env.addGlobal('like',likes)}}
Chú ý cài số lượng tin nhắn hiển thị là 1 nhé
Bước 2 thêm code để hiển thị số người like và nút like
Đầu tiên ta thêm code dưới đây vào đầu ô 2 topic chat của bạn để lấy dữ liệu data
{% set id=message_date|date('disH')%} {%set like=_self.env.getGlobals()['like']%} {%set list_like=_self.env.getGlobals()['list_like']%}
Tiếp theo là nơi muốn hiển thị số lượt like và những người đã like (ở đây bạn có thể tùy chỉnh cho hợp với style wap của bạn)
{% if like.like(id,0) > 0 %}<div class="showlike"><a href="main.php?act=like&like_id={{id}}"><button class="button_like" type="button"><i class="fa fa-heart"></i> {{like.like(id,0)}}</button></a> {{like.like(id,1)}} thích điều này </div>{% endif %}
Và tiếp theo là nơi hiển thị nút like (Đặt bất cứ chỗ nào trong oo 2 topic của bạn)
{% if api.user_id %}<i class="fa fa-heart"></i> {% if api.user_id in like.like(id,2)|escape %}<a onclick="alert('Chức Chức năng này chưa hoàn thiện! Vui lòng thử lại sau')">Bỏ thích</a>{% else %}<a onclick="$('#like_{{id}}').submit()">Thích</a>{% endif %}{% endif %}
Cuối cùng bạn đặt nốt code này vào cuối cùng của ô 2 topic nữa là xong (bạn nhớ thay số 217927 thành số uid của topic nơi lưa dữ liệu data nhé)
{% if api.user_id not in like.like(id,1)|escape and api.user_id %} {% if id in list_like|escape %} {% set list_like=list_like|replace({(id~','):(id~','~api.user_id~'+')})|raw %} {% else %} {% set list_like=id~','~api.user_id~';'~list_like %} {% endif %} <form id="like_{{id}}" style="display:none" action="main.php?id=ch_topic_h&uid=217927&back_url=%2Fmain.php" method="post"><input type="hidden" name="text" value="{{list_like|raw}}"/></form> {% endif %}
Mình hướng dẫn đến đây chắc có nhiều bạn có thể tự làm được rồi ^^ chúc thành công
Code by: b0ysh0ck_hn
Demo tham khảo: http://love.wap.mu