保留变量  方便使用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. u1-nav-html

    <header id="masthead" class="masthead" role="banner"> <nav cl ...

  2. VS2013打开项目提示此版本的应用程序不支持其项目类型(.csproj)

    命令行或者Vs自带的命令提示符输入: devenv.exe /resetskippkgs 重新打开项目即可.

  3. 【bzoj1005】 HNOI2008—明明的烦恼

    http://www.lydsy.com/JudgeOnline/problem.php?id=1005 (题目链接) 题意 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多 ...

  4. poj 1006 中国剩余定理解同余方程

    其实画个图就明白了, 该问题就是求同余方程组的解: n+d≡p (mod 23) n+d≡e (mod 28) n+d≡i (mod 33) #include "iostream" ...

  5. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

  6. Modular Query

    Solution F(L, R) 就是在A[L]在[L+1, R]内从左模到右. 首先应当注意到: 对$a, b > 0$ \[a \mod b \begin{cases} = a, & ...

  7. 深入浅出Redis04使用Redis数据库(lists类型)

    一  lists类型及操作 List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是sring类 ...

  8. 如何把项目托管到GitHub

    第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,注意它们并不等同. gitHub是全球最 ...

  9. 深入浅出MySQL双向复制技术

    设置MySQL数据同步(单向&双向)由于公司的业务需求,需要网通和电信的数据同步,就做了个MySQL的双向同步,记下过程,以后用得到再翻出来,也贴出来供大家参考. 一.准备服务器 由于MySQ ...

  10. UVa OJ 140 - Bandwidth (带宽)

    Time limit: 3.000 seconds限时3.000秒 Problem问题 Given a graph (V,E) where V is a set of nodes and E is a ...