找回密码
 立即注册
搜索

途迹耕耘

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

GMT+8, 2025-12-22 04:12 , Processed in 0.192317 second(s), 14 queries .

[DZ教程] Discuz! 模板页面loop循环用法

[复制链接]
admin 发表于 2020-5-2 00:06:26 | 显示全部楼层 |阅读模式
在discuz模板页面,loop是起到循环数组的作用,如:
  1. <!--{loop $postlist $post}-->
  2.        $post[author]
  3. <!--{/loop}-->
复制代码
$postlist是一个主题的帖子数组,通过loop循环,输出每个帖子的用户名称,既可以通过这种方法来实现。
有时候需要控制loop的循环次数,比如我只想输出这个主题的作者,根据discuz的内容页模板,只有这个$postlist提供了所有的帖子数据,为了实现这个效果,我们可以通过控制loop的循环次数来做。

分析:
首先主题的作者的话,肯定是第一个循环里面的,那么我们想办法来实现,循环第一个数组之后,就跳出循环就行了。
一个小插曲,在discuz的模板页面也是可以写PHP代码的,书写方法如下:
  1. <!--{eval
  2. $a=1;
  3. echo $a;
  4. }-->
复制代码
这样就可以打印出$a的值了。其原理就是,在eval标签里面,discuz会自动解析成PHP代码来执行。
到这里,我们就可以采用PHP来控制loop了,这样就简单多
通过定义一个变量$i,循环的时候,$i++,要循环几次,通过控制$i的数字大小就行了,然后break一下,即退出循环。代码示例:
  1. <!--{eval $i=1;}-->
  2.     <!--{loop $postlist $post}-->
  3.      $post[author]
  4.       <!--{eval $i++}-->
  5.       <!--{eval if($i==2) break;}-->
  6. <!--{/loop}-->
复制代码
这样既可以实现,循环一次,退出循环。也就是只输出主题的作者了。