JView/loadTemplate
From Joomla! Documentation
< API16:JView
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
Load a template file -- first look in the templates folder for an override
Syntax[edit]
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[edit]
string The output of the the template script.
Defined in[edit]
libraries/joomla/application/component/view.php
Importing[edit]
jimport( 'joomla.application.component.view' );
Source Body[edit]
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');
}
}
Examples[edit]
Code Examples[edit]