zoukankan      html  css  js  c++  java
  • Smarty模板重点汇总

    Smarty模板重点回顾:
    1、功能:前后端分离;
    2、实现方法:通过使用Smarty的核心类来实现,利用display方法来读取模板文
    件,用正则进行替换,替换完保存到临时文件,再将临时文件加载到当前页面显
    示;
    3、配置文件(入口文件):对Smarty类进行实例化,规定文件存放路径;
    4、如果要在页面中使用Smarty模板,需要将配置文件引入到页面中
    5、浏览器要访问的页面是后台页面(.PHP),最终显示在浏览器中的是模板页
    面(.html或.tpl
    6、模板页面中的文件路径都是相对于后台页面,如果不使用相对路径,可以使
    用绝对路径;
    7、模板里显示的变量
    (1)变量要写在Smarty标记中间,变量名以$开头;
    (2)支持所有类型的数据,包括数组(关联数组)、对象
    8、关联数组在模板显示的时候,除了可以使用PHP语法,还可以使用点方法进行
    调用
    9、模板里面读取配置文件
    (1)将配置文件加载到当前页面
    <{config_load file='test.conf'}>
    (2)读取配置文件中的内容
    <{#color#}>
    (3)如果配置文件中分了块,读取某一块的配置的方法
    <{config_load file='test.conf' section='块名'}>
    10、Smarty保留变量
    $smarty.const 读取常量 例如:CSS,JS,图片的存放路口
    11、变量调节器
    关键字:modifier
    (1)系统自带的变量调节器:转大写[upper] 转小写[lower] 首字母大写
    [capitalize] 截取字符串[truncate] 拼接字符串[cat] 替换[replace]
    调用方法:<{$变量名|调节器名}>
    (2)自定义变量调节器:
    变量调节器存放目录下新建文件:modifier.调节器名称.php
    在该文件里面新建一个方法:function smarty_modifier_调节器名($str){}
    $str参数代表调用该调节器的变量
    最后该方法要有一个返回值
    12、函数
    关键字:function普通函数,block块函数
    (1)系统自带的函数:追加[append] 赋值[assign] 继承[extends] 循环[for]

    遍历[foreach],[foreachelse]
    调用方法:
    <{foreach $shuzu as $v或$k}>

    <{$v@index}> 从0开始的索引
    <{$v@first}> 代表是第一个循环的
    <{$v@last}> 代表是最后一个循环的

    <{/foreach}>

    条件[if][elseif][else]
    调用方法:

    <{if 条件}>
    满足条件输出内容
    <{else}>
    不满足条件输出内容
    <{/if}>

    <{if 条件1}>
    满足条件输出内容
    <{elseif 条件2}>
    不满足条件1满足条件2执行
    <{/if}>

    比较的时候,有备用词可以使用

    (2)自定义函数
    找到存放函数插件的文件夹在里面新建文件:function.函数名.php (block.函
    数名.php)
    在该文件里面新建一个方法:function smarty_function_函数名($args){}
    function smarty_block_函数名($args,$nr,$smarty,$bs){}

    参数$args:调用该函数传入的属性关联参数
    参数$nr:block块之间所夹的内容
    参数$smarty:对象
    参数$bs:是否是第一次调用(开始标记里面调用)

    该方法最终有返回值

    13、模板继承

    extends   block

    父模板:一般用来放网页的头和尾
    需要预留一定的区域来让子页面修改替换
    使用<{block name='neirong'}><{/block}>
    一般来说,父模板里面至少预留两块区域,其中一块是在head里面 另一块是在
    body里面

    子页面:一般继承父模板所有,存放该页面需要实现的功能的代码
    <{extends file='文件名'}>
    完善替换父模板中预留的区域:
    <{block name='模块名'}>  —— 开头

    中间填写数据

    <{/block}>  —— 结尾

    14、缓存:

    做法:
    (1)定义一个缓存文件存放的路径  $filename="文件路径"
    (2)判断缓存文件是否存在或者是否过期  file_exists($filename)
    (3)如果文件不存在或过期:
    开启内存缓存 ob_start();
    取内存中的内容 ob_get_contents();
    将内容存放到缓存文件中 file_put_contents();
    关闭内存缓存 ob_flush();
    (4)如果文件存在或没有过期:
    将缓存文件引入当前页面 include();

  • 相关阅读:
    [转]Java中的回车换行符/n /r /t
    [转]jquery.validate.js表单验证
    [转]PowerDesigner中name和code取消自动关联
    Oracle 执行报错表空间或临时表空间不足,降低水位线方法
    cookie实现自动登录
    linux 进程管理相关内容
    招银网络科技面试
    唯品会面试被虐
    sql查询最大的见多了,查询第二的呢???
    HashMap的key可以是可变的对象吗???
  • 原文地址:https://www.cnblogs.com/m-m-g-y0416/p/5709106.html
Copyright © 2011-2022 走看看