自定义函数:<{方法名称}>

在html页面是可以直接赋值的:(没啥作用只是知道即可)

<{$a = "hello"}>
<div><{$a}></div>

显示效果:hello

1.<{literal}><{/literal}>内置函数

{literal}标签区域内的数据将按字面意思处理,代表性地是用在javascript/css语块周围,不然这些语言使用的花括号‘{’、‘}’会干扰模版定界符语法。{literal}{/literal}标签里面的所有符号不会被解释,全部按原样输出。如果有需要在{literal}块里使用模版标签,可以考虑使用{ldelim}{rdelim}转义单独的分隔符。

作用是当左右分隔符{}以防和function混合的时候加,但是现在没有用是<{}>

例如

<{literal}>
<{foreach $shuju as $v}>
<tr>
<td><{$v[1]|truncate:10:"***"|fontcolor:green}></td>
<td><{$v[2]|fontcolor}></td>
<td><{$v[3]|kmname}></td>
<td><{$v[4]|nandu}></td>
<td><{$v[5]|type}></td>
<td><a href="shanchu.php?code=<{$v[0]}>">删除</a>&nbsp;&nbsp;<a href="xiugai.php?code=<{$v[0]}>">修改</a></td>
</tr>
<{/foreach}>
<{/literal}>

此时输出的结果是:(没有解析原样输出)

2.{html_select_date}

自定义函数{html_select_date}用于创建日期下拉列表,它可以显示任意年月日。下述列表中没有说明的参数会在相应的年、月、日<select>标签中以名/值的键值对形式显示出来。

例如1:<div><{html_select_date}></div>(没有写进参数的情况下)

返回结果为:

例如2:<div><{html_select_date start_year='1990' end_year='2020' month_format='%m'}></div>(写进参数)

返回结果为:

3.网上找的:颜色控件

在www/Smarty0603/plugins中书新建 function.color.php(函数),此外还要引入jscolor.js文件

 

前段html代码:<div><{color name='aa'}></div>

返回结果:

4.{block} 块:  编辑器(网上找的) {block}{/block}成对出现

普通方法function的只需要写一个就好,但是想block的块函数有开始也有结束

新建block.textarea.php

 

前段html代码:<{textarea}><{/textarea}>不加参数时

显示效果

前段html代码:<{textarea name='text' toolbar='full' color='#f0f'  height='100'}><{/textarea}>加参数时

显示效果

 

5.自己练习写函数(之前是通过调节器现在是根据方法)

新建文件 function.tyname.php

<?php

    /**
* 编辑器
* @param int $textareaid
* @param int $toolbar 有basic full 和desc三种
* @param int $color 编辑器颜色
* @param string $alowuploadexts 允许上传类型
* @param string $height 编辑器高度
* @param string $disabled_page 是否禁用分页和子标题
*/
function smarty_block_textarea($args, $content, $smarty, &$repeat) {
//public static function editor($textareaid = 'content', $toolbar = 'basic', $height = 200, $color = '', $up=true) { if(!$repeat) {
$textareaid = !empty($args['name']) ? $args['name'] : 'content';
$toolbar = !empty($args['toolbar']) ? $args['toolbar'] : 'basic';
$height = !empty($args['height']) ? $args['height'] : '200';
$color = !empty($args['color']) ? $args['color'] : '';
$up = !empty($args['up']) ? $args['up'] : true; $str ='<textarea name="'.$textareaid.'">'.$content.'</textarea>';
if(!defined('EDITOR_INIT')) {
$str .= '<script type="text/javascript" src="../js/ckeditor/ckeditor.js"></script>';
define('EDITOR_INIT', 1);
} if($toolbar == 'basic') {
$toolbar = "['Bold', 'Italic','Underline','Strike','NumberedList', 'BulletedList', 'TextColor','BGColor', 'Link', 'Unlink', '-', 'Image','Flash','Table','Smiley','SpecialChar'],['RemoveFormat'],
\r\n";
} elseif($toolbar == 'full') {
$toolbar = "['Source','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],['ShowBlocks'],['Image','Capture','Flash'],['Maximize'],
'/',
['Bold','Italic','Underline','Strike','-'],
['Subscript','Superscript','-'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Table','HorizontalRule','Smiley','SpecialChar'],
'/',
['Styles','Format','Font','FontSize'],
['TextColor','BGColor'],
['attachment'],\r\n"; } elseif($toolbar == 'desc') {
$toolbar = "['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink', '-', 'Image', '-','Source'],\r\n"; } else {
$toolbar = '';
}
$str .= "<script type=\"text/javascript\">\r\n";
$str .= "CKEDITOR.replace( '$textareaid',{"; $str .= "height:{$height},"; if($color) {
$str .= "extraPlugins : 'uicolor',uiColor: '$color',";
}
/*
if($up) {
$str .="filebrowserImageUploadUrl:'".B_URL."/upimage',";
$str .="filebrowserFlashUploadUrl:'".B_URL."/upflash',";
} */
$str .= "toolbar :\r\n";
$str .= "[\r\n";
$str .= $toolbar;
$str .= "]\r\n";
//$str .= "fullPage : true";
$str .= "});\r\n";
$str .= '</script>';
return $str;
}
}

前段html代码: <td><{tyname code=$v[5]}></td> 

显示效果:                           之前效果:

                                                              

6. 练习自定义函数block: 定义块函数来改变删除修改的样式

新建文件 block.fontstyle.php(需要四个参数)

<?php
function smarty_block_fontstyle($args,$content,$smarty,$a)
{
//$args:是用户可以传入的参数,$content:包含在块函数内的内容;$a:指函数的开始和结束
$color=$args["color"];
$size=$args["size"]; //block函数会执行2次,在开始和结束标记时各执行一次
//为防止重复执行,需要进行判断
if(!$a)//如果是结束标记执行的
{
return "<span style='background-color:{$color};font-size:{$size}px'>{$content}</span>";
}
}

前端html代码:

<td>
<{fontstyle color='yellow' size='30'}>
<a href="shanchu.php?code=<{$v[0]}>">删除</a>&nbsp;&nbsp;<a href="xiugai.php?code=<{$v[0]}>">修改</a>
<{/fontstyle}>
</td>

显示效果:

7. 配置文件 :Config Files

  在configs文件夹中新建文件,文件名以 .conf 结束  例如:test.conf

  配置文件是通过内置函数{config_load}或API的configLoad()函数载入到模板的。

例子:在前端 main.html写一个div,利用配置文件改变它的样式:

在configs配置文件中新建style.conf如下所示:

前端html代码:

1.读取配置文件  :<{config_load file="style.conf"}>

2.引入变量用<{#变量名#}> :<div style="font-size:<{#size#}>px; color:<{#color#}>">以下是题目列表</div>

显示效果:

如果:在style.conf定义了相同的样式,用块来区分,定义方式为:[块名]

在前端 main.html:给config_load 第二个变量  section

<{config_load file="style.conf" section="one"}>
<div style="font-size:<{#size#}>px; color:<{#color#}>">以下是题目列表</div>

效果如下:

<{config_load file="style.conf" section="one"}>
<div style="font-size:<{#size#}>px; color:<{#color#}>">以下是题目列表</div>

效果如下:

Smarty自定义函数的更多相关文章

  1. smarty 自定义函数

    自定义函数:<{方法名称}> 在lib/plugins中新建文件,命名方式是固定的:function.方法名称.php 或者 block.方法名称.php 1.<{literal}& ...

  2. 6月5 Smarty自定义函数

    自定义函数:<{方法名称}> 在html页面是可以直接赋值的:(没啥作用只是知道即可) <{$a = "hello"}><div><{$a ...

  3. 五,Smarty模板技术/引擎——自定义函数机制

    自建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用: 示例:使用smarty自定义函数的机制,编写一个函数myfun1,通 ...

  4. 四、smarty模板的自定义函数

    smarty模板的自定义函数(这里介绍的是常用) 分为三个种类: 1.  变量调节器 2.  函数 3.  块函数 三个种类插件的用法: 1.  变量调解器的用法, <{$var|myfun:a ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  7. 5.Smart使用内置函数或者自定义函数

    1.使用内置函数 例如使用date函数 {"Y-m-d"|date:$time}格式{第一个参数|方法:第二个参数:第三个参数}即可转换成 2016-07-19  2.使用resi ...

  8. Mysql - 存储过程/自定义函数

    在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...

  9. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

随机推荐

  1. CSU 1812 三角形和矩形

    湖南省第十二届大学生计算机程序设计竞赛$J$题 计算几何. #pragma comment(linker, "/STACK:1024000000,1024000000") #inc ...

  2. java中的反编译

    使用JD-GUI工具  支持mac os 和 windows  地址为:http://jd.benow.ca

  3. Jquery几秒自动跳转

    $(document).ready(function() { function jump(count) { window.setTimeout(function(){ count--; if(coun ...

  4. php学习笔记——基础知识(1)

    1.PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果. 2.基础 PHP 语法 1)PHP 脚本可放置于文档中的任何位置. 2)PHP 脚本以 <?php 开头,以 ?> ...

  5. Zeppelin使用Spark的yarn-client模式

    Zeppelin版本0.6.2 1. Export SPARK_HOME In conf/zeppelin-env.sh, export SPARK_HOME environment variable ...

  6. Windows 多用户远程访问 Ubuntu 14.04桌面

    使用X2Go实现多用户远程访问 Ubuntu 14.04桌面:VNC也可以,但是每次连接VNC就回新创建一个Seession,想要在下次远程登录的时候返回上次活动,需要记住开启的线程,这种繁琐的操作不 ...

  7. 图片翻转(Raw Image)

    int TransformImageBuffer(unsigned char* pImageBuffer, int width, int height,unsigned char* targetIma ...

  8. 移动互联网app

    移动互联网app 2 App测试点 2.1安全测试 2.1.1软件权限 1隐私泄露风险:包括访问手机信息.访问联系人信息等 2对App的输入有效性校验.认证.授权.敏感数据存储.数据加密等方面进行检测 ...

  9. MySQL数据库的数据备份和恢复(导入和导出)命令操作语法【转】

    不管是Oracle数据库还是SQL Server数据库,每个数据库都有自己的一套数据备份和恢复的方法,MySQL数据库也不例外.MySQL数据库备份和恢复用到了两个命令,分别是“mysqldump”和 ...

  10. 在Linux下访问Windows共享目录的配置方法

    在Linux下访问Windows共享目录的配置方法 1.在Windows上设置一个共享目录 如:将d:\RedHat_disk设置为共享目录 2.在Windows上创建一个用户,如tommy,密码11 ...