Share shoutbox giống hayshare

51 bài đăng
24.06.2016 / 14:20
ChooseBetweenPeopleGood
Bài đăng: 114
Member

Tạo Shoutbox thứ nhất:

ô 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)}}

Lưu ý tin nhắn 1

Tạo shoubox thứ 2 (dưới sb 1)

ô 1

TWIG
  1. <script type="text/javascript">
  2. function writef(ff,vl)
  3. {
  4. var md=ff.desc.value;
  5. ff.text.value=vl+"[-xcmt-]"+md;
  6. }
  7. function dang()
  8. {
  9. var ff=document.forms["formx"];
  10. var nd=ff.desc.value;
  11. if(nd==null || nd=="")
  12. {window.location="{{api.r.getRequestUri()}}&error=null";}else{
  13. ff.text.value=nd;
  14. ff.submit();
  15. }
  16. }
  17. </script>
  18. {%if api.r.get("cmt")==true%}<div class="title">Bình luận - Chia s</div>{%else%}
  19. <div class="title">SHOUTBOX HISTORY</div>
  20. <div class="menu"><form action="{{form_url}}" method="post" class="chungs" name="formx">
  21. <textarea rows="3" cols="20" name="desc" class="khungnhap"></textarea><input type="hidden" name="text" value=""/><br>
  22. <input type="button" value="Chat" class="nutbam" onclick="dang()">
  23. <div class="cll"></div>
  24. </form>
  25. </div>
  26. {%endif%}
  27.  
  28.  
  29.  
  30. {%set xmsg=message_list|split("[-end-]")%}{%set sid=0%}{%set sdata={}%}{%set sotrang=7%}{%set hiencmt="true"%}{%set hienform="true"%}
  31. {%for i in 0..xmsg|length-1%}
  32. {%if "[-uid-]" in xmsg[i] and "[-xcmt-]" not in xmsg[i]%}
  33. {%set uid=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
  34. {%set msg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
  35. {%set date=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
  36. {%set nicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
  37. {%set socmt=0%}{%set comment=""%}{%set datecmt="-"%}
  38. {%if "[-hidden-]" in msg and api.u.get(api.user_id).uid!=nicks.uid%}{%set ghidden="true"%}{%else%}{%set ghidden=""%}{%endif%}
  39. {%set fuid%}{%if api.r.get("f")>=5%}main.php?f={{api.r.get("f")}}{%else%}main.php?{%endif%}{%endset%}
  40. {%for i in xmsg|length-1..0%}
  41. {%set amsg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
  42. {%set adate=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
  43. {%set anicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
  44. {%if amsg|split("[-xcmt-]")[0]==uid and "[-xcmt-]" in amsg%}{%set socmt=socmt+1%}
  45. {%set binhluan%}
  46. {%set lmsg=amsg|split("[-xcmt-]")[1]|split("@[")%}{%set sbody=""%}{%for y in 0..lmsg|length%}{%if api.u.get(lmsg[y]|split("]")[0]).uid>5%}{%set sbody=sbody~'<img src="/files/953350/quote1.png"><a href="user_info.php?uid='~api.u.get(lmsg[y]|slice(0,8)).uid~'" class="'~api.u.get(lmsg[y]|slice(0,8)).levelCSS~'">'~api.u.get(lmsg[y]|slice(0,8)).nick~'</a><img src="/files/953350/quote2.png">'~lmsg[y]|split("]")[1]%}{%else%}{%endif%} {%endfor%} {%if sbody|length < 3%}{%set sbody=message%}{%endif%} {%set sbody=sbody|default(amsg|split("[-xcmt-]")[1])%}
  47. <div class="menu cmt"><div class="binhluan"><table class="vtable" width="100%" cellpadding="0" cellspacing="1"> <tbody> <tr valign="top"> <td colspan="2" rowspan="2" scope="col" width="5%"><img src="{{anicks.profilephotourl(2,true)}}" class="xbogoc"/></td> <td width="94%" scope="col" align="left"><div class="ctime"><a href="user_info.php?uid={{anicks.uid}}">{{anicks.nick}}</a> {{sbody|raw}}</div></td> </tr> <tr> <td align="left">(<small>{%set ngay=adate|date("d-m-Y H:i:s")%}{%set b="now"|date("d-m-Y H:i:s")%}{% set c = date( b ).diff(date( ngay ))%}{%if c.h==0 and c.i==0 and c.s<=3%}Vừa xong.{%elseif c.h==0 and c.i==0%}{{c.s}} giây trước.{%elseif c.h==0 and c.i>=0%}{{c.i}} phút {{c.s}} giây trước.{%elseif c.h>=1%}{{c.h}} gi{{c.i}} phút trước.{%elseif c.d>=1%}{{c.d}} ngày trước.{%endif%}</small>)</td> </tr> </tbody> </table></div></div>[-yota-]
  48. {%endset%}
  49. {%set comment=comment~binhluan%}
  50. {%set datecmt=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
  51. {%endif%}
  52. {%endfor%}
  53. {%if datecmt=="-"%}{%set datecmt=uid%}{%endif%}
  54. {%set status%}
  55. [-xtcmt-]{{datecmt}}[-page-]
  56. {% set id=date|date('disH')%}
  57. {%set like=_self.env.getGlobals()['like']%}
  58. {%set list_like=_self.env.getGlobals()['list_like']%}
  59. <div class="menu chat">
  60. <div class="status">
  61. <table width="100%" cellpadding="0" cellspacing="1"><tbody>
  62. <tr valign="top">
  63. <td colspan="2" rowspan="2" scope="col" width="5%"><img src="{{nicks.profilephotourl(2,true)}}" class="ava_sb"/></td>
  64. <td width="90%" scope="col" align="left" class="user_sb">
  65. <a href="user_info.php?uid={{nicks.uid}}">{{nicks.nick}}</a><br>
  66. <img src="http://nhanhnao.xyz/images/lke.png" style="width:14px;height:14px;margin-bottom:-2px;"> <b>{{nicks.frm_posts}}</b>&nbsp;
  67. <img src="http://nhanhnao.xyz/images/cmt.png" style="width:14px;height:14px;margin-bottom:-2px"> <b>{{nicks.frm_topics}}</b><br><img src="http://nhanhnao.xyz/images/star.png" style="width:18px;height:18px;margin-bottom:-3px"><span class="name">{%if nicks.name%}{{nicks.name}}{%else%}http://domain{%endif%}</span></td>
  68. </tr>
  69. </tbody>
  70. </table>
  71. <div class="text_sb">{{msg|raw}}<div class="ws">{% 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 %} · <a href="/main.php?{%if api.r.get('f')%}f={{api.r.get('f')}}&{%endif%}comment_id={{uid}}">Bình luận{%if socmt>0%}({{socmt}}){%endif%}</a></div>
  72.  
  73. {% 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 %}
  74.  
  75. </div></div></div>{%if socmt>5 and api.r.get("cmt")!="true"%}<div class="p8"><img src="/files/1020011/icons-new%20copy.png"><a href="/main.php?{%if api.r.get('f')%}f={{api.r.get('f')}}&{%endif%}cmt=true&suid={{uid}}">Xem thêm {{socmt-5}} bình luận</a></div>{%endif%}
  76.  
  77. {% if api.user_id not in like.like(id,1)|escape and api.user_id %}
  78. {% if id in list_like|escape %}
  79. {% set list_like=list_like|replace({(id~','):(id~','~api.user_id~'+')})|raw %}
  80. {% else %}
  81. {% set list_like=id~','~api.user_id~';'~list_like %}
  82. {% endif %}
  83. <form id="like_{{id}}" style="display:none" action="main.php?id=ch_topic_h&uid=224916" method="post"><input type="hidden" name="text" value="{{list_like|raw}}"/></form>
  84. {% endif %}
  85.  
  86. {%endset%}
  87. {%set form%}{%if api.r.get('comment_id')==uid%}<form action="{{form_url}}" method="post" class="menu cmt" onsubmit="writef(this,'{{uid}}')"><input class="nhaplieu" name="desc" type="text" value="{%if api.r.get("ten")>4%}@[{{api.r.get("ten")}}] {%endif%}"><input type="hidden" name="text" value=""><input type="hidden" name="suid" value="{{uid}}"/><input type="submit" value="Bình luận" class="nutnhan"></form>{%endif%}{%endset%}
  88. {%set zcmt=comment|split("[-yota-]")%}
  89. {%if api.r.get("cmt")=="true"%}
  90. {%if api.r.get("suid")==uid%}
  91. {%set messages=status~'<div class="complete">'~comment|split("[-yota-]")|join("")~'</div>'%}
  92. {%else%}{%set messages=""%}{%endif%}
  93. {%else%}
  94. {%set messages=hiencmt=="true"?status~'<div class="complete">'~form~zcmt[socmt-5]~zcmt[socmt-4]~zcmt[socmt-3]~zcmt[socmt-2]~zcmt[socmt-1]~'</div>':status%}
  95. {%endif%}
  96. {%if ghidden=="true"%}{%set messages=""%}{%endif%}
  97. {% set sdata = sdata|merge({ ("thaian"~sid): messages}) %}
  98. {% set sid=sid+1%}
  99. {%endif%}
  100. {%endfor%}
  101. {%for i in 0..sid%}
  102. {%for j in (i+1)..sid%}
  103. {%if (sdata["thaian"~i]|split("[-xtcmt-]")[1]|slice(0,14))*1 < (sdata["thaian"~j]|split("[-xtcmt-]")[1]|slice(0,14))*1 %}
  104. {%set temp=sdata["thaian"~j]%}
  105. {%set sdata=sdata|merge({("thaian"~j):sdata["thaian"~i]})%}
  106. {%set sdata=sdata|merge({("thaian"~i):temp})%}
  107. {%endif%}
  108. {%endfor%}
  109. {%endfor%}
  110. {%set spage=api.r.get("pusl")|default(0)%}
  111. {%if spage>0%}{%set dau=spage*sotrang%}{%set cuoi=((spage+1)*sotrang)-1%}{%else%}{%set dau=spage*sotrang%}{%set cuoi=((spage+1)*sotrang)-1%}{%endif%}
  112. <div style="background-color:#e9eaed;padding-bottom:5px">{%for i in dau..cuoi%}{{sdata["thaian"~i]|split("[-page-]")[1]|raw}}{%endfor%}</div>
  113. <center>{%if spage>0%}<a href="main.php?{%if api.r.get('f')>=5%}f={{api.r.get('f')}}{%endif%}&pusl={%if spage==null%}1{%else%}{{spage-1}}{%endif%}#chatne"><<Trang trước</a> | {%endif%}<a href="main.php?{%if api.r.get('f')>=5%}f={{api.r.get('f')}}{%endif%}&pusl={%if spage==null%}1{%else%}{{spage+1}}{%endif%}#chatne">Trang sau>></a></center>

lưu ý thay main.php?id=ch_topic_h&uid=224916 thanh uid topic 1

ô 2

TWIG
  1. {%set dates=message_date%}
  2. {%if "[-xcmt-]" in message|slice(0,14)%}[-cmt-]{{message|split("[-xcmt-]")[0]}}{%endif%}[-uid-]{{dates|date("YmdHis")}}[-msg-]{{message}}[-url-]{{file_url}}[-nick-]{{nick|slice(27,8)}}[-date-]{{dates|date("d-m-Y H:i:s")}}[-lin-][-end-]

thêm Html này để có style

HTML5
  1. <style>
  2. .title{
  3. background-color: #009688;
  4. border: 1px solid;
  5. border-color: #009688;
  6. padding: 5px;
  7. color: #fff;
  8. margin-top: 4px;
  9. }
  10. .menu{
  11. background: #fff;
  12. -moz-border: 1px solid;
  13. border: 1px solid;
  14. -moz-border-color: #DCDBDB #CACACA;
  15. border-color: #DCDBDB #CACACA;
  16. border-top: none;
  17. padding: 6px;
  18. color: #00796B;
  19. margin-top: 0;
  20. }
  21. .menu.chat{
  22. margin-top: 5px;
  23. border-top: 1px solid;
  24. border-color: #DCDBDB #CACACA;
  25. }
  26. .menu.cmt{
  27. background:#f6f7f8;
  28. }
  29. textarea{
  30. border: 1px solid #ccc;
  31. }
  32. input[type="button"]{
  33. background-color: #03A9F4;
  34. border: 1px solid #0288D1;
  35. color: #FFF;
  36. line-height: 14px;
  37. vertical-align: baseline;
  38. white-space: nowrap;
  39. margin-top: 4px;
  40. padding: 5px;
  41. }
  42.  
  43. .showlike {
  44. background-color: #fff;
  45. border: 1px solid;
  46. border-color: #E2E0E0;
  47. padding: 5px;
  48. margin-top: 5px;
  49. line-height: 1.5;
  50. }
  51. .button_like {
  52. background-color: #E91E63;
  53. border: 1px solid #E91E63;
  54. color: #fff;
  55. white-space: nowrap;
  56. padding: 2px 6px;
  57. border-radius: 4px;
  58. }
  59. .ava_sb{
  60. border: 1px solid #D7EDFC;
  61. width: 60px;
  62. height: 60px;
  63. padding: 2px;
  64. background: #fff;
  65. }
  66. .user_sb{
  67. padding-left: 5px;
  68. }
  69. .name{
  70. color: #cd853f;
  71. font-weight: bold;
  72. }
  73. .text_sb{
  74. border-top: 1px solid #D7EDFC;
  75. color: #000;
  76. padding: 5px;
  77. background-color: #fff;
  78. margin-top: 5px;
  79. }
  80. </style>

lưu ý: tin nhắn 100

code dựa trên 2 code của Boy Hà Nội và Mr An An

Nhận Import code khi copy code không được

Like cho tinh thần chia sẻ không keo như ai đó đi nhóe

24.06.2016 / 14:25
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

sao chặn thế

24.06.2016 / 14:26
ChooseBetweenPeopleGood
Bài đăng: 114
Member

hỏi nhiều quá share đủ rùi thì chặn hoy

24.06.2016 / 14:29
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

hỏi nhiều quá share đủ rùi thì chặn hoy

thì t phải ánh chứ có gì đâu test chưa mà chưa biết không lổi

24.06.2016 / 14:30
ChooseBetweenPeopleGood
Bài đăng: 114
Member

lỗi đó tại ông chứ đâu phải tại code

24.06.2016 / 14:36
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

lỗi đó tại ông chứ đâu phải tại code

a phương hay ai test thử code giùm e code được k đừng có khinh tui như thế

24.06.2016 / 14:39
ChooseBetweenPeopleGood
Bài đăng: 114
Member

có đặt biến {{time}} ở nơi xuất code ko?

24.06.2016 / 14:43
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

có đặt biến {{time}} ở nơi xuất code ko?

Có đủ hết rồi

24.06.2016 / 14:43
ChooseBetweenPeopleGood
Bài đăng: 114
Member

vậy thì xong

24.06.2016 / 14:47
HuyAnh
Bài đăng: 1142
Member
https://www.facebook.com/boduyvidai9999/videos/219

vậy thì xong

:))

[IMAGE]
Đã chỉnh sửa. MrKen (16.11.2016 / 18:09)