API16

API16:JComponentHelper/renderComponent

From Joomla! Documentation

Description

Render the component.


<! removed transcluded page call, red link never existed >

Syntax

static renderComponent($option, $params=array())
Parameter Name Default Value Description
$option The component option.
$params array()

Defined in

libraries/joomla/application/component/helper.php

Importing

jimport( 'joomla.application.component.helper' );

Source Body

public static function renderComponent($option, $params = array())
{
        // Initialise variables.
        $app    = JFactory::getApplication();

        if (empty($option)) {
                // Throw 404 if no component
                JError::raiseError(404, JText::_("COMPONENT_NOT_FOUND"));
                return;
        }

        $scope = $app->scope; //record the scope
        $app->scope = $option;  //set scope to component name

        // Build the component path.
        $option = preg_replace('/[^A-Z0-9_\.-]/i', '', $option);
        $file   = substr($option, 4);

        // Define component path.
        define('JPATH_COMPONENT',                               JPATH_BASE.DS.'components'.DS.$option);
        define('JPATH_COMPONENT_SITE',                  JPATH_SITE.DS.'components'.DS.$option);
        define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR.DS.'components'.DS.$option);

        // get component path
        if ($app->isAdmin() && file_exists(JPATH_COMPONENT.DS.'admin.'.$file.'.php')) {
                $path = JPATH_COMPONENT.DS.'admin.'.$file.'.php';
        } else {
                $path = JPATH_COMPONENT.DS.$file.'.php';
        }

        // If component disabled throw error
        if (!self::isEnabled($option) || !file_exists($path)) {
                JError::raiseError(404, JText::_('COMPONENT_NOT_FOUND'));
        }

        $task = JRequest::getString('task');

        // Load common and local language files.
        $lang = &JFactory::getLanguage();
                $lang->load($option, JPATH_BASE, null, false, false)
        ||      $lang->load($option, JPATH_COMPONENT, null, false, false)
        ||      $lang->load($option, JPATH_BASE, $lang->getDefault(), false, false)
        ||      $lang->load($option, JPATH_COMPONENT, $lang->getDefault(), false, false);

        // Handle template preview outlining.
        $contents = null;

        // Execute the component.
        ob_start();
        require_once $path;
        $contents = ob_get_contents();
        ob_end_clean();

        // Build the component toolbar
        jimport('joomla.application.helper');
        if (($path = JApplicationHelper::getPath('toolbar')) && $app->isAdmin()) {
                // Get the task again, in case it has changed
                $task = JRequest::getString('task');

                // Make the toolbar
                include_once $path;
        }

        $app->scope = $scope; //revert the scope

        return $contents;
}


<! removed transcluded page call, red link never existed >

Examples

Code Examples