/** * Renders a module script and returns the results as a string * * @param string $name The name of the module to render * @param array $attribs Associative array of values * * @return string The output of the script * @since 1.0 */ public function render($module, $attribs = array(), $content = null) { // add the environment data to attributes of module $registry = JRegistry::getInstance('document.environment'); $env = $registry->getValue('params', array()); $attribs = array_merge($env, $attribs); if (!is_object($module)) { $title = isset($attribs['title']) ? $attribs['title'] : null; $module = MigurModuleHelper::getModule($module, $title); if (!is_object($module)) { if (is_null($content)) { return ''; } else { /** * If module isn't found in the database but data has been pushed in the buffer * we want to render it */ $tmp = $module; $module = new stdClass(); $module->params = null; $module->module = $tmp; $module->id = 0; $module->user = 0; } } } // get the user and configuration object //$user = JFactory::getUser(); $conf = JFactory::getConfig(); // set the module content if (!is_null($content)) { $module->content = $content; } //get module parameters $params = new JRegistry(); $params->loadJSON($module->params); // use parameters from template if (isset($attribs['params'])) { $template_params = new JRegistry(); $template_params->loadJSON(html_entity_decode($attribs['params'], ENT_COMPAT, 'UTF-8')); $params->merge($template_params); $module = clone $module; $module->params = (string) $params; } $contents = ''; $cachemode = $params->get('cachemode', 'oldstatic'); // default for compatibility purposes. Set cachemode parameter or use JModuleHelper::moduleCache from within the module instead if ($params->get('cache', 0) == 1 && $conf->get('caching') >= 1 && $cachemode != 'id' && $cachemode != 'safeuri') { // default to itemid creating mehod and workarounds on $cacheparams = new stdClass(); $cacheparams->cachemode = $cachemode; $cacheparams->class = 'JModuleHelper'; $cacheparams->method = 'renderModule'; $cacheparams->methodparams = array($module, $attribs); $contents = MigurModuleHelper::ModuleCache($module, $params, $cacheparams); } else { $contents = MigurModuleHelper::renderModule($module, $attribs); } return $contents; }
/** * Render each module from the list. * * @param <type> $params - the array(object(widgetId, moduleName, native)) * @return <type> */ public function renderModules($params) { MigurModuleHelper::renderModule($module); // If can't determine the type of doc... if (empty($params['type']) || !in_array($params['type'], array('html', 'plain'))) { $this->setError('Type is not defined'); return false; } $document = MigurMailerDocument::factory($params['type'], $params); //$this->triggerEvent('onMailerBeforeRender'); $data = $document->render(false, $params); //$this->triggerEvent('onMailerAfterRender'); unset($document); return $data; }
/** * Render and send the letter to the selected emails * Only for preview!!!! This method dont use the DB data. * It gets data from REQUEST: * - params, * - title, * - showtitle, * - extension_id(the id of a module in db) * - native * * @return void * @since 1.0 */ public function rendermodule() { $native = JRequest::getString('native'); $id = JRequest::getString('extension_id'); $params = JRequest::getVar('params', array(), 'post', 'array'); $title = JRequest::getString('title'); $showTitle = JRequest::getString('showtitle'); $modules = MigurModuleHelper::getSupported(array('extension_id' => $id, 'native' => $native)); $module = $modules[0]; // Override needed data $module->params = json_encode((object) $params); $module->title = $title; $module->showtitle = $showTitle; $content = MigurModuleHelper::renderModule($modules[0]); echo $content; die; }