SmartTemplate 实例分析——基本语法[basic]之Iterating_Blocks
2009-01-12 02:10
666 查看
SmartTemplate 1.2.1 官方源文件 可以从http://download.csdn.net/source/670995下载
本系列文章中的实例代码可以到我的资源http://download.csdn.net/source/670977下载
以前学东西都是东一块西一块的,现在正好有时间,学点东西,同时也做一下记录,以便备忘,也希望可以帮到学习SmartTemplate 的同学,初学,文中难免有纰漏,如有错误或不同意见,希望可以跟我联系lxbin544930@163.com,我会及时更正,共勉。
6. Iterating_Blocks
【Content】basic/Iterating_Blocks.php:
【Template】templates/basic/Iterating_Blocks.html:
【Return】
【效果图】
【琐记】
这是一个在模板中使用<!-- BEGIN 变量 --><!-- END 变量 -->来表现迭代数据块的例子,其实算是BEGIN END的最简单的应用,应该放到Alternating_Colors之前的,但是既然已经在Alternating_Colors篇里啰嗦了那许多了,这篇参考Alternating_Colors里好了,偷懒一下。。。SmartTemplate 实例分析——基本语法[basic]之DropDown_Boxes
至此,官方模板Basic文件夹的6个基本示例基本讲解完毕。SmartTemplate模板的使用非常的简单明了,如果你已经爱上它了,那么,继续爱吧。。
【附录】
include/class.smarttemplateparser.php中解析<!-- BEGIN 变量-->.....<!-- END 变量-->的PHP代码(不做解释,仅供参考,方便理解和查阅)
本系列文章中的实例代码可以到我的资源http://download.csdn.net/source/670977下载
以前学东西都是东一块西一块的,现在正好有时间,学点东西,同时也做一下记录,以便备忘,也希望可以帮到学习SmartTemplate 的同学,初学,文中难免有纰漏,如有错误或不同意见,希望可以跟我联系lxbin544930@163.com,我会及时更正,共勉。
6. Iterating_Blocks
【Content】basic/Iterating_Blocks.php:
<?php require_once "../config/smarttemplate_basic.cfg.php"; $users = array( array( 'FIRSTNAME' => 'John', 'LASTNAME' => 'Doe', ), array( 'FIRSTNAME' => 'Roger', 'LASTNAME' => 'Rabbit', ), ); $page = new SmartTemplate("Iterating_Blocks.html"); $page->assign('users', $users ); $page->output(); ?>
【Template】templates/basic/Iterating_Blocks.html:
<HTML> <TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0"> <!-- BEGIN users --> <TR> <TD> {FIRSTNAME} </TD> <TD> {LASTNAME} </TD> </TR> <!-- END users --> </TABLE> </HTML>
【Return】
<HTML> <TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0"> <TR> <TD> John </TD> <TD> Doe </TD> </TR> <TR> <TD> Roger </TD> <TD> Rabbit </TD> </TR> </TABLE> </HTML>
【效果图】
【琐记】
这是一个在模板中使用<!-- BEGIN 变量 --><!-- END 变量 -->来表现迭代数据块的例子,其实算是BEGIN END的最简单的应用,应该放到Alternating_Colors之前的,但是既然已经在Alternating_Colors篇里啰嗦了那许多了,这篇参考Alternating_Colors里好了,偷懒一下。。。SmartTemplate 实例分析——基本语法[basic]之DropDown_Boxes
至此,官方模板Basic文件夹的6个基本示例基本讲解完毕。SmartTemplate模板的使用非常的简单明了,如果你已经爱上它了,那么,继续爱吧。。
【附录】
include/class.smarttemplateparser.php中解析<!-- BEGIN 变量-->.....<!-- END 变量-->的PHP代码(不做解释,仅供参考,方便理解和查阅)
// 'BEGIN - END' Blocks if (preg_match_all('/<!-- BEGIN ([a-zA-Z0-9_.]+) -->/', $page, $var)) { foreach ($var[1] as $tag) { list($parent, $block) = $this->var_name($tag); $code = "<?php/n" . "if (!empty(/$$parent"."['$block'])){/n" . "if (!is_array(/$$parent"."['$block']))/n" . "/$$parent"."['$block']=array(array('$block'=>/$$parent"."['$block']));/n" . "/$_tmp_arr_keys=array_keys(/$$parent"."['$block']);/n" . "if (/$_tmp_arr_keys[0]!='0')/n" . "/$$parent"."['$block']=array(0=>/$$parent"."['$block']);/n" . "/$_stack[/$_stack_cnt++]=/$_obj;/n" . "foreach (/$$parent"."['$block'] as /$rowcnt=>/$$block) {/n" . "/$$block"."['ROWCNT']=/$rowcnt;/n" . "/$$block"."['ALTROW']=/$rowcnt%2;/n" . "/$$block"."['ROWBIT']=/$rowcnt%2;/n" . "/$_obj=&/$$block;/n?>"; $page = str_replace("<!-- BEGIN $tag -->", $code, $page); } }
相关文章推荐
- SmartTemplate 实例分析——基本语法[basic]之Nested_Blocks
- SmartTemplate 实例分析——基本语法[basic]之Special_Characters
- SmartTemplate 实例分析——基本语法[basic]之DropDown_Boxes
- SmartTemplate 实例分析——基本语法[basic]之Hello_Word
- SmartTemplate 实例分析——基本语法[basic]之Alternating_Colors
- C++类基本语法实例分析
- JS建造者模式基本用法实例分析
- PHP基本语法实例总结
- PHP入门教程之面向对象基本概念实例分析
- IOS 基础媒体文件格式语法描述和语意(MP4文件格式分析实例)
- c++中map的基本用法和嵌套用法实例分析
- javascript基本语法分析说明
- Python排序搜索基本算法之冒泡排序实例分析
- HTML基本语法和语义写法规则与实例
- 了解blocks基本语法
- JSON.stringify语法实例分析
- Python爬虫之正则表达式基本用法实例分析
- python字典基本操作实例分析
- Oracle存储过程基本语法与基础教程(简明清楚且附实例)
- Java并发06:Thread的基本方法(3)-yield方法的分析与实例说明