【Ecshop】v2.7.3模板变量标签改进
改进代码后虽可解决大多数函数参数的问题,但也同样产生了参数问题:ecshop模板函数参数有部分没有被引号包裹,所以正则并不能匹配到,要修改为引号包裹,那是个大工程。
为了使ecshop模板支持date,最终解决方法是,取消使用改进代码,date变量标签修改为:
case 'date': unset($s[0]); $str=implode(':',$s); $p="date({$str},".$p.')'; break;
改变不了别人,就改变自己...
<================================历史分割线============================>
今天使用ecshop模板格式化时间,{$time|date:'Y-m-d H:i:s'}
却一直没有显示出效果,查一下代码,发现处理变量标签的代码非常简单粗暴,只有一行
位置:includes/cls_template.php 大概590行:
$s = explode(':', $mod);
直接把时间格式给切掉几份了。
于是在其下添加两行代码改进:
$s = explode(':', $mod); #添加下面两行 preg_match_all('|([\'\"][^\'\"]+[\'\"])|',$mod,$match); $s=array_merge([$s[0]],$match[1]);
问题解决!
附:使ecshop支持date标签
在switch内添加:
case 'date': $p="date({$s[1]},".$p.')'; break;
OK!