Modul mit Parametern auf Startseite aufrufen

Begonnen von Eismann1976, 02 September 2007, 16:32:53

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Eismann1976

Hallo,

ich beziehe mich zunächst mal auf den Thread

http://www.pragmamx.org/Forum-topic-21405.html

Das klappt ja auch ohne Probleme

Nun möchte ich einer Benutzergruppe eine bestimmte Seite des vwar Moduls zuweisen.

(Bitte jetzt keine Hinweise auf die diversen Sicherheitslücken, das ist mir bewußt aber ich habe keine Alternative)

Ich habe also in der index.php folgende Änderungen vorgenommen

/**
* einen Modulnamen verpassen
*/
$name = mxGetMainModuleName();
define("MX_MODULE", $name);


in

/**
/**
* einen Modulnamen verpassen
*/
if (MX_IS_USER) {
    $uinf = mxGetUserData();
    if ($uinf['user_ingroup'] == 3) {
        $name = 'vwar';
    }
}
if (!isset($name)) {
    $name = mxGetMainModuleName();
}
define("MX_MODULE", $name);



Nun lautet der Link den ich nutzen will aber

http://www.tld/modules.php?name=vwar&file=member

Nun kann ich natürlich nicht vwar&file=member eintragen weil es ja nur das Modul vwar gibt.

Hat da vielleicht jemand eine Idee ?
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

JoergK

Theoretisch sollte sollte das wie folgt funktioniern:
Erweiter die Zeilen
/**
/**
* einen Modulnamen verpassen
*/
if (MX_IS_USER) {
    $uinf = mxGetUserData();
    if ($uinf['user_ingroup'] == 3) {
        $name = 'vwar';
    }
}
if (!isset($name)) {
    $name = mxGetMainModuleName();
}
define("MX_MODULE", $name);

$modfile = "modules/" . $name . "/index.php";
$op = "modload";
$file = "index";

mal auf das
/**
/**
* einen Modulnamen verpassen
*/
if (MX_IS_USER) {
    $uinf = mxGetUserData();
    if ($uinf['user_ingroup'] == 3) {
        $name = 'vwar';
    }
}
if (!isset($name)) {
    $name = mxGetMainModuleName();
}
define("MX_MODULE", $name);

if (MX_IS_USER && $uinf['user_ingroup'] == 3) {
    $modfile = "modules/" . $name . "/member.php";
    $op = "modload";
    $file = "member";
} else {
    $modfile = "modules/" . $name . "/index.php";
    $op = "modload";
    $file = "index";
}

Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

Eismann1976

Das funktioniert schon sehr gut.  :thumbup:

Ich verstehs nur noch ned so ganz.   :red:

Wie müßte es beispielsweise mit diesem (noch längeren) Pfad aussehen.

modules.php?name=vwar&file=war&action=nextaction

Hab es in meinem jugendlichen Leichtsinn mal so ausprobiert

if (MX_IS_USER) {
$uinf = mxGetUserData();
if ($uinf['user_ingroup'] == 12) {
$name = 'vwar';
}
}
if (!isset($name)) {
$name = mxGetMainModuleName();
}
define("MX_MODULE", $name);

if (MX_IS_USER && $uinf['user_ingroup'] == 12) {
$modfile = "modules/" . $name . "/war.php";
$op = "modload";
$file = "war";
$action = "nextaction";
} else {
$modfile = "modules/" . $name . "/index.php";
$op = "modload";
$file = "index";
}


Das $action = "nextaction"; scheint aber nichts zu bewirken.
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

JoergK

Gibt es denn im Modulverzeichnis eine Datei "war.php"?? In der mir vorliegenden Version 1.5 für Nuke7.6v1 gibt es die nämlich nicht.  ;)
Demnach müsste der Aufruf so aussehen:
Zitatmodules.php?name=vwar&action=nextaction
und dein Code theoretisch so
if (MX_IS_USER) {
    $uinf = mxGetUserData();
    if ($uinf['user_ingroup'] == 12) {
        $name = 'vwar';
    }
}
if (!isset($name)) {
    $name = mxGetMainModuleName();
}
define("MX_MODULE", $name);

if (MX_IS_USER && $uinf['user_ingroup'] == 12) {
    $action = "nextaction";
} else {
    $modfile = "modules/" . $name . "/index.php";
    $op = "modload";
    $file = "index";
}


Falls die Variable $action auf diesem Weg nicht ans Moduls durchgereicht werden sollte, dann musste die in der index.php des Moduls definieren. Vor der Zeile
// ################################### display wars  ###################################

fügst Du dann das ein
if (MX_IS_USER) {
    $uinf = mxGetUserData();
    if ($uinf['user_ingroup'] == 12) {
        $GPC['action'] = 'nextaction';
    }
}


Wie erwähnt, ist alles Theorie, da ich zwar die oben genannte Version als Source besitze, das Modul jedoch nicht installiert habe und somit auch keine Tests durchführen kann.
Gruß,
Jörg


Nobody is perfect ... so don't call me Nobody

Eismann1976

#4
Ja die Datei gibts.  :)

Die Links stehen hier

http://www.vwar.de/FAQ_DE.html#4_1

Deine erste Lösung ging leider nicht. Ich versuchs mal mit der Variante direkt im Modul.


Edit:  Die Variante direkt in der index.php des Moduls funktioniert. Daaaanke      :thumbup:
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

Eismann1976

Nochmal zur Ergänzung falls jemand was Ähnliches vorhat und ich doch noch einen Fehler festgestellt habe.

Die Änderungen müssen in der normalen index.php und in der jeweils angesprochenen Datei des Moduls (hier war.php - nicht index.php des Moduls) vorgenommen werden.

Die Anzeige als Startseite funktioniert nach den vorgenommenen Änderungen zwar, allerdings lassen sich dann die normalen Funktionen des VWAR Moduls auf dieser Seite nicht mehr nutzen.
Im konkreten Fall kann man sich nicht mehr von Wars an bzw. abmelden. Das kann natürlich nicht Sinn der Sache sein.

Die Lösung des Problems ist jedoch ganz einfach möglich. Die geänderte Datei des VWAR Moduls (hier war.php) speichert man unter einem anderen Namen bsp. war_start.php ab und setzt diese als Startseite in der normalen index.php ein.
Schon funktioniert wieder Alles und man hat seine Startseite.

Nochmal danke für die Hilfe.   :thumbup:
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5