Actions

API15

JComponentHelper/renderComponent

From Joomla! Documentation

< API15:JComponentHelper
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.

[<! removed edit link to red link >]

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

Contents

Syntax

renderComponent($name=null, $params=array())
Parameter Name Default Value Description
$name null
$params array()

Defined in

libraries/joomla/application/component/helper.php

Importing

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

Source Body

function renderComponent($name = null, $params = array())
{
        global $mainframe, $option;
 
        if(empty($name)) {
                // Throw 404 if no component
                JError::raiseError(404, JText::_("Component Not Found"));
                return;
        }
 
        $scope = $mainframe->scope; //record the scope
        $mainframe->scope = $name;  //set scope to component name
 
        // Build the component path
        $name = preg_replace('/[^A-Z0-9_\.-]/i', '', $name);
        $file = substr( $name, 4 );
 
        // Define component path
        define( 'JPATH_COMPONENT',                                      JPATH_BASE.DS.'components'.DS.$name);
        define( 'JPATH_COMPONENT_SITE',                         JPATH_SITE.DS.'components'.DS.$name);
        define( 'JPATH_COMPONENT_ADMINISTRATOR',        JPATH_ADMINISTRATOR.DS.'components'.DS.$name);
 
        // get component path
        if ( $mainframe->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 (!JComponentHelper::isEnabled( $name ) || !file_exists($path)) {
                JError::raiseError( 404, JText::_( 'Component Not Found' ) );
        }
 
        // Handle legacy globals if enabled
        if ($mainframe->getCfg('legacy'))
        {
                // Include legacy globals
                global $my, $database, $id, $acl, $task;
 
                // For backwards compatibility extract the config vars as globals
                $registry =& JFactory::getConfig();
                foreach (get_object_vars($registry->toObject()) as $k => $v)
                {
                        $varname = 'mosConfig_'.$k;
                        $$varname = $v;
                }
                $contentConfig = &JComponentHelper::getParams( 'com_content' );
                foreach (get_object_vars($contentConfig->toObject()) as $k => $v)
                {
                        $varname = 'mosConfig_'.$k;
                        $$varname = $v;
                }
                $usersConfig = &JComponentHelper::getParams( 'com_users' );
                foreach (get_object_vars($usersConfig->toObject()) as $k => $v)
                {
                        $varname = 'mosConfig_'.$k;
                        $$varname = $v;
                }
 
        }
 
        $task = JRequest::getString( 'task' );
 
        // Load common language files
        $lang =& JFactory::getLanguage();
        $lang->load($name);
 
        // 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' )) && $mainframe->isAdmin()) {
 
                // Get the task again, in case it has changed
                $task = JRequest::getString( 'task' );
 
                // Make the toolbar
                include_once( $path );
        }
 
        $mainframe->scope = $scope; //revert the scope
 
        return $contents;
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples

<CodeExamplesForm />