Difference between revisions of "JModuleHelper/renderModule"
From Joomla! Documentation
< API15:JModuleHelper
(New page: ===Description===
Render the module.
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>Edit Descripton<nowiki>]</nowiki>
...) |
|||
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 17:09, 22 March 2010
The "API15" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Template:Description:JModuleHelper/renderModule
Syntax[edit]
renderModule($module, $attribs=array())
Parameter Name | Default Value | Description |
---|---|---|
$module | ||
$attribs | array() |
Defined in[edit]
libraries/joomla/application/module/helper.php
Importing[edit]
jimport( 'joomla.application.module.helper' );
Source Body[edit]
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[edit]
<CodeExamplesForm />