Back to HtmlDocument class

Method _fetchTemplate

protected \Joomla\CMS\Document\HtmlDocument
_fetchTemplate
(mixed $params = array())
Fetch the template, and initialise the params
Parameters
  • array $params Parameters to determine the template
Returns
  • \Joomla\CMS\Document\HtmlDocument instance of $this to allow chaining
Since
  • 1.7.0
Class: HtmlDocument
Project: Joomla

Method _fetchTemplate - Source code

/**
 * Fetch the template, and initialise the params
 *
 * @param   array  $params  Parameters to determine the template
 *
 * @return  HtmlDocument instance of $this to allow chaining
 *
 * @since   1.7.0
 */
protected function _fetchTemplate($params = array())
{
    // Check
    $directory = $params['directory'] ?? 'templates';
    $filter = InputFilter::getInstance();
    $template = $filter->clean($params['template'], 'cmd');
    $file = $filter->clean($params['file'], 'cmd');
    $inherits = $params['templateInherits'] ?? '';
    $baseDir = $directory . '/' . $template;
    if (!is_file($directory . '/' . $template . '/' . $file)) {
        if ($inherits !== '' && is_file($directory . '/' . $inherits . '/' . $file)) {
            $baseDir = $directory . '/' . $inherits;
        } else {
            $baseDir = $directory . '/system';
            $template = 'system';
            if ($file !== 'index.php' && !is_file($baseDir . '/' . $file)) {
                $file = 'index.php';
            }
        }
    }
    // Load the language file for the template
    $lang = CmsFactory::getLanguage();
    // 1.5 or core then 1.6
    $lang->load('tpl_' . $template, JPATH_BASE) || $inherits !== '' && $lang->load('tpl_' . $inherits, $directory . '/' . $inherits) || $lang->load('tpl_' . $template, $directory . '/' . $template);
    // Assign the variables
    $this->baseurl = Uri::base(true);
    $this->params = $params['params'] ?? new Registry();
    $this->template = $template;
    // Load
    $this->_template = $this->_loadTemplate($baseDir, $file);
    return $this;
}