五,Smarty模板技术/引擎——自定义函数机制
自建函数是smarty提供的函数,不允许修改,只能被调用;
自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用;
示例:使用smarty自定义函数的机制,编写一个函数myfun1,通过调用该函数(可以输入必要的参数),完成循环输出5次“hello,顺平”,要求内容,颜色,字体大小均可置顶。
(1)自定义函数
//编写自定义函数
function test1($args){
$str = "";
for($i = 1;$i<= $args['times'];$i++){
$str .= "<font size='{$args['size']}' color='{$args['color']}'>{$args['con']}</font><br/>";
}
return $str;
} //注册自定义函数
$smarty->register_function("lhy1","test1");
<{*tpl中引用自定义函数*}>
<{lhy1 times="5" size="5" con="Hello,顺平" color="red"}>
(2)自定义块
//编写自定义函数
function test2($args,$con){
$str = "";
for($i = 1;$i<= $args['times'];$i++){
$str .= "<font size='{$args['size']}' color='{$args['color']}'>{$con}</font><br/>";
}
return $str;
} //注册自定义函数
$smarty->register_block("lhy2","test2");
<{lhy2 times="5" size="5" color="red"}>
Hello,顺平
<{/lhy2}>
(3)利用samrty插件形式增加自定义函数
在smarty包中plugins文件夹下,新建一个文件function.lhy4.php。
文件名的格式:function.自定义函数名.php
function.lhy4.php代码页内容如下,
函数的名字:function smarty_function_自定义函数名($params, &$smarty)。
<?php
function smarty_function_lhy4($params, &$smarty){
$str = "";
for($i = 1;$i<= $params['times'];$i++){
$str .= "<font size='{$params['size']}' color='{$params['color']}'>{$params['con']}</font><br/>";
}
return $str;
}
<{lhy4 times="5" size="5" con="Hello,顺平" color="red"}>
(4)利用samrty插件形式增加自定义块
在smarty包中plugins文件夹下,新建一个文件function.lhy5.php。
文件名的格式:block. 块名.php
function.lhy4.php代码页内容如下,
函数的名字:function smarty_block_块名($params,$content, &$smarty)。
<?php
function smarty_block_lhy5($params, $content, &$smarty){
$str = "";
for($i = 1;$i<= $params['times'];$i++){
$str .= "<font size='{$params['size']}' color='{$params['color']}'>{$content}</font><br/>";
}
return $str;
}
<{lhy5 times="5" size="5" color="red"}>
Hello,顺平
<{/lhy5}>
五,Smarty模板技术/引擎——自定义函数机制的更多相关文章
- 三,Smarty模板技术/引擎——变量操作(2)
1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’ ...
- 四,Smarty模板技术/引擎-----内建函数
内建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用. PHP的自建函数很多,讲解下<foreach>和< ...
- 一,Smarty模板技术/引擎——简介
Smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使PHP程序员与美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改 ...
- 二 ,Smarty模板技术/引擎——变量操作(1)
1,基本变量 $smarty->assign('data1',3); $smarty->assign('data2',3.45); $smarty->assign('data3',' ...
- Smarty模板技术学习
模板引擎技术:使得php代码和html代码分离的技术就称为"模板引擎技术" 自定义smarty模板技术实现 <?php //迷你smarty原理 class MiniSmar ...
- 在smarty模板中使用PHP函数的方法
在smarty模板中如果要在显示的资料使用php函数时,如果是只有一个参数的函数比如说去空白的trim会写成 sample1 代码如下: <{$colname|trim}> 那如果使用像i ...
- smarty模板技术
一.什么是smarty?smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美 ...
- smarty详细使用教程(韩顺平smarty模板技术笔记)
MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...
- Smarty模板技术学习(二)
本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...
随机推荐
- js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
1.工厂模式 function a(name){ var b = new object(); b.name = name; b.say = function(){ alert(this.name); ...
- 【总结整理】自带天气app,为什么还要下载
很简单那就说明用户对天气这个功能的需求并没有表面那么简单呗,还有更深层次的需求~ 先声明我自己是没有这方面需求的,我就纯属YY一下 既然数据都一样的话,那是什么让用户觉得天气APP更专业呢? 1.历史 ...
- js中直接对字符串转义-用于solr ulr 关键词转义
js代码 /* * 获取UTC格式的字符串,参数必须是 */var solrDateFormat = function (o){ var date; if(typeof o == 'str ...
- QuickSort模板
#include <iostream> using namespace std; struct node { int index; char name[20]; }; node data[ ...
- 清北学堂 day6 花
1.花( flower.cpp/c/pas)[ 问题描述]商店里出售 n 种不同品种的花.为了装饰桌面,你打算买 m 支花回家.你觉得放两支一样的花很难看,因此每种品种的花最多买 1 支.求总共有几种 ...
- Python 中的 is 和 id-乾颐堂
(ob1 is ob2) 等价于 (id(ob1) == id(ob2)) 首先id函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象.和is是等价的.Pytho ...
- chrome crx下载路径
chrome crx下载后会被删除,可在检查时粘贴出来,下载路径在: %localappdata%\Google\Chrome\User Data\Webstore Downloads 参考:http ...
- VS2012用正则表达式统计行数
使用正则表达式: b*[^:b#/]+.*$
- 白话浅说TCP/UDP面向连接,面向无连接的区别
TCP是面向连接的UDP是面向无连接的就是这种关系了 TCP(Transmission Control Protocol,传输控制协议) UDP(User Datagram Protocol,用户数据 ...
- 使用virtualBox安装CentOS 6.3的详细步骤
由于前几天把系统升级到win7了,原先安装的Linux虚拟机都不存在了.基于学习,这次安装选择的是CentOS 6.3版本. 下面就看看具体的安装步骤: 名称可以随便填写,类型选择Linux,版本选择 ...