Customize templates and language files
Archived instructions for existing Fusion Owned installations; labels and available controls depend on the installed build.
Select visitor and client templates
Open **Settings > General Settings > Appearance**.
- **Template** is the default client-side template before login.
- **Client area template** is the template shown after login. Its checkbox can force that choice onto existing users.
- **Cart style** selects the cart presentation.
Under **Settings > General Settings > Site Settings**, **Faster Browsing** can prevent template edits from appearing while it is enabled. The archive recommends that option for a stable design, so review it when an edit is not visible.
Create a separate custom template
1. Back up the existing template and language files.
2. Duplicate the `default` folder in the `templates` directory and give the copy a custom name.
3. Edit the copied files. Each page is assembled from `header.tpl`, that page's template and `footer.tpl`.
4. Use `index.tpl` for the site's homepage and `home.tpl` for the main client-area page; other page templates have their own variables.
5. Upload the custom folder to the server's `templates` directory.
6. In the administrator's General Site Settings, open **Appearance** and choose the custom name in **Template**.
Changes to `header.tpl` and `footer.tpl` affect every page that uses those files. Test the copied theme before selecting it for normal visitors.
Use the archived Smarty syntax
The templates combine HTML with Smarty variables and conditions.
- On an isolated test copy only, adding `{debug}` to a template displays a popup of variables available to that page. Remove it before the template is exposed to users; real page data can be private.
- Surround literal inline JavaScript or other brace-based text with `{literal}` and `{/literal}` when Smarty would otherwise try to parse it. Content inside those tags is not parsed as template variables.
- The source's logged-in condition is `{if $logedin}Client-only content{else}Visitor content{/if}`. Preserve the variable spelling used by that build.
- Its gateway example is `{if $gateway.name eq "PayPal"}We accept PayPal{/if}`. A conditional display does not configure or activate the gateway.
Variables differ by page, so do not copy a variable from one page into another without checking the installed template.
Add a language file
1. Duplicate `language/English.txt`.
2. Give the copy a language name such as `Spanish.txt`, without special characters in the filename.
3. Translate the text strings, preserving the quotation marks and the semicolon at the end of each assignment.
4. Save and upload the file to the `language` directory.
A missing quote or semicolon can cause errors when the site loads.
Change an existing label
Edit the relevant file in `language`. The archive's example changes `$lng_languag["validationerror"] = 'value is not valid';` to `$lng_languag["validationerror"] = 'invalid value';`.
Save and upload the file, then check the affected client page. Under **Settings > General Settings > Localisations**, review **Character set for user** or **Character set for admin** when translated text is unreadable; the source identifies UTF-8 as the normal modern character set.