API16

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]