前面我们制作了一个留言本程序。不过因为用了和多echo来输出HTML,代码看起来很乱,而且这样修改起来也比较麻烦。所以本章我们介绍Smarty模板引擎技术,同时把我们的留言本程序也变成应用Smarty模板的程序;还可以做到挺有意思的换皮肤功能。
Smarty留言本例子下载
PHP模板引擎技术是一种将HTML模板与PHP代码分离的技术,同时它提供了简单的模板语法和数据传递的机制,使得我们可以更为简便和安全地进行开发。
Smarty由PHP官方出品,是目前最成熟也是最广泛使用的PHP模板引擎技术。
首先,我们要在根目录中建立tpl(模板文件目录)和tmp(临时文件目录),然后在index.php中配置一下:
02 |
define( "SP_PATH" ,dirname( __FILE__ ). "/SpeedPHP" );
|
03 |
define( "APP_PATH" ,dirname( __FILE__ ). "/guestbook" );
|
06 |
'host' => 'localhost' ,
|
09 |
'database' => 'teach' ,
|
14 |
'template_dir' => APP_PATH. '/tpl' ,
|
15 |
'compile_dir' => APP_PATH. '/tmp' ,
|
16 |
'cache_dir' => APP_PATH. '/tmp' ,
|
17 |
'left_delimiter' => '<{' ,
|
18 |
'right_delimiter' => '}>' ,
|
22 |
require (SP_PATH. "/SpeedPHP.php" );
|
我们加入了view的配置,这样就可以使用smarty进行模板的开发了。同时我们将main.php去除了查看内容的页面,让内容和标题都在同一页面显示。
02 |
class main extends spController
|
05 |
$guestbook = spClass( "guestbook" );
|
06 |
$this ->results = $guestbook ->findAll();
|
07 |
$this ->display( "white/index.html" );
|
10 |
$guestbook = spClass( "guestbook" );
|
12 |
'name' => $this ->spArgs( 'name' ),
|
13 |
'title' => $this ->spArgs( 'title' ),
|
14 |
'contents' => $this ->spArgs( 'contents' ),
|
16 |
$guestbook ->create( $newrow );
|
17 |
echo "留言成功,<a href=/index.php>返回</a>" ;
|
我们下载了留言本的模板后,放到tpl目录下:
浏览一下,我们的留言本已经变成了一个白色的留言本了。
在日常的团队开发工作中,页面模板首先是由美工人员制作出页面图,然后由前端网页设计人员来根据页面图来进行模板的制作,程序员主要的工作是将模板及PHP程序对接。当然很多情况下网页设计人员和程序员是同一个人,网页设计人员主要的技能要求有:1.使用DREAMWEAVER等工具进行网页设计能力。2.能手写基本的HTML代码。3.初步了解Smarty。4.熟悉JavaScript,Flash等相关的前端技术。
所以在我们的sp框架的教程中,页面模板已经都是准备好的,至少是完整的页面(但不包括Smarty代码),这样可以让大家更专注于学习PHP开发。当然我们也将陆续推出一些关于前端网页设计等相关技术的教程,供大家参考学习。
下面我们来学习一下怎么写Smarty模板,打开tpl/white/index.html看看:
04 |
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
|
06 |
<link href= "guestbook/tpl/white/css.css" rel= "stylesheet" type= "text/css" />
|
10 |
<h1><a href= "#" ><span>我的白色留言本</span></a></h1>
|
12 |
<h2 class = "tutor" >请填写您的留言</h2>
|
13 |
<form action= "<{spUrl c=main a=write}>" method=POST>
|
14 |
<p>您的名字:<input type=text name= 'name' size=40></p>
|
15 |
<p>留言标题:<input type=text name= 'title' size=40></p>
|
17 |
<p><textarea name=contents cols=60 rows=6></textarea></p>
|
18 |
<p><input type=submit value= " 提交 " ></p>
|
21 |
<{ foreach from= $results item=one}>
|
22 |
<li><span><{ $one .name}></span><a href= "#" ><{ $one .title}></a><br /><{ $one .contents}></li>
|
27 |
<div id= "footer" style= "clear:both;" >
|
28 |
<select name= "选择模板" onchange= "location.href=this.options[this.selectedIndex].value;" ><option> 模板选择...</option>
|
29 |
<option value= "/?tpl=green" >绿色风格</option><option value= "/?tpl=blue" >蓝色风格</option><option value= "/?tpl=green2" >绿色风格2</option><option value= "/?tpl=white" >白色风格</option></select>
|
我们可以分开两部分进行了解,首先是表单部分:
2 |
<form action= "<{spUrl c=main a=write}>" method=POST>
|
3 |
<p>您的名字:<input type=text name= 'name' size=40></p>
|
4 |
<p>留言标题:<input type=text name= 'title' size=40></p>
|
6 |
<p><textarea name=contents cols=60 rows=6></textarea></p>
|
7 |
<p><input type=submit value= " 提交 " ></p>
|
表单部分使用了spUrl来制作一个表单提交的地址:
<form action="<{spUrl c=main a=write}>" method=POST>
我们在浏览器上面右键看源代码,就可以看到:
<form action="/index.php?c=main&a=write" method=POST>
也就是<{spUrl c=main a=write}>会生成地址:/index.php?c=man&a=write。
然后是循环输出留言记录部分:
3 |
<{ foreach from= $results item=one}>
|
4 |
<li><span><{ $one .name}></span><a href= "#" ><{ $one .title}></a><br /><{ $one .contents}></li>
|
这里使用了<{foreach}>来循环$results,以输出name,title和contents几个值。
我们看看生成源代码的结果:
3 |
<li><span>jake</span><a href= "#" >我是标题</a><br />哈哈</li>
|
4 |
<li><span>喜羊羊</span><a href= "#" >我是标题</a><br />333</li>
|
以上我们初步了解了sp框架应用Smarty模板技术的方法以及模板的基础写法,下面我们在代码上面修改一下,让程序变得更有趣。
main.php
02 |
class main extends spController
|
05 |
$tpl = $this ->spArgs( "tpl" , "green" );
|
06 |
$guestbook = spClass( "guestbook" );
|
07 |
$this ->results = $guestbook ->findAll();
|
08 |
$this ->display( "{$tpl}/index.html" );
|
11 |
$guestbook = spClass( "guestbook" );
|
13 |
'name' => $this ->spArgs( 'name' ),
|
14 |
'title' => $this ->spArgs( 'title' ),
|
15 |
'contents' => $this ->spArgs( 'contents' ),
|
17 |
$guestbook ->create( $newrow );
|
18 |
echo "留言成功,<a href=/index.php>返回</a>" ;
|
我们用spArgs来接收一个叫tpl的参数,它默认是green,也就是获取green目录下的模板。如果这参数变成了blue,那么就是获取blue目录下的模板了,这样我们的留言本就可以换皮肤了。当然我们已经在模板上面加上了一个下拉选择来让访问者选择模板,这里我们提供了四套模板。
分享到:
相关推荐
现在就用30分钟让您快速入门。 一. 安装 首先打开网页http://smarty.PHP.net/download.PHP,下载最新版本的Smarty。解压下载的文件(目录结构还蛮复杂的)。接下来我演示给大家一个安装实例,看过应该会举一反三的...
小易Smalle博文:Smarty模板快速入门http://blog.csdn.net/oldinaction/article/details/48297521相关实例源代码
smarty3 入门实例,Smarty-3.1.16。
smarty模板,调用静态页面模板,Smarty-2.6.22
菜鸟学PHP之Smarty入门 php入门级教程 手把手教你学会smarty
php之smarty入门
smarty下载及入门教程.pdf
讲解了 Smarty的安装和入门 比较适合 Smarty的初学者
菜鸟学PHP之Smarty入门菜鸟学PHP之Smarty入门
这个是Smarty3入门Demo,比较简单
smarty入门,轻松入门smarty
这篇文章的主要用意并非要深入探讨 Smarty 的使用,但让想要了解 Smarty 却不得其门而入的朋友,可以从中得到一些启示。就因为这篇文章的内容不是非常深入,会使用 Smarty 的朋友们可能会觉得简单了点。
1、Smarty介绍及应用的优缺点 2、Smarty的配置 3、Smarty的应用:变量,循环…
精心整理的手册集合 包含html5+javascript+jQuery+php5+smarty完全中文手册+ThinkPHP快速入门手册 需要的可以下载
Smarty 入门.rarSmarty 入门.rarSmarty 入门.rarSmarty 入门.rarSmarty 入门.rarSmarty 入门.rarSmarty 入门.rarSmarty 入门.rar
本文档主要讲述的是PHP模板之Smarty安装与使用入门教程;我们知道PHP语言作为开源社区的一员,提供了各种模板引擎,如 FastTemplate,Smarty,SimpleTemplate等,而 Smarty是现在使用得比较多的PHP模板引擎,今天和...
菜鸟学PHP之Smarty入门(组图)
php+smarty输出资讯列表,生成html静态
Smarty Smarty Smarty