保留变量  方便使用php

不用assign

{$smarty}

get

{$smarty.get.page}

session

{$smarty.session.user.name}

server

cookies

request

const(常量)

变量调节器

escape(跟php中的htmlentities())

$smarty->assign('title','<h3>标题</h3>')

{$title}则直接输出 html的格式

{$title|escape}         转码

escape($title)

default

当没有的时候则是默认值

date_format

{$smarty.now|date_format:"Y-m-d H:i:s"}

truncate(截取长度)

{"标题标题"|truncate:8}

upper(转大写)

{"lamp"|upper}

strtoupper

{"lamp"|strtoupper}

{"="|str_repeat:40}

php中的函数可以直接作为变量调节器使用

自定义函数也可以

内置函数

foreach

{foreach $stulist as $stu}

<tr>

<td>{$stu@index+1}</td>

<td>{$stu.name}</td>

</tr>

{/foreach}

if elseif else

while

include

for

(0-100的偶数)

{for $i=1 to 100 step 2}

{i}

{/for}

A.     Smarty配置

定义定界符(属性)

$left_delimiter[左定界符]

$right_delimiter[右定界符]

$smarty->left_delimiter='<{';

$smarty->right_delimiter='}>';

定义模版目录

$template_dir[模板目录]

$smarty->template_dir='./view';//属性

$smarty->setTemplateDir('./view');//方法

定义编译的目录

$smarty->setCompileDir('./view_c');

编译目录不存在则自己创建

缓存目录

$smarty->setCachrDir('./cache')     ;

配置文件的目录

$smarty->setConfigDir('./config');

B.     Smarty缓存

$smarty->conpile_check  [编译检查]

$smarty->conpile_compile  [强制编译]

1.开启缓存

$caching

$smarty->caching=1;

接受参数

$id=intval($_GET['id'])l

//判断缓存是否有效,把文章ID作为缓存ID

//同一个模版,就可以有多个缓存文件

if(!smarty->isCached('article.tpl',$id)){

$data=array(

2=>array('id'=>2,'title')

)

}

2.缓存时间

$smarty->cache_lifetime=50  //秒表 默认是3600

3.//判断是否有缓存

if(!$smarty->isCached('1.tpl')){

//有可能是从数据库查询

//分配变量

$smarty->assign('title','标题')

//当前时间

$smarty->assign('now',date('Y-m-d H:i:s'));

}

4.$smarty->display('article.tpl',$id)

不想缓存的地方

{nocache}

{$smarty.now|date_format}

{/nocache}

//清除某一个模版的缓存

$smarty->clearCache('article.tpl')

//清除某一个模版的ID的缓存

$smarty->clearCache('article.tpl',2)

C.     Smarty插件

第一种方法

//将自定义函数注册为变量调节器

//第一个参数是插件的类型(9种)

//第二个参数是在Smarty中使用的名字

//第三个参数是我们自定义的函数名字

$smarty->registerPlugin('modifier','wanghaoyu',myfun)

第二种方法

//添加一个插件目录

//将特定命名的插件放到目录中

//规则:类型前缀.函数名.php(9中类型前缀)

$smarty->addPluginDir('./myPlugins')

自定义函数的 smarty_modifier_前缀不能改

D.     Smarty继承    extends

display('index.html')

在index代码中写上

{extends 'base.html'}

{block name='main'}

<div>

index的内容

</div>

{/block}

在base.html想改的区域

{block name='main'}

{/block}

唯一能做的就是重写某一块

2.在block里面追加内容

{block name='top' append}

<div>haha</div>

{/block}

3.某个部分的背景变色,当内容变的时候同时变

{block name='top'}

<div class='top'>

{$smarty.block.parent}

</div>

{/block}

4.title

模版

{block name='head'}

<head>

<title>{$smarty.block.child}</title>

</head>

{/block}

显示页

{block name='head'}文章{/block}

E.      Smarty 的include

Smarty s02的更多相关文章

  1. Smarty的基本使用与总结

    含义: Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来. 环境需求:PHP5.2或者更高版本 我使用的环境是:PHP5.3,wi ...

  2. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  3. smarty使用

    smarty-牛刀小试 smarty 初识 官网 http://www.smarty.net/ Smarty is a template engine for PHP(PHP模板引擎) smarty使 ...

  4. Smarty模版引擎的原理

    Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. 12月15日smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  7. 12月13日上午Smarty模版原理

    模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...

  8. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

  9. 在新浪云SAE中使用smarty引擎模版

    在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...

随机推荐

  1. 【Moqui业务逻辑翻译系列】Shipment Receiver Receives Shipment with Packing Slip but no PO

    Shipment Receiver receives shipment. It has invoice tucked into it. Receiver records vendor name, ve ...

  2. Java基础-转义字符

    Java中的字符占两个字节.一些常用的转义字符: ①\r表示接受键盘输入,相当于按下了回车键: ②\n表示换行: ③\t表示制表符,相当于Table键: ④\b表示退格键,相当于Back Space键 ...

  3. BZOJ-1003 物流运输trans SPFA+DP

    傻逼错误耗我1h,没给全范围坑我1A.... 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 529 ...

  4. NOI题库--砝码称重V2(多重背包2^n拆分)

    以前只会写多重背包的原版,渣的不行,为了做此题不得不学习了一下,发现其实也不难,只要理解了方法就好多了(PS:其实和倍增挺像的) 8756:砝码称重V2 总时间限制: 1000ms 内存限制: 655 ...

  5. CSS设置技巧

    一.单位和值 1.1 颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令 ...

  6. spring c3p0数据库连接池连接配置

    c3p0连接池配置 xml文件内容如下: C3P0 通过这些属性,可以对数据源进行各种有效的控制 lc_biz_datasource_c3p0.properties 配置: lc_biz_dataso ...

  7. BZOJ2463 谁能赢呢?

    Description   小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的 ...

  8. MVC简介

    全名是Model View Controller,模型-视图-控制器,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互 ...

  9. HTTPS-能否避免流量劫持

    流量劫持是什么? EtherDream在一篇科普文章<>中详细介绍了流量劫持途径和方式. 流量劫持是一种古老的攻击方式,比如早已见惯的广告弹窗等,很多人已经对此麻木,并认为流量劫持不会造成 ...

  10. 部署搭建 Saltstack(centos6.6)

    SaltStack介绍 官网:https://docs.saltstack.com/en/latest/ 中国saltstack用户组http://www.saltstack.cn/ 下图是它的子系统 ...