codecamp

Smarty成员方法:registerPlugin()

Name

registerPlugin() — 注册插件

说明

void registerPlugin(string type,
                    string name,
                    mixed callback,
                    bool cacheable,
                    mixed cache_attrs);

该函数将以插件的形式来注册函数或者方法。 参数如下:

  • type defines the type of the plugin. Valid values are "function", "block", "compiler" and "modifier".

  • name defines the name of the plugin.

  • callback defines the PHP callback. it can be either:

    • A string containing the function name

    • An array of the form array(&$object, $method) with &$object being a reference to an object and $method being a string containing the method-name

    • An array of the form array($class, $method) with $class being the class name and $method being a method of the class.

  • 大多数情况下cacheable 和 cache_attrs可被省略。 参见缓存能力设置它们的值。

Example 14.39. 注册函数

<?php
$smarty->registerPlugin("function","date_now", "print_current_date");

function print_current_date($params, $smarty)
{
  if(empty($params["format"])) {
    $format = "%b %e, %Y";
  } else {
    $format = $params["format"];
  }
  return strftime($format,time());
}
?>

在模板中:

{date_now}

{* 或定义时间格式 *}
{date_now format="%Y/%m/%d"}

Example 14.40. 注册块函数

<?php
// 函数定义
function do_translation ($params, $content, $smarty, &$repeat, $template)
{
  if (isset($content)) {
    $lang = $params["lang"];
    // 这里可以放置翻译 $content 的代码
    return $translation;
  }
}

// 注册到Smarty
$smarty->registerPlugin("block","translate", "do_translation");
?>

模板中:

{translate lang="br"}Hello, world!{/translate}

Example 14.41. 注册修饰器

<?php

// 我们将PHP的stripslashes函数映射成一个Smarty的修饰器
$smarty->registerPlugin("modifier","ss", "stripslashes");

?>

模板中可使用ss来过滤反斜线。

<?php
{$var|ss}
?>

参见 unregisterPlugin(), 插件函数, 块函数, 编译函数, 和 修饰器。

Smarty成员方法:registerFilter()
Smarty成员方法:registerObject()
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

I.Smarty基础

1.Smart是什么?

II.Smarty模板设计师篇

6.Smarty复合修饰器

9.Smarty配置文件

10.Smarty调试控制台

III. 程序开发者篇

11. Smarty字符集编码

12.Smarty常量

13.Smarty成员变量

14.Smarty成员方法

17.Smarty高级特性

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }