API16

JView/loadTemplate: Difference between revisions

From Joomla! Documentation

Doxiki (talk | contribs)
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


<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JView/loadTemplate|Edit Descripton]]<nowiki>]</nowiki>
</span>


{{Description:JView/loadTemplate}}
 
{{subst:Description:JView/loadTemplate}}


===Syntax===
===Syntax===
Line 88: Line 86:
</source>
</source>


<span class="editsection" style="font-size:76%;">
 
<nowiki>[</nowiki>[[SeeAlso:JView/loadTemplate|Edit See Also]]<nowiki>]</nowiki>
{{subst:SeeAlso:JView/loadTemplate}}
</span>
{{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 />