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();

  • 相关阅读:
    Nginx 模块开发(1)—— 一个稍稍能说明问题模块开发 Step By Step 过程
    nginx上传模块—nginx upload module-
    解决nginx上传模块nginx_upload_module传递GET参数
    nginx upload module的使用
    Nginx Upload Module 上传模块
    产品需求分析神器:KANO模型分析法
    SpringBoot @ConditionalOnBean、@ConditionalOnMissingBean注解源码分析与示例
    BAT、网易、京东等如何做大数据风控的?
    springboot 2.x 集成 drools 7.x
    Drools介绍与使用
  • 原文地址:https://www.cnblogs.com/m-m-g-y0416/p/5709106.html
Copyright © 2011-2022 走看看