![]() |
![]() ![]() |
Tạo 1 file
+ Thêm mã Twig
{%macro blog(xmsg,form_url)%}
{%set sid=0%}{%set sdata={}%}{%set sotrang=7%}{%set hiencmt="false"%}{%set hienform="false"%}
{%for i in 0..xmsg|length-1%}
{%if "[-uid-]" in xmsg[i] and "[-xcmt-]" not in xmsg[i]%}
{%set uid=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
{%set msg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
{%set date=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
{%set nicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
{%set socmt=0%}{%set comment=""%}{%set datecmt="-"%}
{%if "[-hidden-]" in msg and api.u.get(api.user_id).uid!=nicks.uid%}{%set ghidden="true"%}{%else%}{%set ghidden=""%}{%endif%}
{%set fuid%}{%if api.r.get("f")>=5%}main.php?f={{api.r.get("f")}}{%else%}main.php?{%endif%}{%endset%}
{%for i in xmsg|length-1..0%}
{%set amsg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
{%set adate=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
{%set anicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
{%if amsg|split("[-xcmt-]")[0]==uid and "[-xcmt-]" in amsg%}{%set socmt=socmt+1%}
{#<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~'">#}
{%set binhluan%}{%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">'~api.u.get(lmsg[y]|slice(0,8)).nick~'<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])%} <div class="message"><div class="khung" style="border: 0px !important;">» {{anicks.nick}}: {{sbody|raw}}<br/><a href="/{{fuid}}&cmt=true&suid={{uid}}&ten={{anicks.uid}}"> Trả lời</a></div></div>[-yota-]{%endset%}
{%set comment=comment~binhluan%}
{%set datecmt=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
{%endif%}
{%endfor%}
{%if datecmt=="-"%}{%set datecmt=uid%}{%endif%}
{%set status2%}[-xtcmt-]{{datecmt}}[-page-]<div class="ongoai"><div class="khung">» <a href="/{{fuid}}&cmt=true&suid={{uid}}" style="color:{{random(['#E91E63','#FF00A3'])}}"><b>{{msg|split('[title]')[1]|split('[/title]')[0]|raw}}</b></a> <br/>{{msg|split('[body]')[1]|split('[/body]')[0]|slice(0,200)|raw}}..<small><font color="gray"><b>({{date|slice(0,10)}})</b></font></small><br/>
<a href="main.php?f={{api.r.get('f')}}&type=nick&search={{nicks.nick}}">{{nicks.nick}}</a> [{{socmt}}]</div></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="/{{fuid}}&cmt=true&suid={{uid}}">Xem thêm {{socmt-5}} bình luận</a>{%endif%}{%endset%}
{%set status%}{%if api.r.get('cmt')=='true'%}[-xtcmt-]{{datecmt}}[-page-]<div class="ongoai"><div class="xam">{{msg|split('[title]')[1]|split('[/title]')[0]|raw}}</div><div class="khung">» Tác giả: <a href="user_info.php?uid={{nicks.uid}}">{{nicks.nick}}</a><br/>» Viết: {{date}}<br/><br/>{%set conts=msg|split('[body]')[1]|split('[/body]')[0]|raw%}{{conts|raw}}<br/>
Bình luận {{socmt}}</div></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="/{{fuid}}&cmt=true&suid={{uid}}">Xem thêm {{socmt-5}} bình luận</a>{%endif%}
{%else%}{%if api.r.get('search') is not empty%}{%set skey=api.r.get('type')%}{%set ssearch=api.r.get('search')%}{%if (skey=='nick' and ssearch==nicks.nick) or (skey=='title' and ssearch in ('!'~msg|split('[title]')[1]|split('[/title]')[0])) or (skey=='body' and ssearch in ('!'~msg|split('[body]')[1]|split('[/body]')[0])) or (skey=='date' and ssearch in ('!'~date))%}{{status2}}{%endif%}{%elseif api.r.get('search') is empty%}{{status2}}{%endif%}{%endif%}{%endset%}
{%set form%}<div class="khung" style="border: 0px !important;"><form action="{{form_url}}" method="post" class="nhanh" 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></div>{%endset%}
{%set zcmt=comment|split("[-yota-]")%}
{%if api.r.get("cmt")=="true"%}
{%if api.r.get("suid")==uid%}
{%set messages=status~'<div class="vdata">'~comment|split("[-yota-]")|join("")~form~'</div>'%}
{%else%}{%set messages=""%}{%endif%}
{%else%}
{%set messages=hiencmt=="true"?status~'<div class="vdata">'~zcmt[socmt-5]~zcmt[socmt-4]~zcmt[socmt-3]~zcmt[socmt-2]~zcmt[socmt-1]~(hienform=="true"?form:"")~'</div>':status%}
{%endif%}
{%if ghidden=="true"%}{%set messages=""%}{%endif%}
{% set sdata = sdata|merge({ ("thaian"~sid): messages}) %}
{% set sid=sid+1%}
{%endif%}
{%endfor%}
{%for i in 0..sid%}
{%for j in (i+1)..sid%}
{%if (sdata["thaian"~i]|split("[-xtcmt-]")[1]|slice(0,14))*1 < (sdata["thaian"~j]|split("[-xtcmt-]")[1]|slice(0,14))*1 %}
{%set temp=sdata["thaian"~j]%}
{%set sdata=sdata|merge({("thaian"~j):sdata["thaian"~i]})%}
{%set sdata=sdata|merge({("thaian"~i):temp})%}
{%endif%}
{%endfor%}
{%endfor%}
{%set spage=api.r.get("pusl")|default(0)%}
{%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%}
<div style="background-color:#fff"><span id="khung">{%for i in dau..cuoi%}<span id="xkhung">{{sdata["thaian"~i]|split("[-page-]")[1]|raw}}</span><i></i>{%endfor%}</span></div>
<div class="khung"><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></div>
{%endmacro%}
{%macro content(message,nick,message_date,delete_post_button)%}{%set dates=message_date%}
{%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-][-msS-]{%endmacro%}
{%import _self as blog%}
{%set sdata=''%}
{{_self.env.addGlobal('blog',blog)}}
{{_self.env.addGlobal('sdata',sdata)}}
{%set sid=0%}{%set sdata={}%}{%set sotrang=7%}{%set hiencmt="false"%}{%set hienform="false"%}
{%for i in 0..xmsg|length-1%}
{%if "[-uid-]" in xmsg[i] and "[-xcmt-]" not in xmsg[i]%}
{%set uid=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
{%set msg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
{%set date=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
{%set nicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
{%set socmt=0%}{%set comment=""%}{%set datecmt="-"%}
{%if "[-hidden-]" in msg and api.u.get(api.user_id).uid!=nicks.uid%}{%set ghidden="true"%}{%else%}{%set ghidden=""%}{%endif%}
{%set fuid%}{%if api.r.get("f")>=5%}main.php?f={{api.r.get("f")}}{%else%}main.php?{%endif%}{%endset%}
{%for i in xmsg|length-1..0%}
{%set amsg=xmsg[i]|split("[-msg-]")[1]|split("[-url-]")[0]%}
{%set adate=xmsg[i]|split("[-date-]")[1]|split("[-lin-]")[0]%}
{%set anicks=api.u.get(xmsg[i]|split("[-nick-]")[1]|split("[-date-]")[0])%}
{%if amsg|split("[-xcmt-]")[0]==uid and "[-xcmt-]" in amsg%}{%set socmt=socmt+1%}
{#<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~'">#}
{%set binhluan%}{%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">'~api.u.get(lmsg[y]|slice(0,8)).nick~'<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])%} <div class="message"><div class="khung" style="border: 0px !important;">» {{anicks.nick}}: {{sbody|raw}}<br/><a href="/{{fuid}}&cmt=true&suid={{uid}}&ten={{anicks.uid}}"> Trả lời</a></div></div>[-yota-]{%endset%}
{%set comment=comment~binhluan%}
{%set datecmt=xmsg[i]|split("[-uid-]")[1]|split("[-msg-]")[0]%}
{%endif%}
{%endfor%}
{%if datecmt=="-"%}{%set datecmt=uid%}{%endif%}
{%set status2%}[-xtcmt-]{{datecmt}}[-page-]<div class="ongoai"><div class="khung">» <a href="/{{fuid}}&cmt=true&suid={{uid}}" style="color:{{random(['#E91E63','#FF00A3'])}}"><b>{{msg|split('[title]')[1]|split('[/title]')[0]|raw}}</b></a> <br/>{{msg|split('[body]')[1]|split('[/body]')[0]|slice(0,200)|raw}}..<small><font color="gray"><b>({{date|slice(0,10)}})</b></font></small><br/>
<a href="main.php?f={{api.r.get('f')}}&type=nick&search={{nicks.nick}}">{{nicks.nick}}</a> [{{socmt}}]</div></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="/{{fuid}}&cmt=true&suid={{uid}}">Xem thêm {{socmt-5}} bình luận</a>{%endif%}{%endset%}
{%set status%}{%if api.r.get('cmt')=='true'%}[-xtcmt-]{{datecmt}}[-page-]<div class="ongoai"><div class="xam">{{msg|split('[title]')[1]|split('[/title]')[0]|raw}}</div><div class="khung">» Tác giả: <a href="user_info.php?uid={{nicks.uid}}">{{nicks.nick}}</a><br/>» Viết: {{date}}<br/><br/>{%set conts=msg|split('[body]')[1]|split('[/body]')[0]|raw%}{{conts|raw}}<br/>
Bình luận {{socmt}}</div></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="/{{fuid}}&cmt=true&suid={{uid}}">Xem thêm {{socmt-5}} bình luận</a>{%endif%}
{%else%}{%if api.r.get('search') is not empty%}{%set skey=api.r.get('type')%}{%set ssearch=api.r.get('search')%}{%if (skey=='nick' and ssearch==nicks.nick) or (skey=='title' and ssearch in ('!'~msg|split('[title]')[1]|split('[/title]')[0])) or (skey=='body' and ssearch in ('!'~msg|split('[body]')[1]|split('[/body]')[0])) or (skey=='date' and ssearch in ('!'~date))%}{{status2}}{%endif%}{%elseif api.r.get('search') is empty%}{{status2}}{%endif%}{%endif%}{%endset%}
{%set form%}<div class="khung" style="border: 0px !important;"><form action="{{form_url}}" method="post" class="nhanh" 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></div>{%endset%}
{%set zcmt=comment|split("[-yota-]")%}
{%if api.r.get("cmt")=="true"%}
{%if api.r.get("suid")==uid%}
{%set messages=status~'<div class="vdata">'~comment|split("[-yota-]")|join("")~form~'</div>'%}
{%else%}{%set messages=""%}{%endif%}
{%else%}
{%set messages=hiencmt=="true"?status~'<div class="vdata">'~zcmt[socmt-5]~zcmt[socmt-4]~zcmt[socmt-3]~zcmt[socmt-2]~zcmt[socmt-1]~(hienform=="true"?form:"")~'</div>':status%}
{%endif%}
{%if ghidden=="true"%}{%set messages=""%}{%endif%}
{% set sdata = sdata|merge({ ("thaian"~sid): messages}) %}
{% set sid=sid+1%}
{%endif%}
{%endfor%}
{%for i in 0..sid%}
{%for j in (i+1)..sid%}
{%if (sdata["thaian"~i]|split("[-xtcmt-]")[1]|slice(0,14))*1 < (sdata["thaian"~j]|split("[-xtcmt-]")[1]|slice(0,14))*1 %}
{%set temp=sdata["thaian"~j]%}
{%set sdata=sdata|merge({("thaian"~j):sdata["thaian"~i]})%}
{%set sdata=sdata|merge({("thaian"~i):temp})%}
{%endif%}
{%endfor%}
{%endfor%}
{%set spage=api.r.get("pusl")|default(0)%}
{%if spage>0%}{%set dau=spage*sotrang%}{%set cuoi


<div style="background-color:#fff"><span id="khung">{%for i in dau..cuoi%}<span id="xkhung">{{sdata["thaian"~i]|split("[-page-]")[1]|raw}}</span><i></i>{%endfor%}</span></div>
<div class="khung"><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></div>
{%endmacro%}
{%macro content(message,nick,message_date,delete_post_button)%}{%set dates=message_date%}
{%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-][-msS-]{%endmacro%}
{%import _self as blog%}
{%set sdata=''%}
{{_self.env.addGlobal('blog',blog)}}
{{_self.env.addGlobal('sdata',sdata)}}
+ Thêm shoutbox history
Ô 1:
{%set msg=message_list|split('[-msS-]')%}
{%set sdata=_self.env.getGlobals()['sdata']%}
{%set sdata=sdata~message_list%}{{_self.env.addGlobal('sdata',sdata)}}
{%set surl=_self.env.getGlobals()['surl']%}
{%if msg|length>=99%}
{%if surl is empty%}
{%set url=''%}
{%else%}
{%set url=surl%}
{%endif%}
{%else%}
{%if surl is not empty%}
{%set url=surl%}
{%else%}
{%set url=form_url%}
{%endif%}
{%endif%}
{{_self.env.addGlobal('surl',url)}}
{%set sdata=_self.env.getGlobals()['sdata']%}
{%set sdata=sdata~message_list%}{{_self.env.addGlobal('sdata',sdata)}}
{%set surl=_self.env.getGlobals()['surl']%}
{%if msg|length>=99%}
{%if surl is empty%}
{%set url=''%}
{%else%}
{%set url=surl%}
{%endif%}
{%else%}
{%if surl is not empty%}
{%set url=surl%}
{%else%}
{%set url=form_url%}
{%endif%}
{%endif%}
{{_self.env.addGlobal('surl',url)}}
ô 2
{{blog.content(message,nick,message_date,delete_post_button)}}
+ Thêm mã Twig
[code]<script type="text/javascript">
function writef(ff,vl)
{
var md=ff.desc.value;
ff.text.value=vl+"[-xcmt-]"+md;
}
</script>
{%if api.r.get('cmt')!='true'%}
<div class="titles">Đăng lên blog mới</div>
<div class="list2 left">
{%if api.r.getMethod()=='GET' and api.r.get('them') is empty%}<a href="main.php?f={{api.r.get('f')}}&them=ok">Thêm bài blog mới</a>{%endif%}
{%if api.r.getMethod()=='GET' and api.r.get('them')=='ok'%}
<form method="post">
Nhập tiêu đề blog<br/>
<input type="text" name="title" value="{{api.r.get('title')}}"/><br/>
Nhập nội dung status<br/>
<textarea name="body">{{api.r.get('body')}}</textarea><br/>
<input type="submit" value="Thêm"/>
</form>
{%endif%}
{%if api.r.getMethod()=='POST' and api.r.get('title') is not empty and api.r.get('body') is not empty%}
Bạn vừa nhập blog có tiêu đề là {{api.r.get('title')}}. Bạn có muốn thêm vào bên dưới?<br/>
<form action="{{_self.env.getGlobals()['surl']|replace({'them%3Dok':''})|raw}}" method="post">
<textarea name="text" style="display:none">[title]{{api.r.get('title')|default('Tiêu đề blog')}}[/title][body]{{api.r.get('body')|default('Nội dung blog')}}[/body]</textarea>
<input type="submit" value="Đồng ý thêm"/>
</form>
{%endif%}
</div>
<div class="titles">Tìm kiếm blog</div>
<div class="list2 left">
<form method="get" action="main.php?"><input type="hidden" name="f" value="{{api.r.get('f')}}"/>
Nhập từ khóa<br/>
<input type="text" name="search" value="{{api.r.get('search')}}"/><br/>
Tìm theo <select name="type"><option value="nick">Tên nick</option><option value="title">Tiêu đề</option><option value="body">Nội dung</option><option value="date">Ngày tạo</option></select><br/>
<input type="submit" value="Tìm ngay"/>
</form>
</div>
{%if api.r.get('them')!='ok'%}
<div class="titles">Danh sách Blog</div>
{%endif%}
{%endif%}
{%if api.r.get('them')!='ok'%}
{%set sdata=_self.env.getGlobals()['sdata']|split('[-msS-]')%}
{{blog.blog(sdata,_self.env.getGlobals()['surl'])}}
{%endif%}
<style type="text/css">
.khung{background-color: #ffffff; color: #339933; border: 1px #cacbc9 solid; margin: 1px; padding: 2px; text-align: left;}.xam { background-color: #cacbc9; color: #000000; padding-top: 2px; padding-bottom: 2px; text-align: center; font-weight: bold; }.khung img { vertical-align: top; }</style>
Vì độ phức tạp của code nên An không hướng dẫn gì thêm.
Nguồn: http://chonguoivotinh.wap.mu
Demo: http://chonguoivotinh.wap.mu/m ... 76044
code by thaian2009
nguồn: phonho
#1 (0) |