有关dede静态模板类dede:foreach的使用

刚刚接触织梦,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵在测试的时候发现静态模板类里面的{dede:foreach array="数组名"} [field:key/] [field:value/] {/dede:foreach}这本标签总不能正常使用,…

刚刚接触织梦,就从基础看起,希望大家不要见笑,多多鼓励啊 呵呵
在测试的时候发现静态模板类里面的
{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()方法体里面)找到了答案!

$istr .= preg_replace(“/\[field:key([\r\n\t\f ]+)\/\]/is”,$k,$this->CTags[$i]->InnerText);
$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
/](换行的)

这样就解决问题了,我测试是可以的。

=============================
希望对需要的人可以解决问题!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

很多新手朋友,对织梦dedecms一些模板的命名不是很了解,或者就是不知道一些模板文件是做什么用的,下面小编对一些模板文件做一一说明(请注意以下模板文件路径,模板所处的路径是不同的): 单页图文:/templets/default/singepage.htm 留言板:/templets/p
对于我们下载或者购买的没有数据的织梦模板一般需要我们去模板中指定id,对于们没有操作过织梦后台的朋友来说看起来很难,其实并不是想象的那么难,只需要我们知道在哪看id,在哪指定id,前台会出现在哪就可以,同时我们只需要认识其中一个标签就可以喽!下
DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持
织梦(DedeCMS)模板也是一种财富,不想自己辛辛苦苦做的模板被盗用,在互联网上出现一些和自己一模一样的网站,就需要做好模板防盗。本文是收集整理自网络,不过网上的版本都没有提供 Nginx 301重定向实现dedecms模板防盗的方法和403文件禁止实现织梦模板
制作织梦DedeCMS模板的过程中,很多东西是标签无法解决的。比如我需要把文本转为HTML格式,或者反过来,需要把HTML格式转换为单纯的文本。这些都没有也无法用织梦标签的形式解决。不过织梦DedeCMS已经考虑到了这个问题,提供了比较常用的模板公共函数,我
关键字描述:标签 代码 模板 标记 表示 文档 quot 属性 orderby 这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autol