Share code like cho ego không dùng javascript

53 bài đăng
22.04.2016 / 16:47
thaian2009
Bài đăng: 709
Member

Làm theo hướng dẫn nha. Code An vừa hoàn thành trong chiều nay nên có thể còn lỗi. Nếu có lỗi thì thông báo cho An sau.

Chỉ làm like thôi, thêm unlike tốn tài nguyên nên An bỏ rồi..

Có phần mã hóa idcmt và uid, bạn nào dùng có thể sửa đổi mã hóa đề phòng hack like.

+ Thêm Mã Twig

TWIG
  1. {%set sdata=''%}
  2. {{_self.env.addGlobal('sdata',sdata)}}

+ Thêm shoutbox history, đây là data like

Ô 1:

TWIG
  1. {%set msg=message_list|split('[-msS-]')%}
  2. {%set sdata=_self.env.getGlobals()['sdata']%}
  3. {%set sdata=sdata~message_list%}{{_self.env.addGlobal('sdata',sdata)}}
  4. {%set surl=_self.env.getGlobals()['surl']%}
  5. {%if msg|length>=99%}
  6. {%if surl is empty%}
  7. {%set url=''%}
  8. {%else%}
  9. {%set url=surl%}
  10. {%endif%}
  11. {%else%}
  12. {%if surl is not empty%}
  13. {%set url=surl%}
  14. {%else%}
  15. {%set url=form_url%}
  16. {%endif%}
  17. {%endif%}
  18. {{_self.env.addGlobal('surl',url)}}

Ô 2:

TWIG
  1. {{message}}[-msS-]

+ Thêm Twig

TWIG
  1. {%macro mahoa(b)%}{%set k=".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"%}{%for i in 0..b|length-1%}{{k|slice(b|slice(i,1)*1,1)}}{%endfor%}{%endmacro%}
  2. {%macro giaima(f)%}{%set k=".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"%}{%for i in 0..f|length-1%}{{k|split(f|slice(i,1))[0]|length}}{%endfor%}{%endmacro%}
  3. {%macro like(idcmt,type='button')%}
  4. {%set uid=api.user_id%}{%set count=0%}{%set list=''%}{%set suid=like.mahoa(uid)%}{%set key=idcmt~'['~suid%}{%set sdata=_self.env.getGlobals()['sdata']|split('[-msS-]')%}{%set surl=_self.env.getGlobals()['surl']%}{%set form%}<form action="{{surl}}" method="post" style="display: inline-block;"><input type="hidden" name="text" value="{{key}}"/><input type="submit" value="Thích" style="background-color: transparent; border: none; color: #3b5998; padding: 0px;"/></form>{%endset%}
  5. {%if type=='button'%}
  6. {%if key not in ('<msS>'~sdata|join('</msS>'))%}{{form}}{%else%}{%endif%}
  7. {%endif%}
  8. {%for i in 0..sdata|length%}
  9. {%if sdata[i] is not empty%}
  10. {%if idcmt==sdata[i]|split('[')[0]%}
  11. {%set count=count+1%}
  12. {%set nick=like.giaima(sdata[i]|split('[')[1])%}
  13. {%if nick not in ('!'~list)%}
  14. {%set list=list~nick~'[-like-]'%}
  15. {%endif%}
  16. {%endif%}
  17. {%endif%}
  18. {%endfor%}
  19. {%if type=='count'%}
  20. <span style="display:inline-block">{{count}}</span>
  21. {%endif%}
  22. {%if type=='list'%}{%set list=list|split('[-like-]')%}
  23. <span style="display:inline-block">{%set user_like%}{%for i in 0..list|length-1%}{%if list[i] is not empty%}{{api.u.get(list[i]).nick}} {%endif%}{%endfor%}{%endset%}{{user_like}}</span>
  24. {%endif%}
  25. {%endmacro%}
  26.  
  27.  
  28. {%macro like_all(idcmt)%}
  29. {%set idcmt=like.mahoa((idcmt|date('YmdHis')))%}
  30. <img src="/files/1049801/slike.png" style="display:inline-block"/> {{like.like(idcmt,'count')}}{%if api.user_id is not empty%}{{like.like(idcmt,'button')}}{%endif%} {{like.like(idcmt,'list')}}
  31. {%endmacro%}
  32. {%import _self as like%}
  33. {{_self.env.addGlobal('like',like)}}

macro like_all như là Template like sửa lại cho phù hợp theo ý bạn

+ button là hiện nút thích

+ count là hiện số like

+ list là danh sách uid hay người like, nó xử lí ở phía trên có thể sửa theo ý bạn

+ Nếu muốn hiện Bạn và bao nhiêu người thích thì thêm điều kiện {%if api.user_id in ('~'~list|join(''))%} để kiểm tra

----------------------------------------------------------------------

Cuối cùng là Thêm shoutbox chat, nơi hiện like

Ô 1: mặc định

TWIG
  1. <div class="shoutbox">
  2. {% if loged %}
  3. <form action="{{form_url}}" method="post"> <textarea rows="3" cols="20" name="text" style="width:auto"></textarea><br/>
  4. <input type="submit" value="Thêm tin nhắn"/></form>
  5. {% else %}
  6. Bạn phải đăng nhập để đăng tin nhắn
  7. {% endif %}
  8. <div class="shoutbox_message">{{message_list}}</div>
  9. {{paging_def}}
  10. </div>

Ô 2:

TWIG
  1. <div style="border:1px solid#eee;padding:2px;text-align:left">
  2. {{userphoto}} {{nick}}: {{message}}<br/>
  3. {{like.like_all(message_date|date('U'))}}
  4. </div>

Nguồn: http://shoutboxgenerator.wap.mu

Demo: http://shoutboxgenerator.wap.m ... 76295

22.04.2016 / 16:58
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

like

22.04.2016 / 16:59
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

thêm bỏ like đi a

22.04.2016 / 17:15
thaian2009
Bài đăng: 709
Member
beatbox đã viết

thêm bỏ like đi a

Bỏ like là nut delete cmt đó =]

22.04.2016 / 17:33
thaian2009
Bài đăng: 709
Member

Có bỏ like

Sử Ô 2 ở shoutbox 1 thành

TWIG
  1. {{message}}[-xoa-]{{delete_post_button}}[-msS-]

Mã Twig Thứ 2 thành

TWIG
  1. {%macro mahoa(b)%}{%set k=".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"%}{%for i in 0..b|length-1%}{{k|slice(b|slice(i,1)*1,1)}}{%endfor%}{%endmacro%}
  2. {%macro giaima(f)%}{%set k=".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"%}{%for i in 0..f|length-1%}{{k|split(f|slice(i,1))[0]|length}}{%endfor%}{%endmacro%}
  3. {%macro like(idcmt,type='button')%}
  4. {%set uid=api.user_id%}{%set count=0%}{%set list=''%}{%set suid=like.mahoa(uid)%}{%set key=idcmt~'['~suid%}{%set sdata=_self.env.getGlobals()['sdata']|split('[-msS-]')%}{%set surl=_self.env.getGlobals()['surl']%}{%set form%}<form action="{{surl}}" method="post" style="display: inline-block;"><input type="hidden" name="text" value="{{key}}"/><input type="submit" value="Thích" style="background-color: transparent; border: none; color: #3b5998; padding: 0px;"/></form>{%endset%}
  5. {%set sxoa=''%}
  6. {%for i in 0..sdata|length%}
  7. {%if sdata[i] is not empty%}
  8. {%if idcmt==sdata[i]|split('[')[0]%}
  9. {%set count=count+1%}
  10. {%set nick=like.giaima(sdata[i]|split('[-xoa-]')[0]|split('[')[1])%}{%if api.user_id==nick%}{%set sxoa=sdata[i]|split('[-xoa-]')[1]%}{%endif%}
  11. {%if nick not in ('!'~list)%}
  12. {%set list=list~nick~'[-like-]'%}
  13. {%endif%}
  14. {%endif%}
  15. {%endif%}
  16. {%endfor%}
  17. {%if type=='button'%}
  18. {%if key not in ('<msS>'~sdata|join('</msS>'))%}{{form}}{%else%}{{sxoa|replace({'[X]':'Unlike','div':'span','<input type="submit"':'<input type="submit" style="background-color: transparent; border: none; color: #3b5998; padding: 0px;" ','<form':'<form style="display:inline-block" '})|raw}} {%endif%}
  19. {%endif%}
  20. {%if type=='count'%}
  21. <span style="display:inline-block">{{count}}</span>
  22. {%endif%}
  23. {%if type=='list'%}{%set list=list|split('[-like-]')%}
  24. <span style="display:inline-block">{%set user_like%}{%for i in 0..list|length-1%}{%if list[i] is not empty%}{{api.u.get(list[i]).nick}} {%endif%}{%endfor%}{%endset%}{{user_like}}</span>
  25. {%endif%}
  26. {%endmacro%}
  27.  
  28.  
  29. {%macro like_all(idcmt)%}
  30. {%set idcmt=like.mahoa((idcmt|date('YmdHis')))%}
  31. <img src="/files/1049801/slike.png" style="display:inline-block"/> {{like.like(idcmt,'count')}}{%if api.user_id is not empty%}{{like.like(idcmt,'button')}}{%endif%} {{like.like(idcmt,'list')}}
  32. {%endmacro%}
  33. {%import _self as like%}
  34. {{_self.env.addGlobal('like',like)}}
22.04.2016 / 17:45
b0ysh0ckhn
Bài đăng: 1146
Member
Nguyễn Minh Phương

:v dài hơn like của phương rồi nhé

22.04.2016 / 17:54
hanhphucao
Bài đăng: 2470
Admin
Admin là người tận tâm và luôn hành xử đúng mực.

Cũng đáng 1 like :)

22.04.2016 / 17:55
thaian2009
Bài đăng: 709
Member
b0ysh0ck_hn đã viết

:v dài hơn like của phương rồi nhé

Hình như của Phương hiện data ở nút like nhiều hơn..trong value của an nó ngắn hơn hj

22.04.2016 / 20:22
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

Chèn chổ nào mk khi mình nhấn vào like mới thấy chữ thik điều này vậy anh

22.04.2016 / 20:30
thaian2009
Bài đăng: 709
Member
beatbox đã viết

Chèn chổ nào mk khi mình nhấn vào like mới thấy chữ thik điều này vậy anh

Ô 2 shoutbox