今天模仿一個博客樣式的論壇。貼內循環遇到了問題,怎么才能把貼內和博客一樣樓主和其他回復分開循環呢,于是我研究了一下if函數。
<!--{loop $postlist $post}-->
<!--{if $rushreply && $_GET['checkrush'] && $post['rewardfloor'] != 1}-->
<!--{eval continue;}-->
<!--{/if}-->
<div id="post_$post[pid]"><!--{subtemplate forum/viewthread_node}--></div>
<!--{eval $postcount++;}-->
<!--{/loop}-->
這是默認的循環,可以看得出,樓主和回復是一起循環的。怎么分開呢。。首先、我想到了< !--{if $post['first']}-->即只有樓主顯示。通過< !--{else}-->把他們分開循環。結果發現不放在< !--{loop $postlist $post}-->中< !--{if $post['first']}-->就無法識別。這時我想到通過div控制。但是做成博客樣式的確復雜,我想讓一部分div循環,一部分不循環,眾所周知,樓主語句只會執行1次。是不會循環的,于是。我加了個判斷在< !--{if $post['first']}-->后面,< !--{if $_G['forum_thread']['replies']}-->即有回復則顯示。果然成功了。那個激動啊。展示下完整代碼:
<!--{loop $postlist $post}-->
<!--{if $rushreply && $_GET['checkrush'] && $post['rewardfloor'] != 1}-->
<!--{eval continue;}-->
<!--{/if}-->
<!--{if $post['first']}-->
<div id="post_$post[pid]" class="box"><!--{subtemplate forum/viewthread_node}--></div>
<!--{if $_G['forum_thread']['replies']}-->
回復要單獨顯示且不循環的內容
<!--{/if}-->
<!--{else}-->
<div id="post_$post[pid]">
<div class="cell"><!--{subtemplate forum/viewthread_node}--></div>
</div>
<!--{/if}-->
<!--{eval $postcount++;}-->
<!--{/loop}-->
通過這種方式便可以做成博客樣式了。如果你有更好的方法希望留言,大家一起研究下。
更多信息請查看IT技術專欄