管理进化

smarty教程


smarty教程包含以下内容:1.下载Smarty文件放到站点中;2. section循环块与foreach循环块;3. foreach 输出一个“二维关联数组”的数据;4. 使用{section}来替代。

1.下载Smarty文件放到站点中

index.php代码如下:

<?php /** * * @version $Id: index.php * @package * @author www.jb51.net * @action 显示实例程序 */ include_once("./Smarty/Smarty.class.php"); //包含smarty类文件

$smarty = new Smarty(); //建立smarty实例对象$smarty $smarty->templates("./templates"); //设置模板目录$smarty->templates_c("./templates_c"); //设置编译目录$smarty->cache("./cache"); //缓存目录$smarty->cache_lifetime = 0; //缓存时间$smarty->caching = true; //缓存方式

$smarty->left_delimiter = "{#"; $smarty->right_delimiter = "#}"; $smarty->assign("name", "zaocha"); //进行模板变量替换$smarty->display("index.htm"); //编译并显示位于./templates下的index.htm模板 ?>

2. section循环块与foreach循环块

section循环块与foreach循环块,本来它应该属于模板部分,但是由于它们是smarty的精华所在,而且与smarty程序设计部分联系非常紧密,所以就在本节单独拿出来讲一下。

foreach:用于循环简单数组,它是一个选择性的section循环,它的定义格式为:

{foreach from=$array item=array_id} {foreachelse} {/foreach}

其中,from 指出要循环的数组变量,item为要循环的变量名称,循环次数由from所指定的数组变量的个数所决定。{foreachelse}用来当程序中传递过来的数组为空时的处理。

3. foreach 输出一个“二维关联数组”的数据

{#foreach item=new from=$news#}

新闻编号:{#$new.id#}

新闻内容:{#$new.title#}

{#foreachelse#}数据库中没有新闻输出!

{#/foreach#}

{foreach from=$newsArray item=newsID}新闻编号:{$newsID}新闻内容:{$newsTitle}{foreachelse}对不起,数据库中没有新闻输出!

{/foreach}

4. 使用{section}来替代

我们把上边的那个例子使用{section}来替代{foreach}来实现现样的功能,注意,在这个例子中我只将tpl模板中的{foreach}用{section}来实现,php程序文件中没有任何改动,同时加了{sectionelse}处理块:

example.tpl模板文件如下:

这里将输出一个数组:

{section name=loop loop=$News} 新闻编号:{$News[loop].newsID} 新闻标题:{$News[loop].newsTitle} {sectionelse} 对不起,没有任何新闻输入! {/section}

5. 这里的{section}块的对于变量的命名方式感觉有些别扭,不过没关系,你只要记住模板变量使用:

$loopName[name].var这种模式就行了,loopName为loop处赋予的变量名,[name]为name处赋予的字符串,.后为为你要在程序数组中设定要与值相对应的下标名称就行了。


最后,推荐我们的管理工具给大家。

智齿客服