Share[SHARE] CODE like viết bằng TWIG

62 bài đăng
31.05.2016 / 22:21
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương

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 :3 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 :3

Cách thực hiện code

Bước 1: thêm topic lịch sử để làm nơi lưu data

Ô 1:

TWIG
  1. {{message_list}}

Ô 2:

TWIG
  1. {{_self.env.addGlobal('list_like',message|split(';')|slice(0,100)|join(';')|raw)}}
  2. {% macro like(id,a) %}
  3. {% set like=_self.env.getGlobals()['list_like']|split(id~',')[1]|split(';')[0] %}
  4. {% if like|length > 1 %}
  5. {% 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 %}
  6. {% endif %}
  7. {% endmacro %}
  8. {% import _self as likes %}
  9. {{_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

TWIG
  1. {% set id=message_date|date('disH')%}
  2. {%set like=_self.env.getGlobals()['like']%}
  3. {%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)

TWIG
  1. {% 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)

TWIG
  1. {% 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é)

TWIG
  1. {% if api.user_id not in like.like(id,1)|escape and api.user_id %}
  2. {% if id in list_like|escape %}
  3. {% set list_like=list_like|replace({(id~','):(id~','~api.user_id~'+')})|raw %}
  4. {% else %}
  5. {% set list_like=id~','~api.user_id~';'~list_like %}
  6. {% endif %}
  7. <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>
  8. {% 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

Đã chỉnh sửa. MrKen (01.06.2016 / 16:56)
31.05.2016 / 22:27
MrKen
Bài đăng: 2646
Trùm!
Vẫn là A N H

lâu lắm mới thấy share code :like:

31.05.2016 / 23:35
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương

tại cũng chả có gì hay để share :3

31.05.2016 / 23:38
MrKen
Bài đăng: 2646
Trùm!
Vẫn là A N H

ừa, giờ cái nào cũng vậy. người khác thấy hay mà mình thì chán rồi nên cũng chả muốn động vào :11:

01.06.2016 / 11:44
ParkBom
Bài đăng: 593
Member
Hi I Am Park Bom

Lỗi rồi :3 sao nó vẩn hiện "thích điều này" khi chưa có ng like :)

01.06.2016 / 12:08
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương

like.like(id,0) > 0 rồi thì làm gì cod hiện tượng đấy.xem kĩ code rồi.k thấy vđề gì

01.06.2016 / 12:41
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219
ParkBom đã viết

Lỗi rồi :3 sao nó vẩn hiện "thích điều này" khi chưa có ng like :)

Đọc kỉ vào a hù e củng vậy á

01.06.2016 / 13:01
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương
ParkBom đã viết

Lỗi rồi :3 sao nó vẩn hiện "thích điều này" khi chưa có ng like :)

xem thử demo :3

01.06.2016 / 13:02
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương
beatbox đã viết

Đọc kỉ vào a hù e củng vậy á

riêng m.câm và cút

01.06.2016 / 13:02
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219
b0ysh0ckhn đã viết

riêng m.câm và cút

cái dm m t chọc j m ak lớn mà ngó như cn nít vậy m :/ khinh cmm t đéo giả danh j của m nhá bớt atsm

Đã chỉnh sửa. beatbox (01.06.2016 / 13:03)