smarty自定义函数和模板继承

原创 2018-12-19 13:40:16 191
摘要:自定义函数:<?php //加载smarty模板引擎 require __DIR__ . '/vendor/autoload.php'; //创建smarty对象 $smarty = new Smarty(); //配置目录 $smarty->setTemplateDir(__DIR__ .&nb

自定义函数:

<?php
//加载smarty模板引擎
require __DIR__ . '/vendor/autoload.php';

//创建smarty对象
$smarty = new Smarty();

//配置目录
$smarty->setTemplateDir(__DIR__ . '/temp');//设置模板目录

$smarty->display('test3.html');//模板渲染
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{* 1、模板中定义变量 *}
{assign var='username' value='hello'}
{$username}
<br>
{* 定义变量简写 *}
{$model = 'test'}
{$model}
<br>
{*2、模板中的分支处理*}
{* 判断奇偶数 *}
{$data = 23}
{if $data is odd}
奇数
{else}
偶数
{/if}
<br>
{$grade = 80}
{if $grade > 80}
优秀
{elseif $grade >= 60}
合格
{else}
不及格
{/if}
<br>
{* 3、for循环 *}
{for $i = 0 to 20 step 3}
    {$i},
{forelse}
    循环错误
{/for}
<br>
{* 4、while循环 *}
{$i = 0}
{while ($i <= 10)}
{$i++}
{/while}
<br>
{* 5、foreach循环 *}
一维数组:<br>
{$arr = ['name'=>'张宏','age'=>'32','sex'=>'男','height'=>'178']}
{foreach $arr as $key=>$item}
{$key}::{$item}<br>
{/foreach}
<br>
二维数组:<br>
{$arr_2 = [
['name'=>'张宏','age'=>'32','sex'=>'男','height'=>'178'],
['name'=>'王秀芝','age'=>'22','sex'=>'女','height'=>'160'],
['name'=>'长孙蔓','age'=>'18','sex'=>'女','height'=>'165'],
['name'=>'杨波','age'=>'20','sex'=>'男','height'=>'180']
]}
{* $arr_2 = [] *}
{foreach $arr_2 as $k => $v}
姓名:{$v['name']},年龄:{$v['age']},性别:{$v['sex']},身高:{$v['height']}<br>
{foreachelse}
<h1>没有其他数据</h1>
{/foreach}
<br>
{* 6、直接定义函数  site是形参,可以换成其他变量 *}
{function name='func' site='中文网'}
hello {$site}
{/function}
{* 调用自定义函数 *}
{call name='func'}<br>
{call name='func' site='world'}<br>
{* 自定义函数简写 *}
{function func22 sites='gunddd'}
你好,简写函数{$sites}。
{/function}
{* 调用 *}
{func22 sites='http://www.php.cn'}
<br>
<br>

</body>
</html>

文件包含(php文件与自定义函数类似,不再重复粘贴,只粘贴主要文件):

{* 导入文件 *}
{include file='header.html'}

{* 可以将外部导入的文件先存到变量中 assign为文件的变量,在显示外部文件时直接使用文件变量即可。world是向外部文件中传递的变量名,可在外部文件中直接使用$world获取world的值 *}
{include file='title.html' assign='title' world='中午哦'}


<p>去年,一部《人民的名义》红遍了大江南北,好长一段时间,街头巷尾都在议论这部电视剧,平日从不看电视的我也被感染,居然也追完了。</p>

{$title}

<p>实话讲,若是从艺术的角度讲,《人民的名义》着实没什么可称道的,这部作品能火的原因,不过真实地揭露了当下社会最让老百姓深恶痛疾的腐败问题。</p>

<p>这几年来,国家政府正在以“壮士断腕”的勇气和“零容忍”的态度,坚决惩治腐败分子,在一系列举措下,不少中高级官员纷纷落马。各媒体经常会出现某某官员落马的新闻,居然有几起是被自己老婆举报的情况,看后,深受感触,想起了史书上记载的二千多年前的一位女子的故事。</p>


{include file='footer.html'}

模板继承(php文件与自定义函数类似,不再重复粘贴,只粘贴主要文件):

{* 继承layout布局文件 *}

{extends file='layout.html'}
{* 实例化区块 *}

{block name='title'}这里是标题{/block}
{block name='nav'}
{* 引用布局模板中的内容 *}
{$smarty.block.parent}
hello title
{/block}
{block name='content'}这里是内容{/block}


批改老师:韦小宝批改时间:2018-12-19 13:48:38
老师总结:写的很不错哦!弄明白了模板引擎再写项目的时候就简单了一半了!

发布手记

热门词条