JModuleHelper/renderModule: Difference between revisions
From Joomla! Documentation
New page: ===Description===
Render the module.
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>Edit Descripton<nowiki>]</nowiki>
... |
No edit summary |
||
| Line 1: | Line 1: | ||
<span class="editsection" style="font-size:76%;"> | <span class="editsection" style="font-size:76%;"> | ||
| Line 9: | Line 7: | ||
===Syntax=== | ===Syntax=== | ||
<source lang="php"> | <source lang="php">renderModule($module, $attribs=array())</source> | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 19: | Line 17: | ||
| $module | | $module | ||
| | | | ||
| | | | ||
|- | |- | ||
| $attribs | | $attribs | ||
| array() | | array() | ||
| | | | ||
|} | |} | ||
===Defined in=== | ===Defined in=== | ||
| Line 36: | Line 31: | ||
===Source Body=== | ===Source Body=== | ||
<source lang="php"> | <source lang="php"> | ||
function renderModule($module, $attribs = array()) | |||
{ | { | ||
static $chrome; | static $chrome; | ||
global $mainframe, $option; | |||
$ | $scope = $mainframe->scope; //record the scope | ||
$ | $mainframe->scope = $module->module; //set scope to component name | ||
// | // Handle legacy globals if enabled | ||
$ | if ($mainframe->getCfg('legacy')) | ||
{ | |||
// Include legacy globals | |||
global $my, $database, $acl, $mosConfig_absolute_path; | |||
// Get the task variable for local scope | |||
$task = JRequest::getString('task'); | |||
// For backwards compatibility extract the config vars as globals | |||
$registry =& JFactory::getConfig(); | |||
foreach (get_object_vars($registry->toObject()) as $k => $v) { | |||
$name = 'mosConfig_'.$k; | |||
$$name = $v; | |||
} | |||
$contentConfig = &JComponentHelper::getParams( 'com_content' ); | |||
foreach (get_object_vars($contentConfig->toObject()) as $k => $v) | |||
{ | |||
$name = 'mosConfig_'.$k; | |||
$$name = $v; | |||
} | |||
$usersConfig = &JComponentHelper::getParams( 'com_users' ); | |||
foreach (get_object_vars($usersConfig->toObject()) as $k => $v) | |||
{ | |||
$name = 'mosConfig_'.$k; | |||
$$name = $v; | |||
} | |||
} | |||
// Get module parameters | // Get module parameters | ||
$params = new JParameter($module->params); | $params = new JParameter( $module->params ); | ||
// Get module path | // Get module path | ||
$module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module); | $module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module); | ||
$path = JPATH_BASE.' | $path = JPATH_BASE.DS.'modules'.DS.$module->module.DS.$module->module.'.php'; | ||
// Load the module | // Load the module | ||
if (!$module->user && file_exists($path)) | if (!$module->user && file_exists( $path ) && empty($module->content)) | ||
{ | { | ||
$lang = &JFactory::getLanguage(); | $lang =& JFactory::getLanguage(); | ||
$lang->load($module->module); | $lang->load($module->module); | ||
$content = ''; | $content = ''; | ||
| Line 77: | Line 93: | ||
} | } | ||
require_once JPATH_BASE.' | require_once (JPATH_BASE.DS.'templates'.DS.'system'.DS.'html'.DS.'modules.php'); | ||
$chromePath = JPATH_BASE.' | $chromePath = JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.'html'.DS.'modules.php'; | ||
if (!isset($chrome[$chromePath])) | if (!isset( $chrome[$chromePath])) | ||
{ | { | ||
if (file_exists($chromePath)) { | if (file_exists($chromePath)) { | ||
require_once $chromePath; | require_once ($chromePath); | ||
} | } | ||
$chrome[$chromePath] = true; | $chrome[$chromePath] = true; | ||
| Line 88: | Line 104: | ||
//make sure a style is set | //make sure a style is set | ||
if (!isset($attribs['style'])) { | if(!isset($attribs['style'])) { | ||
$attribs['style'] = 'none'; | $attribs['style'] = 'none'; | ||
} | } | ||
//dynamically add outline style | //dynamically add outline style | ||
if ( | if(JRequest::getBool('tp')) { | ||
$attribs['style'] .= ' outline'; | $attribs['style'] .= ' outline'; | ||
} | } | ||
| Line 113: | Line 129: | ||
} | } | ||
$ | $mainframe->scope = $scope; //revert the scope | ||
return $module->content; | return $module->content; | ||
Revision as of 22:09, 22 March 2010
Template:Description:JModuleHelper/renderModule
Syntax
renderModule($module, $attribs=array())
| Parameter Name | Default Value | Description |
|---|---|---|
| $module | ||
| $attribs | array() |
Defined in
libraries/joomla/application/module/helper.php
Importing
jimport( 'joomla.application.module.helper' );
Source Body
function renderModule($module, $attribs = array())
{
static $chrome;
global $mainframe, $option;
$scope = $mainframe->scope; //record the scope
$mainframe->scope = $module->module; //set scope to component name
// Handle legacy globals if enabled
if ($mainframe->getCfg('legacy'))
{
// Include legacy globals
global $my, $database, $acl, $mosConfig_absolute_path;
// Get the task variable for local scope
$task = JRequest::getString('task');
// For backwards compatibility extract the config vars as globals
$registry =& JFactory::getConfig();
foreach (get_object_vars($registry->toObject()) as $k => $v) {
$name = 'mosConfig_'.$k;
$$name = $v;
}
$contentConfig = &JComponentHelper::getParams( 'com_content' );
foreach (get_object_vars($contentConfig->toObject()) as $k => $v)
{
$name = 'mosConfig_'.$k;
$$name = $v;
}
$usersConfig = &JComponentHelper::getParams( 'com_users' );
foreach (get_object_vars($usersConfig->toObject()) as $k => $v)
{
$name = 'mosConfig_'.$k;
$$name = $v;
}
}
// Get module parameters
$params = new JParameter( $module->params );
// Get module path
$module->module = preg_replace('/[^A-Z0-9_\.-]/i', '', $module->module);
$path = JPATH_BASE.DS.'modules'.DS.$module->module.DS.$module->module.'.php';
// Load the module
if (!$module->user && file_exists( $path ) && empty($module->content))
{
$lang =& JFactory::getLanguage();
$lang->load($module->module);
$content = '';
ob_start();
require $path;
$module->content = ob_get_contents().$content;
ob_end_clean();
}
// Load the module chrome functions
if (!$chrome) {
$chrome = array();
}
require_once (JPATH_BASE.DS.'templates'.DS.'system'.DS.'html'.DS.'modules.php');
$chromePath = JPATH_BASE.DS.'templates'.DS.$mainframe->getTemplate().DS.'html'.DS.'modules.php';
if (!isset( $chrome[$chromePath]))
{
if (file_exists($chromePath)) {
require_once ($chromePath);
}
$chrome[$chromePath] = true;
}
//make sure a style is set
if(!isset($attribs['style'])) {
$attribs['style'] = 'none';
}
//dynamically add outline style
if(JRequest::getBool('tp')) {
$attribs['style'] .= ' outline';
}
foreach(explode(' ', $attribs['style']) as $style)
{
$chromeMethod = 'modChrome_'.$style;
// Apply chrome and render module
if (function_exists($chromeMethod))
{
$module->style = $attribs['style'];
ob_start();
$chromeMethod($module, $params, $attribs);
$module->content = ob_get_contents();
ob_end_clean();
}
}
$mainframe->scope = $scope; //revert the scope
return $module->content;
}
[Edit See Also] Template:SeeAlso:JModuleHelper/renderModule
Examples
<CodeExamplesForm />