smarty内建函数和自定义插件函数的使用

smarty模板里面需要用到一些他的内建函数,还有一些我们需要自定义的函数。

如:config_load file,smarty.server.SERVER_NAME等。

还有一些自定义函数:要我们利用最基本的结构自己去构建。

如下所示:

<h1>内建函数</h1>
<{foreach from=$var5 item=temp}>
<{$temp}>
<{/foreach}>
<br/>
<{foreach from=$var6 item=temp key=k}>
<br/><{$temp}><br/>
<{$k}>
<{/foreach}>
<br/>
<{foreach from=$var8 item=temp}>
	<{foreach from=$temp item=val key=k}>
		<{if $k!='city1'}>
		<{$val}>====
		<{/if}>
		<{/foreach}>
<{/foreach}><br/>
<{if $p>10}>
	This is a number > 10
<{else}>
	This is a number < 10
<{/if}>

普通的函数和块状函数注册如下:

<?php
	require_once "./libs/Smarty.class.php";
	$smarty=new Smarty();
	$smarty->left_delimiter="<{";
	$smarty->right_delimiter="}>";
	//自定义函数1
	function test1($args){
		$str="";
		for($i=0; $i<$args['times'];$i++){
			$str.="<font color='".$args['color']."'
			size ='".$args['size']."'>".$args['con']."</font>".'<br/>';
		}
		return $str;
	}
	//自定义函数2
	function test2($args,$con){
		$str="";
		for($i=0; $i<$args['times'];$i++){
			$str.="<font color='".$args['color']."'
			size ='".$args['size']."'>".$con."</font>".'<br/>';
		}
		return $str;
	}
	//$smarty->register_function("mytest1","test1");//普通注册
	$smarty->register_block("mytest2","test2");//块注册
	$smarty->display("test3.tpl");
?>

对应的模板是:

<h1>自定义函数</h1>

<{mytest2 times="100" color="red" size="5"}>

nihao

<{/mytest2}>

另外在\libs\plugins文件夹下也可以自定义插件函数,自定义插件的方式:

在文件夹下面,建立function.函数名.class文件

在对应的模板里面,直接调用就可用,不用去注册。

<?php
	function smarty_function_mytest($args,&$smart){
		$str="";
		for($i=0; $i<$args['times'];$i++){
			$str.="<font color='".$args['color']."'
			size ='".$args['size']."'>".$args['con']."</font>".'<br/>';
		}
		return $str;
	}

?>

如果是块函数的话就用:function smarty_block_mytest1($args,$con)

时间: 2024-11-05 06:30:57

smarty内建函数和自定义插件函数的使用的相关文章

四、smarty模板的自定义函数

smarty模板的自定义函数(这里介绍的是常用) 分为三个种类: 1.  变量调节器 2.  函数 3.  块函数 三个种类插件的用法: 1.  变量调解器的用法, <{$var|myfun:arg1:arg2}> 2.  函数的用法(和使用HTML标记很像) 如, <{myfun color=”red” size=”7” num=”7”}> 在PHP中定义的函数为: $smarty->registerPlugin(“function”,”myfun”,”one”); fun

PHP Smarty 模板 自定义插件

插件 是按需载入的.当特定的修饰器,函数,资源等被调用的时候插件才会被载入. 插件目录变量 可以是一个路径的字符串或者是包含多个路径的数组. 安装插件的方法 是直接把插件文件放置在这些目录下,Smarty会自动按需使用. 设定插件目录(新建一个myplugins文件夹) D:\wamp\www\test\smarty\libs\plugins\ D:\wamp\www\test\smarty\libs\myplugins\ //定义根目录 define('ROOT', str_replace("

Smarty中的自定义函数(二)复选框、下拉列表、单选框

接Smarty中的自定义函数(一) 7.html_checkboxes 复选框 [php] view plain copy print? $ssss1 = array(2,3,4); $ssss2 = array('学习','工作','生活'); $ssss3 = array(2,4); $smarty->assign('ssss1',$ssss1); $smarty->assign('ssss2',$ssss2); $smarty->assign('ssss3',$ssss3); $s

ElasticSearch 5.4 自定义插件

ElasticSearch 做为数据仓库处理速度确实很强,但是很多和业务相关的函数ElasticSearch怎么支持的,通过查询发现,ElasticSearch支持自定义插件(相当于自定义函数),通过自定义插件,开发人员可以实现各种业务相关的函数定义供相关人员使用. 1.   ElasticSearch  自定义插件编写 后续补充. 2.  ElasticSearch  自定义插件打包 2.1  自定义插件开发完成后,需要增加“plugin-descriptor.properties”配置文件,

jQuery自定义插件--banner图滚动

前言 jQuery是一个功能强大的库,提供了开发JavaScript项目所需的所有核心函数.很多时候我们使用jQuery的原因就是因为其使用插件的功能,然而,有时候我们还是需要使用自定义代码来扩展这些核心函数来提高开发效率.我们知道, jQuery库是为了加快JavaScript的开发速度而设计的,通过简化编写JavaScript的方式,减少代码量.所以,今天就带大家了解一下jQuery自定义插件以及自定义插件案例---banner图滚动. 一.自定义插件 自定义插件一般有两种类型:全局插件和局

你的专属定制——JQuery自定义插件

    前  言 絮叨絮叨 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. 那么这次,我就和大家来分享一下JQuery中的一个强大的功能--自

关于wordpress高级自定义插件遇到的问题。

Advanced Custom Fields是款非常强大实用的自定义字段插件,可以在文章.类别.标签.页面.自定义类型甚至用户里非常直观地添加 Text.Textarea.Image.Checkbox.File.Select等自定义字段,还可以同时控制这些字段所显示的位置以及一些判断条件.此插件可以集成到其它插件或者主题中,Kissneck使用的主题就集成这插件,主要还是用于文本字段,文件,图片,的存储.使用起来相当的方便,这里我贴上官方的链接https://www.advancedcustom

js自定义插件-选项卡

该功能比较简单,巩固一下jquery插件写法,注意引入的jquery.js  . 自定义插件路径代码如下: 页面: <!doctype html> <html> <head> <meta charset='utf-8'/> <style type="text/css"> *{margin:0;padding:0;border:0;} .banner{width:600px;height:144px;margin:70px 15

黑马day18 JQuery自定义插件

说明:使用JQuery中的JQuery.extend({//这里是json格式的数据});可以定义一个全局函数 使用JQuery中的JQuery.fn.extend({//这里是json格式的数据});可以定义一个局部函数 1.定义全局函数(来判断两个输入的数字的最大值和最小值) test.html <!DOCTYPE html> <html> <head> <title>test.html</title> <meta http-equiv