Smarty成員方法:registerPlugin()

2018-12-02 16:34 更新

Name

registerPlugin() — 注冊插件

說明

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

該函數(shù)將以插件的形式來注冊函數(shù)或者方法。 參數(shù)如下:

  • 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.

  • 大多數(shù)情況下cacheable 和 cache_attrs可被省略。 參見緩存能力設置它們的值。

Example 14.39. 注冊函數(shù)

<?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. 注冊塊函數(shù)

<?php
// 函數(shù)定義
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函數(shù)映射成一個Smarty的修飾器
$smarty->registerPlugin("modifier","ss", "stripslashes");

?>

模板中可使用ss來過濾反斜線。

<?php
{$var|ss}
?>

參見 unregisterPlugin(), 插件函數(shù), 塊函數(shù), 編譯函數(shù), 和 修飾器。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號