找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1177|回复: 0

[分享] 有关dede静态模板类dede:foreach的使用

[复制链接]
发表于 2018-2-25 09:55:30 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
刚刚接触织梦,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵
在测试的时候发现静态模板类里面的
{dede:foreach array=”数组名”} [field:key/] [field:value/] {/dede:foreach}这本标签总不能正常使用,执行后总是返回 [field:key/] [field:value/] [field:key/] [field:value/] ….n个“[field:key/] [field:value/] ”而不是正在的数据,在网上搜了搜,结果大部分都是转载织梦系统的原装帮助文档里面的资料,没有说明此问题,这里有人也遇到了一样的问题,本来想回复他来,可是我是新人,他所在的版块我无权回复,就发一个新帖了,呵呵,扯远了,书归正传!
为什么会有这样的效果呢,数组名设置后是可以遍历的,而且遍历的次数也是对了,就是数据不能正常显示
肯定是哪里解析错误了,
顺着思路往下找,
最后在include/dedetag.class.php文件中的第578行和579行(版本不一样可能不同,在该文件的AssignSysTag()方法体里面)找到了答案!
  1. $istr .= preg_replace(“/\[field:key([\r\n\t\f ]+)\/\]/is”,$k,$this->CTags[$i]->InnerText);
  2. $str .= preg_replace(“/\[field:value([\r\n\t\f ]+)\/\]/is”,$v,$istr);
复制代码

问题就在正则表达式上,主要是这部分([\r\n\t\f ]+)
说明在 [field:key 与 /] 之间可以包含换行、制表符、空格,但是不能什么都没有
也就是说 [field:key/]是不对的
必须是
[field:key /](空格的)

[field:key /](制表符的)

[field:key
/](换行的)
这样就解决问题了,我测试是可以的。
=============================
希望对需要的人可以解决问题!

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

▶专业解决各类DiscuzX疑难杂症、discuz版本升级 、网站搬家 和 云服务器销售!▶有偿服务QQ 860855665 更多精品应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-3-10 10:06 , Processed in 0.053330 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表