Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
 /**
  * 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;
 }