Esempio n. 1
0
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;
}
Esempio n. 4
0
// $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) {
Esempio n. 5
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) {