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;
}
示例#3
0
  		<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
示例#4
0
// ----------------- 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