Beispiel #1
0
/*
$_GET["class"];  		//Class of method $_GET["method"]
$_GET["constructor"];	//Parameters to forward to constructor of $_GET["class"]
$_GET["method"];		//Method to call in $_GET["class"]
$_GET["parameters"]		//Parameters to call method $_GET["method"] with
*/
$c = $cla . "GUI";
$d = new $c($con);
$par = get_magic_quotes_gpc() ? stripslashes($par) : $par;
#$phpversion = str_replace(".","",phpversion())*1;
if (Util::phpVersionGEThen("5.1.0")) {
    $pars = explode("','", $par);
    $pars[0] = substr($pars[0], 1);
    $pars[count($pars) - 1] = substr($pars[count($pars) - 1], 0, strlen($pars[count($pars) - 1]) - 1);
    if (!method_exists($d, $met)) {
        if (!method_exists($d, "__call")) {
            Red::errorD("Die Methode {$c}::{$met} existiert nicht");
        } else {
            array_unshift($pars, $met);
            $met = "__call";
        }
    }
    $method = new ReflectionMethod($c, $met);
    try {
        $method->invokeArgs($d, $pars);
    } catch (FieldDoesNotExistException $e) {
        Red::errorUpdate($e);
    }
} else {
    eval("\$d->" . $met . "({$par});");
}
Beispiel #2
0
    $userHiddenPlugins = mUserdata::getHiddenPlugins();
}
if (isset($userHiddenPlugins[$_GET["p"]])) {
    Red::errorD("Sie haben keine Berechtigung, diese Seite zu betrachten!");
}
if (isset($_GET["bps"])) {
    $_SESSION["BPS"]->setByString($_GET["bps"]);
}
$_GET["p"] = str_replace("GUI", "", $_GET["p"]);
$n = $_GET["p"] . "GUI";
try {
    $b = new $n(isset($_GET["id"]) ? $_GET["id"] : "-1");
} catch (ClassNotFoundException $e) {
    Red::errorClass($n);
}
if (!PMReflector::implementsInterface($n, "iGUIHTMLMP2") and !PMReflector::implementsInterface($n, "iGUIHTML2")) {
    Red::errorD("Class {$_GET['p']}GUI needs to implement the interface iGUIHTML2 or iGUIHTMLMP2!");
}
try {
    echo $b->getHTML(isset($_GET["id"]) ? $_GET["id"] : "-1", isset($_GET["page"]) ? $_GET["page"] : 0);
} catch (TableDoesNotExistException $e) {
    Red::errorD("Die Datenbank-Tabelle (" . $e->getTable() . ") dieses Plugins wurde noch nicht angelegt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (DatabaseNotSelectedException $e) {
    Red::errorD("Keine Datenbank ausgewählt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (NoDBUserDataException $e) {
    Red::errorD("Die Datenbank-Zugangsdaten sind falsch. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
} catch (FieldDoesNotExistException $e) {
    Red::errorUpdate();
} catch (DatabaseNotFoundException $e) {
    Red::errorD("Keine Datenbank ausgewählt. Bitte verwenden Sie das Installations-Plugin im Administrationsbereich.");
}