API15:JComponentHelper/renderComponent
From Joomla! Documentation
[<! removed edit link to red link >]
<! removed transcluded page call, red link never existed >
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
Code Examples