Get Smarty

Donate

Donate Bitcoin Bitcoin
Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Check reviews of PHP Web Hosting, compatible with Smarty Templates

Largest classified with thousands of ads at Shoppok

Buy cheap eyeglasses from Cheapglasses123.com and save up to 80%.

Buy wedding dresses on SiteSteer.com - Best Online Wedding Dress Store

Candy Crush Cheats

Tired of playing games? Visit the Game Supply to Sell World of Warcraft Accounts.

Buy prescription glasses from www.australiaglasses.com and save.

Cheap Glasses Now On Sale at Bestpriceglasses.com. Starts At $7.95.

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Name

registerPlugin() — dynamically register plugins

Description

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

This method registers functions or methods defined in your script as plugin. It uses the following parameters:

  • 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 and cache_attrs can be omitted in most cases. See controlling cacheability of plugins output on how to use them properly.

Example 14.39. register a function plugin


<?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());
}
?>

   

And in the template


{date_now}

{* or to format differently *}
{date_now format="%Y/%m/%d"}


Example 14.40. register block function plugin


<?php
// function declaration
function do_translation ($params, $content, $smarty, &$repeat, $template)
{
  if (isset($content)) {
    $lang = $params["lang"];
    // do some translation with $content
    return $translation;
  }
}

// register with smarty
$smarty->registerPlugin("block","translate", "do_translation");
?>

   

Where the template is:


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

   

Example 14.41. register modifier plugin


<?php

// let's map PHP's stripslashes function to a Smarty modifier.
$smarty->registerPlugin("modifier","ss", "stripslashes");

?>

In the template, use ss to strip slashes.


<?php
{$var|ss}
?>


See also unregisterPlugin(), plugin functions, plugin block functions, plugin compiler functions, and the creating plugin modifiers section.

Comments
by Karl on Nov 1, 2011 at 9:48
Example 14.40. register block function plugin
function do_translation ($params, $content, $smarty, &$repeat, $template)
The last parameter ($template) is not used (with 3.1.4 at least)
by raveren on Oct 25, 2011 at 5:43
Note, that this (sadly) does not support closures as the third parameter (v3.1.4): > Object of class Closure could not be converted to string
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 18 plus 3? (Are you human?)

Sponsors [info]

UK Web Hosting @webhost.uk.net
Best Web Hosting @rshosting.com
Web Hosting UK @webhostinguk.com
Unlimited Web Hosting @infrenion.com
App Entwicklung @morphodo.com
Buy from China @dhgate.com
dissertationteam.com
Buy Web Hosting @buy-hosting.net
WordPress Hosting Hub @wphostinghub.net