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,94 @@
Template Functions {#plugins.functions}
==================
void
smarty\_function\_
name
array
\$params
object
\$template
All [attributes](#language.syntax.attributes) passed to template
functions from the template are contained in the `$params` as an
associative array.
The output (return value) of the function will be substituted in place
of the function tag in the template, eg the
[`{fetch}`](#language.function.fetch) function. Alternatively, the
function can simply perform some other task without any output, eg the
[`{assign}`](#language.function.assign) function.
If the function needs to assign some variables to the template or use
some other Smarty-provided functionality, it can use the supplied
`$template` object to do so eg `$template->foo()`.
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.eightball.php
* Type: function
* Name: eightball
* Purpose: outputs a random magic answer
* -------------------------------------------------------------
*/
function smarty_function_eightball($params, Smarty_Internal_Template $template)
{
$answers = array('Yes',
'No',
'No way',
'Outlook not so good',
'Ask again soon',
'Maybe in your reality');
$result = array_rand($answers);
return $answers[$result];
}
?>
which can be used in the template as:
Question: Will we ever have time travel?
Answer: {eightball}.
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.assign.php
* Type: function
* Name: assign
* Purpose: assign a value to a template variable
* -------------------------------------------------------------
*/
function smarty_function_assign($params, Smarty_Internal_Template $template)
{
if (empty($params['var'])) {
trigger_error("assign: missing 'var' parameter");
return;
}
if (!in_array('value', array_keys($params))) {
trigger_error("assign: missing 'value' parameter");
return;
}
$template->assign($params['var'], $params['value']);
}
?>
See also: [`registerPlugin()`](#api.register.plugin),
[`unregisterPlugin()`](#api.unregister.plugin).