function rex_uninstall_addon($addons, $addonname) { global $REX, $I18N; $state = true; $install_dir = $REX['INCLUDE_PATH'] . '/addons/' . $addonname; $uninstall_file = $install_dir . '/uninstall.inc.php'; $uninstall_sql = $install_dir . '/uninstall.sql'; if (is_readable($uninstall_file)) { require $uninstall_file; // Wurde das "uninstall" Flag gesetzt, oder eine Fehlermeldung ausgegeben? Wenn ja, Abbruch if (OOAddon::isInstalled($addonname) || !empty($REX['ADDON']['installmsg'][$addonname])) { $state = $I18N->msg('addon_no_uninstall', $addonname) . '<br/>'; if (empty($REX['ADDON']['installmsg'][$addonname])) { $state .= $I18N->msg('addon_no_reason'); } else { $state .= $REX['ADDON']['installmsg'][$addonname]; } } else { $state = rex_deactivate_addon($addons, $addonname); if ($state === true && is_readable($uninstall_sql)) { $state = rex_install_dump($uninstall_sql); if ($state !== true) { $state = 'Error found in uninstall.sql:<br />' . $state; } } if ($state === true) { // regenerate Addons file $state = rex_generateAddons($addons); } } } else { $state = $I18N->msg("addon_uninstall_not_found"); } // Fehler beim uninstall -> Addon bleibt installiert if ($state !== true) { $REX['ADDON']['install'][$addonname] = 1; } return $state; }
function rex_uninstall_addon($addons, $addonname, $regenerate_addons = true) { global $REX, $I18N; $state = true; $uninstall_file = $REX['INCLUDE_PATH'] . "/addons/{$addonname}/uninstall.inc.php"; if (is_readable($uninstall_file)) { include $uninstall_file; // Wurde das "uninstall" Flag gesetzt, oder eine Fehlermeldung ausgegeben? Wenn ja, Abbruch if (OOAddon::isInstalled($addonname) || !empty($REX['ADDON']['installmsg'][$addonname])) { $state = $I18N->msg('addon_no_uninstall', $addonname) . '<br/>'; if (empty($REX['ADDON']['installmsg'][$addonname])) { $state .= $I18N->msg('addon_no_reason'); } else { $state .= $REX['ADDON']['installmsg'][$addonname]; } } else { $state = rex_deactivate_addon($addons, $addonname); if ($state === true && $regenerate_addons) { // regenerate Addons file $state = rex_generateAddons($addons); } } } else { $state = $I18N->msg("addon_uninstall_not_found"); } return $state; }
<p class="rex-hdl"><a href="index.php?page=addon">' . $I18N->msg("addon_back") . '</a></p>'; $SP = false; } // ----------------- FUNCTIONS // $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
// ----------------- FUNCTIONS if ($addonname != '') { $install = rex_get('install', 'int', -1); $activate = rex_get('activate', 'int', -1); $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