pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: Eismann1976 am 10 Januar 2009, 21:56:29

Titel: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: Eismann1976 am 10 Januar 2009, 21:56:29
H   :)

Ich möchte mit ein und dem selben Link Besucher auf unterschiedliche Modue umleiten.
Als einfachste Möglichkeit fiel mir da die Variante ein, in einem Modul abzufragen, in welcher Benutzergruppe der User ist und dann einfach auf das entsprechende Modul umzuleiten oder das Modul zu includen.
Soweit die Idee. Ist das praktikabel ?

Vor langer Zeit hatte mir Andi mal diesen Tip (http://www.pragmamx.org/Forum-topic-21405.html) für die Startseite gegeben und das nutze ich auch sehr häufig.
Nun brauch ich sowas aber wirklich als Modul. Da ich ja nicht wirklich in der Lage bin mir sowas zu schreiben und auch kein Modul gefunden habe wo ich mir das raussuchen kann muss ich hier nach Hilfe fragen.

Gruß Eismann
Titel: Re: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: vittatus am 13 Januar 2009, 11:57:57
Hey das umzusetzten ist in den meisten fällen eigentlich ziemlich einfach.

z.B könntest du es folgendermaßen umsetzten.

Zitat
$uinfo = mxGetUserSession();

if($uinfo['user_ingroup'] == "1")
{
content oder weiterleitung für gruppe 1
}
elseif ($uinfo['user_ingroup'] == "2")
{
content oder weiterleitung für gruppe 2
}
else
{
alle anderen Gruppen
}


Ich hoffe ich konnte dir helfen.

LG Markus
Titel: Re: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: Eismann1976 am 15 Januar 2009, 12:20:46
Danke für die Hilfe.

So in der Art hatte ich das bereits aber er funktionierte nicht. Hab jetzt nochmal versucht Deinen Vorschlag umzusetzen.

<?php
defined
('mxMainFileLoaded') or die('access denied');
$index 1;
include (
"header.php");

$uinfo mxGetUserSession();

$module_name basename(dirname(__FILE__));

if(
$uinfo['user_ingroup'] == '2')
{
echo 
"content oder weiterleitung für gruppe 2";
}
elseif (
$uinfo['user_ingroup'] == '3')
{
echo 
"content oder weiterleitung für gruppe 3";
}
else
{
echo 
"alle anderen Gruppen";
}

include(
"footer.php");
?>


Ich lande allerdings immer bei alle anderen Gruppen egal in welcher Gruppe ich bin.

Wie erzeuge ich dann eigentlich die Weiterleitung zum richtigen Modul statt der Echoausgabe ?

Gruß Jörg
Titel: Re: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: siggi am 15 Januar 2009, 15:45:06
Moin  :smile:

Probier das mal :

Code (index.php) Auswählen
<?php

defined
'mxMainFileLoaded' ) or die( 'access denied' );

settype $uinfo 'array' ); 
$uinfo['user_ingroup'] = '';

if ( 
MX_IS_USER ) {
    
$uinfo mxGetUserData();
}

// example targets
$targetmodul = array( '1' => 'Your_Account''2' => 'Downloads''3' => 'Web_Links' ); // etc.

if ( intval$uinfo['user_ingroup'] ) > && intval$uinfo['user_ingroup'] ) <= count$targetmodul ) ) {
 
// direkte Weiterleitung  
 
header'Location: modules.php?name=' $targetmodul[$uinfo['user_ingroup']] ); exit(); 
}
else { 
  include( 
'header.php' );
    echo 
'undefined location for usergroup...';
  include( 
'footer.php' );
}
?>


ZitatIch lande allerdings immer bei alle anderen Gruppen egal in welcher Gruppe ich bin.

Dazu musst du neue Usergruppen einrichten. Die Standardusergruppe ist 'user' und hat die id = 1. Alle nachfolgend eingerichteten Usergruppen werden numerisch aufzählend eingerichtet (2, 3, 4, ...)


Titel: Re: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: Eismann1976 am 19 Januar 2009, 08:36:18
Hi   :)

Sorry Siggi, ich konnte es noch nicht ausprobieren weil mein Board platt ist und ich nicht an meine ganzen Zugangsdaten rankam.
Ich werd jetzt mal basteln.
Titel: Re: Modul mit Weiterleitung für bestimmte Benutzergruppen
Beitrag von: Eismann1976 am 19 Januar 2009, 12:04:33
So,

gerade mal dazu gekommen. Funktioniert fast perfekt. Habe jetzt für alle andern ein Modul angegeben anstatt der Fehlermeldung.
Jetzt greift da allerdings der Seitencache. Sprich unregistrierte Gäste werden nur alle 5 Minuten weitergeleitet (Cachezeit). Vorher kommt ne weiße Seite bzw. halt die Fehlermeldung mit wenn man die drin lässt.