Actions

API15

JModuleHelper/renderModule

From Joomla! Documentation

< API15:JModuleHelper
Revision as of 17:09, 22 March 2010 by Doxiki (Talk | contribs)

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.

[Edit Descripton]

Description:JModuleHelper/renderModule

Contents

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] SeeAlso:JModuleHelper/renderModule

Examples

<CodeExamplesForm />