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
This commit is contained in:
Thomas Bartelt
2026-04-20 01:19:01 +02:00
parent d504f8a05d
commit 0a669704ea
598 changed files with 27139 additions and 474 deletions
@@ -0,0 +1,110 @@
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:
- `cacheable` and `cache_attrs` can be omitted in most cases. See
[controlling cacheability of plugins output](#caching.cacheable) on
how to use them properly.
<!-- -->
<?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()`](#api.unregister.plugin), [plugin
functions](#plugins.functions), [plugin block
functions](#plugins.block.functions), [plugin compiler
functions](#plugins.compiler.functions), and the [creating plugin
modifiers](#plugins.modifiers) section.