JView/loadTemplate: Difference between revisions
From Joomla! Documentation
New page: ===Description===
Load a template file -- first look in the templates folder for an override
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JView/lo... |
m clean up |
||
| Line 2: | Line 2: | ||
Load a template file -- first look in the templates folder for an override | Load a template file -- first look in the templates folder for an override | ||
{{Description:JView/loadTemplate}} | |||
{{subst:Description:JView/loadTemplate}} | |||
===Syntax=== | ===Syntax=== | ||
| Line 88: | Line 86: | ||
</source> | </source> | ||
{{subst:SeeAlso:JView/loadTemplate}} | |||
{{SeeAlso:JView/loadTemplate}} | |||
===Examples=== | ===Examples=== | ||
Revision as of 14:38, 24 March 2017
Description
Load a template file -- first look in the templates folder for an override
{{subst:Description:JView/loadTemplate}}
Syntax
loadTemplate($tpl=null)
| Parameter Name | Default Value | Description |
|---|---|---|
| $tpl | null | The name of the template source file ... automatically searches the template paths and compiles as needed. |
Returns
string The output of the the template script.
Defined in
libraries/joomla/application/component/view.php
Importing
jimport( 'joomla.application.component.view' );
Source Body
function loadTemplate($tpl = null)
{
// clear prior output
$this->_output = null;
//create the template file name based on the layout
$file = isset($tpl) ? $this->_layout.'_'.$tpl : $this->_layout;
// clean the file name
$file = preg_replace('/[^A-Z0-9_\.-]/i', '', $file);
$tpl = preg_replace('/[^A-Z0-9_\.-]/i', '', $tpl);
// Load the language file for the template
$lang = &JFactory::getLanguage();
$app = &JFactory::getApplication();
$template = $app->getTemplate();
$lang->load('tpl_'.$template, JPATH_BASE, null, false, false)
|| $lang->load('tpl_'.$template, JPATH_THEMES."/$template", null, false, false)
|| $lang->load('tpl_'.$template, JPATH_BASE, $lang->getDefault(), false, false)
|| $lang->load('tpl_'.$template, JPATH_THEMES."/$template", $lang->getDefault(), false, false);
// load the template script
jimport('joomla.filesystem.path');
$filetofind = $this->_createFileName('template', array('name' => $file));
$this->_template = JPath::find($this->_path['template'], $filetofind);
if ($this->_template != false)
{
// unset so as not to introduce into template scope
unset($tpl);
unset($file);
// never allow a 'this' property
if (isset($this->this)) {
unset($this->this);
}
// start capturing output into a buffer
ob_start();
// include the requested template filename in the local scope
// (this will execute the view logic).
include $this->_template;
// done with the requested template; get the buffer and
// clear it.
$this->_output = ob_get_contents();
ob_end_clean();
return $this->_output;
}
else {
return JError::raiseError(500, 'Layout "' . $file . '" not found');
}
}
{{subst:SeeAlso:JView/loadTemplate}}
Examples
<CodeExamplesForm />