function rex_setup_addons($uninstallBefore = false, $installDump = true) { global $REX, $I18N; require_once $REX['INCLUDE_PATH'] . '/functions/function_rex_addons.inc.php'; $state = true; $addonErr = ''; $ADDONS = rex_read_addons_folder(); foreach ($REX['SYSTEM_ADDONS'] as $systemAddon) { if ($state === true && $uninstallBefore) { $state = rex_uninstall_addon($ADDONS, $systemAddon); } if ($state === true && !OOAddon::isInstalled($systemAddon)) { $state = rex_install_addon($ADDONS, $systemAddon, $installDump); } if ($state === true && !OOAddon::isActivated($systemAddon)) { $state = rex_activate_addon($ADDONS, $systemAddon); } if ($state !== true) { $addonErr .= '<li>' . $systemAddon . '<ul><li>' . $state . '</li></ul></li>'; } } if ($addonErr != '') { $addonErr = '<ul> <li> <h3>' . $I18N->msg('setup_011', '<span class="rex-error">', '</span>') . '</h3> <ul>' . $addonErr . '</ul> </li> </ul>'; } return $addonErr; }
function rex_delete_addon($addons, $addonname) { global $REX, $I18N; // System AddOns dürfen nicht gelöscht werden! if (in_array($addonname, $REX['SYSTEM_ADDONS'])) { return $I18N->msg('addon_systemaddon_delete_not_allowed'); } // zuerst deinstallieren $state = rex_uninstall_addon($addons, $addonname, false); if ($state === true) { // bei erfolg, komplett löschen rex_deleteDir($REX['INCLUDE_PATH'] . "/addons/{$addonname}", true); // regenerate Addons file $state = rex_generateAddons($addons); } return $state; }
function rex_delete_addon($addons, $addonname) { global $REX, $I18N; $state = true; // zuerst deinstallieren $state = rex_uninstall_addon($addons, $addonname, false); if ($state === true) { // bei erfolg, komplett löschen rex_deleteDir($REX['INCLUDE_PATH'] . "/addons/{$addonname}", true); // regenerate Addons file $state = rex_generateAddons($addons); } return $state; }
// $addonname prüfen ob vorhanden if ($addonname != '') { if (isset($install) and $install == 1) { if (($errmsg = rex_install_addon($ADDONS, $addonname)) === true) { $errmsg = $I18N->msg("addon_installed", $addonname); } } elseif (isset($activate) and $activate == 1) { if (($errmsg = rex_activate_addon($ADDONS, $addonname)) === true) { $errmsg = $I18N->msg("addon_activated", $addonname); } } elseif (isset($activate) and $activate == 0) { if (($errmsg = rex_deactivate_addon($ADDONS, $addonname)) === true) { $errmsg = $I18N->msg("addon_deactivated", $addonname); } } elseif (isset($uninstall) and $uninstall == 1) { if (($errmsg = rex_uninstall_addon($ADDONS, $addonname)) === true) { $errmsg = $I18N->msg("addon_uninstalled", $addonname); } } elseif (isset($delete) and $delete == 1) { if (($errmsg = rex_delete_addon($ADDONS, $addonname)) === true) { $errmsg = $I18N->msg("addon_deleted", $addonname); $addonkey = array_search($addonname, $ADDONS); unset($ADDONS[$addonkey]); } } } // ----------------- OUT if ($SP) { // Vergleiche Addons aus dem Verzeichnis addons/ mit den Eintraegen in include/addons.inc.php // Wenn ein Addon in der Datei fehlt oder nicht mehr vorhanden ist, aendere den Dateiinhalt. if (count(array_diff(array_keys(array_flip($ADDONS)), array_keys($REX['ADDON']['install']))) > 0 || count(array_diff(array_keys($REX['ADDON']['install']), array_keys(array_flip($ADDONS)))) > 0) {
$delete = rex_get('delete', 'int', -1); // ----------------- ADDON INSTALL if ($install == 1) { if (($warning = rex_install_addon($ADDONS, $addonname)) === true) { $info = $I18N->msg("addon_installed", $addonname); } } elseif ($activate == 1) { if (($warning = rex_activate_addon($ADDONS, $addonname)) === true) { $info = $I18N->msg("addon_activated", $addonname); } } elseif ($activate == 0) { if (($warning = rex_deactivate_addon($ADDONS, $addonname)) === true) { $info = $I18N->msg("addon_deactivated", $addonname); } } elseif ($uninstall == 1) { if (($warning = rex_uninstall_addon($ADDONS, $addonname)) === true) { $info = $I18N->msg("addon_uninstalled", $addonname); } } elseif ($delete == 1) { if (($warning = rex_delete_addon($ADDONS, $addonname)) === true) { $info = $I18N->msg("addon_deleted", $addonname); $addonkey = array_search($addonname, $ADDONS); unset($ADDONS[$addonkey]); } } } // ----------------- OUT if ($subpage == '') { // Vergleiche Addons aus dem Verzeichnis addons/ mit den Eintraegen in include/addons.inc.php // Wenn ein Addon in der Datei fehlt oder nicht mehr vorhanden ist, aendere den Dateiinhalt. if (count(array_diff(array_keys(array_flip($ADDONS)), array_keys($REX['ADDON']['install']))) > 0 || count(array_diff(array_keys($REX['ADDON']['install']), array_keys(array_flip($ADDONS)))) > 0) {