前面我的一篇博文中已经讲到DEDECMS怎么新增自定义文档属性,在实际使用过程中,又发现了一个有趣的BUG。 当用户新增自定义属性代码为多位字符的时候,提交文章后,会出现识别错误。
例如: ID 属性名称 a 首屏 b 推荐 ab 自定义焦点 如果新发布文章时,选择属性为“ab”,文章提交发布成功后,在文章编辑界面,你会发现,属性变成了“a”、“b”、“ab”三个都被选中
检查代码后发现,Dedecms团队在文章编辑页面,做属性轮询时,用了一个正则来匹配:
if(preg_match("#".$trow->att."#",$arcRow['flag'] ))
这就是出错原因所在了,知道原因,就好修改了,我们改为:
$flags = explode(',',$arcRow['flag']);
if(in_array($trow->att,$flags))
OK,再测试,没有问题了




