pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件)

2023-12-01 0 292

二开导读

通过二开新增的这个标签可以实现按指定的字符进行遍历,不填写char参数默认使用逗号进行分割遍历。如下图:

图中想把abcd用竖线进行分割,也可以使用逗号或其他自定义符号

pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件)pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件)

然后前台用新增的标签进行遍历调用

{pboot:foreachstr={label:hotkey}char=|}
<ahref="/search/?keyword=[foreach:name]"target="_blank"rel="nofollow">[foreach:name]</a>
{/pboot:foreach}

修改步骤

1、打开\\apps\\home\\controller\\ParserController.php,搜索“$this->parserReplaceKeyword”,在其下方增加:

$content=$this->parserForeachLabel($content);//指定随意内容按条件遍历@pbhtml

pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件)

2、继续在之前文件里搜索“解析生成内容链接”,在其上方增加:

//解析指定随意内容遍历,支持设定分隔符@pbhtmlpublicfunctionparserForeachLabel($content){$pattern='/\\{pboot:foreach(\\s+[^}]+)?\\}([\\s\\S]*?)\\{\\/pboot:foreach\\}/';$pattern2='/\\[foreach:([\\w]+)(\\s+[^]]+)?\\]/';if(preg_match_all($pattern,$content,$matches)){$count=count($matches[0]);for($i=0;$i<$count;$i++){//获取调节参数$params=$this->parserParam($matches[1][$i]);$str='';$char=',';if(!self::checkLabelLevel($params)){$content=str_replace($matches[0][$i],'',$content);continue;}//分离参数foreach($paramsas$key=>$value){switch($key){case'num':$num=$value;break;case'str':$str=$value;break;case'char':if($value)$char=$value;break;}}//无数据直接替换为空并跳过if(!$str){$content=str_replace($matches[0][$i],'',$content);continue;}//匹配到内部标签if(preg_match_all($pattern2,$matches[2][$i],$matches2)){$count2=count($matches2[0]);//循环内的内容标签数量}else{$count2=0;}$out_html='';$key=1;$arr=explode($char,$str);foreach($arras$value){//按查询图片条数循环$one_html=$matches[2][$i];for($j=0;$j<$count2;$j++){//循环替换数据$params=$this->parserParam($matches2[2][$j]);switch($matches2[1][$j]){case'n':$one_html=str_replace($matches2[0][$j],$this->adjustLabelData($params,$key)-1,$one_html);break;case'i':$one_html=str_replace($matches2[0][$j],$this->adjustLabelData($params,$key),$one_html);break;case'name':$one_html=str_replace($matches2[0][$j],$this->adjustLabelData($params,$value),$one_html);break;}}$key++;$out_html.=$one_html;if(isset($num)&&$key>$num){unset($num);break;}}$content=str_replace($matches[0][$i],$out_html,$content);}}return$content;}

pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件)

调用标签

1、默认方式,用逗号进行分割,例如:定制表里填写了a,b,c,然后通过遍历组合生成搜索链接。

{pboot:foreachstr={label:hotkey}}<ahref="/search/?keyword=[foreach:name]"target="_blank"rel="nofollow">[foreach:name]</a>{/pboot:foreach}

2、其他分割符合,使用char参数,如:|

{pboot:foreachstr={label:hotkey}char=|}<ahref="/search/?keyword=[foreach:name]"target="_blank"rel="nofollow">[foreach:name]</a>{/pboot:foreach}

注意事项

二开文件随着在线更新后会消失,在线更新后需要手动重新二开。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Pbootcms教程 pbootcms增加foreach标签指定内容按条件遍历(默认逗号条件) https://www.u-9.cn/jiaocheng/pbootcms-jiaocheng/13194.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务