ecshop模板引擎学习

ecshop模板引擎比较简单,相对于smarty要轻量多了,她的实现不到1500行的代码,一个文件搞定。
参考ecshop模板引擎的文档时,里面提到了 {if $num is odd} 的语法,觉得这个语法不错,就尝试了一下,结果失败,查看了一下模板引擎的代码,发现该语法不知道什么时候已经没有了,出于好奇,简单看了一下语法解析的实现,可以通过简单的hack来添加该语法。
在cls_template.php 的 _compile_if_tag 函数中添加如下分支:

 
  1. <?php
  2.                 case ‘is’:
  3.                     $token = ‘%’;
  4.                     $i++;
  5.                     if($tokens[$i] == ‘odd’) {
  6.                         $tokens[$i] = ‘2 == 0’;
  7.                     }else if($tokens[$i] == ‘even’) {
  8.                         $tokens[$i] = ‘2 == 1’;
  9.                     }else {
  10.                         throw new exception("is odd or is even");
  11.                     }
  12.                     break;
  13. ?>

当然,这里只共学习之用,随便hack别人的代码是不好的。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据