|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。疾速入门|模板 在PHP的世界里已呈现了林林总总的模板类,但就功效和速度来讲Smarty仍是一向处于抢先位置,由于Smarty的功效绝对壮大,所以利用起来比其他一些模板类稍显庞杂了一点。如今就用30分钟让您疾速入门。
一. 装置
起首翻开网页http://smarty.php.net/download.php,下载最新版本的Smarty。解压下载的文件(目次布局还蛮庞杂的)。接上去我演示给人人一个装置实例,看过应当会触类旁通的。
(1) 我在根目次下创立了新的目次learn/,再在learn/里创立一个目次smarty/。将方才解紧缩出来的目次的libs/拷贝到smarty/里,再在smarty/里新建templates目次,templates里新建cache/,templates/,templates_c/, config/.
(2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目次下,代码以下:
[复制此代码]CODE:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Smarty</title>
</head>
<body>
{$hello}
</body>
</html>
新建index.php,将此文件放在learn/下:
[复制此代码]CODE:<?php
//援用类文件
require 'smarty/libs/Smarty.class.php';
$smarty = new Smarty;
//设置各个目次的途径,这里是装置的重点
$smarty->template_dir = "smarty/templates/templates";
$smarty->compile_dir = "smarty/templates/templates_c";
$smarty->config_dir = "smarty/templates/config";
$smarty->cache_dir = "smarty/templates/cache";
//smarty模板有高速缓存的功效,假如这里是true的话即翻开caching,然而会形成网页不当即更新的成绩,固然也能够经由过程其他的举措处理
$smarty->caching = false;
$hello = "Hello World!";
//赋值
$smarty->assign("hello",$hello);
//援用模板文件
$smarty->display('index.tpl');
?>
(3) 履行index.php就可以看到Hello World!了。
二. 赋值
在模板文件中需求交换的值用大括号{}括起来,值的后面还要加$号。例如{$hello}。这里可所以数组,好比{$hello.item1},{$hello.item2}…
而PHP源文件中只需求一个复杂的函数assign(var , value)。
复杂的例子:
*.tpl:
Hello,{$exp.name}! Good {$exp.time}
*.php:
$hello[name] = “Mr. Green”;
$hello[time]=”morning”;
$smarty->assign(“exp”,$hello);
output:
Hello,Mr.Green! Good morning
三. 援用
网站中的网页普通header和footer是可以共用的,所以只需在每一个tpl中援用它们就能够了。
示例:*.tpl:
{include file="header.tpl"}
{* body of template goes here *}
{include file="footer.tpl"}
四. 判别
模板文件中可使用if else等判别语句,便可以将一些逻辑法式放在模板里。"eq", "ne", "neq", "gt", "lt", "lte", "le", "gte" "ge", "is even", "is odd", "is not even", "is not odd", "not", "mod", "div by", "even by", "odd by","==","!=",">", "<","<=",">="这些是if中可以用到的对照。看看就可以晓得甚么意思吧。
示例:
{if $name eq "Fred"}
Welcome Sir.
{elseif $name eq "Wilma"}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
五. 轮回
在Smarty里利用轮回遍历数组的办法是section,若何赋值遍历都是在模板中处理,php源文件中只需一个assign就可以处理成绩。
示例:
{* this example will print out all the values of the $custid array *}
{section name=customer loop=$custid}
id: {$custid[customer]}<br>
{/section}
OUTPUT:
id: 1000<br>
id: 1001<br>
id: 1002<br>
六. 罕见成绩
Smarty将一切大括号{}里的器材都视为本人的逻辑法式,因而咱们在网页中想拔出javascript函数就需求literal的协助了,literal的功效就是疏忽大括号{}。
示例:
{literal}
<script language=javascript>
function isblank(field) {
if (field.value == '')
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
</script>
{/literal}
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢? |
|