/** * Get the template * * @return string The template name * @since 1.0 */ public function loadLetter($id = false) { $letter = MailHelper::loadLetter($id); // set the letter id for the Helper MigurModuleHelper::$itemId = $letter->newsletter_id; MigurModuleHelper::$clean = null; return $letter; }
/** * Load all the modules used in the newsletter * * @return array * @since 1.0 */ protected static function &_load() { if (!empty(self::$clean)) { return self::$clean; } if (self::$itemId < 1) { self::$clean = array(); return self::$clean; } $app = JFactory::getApplication(); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $lang = JFactory::getLanguage()->getTag(); $clientId = (int) $app->getClientId(); $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('newsletters_ext_id as id, ne.title, extension as module, position, NULL as content, ne.showtitle, ne.params as params, e.params as params_default, NULL as menuid, 0 as native'); $query->from('#__newsletter_extensions AS e'); $query->join('', '#__newsletter_newsletters_ext AS ne ON e.extension_id = ne.extension_id'); $query->where('type = 1'); $query->where('ne.newsletter_id = "' . self::$itemId . '"'); $query->where('ne.native = 0'); // Set the query $db->setQuery($query); $modulesCom = $db->loadObjectList(); $query = $db->getQuery(true); $query->select('newsletters_ext_id AS id, ne.title, element AS module, position, ' . 'NULL AS content, ne.showtitle, ne.params AS params, ' . 'e.params AS params_default, NULL AS menuid, 1 AS native'); $query->from('#__extensions AS e'); $query->join('', '#__newsletter_newsletters_ext AS ne ON e.extension_id = ne.extension_id'); $query->where('e.type = "module"'); $query->where('ne.newsletter_id = "' . self::$itemId . '"'); $query->where('ne.native = 1'); // Set the query $db->setQuery($query); $modulesNat = $db->loadObjectList(); $modules = array_merge($modulesCom, $modulesNat); self::$clean = array(); if ($db->getErrorNum()) { JError::raiseWarning(500, JText::sprintf('JLIB_APPLICATION_ERROR_MODULE_LOAD', $db->getErrorMsg())); return self::$clean; } // Apply negative selections and eliminate duplicates $negId = self::$itemId ? -(int) self::$itemId : false; $dupes = array(); for ($i = 0, $n = count($modules); $i < $n; $i++) { $module =& $modules[$i]; //determine if this is a custom module $file = $module->module; $custom = substr($file, 0, 4) == 'mod_' ? 0 : 1; $module->user = $custom; // Custom module name is given by the title field, otherwise strip off "com_" $module->name = $custom ? $module->title : substr($file, 4); $module->style = null; $module->position = strtolower($module->position); if (empty($module->params)) { $module->params = $module->params_default; } self::$clean[$module->id] = $module; } // Return to simple indexing that matches the query order. self::$clean = array_values(self::$clean); return self::$clean; }