diff --git a/1.8/development/plugins/creating-modifying-templates.md b/1.8/development/plugins/creating-modifying-templates.md index 8f83b9ab..15b9fe6c 100644 --- a/1.8/development/plugins/creating-modifying-templates.md +++ b/1.8/development/plugins/creating-modifying-templates.md @@ -94,3 +94,46 @@ global $user; $user['favorite_colour'] = 'Blue'; ``` + +## Caching Templates +Don't forget to cache the template. This is important for pages with big load and prevent the database server from extra queries. + +### Caching a template +A simple way to cache an template only at the place where it's needed is to use the `THIS_SCRIPT` definition. +For example, the template is needed in the postbit. Then we can load it in the showthreads.php. +```php +if(THIS_SCRIPT == 'showthread.php') +{ + global $templatelist; + if(isset($templatelist)) + { + $templatelist .= ','; + } + $templatelist .= 'hello_world_template'; +} +``` +Another example, here are some more templates needed on the member page. Then we can load it in the member.php. +```php +if(THIS_SCRIPT == 'member.php') +{ + global $templatelist; + if(isset($templatelist)) + { + $templatelist .= ','; + } + $templatelist .= ',hello_world_template_second'; + $templatelist .= ',hello_world_template_third'; +} +``` + +### Testing if the template gets cached +You can simply test if the templates get cached correctly or not. Open the page where they should get cached and add a `?debug&debug=1` or `&debug&debug=1` to the url into the browser. +Now you see the `MyBB Debug Information` page. The first table called `Page Generation Statistics` contains a row with the template cache information. + +#### If a template does not get cached +`No. Templates Used: 90 (89 Cached / 1 Manually Loaded)` +This means there is 1 template that needs an extra select query to the database to get loaded. At the botton you see the `Template Statistics` and now can control which templates don't get cached. All template names in `Templates Requiring Additional Calls (Not Cached at Startup) - 1 Total` are not cached, so you should correct your code. + +#### How to determine if templates are being cached correctly +`No. Templates Used: 90 (90 Cached / 0 Manually Loaded)` +Your template is now listed in the correct `Template Statistics` table.