2023-02-05 23:14:10 +01:00
# {config_load}
2021-12-03 11:59:22 +01:00
`{config_load}` is used for loading config
2023-02-05 23:14:10 +01:00
[`#variables#` ](#language.config.variables ) from a [configuration file ](#config.files ) into the template.
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
## Attributes
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
| Attribute Name | Required | Description |
|----------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| file | Yes | The name of the config file to include |
| section | No | The name of the section to load |
| scope | no | How the scope of the loaded variables are treated, which must be one of local, parent or global. local means variables are loaded into the local template context. parent means variables are loaded into both the local context and the parent template that called it. global means variables are available to all templates. |
2021-12-03 11:59:22 +01:00
2023-02-06 10:40:00 +01:00
## Examples
2021-12-03 11:59:22 +01:00
The `example.conf` file.
2023-02-05 23:14:10 +01:00
```ini
#this is config file comment
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
# global variables
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
#customer variables section
[Customer]
pageTitle = "Customer Info"
```
2021-12-03 11:59:22 +01:00
and the template
2023-02-05 23:14:10 +01:00
```smarty
{config_load file="example.conf"}
{config_load "example.conf"} {* short-hand *}
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
< html >
2021-12-03 11:59:22 +01:00
< title > {#pageTitle #|default:"No title"}</ title >
< body bgcolor = "{ #bodyBgColor #}" >
2023-02-05 23:14:10 +01:00
< table border = "{ #tableBorderSize #}" bgcolor = "{ #tableBgColor #}" >
< tr bgcolor = "{ #rowBgColor #}" >
< td > First< / td >
< td > Last< / td >
< td > Address< / td >
< / tr >
< / table >
2021-12-03 11:59:22 +01:00
< / body >
2023-02-05 23:14:10 +01:00
< / html >
```
2021-12-03 11:59:22 +01:00
[Config Files ](#config.files ) may also contain sections. You can load
variables from within a section with the added attribute `section` . Note
that global config variables are always loaded along with section
variables, and same-named section variables overwrite the globals.
> **Note**
>
> Config file *sections* and the built-in template function called
2023-02-05 23:14:10 +01:00
> [`{section}`](../language-builtin-functions/language-function-section.md) have nothing to do with each
2021-12-03 11:59:22 +01:00
> other, they just happen to share a common naming convention.
2023-02-05 23:14:10 +01:00
```smarty
{config_load file='example.conf' section='Customer'}
{config_load 'example.conf' 'Customer'} {* short-hand *}
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
< html >
2021-12-03 11:59:22 +01:00
< title > {#pageTitle #}</ title >
< body bgcolor = "{ #bodyBgColor #}" >
2023-02-05 23:14:10 +01:00
< table border = "{ #tableBorderSize #}" bgcolor = "{ #tableBgColor #}" >
< tr bgcolor = "{ #rowBgColor #}" >
< td > First< / td >
< td > Last< / td >
< td > Address< / td >
< / tr >
< / table >
2021-12-03 11:59:22 +01:00
< / body >
2023-02-05 23:14:10 +01:00
< / html >
```
2021-12-03 11:59:22 +01:00
2023-02-05 23:14:10 +01:00
See [`$config_overwrite` ](../../programmers/api-variables/variable-config-overwrite.md ) to create arrays
2021-12-03 11:59:22 +01:00
of config file variables.
2023-02-05 23:14:10 +01:00
See also the [config files ](../config-files.md ) page, [config variables ](../language-variables/language-config-variables.md ) page,
[`$config_dir` ](../../programmers/api-variables/variable-config-dir.md ),
[`getConfigVars()` ](../../programmers/api-functions/api-get-config-vars.md ) and
[`configLoad()` ](../../programmers/api-functions/api-config-load.md ).