PHPCMS V9标签循环嵌套调用数据的方法

PHPCMS V9的标签制作以灵活见长,可以自由DIY出个性的数据调用,对于制作有风格有创意的网站模板很好用,今天就介绍一个标签循环嵌套方法,可以实现对PC标签循环调用,代码如下:

在此文件里/phpcms/lib/classes/template_cache.class.php 里的 template_parse 方法里,添加如下代码:

$str = preg_replace ("/\{loop(\S+)\s+(\S+)\s+(\S+)\}/","<?php \$n\\1=1;if(is_array(\\2)) foreach(\\2 AS \\3) { ?>", $str );
$str = preg_replace ("/\{loop(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\}/","<?php \$n\\1=1; if(is_array(\\2)) foreach(\\2 AS \\3 => \\4) { ?>", $str );
$str = preg_replace ("/\{\/loop(\S+)\}/","<?php \$n\\1++;}unset(\$n\\1); ?>", $str );

前台调用方法如下:

{pc:content action="category" catid="0" num="60" order="listorder ASC"}
  {loop $data $r}
    <dd> <a href="{$r[url]}">{$r[catname]}</a>
<ul>
    {pc:content action="category" catid="$r[catid]" num="60" order="listorder ASC" return="data2"}
    {loop2 $data2 $v}
    <li><a href="{$v[url]}">{$v[catname]}</a></li>
    {/loop2}
    {/pc}
</ul>
    </dd>
  {/loop}
{/pc}
posted @   -j神-----  阅读(4678)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示