shop-old/libs/smarty/docs/programmers/api-functions/api-register-plugin.md
Thomas Bartelt 0a669704ea Dev-Umgebung: Kompatibilität für PHP 8.3 + Smarty 4.5.6
- Smarty 4.1.1 → 4.5.6 (behebt dynamic property deprecations)
- Core-Klassen: #[\AllowDynamicProperties] für Admin_role, base, Config,
  Customer, Customer_group, CustomerGroups, Item, Structure, website
- website.class.php: counts[parent_id] initialisieren vor ++ (PHP 8.1)
- layout.class.php: HTTP_ACCEPT_LANGUAGE mit isset-Guard
- website_init.php: session_status()-Check vor session_start
- .htaccess: HTTPS-Redirect via X-Forwarded-Proto (statt SERVER_PORT)
- themes/easyshop_advanced/media/: Parent-Theme-Assets nachgezogen
- .gitignore: smarty.4.1.1.bak ausschließen
2026-04-20 01:19:01 +02:00

1.8 KiB

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:

<?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"}


<?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}

   


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