Templates: Integrating templates - tips and tricks

Here is a  list of tips and tricks you can use during developing/integrating HostBill templates.

Controlling Smarty library behaviour through config.php file


HostBill configuration file (includes/config.php) allows to override some Smarty library settings, without the need to modify underlying library code. Following settings can be overrided:

  1. Security settings → PHP_TAGS (ref: https://www.smarty.net/docsv2/en/variable.security.settings.tpl )
    To enable use of Smarty {php} tags, add following to bottom of includes/config.php file:

  2. Trusted directories - to be used with {include_php} tag - (ref: https://www.smarty.net/docsv2/en/variable.trusted.dir.tpl )
    To provide array containing list of trusted directories, add  to bottom includes/config.php file:

  3. PHP handling - how Smarty should react php code (within <?php ?> tags) - (ref: https://www.smarty.net/docsv2/en/variable.php.handling.tpl )
    Set value below in includes/config.php:

    Following values are available:

    • 0Smarty echos tags as-is (default)

    • 1Smarty quotes the tags as html entities
    • 2Smarty removes the tags from the templates
    • 3Smarty will execute the tags as PHP code

Template cache


Sometimes your changes are not displayed immediately after modifying tpl file. To make it work you can:

  • clear contents of /templates_c files under your main HostBill directory
  • add &fcompile=true param to url you're viewing - this will force Smarty template engine to recompile your template

Enabling PHP tags in smarty templates


{PHP} smarty tags are disabled for security purposes from smarty library. You can enable them at your own risk by editing Smarty library:

change:

to:

change:

to:

change:

to:

Make sure not to overwrite your changes with upgrade.

Main Template file


Template file rendered when HostBill index.php is called without params is

Located in your template directory.

Previewing new template


If you're working on new template in separate directory under /templates [ex. /templates/myintegration/ ]dir you don't need to change your current template just to preview your changes. You can add &systemtemplate=myintegration param to url just to change current template for your session. Note: You need to be logged in as administrator to do this.

Debugging template


When you've made mistake in Smarty syntax you wont be able to see your template (it will render blank) - you can enable error reporting in /includes/config.php file of your HostBill to locate where error has been made.

Getting full list of available variables in template


  • since HostBill 2.8

In order to do so you need to enable Smarty debugging in /includes/libs/smarty/Smarty.class.php (its not encrypted). Edit line 103: Code:

Now with each page accessed smarty will pop-up debug console with list of all variables.

Including javascript code


If you wish to enter javascript code in your template files you need to enter them in {literal}{/literal} block - more info here: Link