API16

JView/loadTemplate

From Joomla! Documentation

< API16:JView
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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]