站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SpeedPHP/用Smarty来显示页面
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{SpeedPHP top}} 本条目我们介绍[[Smarty]]模板引擎技术,同时把我们的留言本程序也变成应用Smarty模板的程序;还可以做到挺有意思的换皮肤功能。 ==用Smarty来显示页面== 首先,我们要在根目录中建立tpl(模板文件目录)和tmp(临时文件目录),然后在index.php中配置一下: <pre> <?php define("SP_PATH",dirname(__FILE__)."/SpeedPHP"); define("APP_PATH",dirname(__FILE__)."/guestbook"); $spConfig = array( "db" => array( 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'teach', ), 'view' => array( 'enabled' => TRUE, // 开启Smarty 'config' =>array( 'template_dir' => APP_PATH.'/tpl', // 模板存放的目录 'compile_dir' => APP_PATH.'/tmp', // 编译的临时目录 'cache_dir' => APP_PATH.'/tmp', // 缓存的临时目录 'left_delimiter' => '<{', // smarty左限定符 'right_delimiter' => '}>', // smarty右限定符 ), ), ); require(SP_PATH."/SpeedPHP.php"); spRun(); // SpeedPHP 3新特性 </pre> 我们加入了view的配置,这样就可以使用smarty进行模板的开发了。同时我们将main.php去除了查看内容的页面,让内容和标题都在同一页面显示。 <pre> <?php class main extends spController { function index(){ // 这里是首页 $guestbook = spClass("guestbook"); $this->results = $guestbook->findAll(); // 用$this->results可以将$guestbook->findAll()的值发送到模板上面,模板上可以用$results来使用该值。 $this->display("white/index.html"); // 显示模板,这里使用的模板是根目录/tpl/green/index.html。 } function write(){ // 这里是留言 $guestbook = spClass("guestbook"); $newrow = array( // 这里制作新增记录的值 'name' => $this->spArgs('name'), 'title' => $this->spArgs('title'), // 从spArgs获取到表单提交上来的title 'contents' => $this->spArgs('contents'), ); $guestbook->create($newrow); echo "留言成功,<a href=/index.php>返回</a>"; } } </pre> 我们下载了留言本的模板后,放到tpl目录下,浏览一下,我们的留言本已经变成了一个白色的留言本了。 ===如何写Smarty模板=== 下面我们来学习一下怎么写Smarty模板,打开tpl/white/index.html看看: <pre> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>白色留言本</title> <link href="guestbook/tpl/white/css.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="main"> <h1><a href="#"><span>我的白色留言本</span></a></h1> <div class="boxin"> <h2 class="tutor">请填写您的留言</h2> <form action="<{spUrl c=main a=write}>" method=POST> <p>您的名字:<input type=text name='name' size=40></p> <p>留言标题:<input type=text name='title' size=40></p> <p>留言内容:</p> <p><textarea name=contents cols=60 rows=6></textarea></p> <p><input type=submit value=" 提交 "></p> </form> <ul class="list"> <{foreach from=$results item=one}> <li><span><{$one.name}></span><a href="#"><{$one.title}></a><br /><{$one.contents}></li> <{/foreach}> </ul> </div> </div> <div id="footer" style="clear:both;"> <select name="选择模板" onchange="location.href=this.options[this.selectedIndex].value;"><option> 模板选择...</option> <option value="/?tpl=green">绿色风格</option><option value="/?tpl=blue">蓝色风格</option> <option value="/?tpl=green2">绿色风格2</option><option value="/?tpl=white">白色风格</option></select> </div> </div> </body> </html> </pre> 我们可以分开两部分进行了解,首先是表单部分: <pre> ... <form action="<{spUrl c=main a=write}>" method=POST> <p>您的名字:<input type=text name='name' size=40></p> <p>留言标题:<input type=text name='title' size=40></p> <p>留言内容:</p> <p><textarea name=contents cols=60 rows=6></textarea></p> <p><input type=submit value=" 提交 "></p> </form> ... </pre> 表单部分使用了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。 然后是循环输出留言记录部分: <pre> ... <ul class="list"> <{foreach from=$results item=one}> <li><span><{$one.name}></span><a href="#"><{$one.title}></a><br /><{$one.contents}></li> <{/foreach}> </ul> ... </pre> 这里使用了<{foreach}>来循环$results,以输出name,title和contents几个值。 我们看看生成源代码的结果: <pre> ... <ul class="list"> <li><span>jake</span><a href="#">我是标题</a><br />哈哈</li> <li><span>喜羊羊</span><a href="#">我是标题</a><br />333</li> </ul> ... </pre> 以上我们初步了解了sp框架应用Smarty模板技术的方法以及模板的基础写法,下面我们在[[代码]]上面修改一下,让程序变得更有趣。 main.php: <pre> <?php class main extends spController { function index(){ // 这里是首页 $tpl = $this->spArgs("tpl", "green"); // 这里接收tpl参数,使得模板变化,后面的green是tpl为空时的默认值。 $guestbook = spClass("guestbook"); $this->results = $guestbook->findAll(); $this->display("{$tpl}/index.html"); } function write(){ // 这里是留言 $guestbook = spClass("guestbook"); $newrow = array( // 这里制作新增记录的值 'name' => $this->spArgs('name'), 'title' => $this->spArgs('title'), // 从spArgs获取到表单提交上来的title 'contents' => $this->spArgs('contents'), ); $guestbook->create($newrow); echo "留言成功,<a href=/index.php>返回</a>"; } } </pre> 我们用spArgs来接收一个叫tpl的参数,它默认是green,也就是获取green目录下的模板。如果这参数变成了blue,那么就是获取blue目录下的模板了,这样我们的留言本就可以换皮肤了。当然我们已经在模板上面加上了一个下拉选择来让访问者选择模板,这里我们提供了四套模板。 注意:“$this->名称 = 值”的模板赋值方式,是使用[[PHP]]5的新特性——魔术函数来实现的。但是已定义控制器属性的变量,是不具备传值到模板的功能。 ==参考来源== http://speedphp.com/manual.html {{SpeedPHP}} [[category:SpeedPHP|Y]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:SpeedPHP
(
编辑
)
模板:SpeedPHP top
(
编辑
)