Templates
Please note: This page is under construction and has not been finished yet.
Introduction
Templates and shortcodes function together to allow a developer to place dynamic content into their code.
Templates are portions of HTML which contain markers that are replaced by dynamic content when parsed e107's
parseTemplate()
function.These markers are called 'shortcodes'.
A shortcode is always CAPITALIZED and is surrounded by curly brackets and it may contain letters and underscores. For example:
{MY_SHORTCODE}
Each shortcode has a corresponding function/method which is run during the parsing of the template. These functions are always lowercase and begin with the prefix
sc_
. eg.sc_my_shortcode()
. This means that{MY_SHORTCODE}
is replaced by what is returned bysc_my_shortcode()
.Shortcodes may also contain parameters which are sent to the corresponding method. For example:
{MY_SHORTCODE: x=foo&y=bar}
Creating templates
Create a folder called templates
inside your plugin directory, and inside create an empty file using the name of your plugin folder, followed by _template.php
. eg. myplugin_template.php
Inside this file add an array by the same name, but in UPPERCASE: eg. $MYPLUGIN_TEMPLATE['xxxx']
xxxx
can be anything you want, but we suggest using start
, item
, end
etc. when applicable. This value should always be lowercase. Here's a simple example of the contents of myplugin_template.php
:
If your plugin will use several different types of templates, eg. a listing page and an input form. You can do something like this:
Loading templates
You may load a template file in the following way:
You can now use the $template
code array for parsing:
Overriding Core Templates
All templates that are used in e107 can be overridden by copying them into specific folders within your current theme folder.
Core themes (located in
e107_core/templates/
) should be copied intoe107_themes/YOURTHEME/templates/
Plugin templates should be copied into
e107_themes/YOURTHEME/templates/PLUGIN-FOLDER
Note: Older plugins may look for templates in the root folder of your theme. ie.e107_theme/YOURTHEME/
Examples
1) The comment template is a core template, as it is located in e107_core/templates/. To override this template, copy the file to e107_themes/your_theme_folder/templates/. 2) The news template is located in e107_plugins/news/. To override this template, copy the file over to e107_themes/your_theme_folder/templates/news/. 3) The same for, for example, the chatbox menu template. The chatbox_menu template is located in e107_plugins/chatbox_menu. Copy the template over to e107_themes/your_theme_folder/templates/chatbox_menu/
Important: For overriding plugin templates, the folder name within your_theme_folder/templates/ directory must match the exact plugin folder name.
Last updated