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:
@@ -0,0 +1,147 @@
|
||||
# {assign}, {$var=...}
|
||||
|
||||
`{assign}` or `{$var=...}` is used for assigning template variables **during the
|
||||
execution of a template**.
|
||||
|
||||
## Attributes of the {assign} syntax
|
||||
| Attribute Name | Required | Description |
|
||||
|----------------|------------|-----------------------------------------------------------------------|
|
||||
| var | | The name of the variable being assigned |
|
||||
| value | | The value being assigned |
|
||||
| scope | (optional) | The scope of the assigned variable: \'parent\',\'root\' or \'global\' |
|
||||
|
||||
## Attributes of the {$var=...} syntax
|
||||
| Attribute Name | Required | Description |
|
||||
|----------------|------------|-----------------------------------------------------------------------|
|
||||
| scope | (optional) | The scope of the assigned variable: \'parent\',\'root\' or \'global\' |
|
||||
|
||||
## Option Flags
|
||||
| Name | Description |
|
||||
|---------|---------------------------------------------------|
|
||||
| nocache | Assigns the variable with the 'nocache' attribute |
|
||||
|
||||
|
||||
> **Note**
|
||||
>
|
||||
> Assignment of variables in-template is essentially placing application
|
||||
> logic into the presentation that may be better handled in PHP. Use at
|
||||
> your own discretion.
|
||||
|
||||
## Examples
|
||||
|
||||
```smarty
|
||||
{assign var="name" value="Bob"} {* or *}
|
||||
{assign "name" "Bob"} {* short-hand, or *}
|
||||
{$name='Bob'}
|
||||
|
||||
The value of $name is {$name}.
|
||||
```
|
||||
|
||||
|
||||
The above example will output:
|
||||
|
||||
```
|
||||
The value of $name is Bob.
|
||||
```
|
||||
|
||||
|
||||
```smarty
|
||||
{assign var="name" value="Bob" nocache} {* or *}
|
||||
{assign "name" "Bob" nocache} {* short-hand, or *}
|
||||
{$name='Bob' nocache}
|
||||
|
||||
The value of $name is {$name}.
|
||||
```
|
||||
The above example will output:
|
||||
```
|
||||
The value of $name is Bob.
|
||||
```
|
||||
|
||||
|
||||
```smarty
|
||||
{assign var=running_total value=$running_total+$some_array[$row].some_value} {* or *}
|
||||
{$running_total=$running_total+$some_array[row].some_value}
|
||||
```
|
||||
|
||||
Variables assigned in the included template will be seen in the
|
||||
including template.
|
||||
|
||||
```smarty
|
||||
{include file="sub_template.tpl"}
|
||||
|
||||
{* display variable assigned in sub_template *}
|
||||
{$foo}<br>
|
||||
```
|
||||
|
||||
The template above includes the example `sub_template.tpl` below:
|
||||
|
||||
```smarty
|
||||
|
||||
{* foo will be known also in the including template *}
|
||||
{assign var="foo" value="something" scope=parent}
|
||||
{$foo="something" scope=parent}
|
||||
|
||||
{* bar is assigned only local in the including template *}
|
||||
{assign var="bar" value="value"} {* or *}
|
||||
{$var="value"}
|
||||
|
||||
```
|
||||
|
||||
You can assign a variable to root of the current root tree. The variable
|
||||
is seen by all templates using the same root tree.
|
||||
|
||||
```smarty
|
||||
{assign var=foo value="bar" scope="root"}
|
||||
```
|
||||
|
||||
A global variable is seen by all templates.
|
||||
|
||||
```smarty
|
||||
{assign var=foo value="bar" scope="global"} {* or *}
|
||||
{assign "foo" "bar" scope="global"} {* short-hand, or *}
|
||||
{$foo="bar" scope="global"}
|
||||
```
|
||||
|
||||
To access `{assign}` variables from a php script use
|
||||
[`getTemplateVars()`](../../programmers/api-functions/api-get-template-vars.md).
|
||||
Here's the template that creates the variable `$foo`.
|
||||
|
||||
```smarty
|
||||
{assign var="foo" value="Smarty"} {* or *}
|
||||
{$foo="Smarty"}
|
||||
```
|
||||
|
||||
The template variables are only available after/during template
|
||||
execution as in the following script.
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// this will output nothing as the template has not been executed
|
||||
echo $smarty->getTemplateVars('foo');
|
||||
|
||||
// fetch the template to a variable
|
||||
$whole_page = $smarty->fetch('index.tpl');
|
||||
|
||||
// this will output 'smarty' as the template has been executed
|
||||
echo $smarty->getTemplateVars('foo');
|
||||
|
||||
$smarty->assign('foo','Even smarter');
|
||||
|
||||
// this will output 'Even smarter'
|
||||
echo $smarty->getTemplateVars('foo');
|
||||
```
|
||||
|
||||
The following functions can also *optionally* assign template variables: [`{capture}`](#language.function.capture),
|
||||
[`{include}`](#language.function.include),
|
||||
[`{insert}`](#language.function.insert),
|
||||
[`{counter}`](#language.function.counter),
|
||||
[`{cycle}`](#language.function.cycle),
|
||||
[`{eval}`](#language.function.eval),
|
||||
[`{fetch}`](#language.function.fetch),
|
||||
[`{math}`](#language.function.math) and
|
||||
[`{textformat}`](#language.function.textformat).
|
||||
|
||||
See also [`{append}`](./language-function-append.md),
|
||||
[`assign()`](#api.assign) and
|
||||
[`getTemplateVars()`](#api.get.template.vars).
|
||||
Reference in New Issue
Block a user