Actions

API16

JComponentHelper/renderComponent

From Joomla! Documentation

< API16:JComponentHelper
Revision as of 17:35, 22 March 2010 by Doxiki (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Replacement filing cabinet.png
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.

Contents

Description

Render the component.

[Edit Descripton]

Description:JComponentHelper/renderComponent

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;
}

[Edit See Also] SeeAlso:JComponentHelper/renderComponent

Examples

<CodeExamplesForm />