/** * PrintAddonsList * Prints a list of all addons that the system can use. * It works out what step an addon is up to (whether it is configured, enabled, installed or not) and prints an appropriate action * * @uses Interspire_Addons * @uses Interspire_Addons::GetAllAddons * @uses Interspire_Addons::GetAvailableAddons * @uses FlashMessage * @uses GetFlashMessages * * @return String Returns a formatted (table design) list of addons and what they are up to (whether they need to be configured, installed, enabled etc). */ function PrintAddonsList() { require_once(SENDSTUDIO_BASE_DIRECTORY . DIRECTORY_SEPARATOR . 'addons' . DIRECTORY_SEPARATOR . 'interspire_addons.php'); $addon_system = new Interspire_Addons(); $addons = $addon_system->GetAllAddons(); if (empty($addons)) { FlashMessage(GetLang('Addon_NoAddonsAvailable'), SS_FLASH_MSG_ERROR); $GLOBALS['Message'] .= GetFlashMessages(); return $this->ParseTemplate('Settings_Addons_Empty', true, false); } else { $GLOBALS['Message'] .= GetFlashMessages(); } $addons_status = $addon_system->GetAvailableAddons(); $addons_list = ''; $page = array( 'message' => $GLOBALS['Message'] ); foreach ($addons as $addon_name => $details) { $addons[$addon_name]['name'] = htmlspecialchars($details['name'], ENT_QUOTES, SENDSTUDIO_CHARSET); $addons[$addon_name]['short_name'] = htmlspecialchars($this->TruncateName($details['name']), ENT_QUOTES, SENDSTUDIO_CHARSET); $addons[$addon_name]['description'] = htmlspecialchars($details['description'], ENT_QUOTES, SENDSTUDIO_CHARSET); $addons[$addon_name]['short_description'] = htmlspecialchars($this->TruncateName($details['description']), ENT_QUOTES, SENDSTUDIO_CHARSET); if (isset($addons_status[$addon_name])) { $addons[$addon_name]['install_details'] = $addons_status[$addon_name]; $addons[$addon_name]['need_upgrade'] = (version_compare($details['addon_version'], $addons_status[$addon_name]['addon_version']) == 1); } else { $addons[$addon_name]['install_details'] = false; } } $tpl = GetTemplateSystem(); $tpl->Assign('PAGE', $page); $tpl->Assign('records', $addons); return $tpl->ParseTemplate('Settings_Addons_Display', true); }
/** * RegisterAddons * Installs a set of add-ons to be enabled after application installation. * * @return Void Does not return anything. */ public function RegisterAddons() { require_once IEM_PATH . '/../addons/interspire_addons.php'; $all_addons = array_keys(Interspire_Addons::GetAllAddons()); // the add-ons we want to be enabled after installation $addons_to_install = array('checkpermissions', 'dbcheck', 'emaileventlog', 'splittest', 'systemlog', 'updatecheck', 'dynamiccontenttags', 'surveys'); $addons_to_install = array_intersect($all_addons, $addons_to_install); foreach ($addons_to_install as $addon) { $this->InstallAddOn($addon); } }