Aktuelles

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Allgemein Sidebar je nach Benutzergruppe

A

aruetzel

GAST
Guten Morgen!

Habe ein wenig getestet und bin nicht zum gewünschten Ergebnis gekommen. Und zwar soll je nach Benutzergruppenzugehörigkeit eine angepasste Sidebar angezeigt werden.

Hier soweit mein Code den ich in der Skin.php eingefügt habe:

#Prüfung ob User eingeloggt ist -> funktioniert
if ($wgUser->isLoggedIn()) {

#Auslesen der Benutzergruppe aus der DB
$wgUserID = $_REQUEST["enwikiUserID"];
$abfrage = mysql_query("SELECT e.ug_group FROM enwiki.user_groups as e WHERE e.ug_user = '$wgUserID'");
$ergebnis = mysql_fetch_array($abfrage);
$Gruppe = $ergebnis[0];

#Kontrolle der Ergebnise
$wgDebugFile = "/var/log/debug.txt";
$f = fopen($wgDebugFile, "a+");
fputs($f, $wgUserID."\r\n");
fclose($f);

$f = fopen($wgDebugFile, "a+");
fputs($f, $Gruppe."\r\n");
fclose($f);


if ($Gruppe="Customer") {$lines = explode( "\n", wfMsgForContent( 'Customer_sidebar' ) );}
elseif ($Gruppe="Sales") {$lines = explode( "\n", wfMsgForContent( 'Sales_sidebar' ) );}
elseif ($Gruppe="Projects"){$lines = explode( "\n", wfMsgForContent( 'Projects_sidebar' ) );}
elseif ($Gruppe="OEM_Makino"){$lines = explode( "\n", wfMsgForContent( 'OEM_sidebar' ) );}

else
{
# Quasi die Sysop bzw Interne Sidebar
$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );}
}
else {
$lines = explode( "\n", wfMsgForContent( 'Anon_sidebar' ) );
}


Wenn ich ins Debugfile schaue, bekomme ich die gewünschten Gruppen zurückgegeben. Aber bei den if-clauses springt er scheinbar immer in den Else-Zweig (Sysop/Intern)

Weiß jemand Rat?
 
Bevor Dein Beitrag hier zu lange unbeantwortet bleibt, würde ich anraten, das englischsprachige MW-Hilfsforum aufzusuchen. Dort sind einige Spezialisten am Werk, hier möglicherweise (noch) nicht. Wenn die fremde Sprache Dich sorgen sollte, übersetze ich Deinen Beitrag und eventuelle Anworten gerne für Dich.

edit: Ich sehe gerade, dass Du bereits selbst auf das englische Forum gestoßen bist. Dann bin ich mal gespannt, was an Anworten kommt.
 
Danke für das Angebot, aber habe mich dann ja schon alleine durchgekämpft gehabt :)

Problem ist auch mal wieder gelöst

Im Zuge der Anpassungen die ich an der Monobook.php gemacht habe (http://www.mediawiki.org/wiki/Manual:In ... iki_1.13.2) hat folgende Zeile den "Fehler" hervorgerufen:
Code:
echo $wgParser->parse(wfMsgForContent( 'sidebar' ),$wgTitle,$opt,true,true)->getText();

diese habe ich dann jetzt mit meiner Switch-Anweisung aus der Skin.php ausgetauscht (und aus der Skin.php gelöscht)
Code:
$wgUserID = $_REQUEST["enwikiUserID"];
$abfrage = mysql_query("SELECT e.ug_group FROM enwiki.user_groups as e WHERE  e.ug_user = '$wgUserID'");
$ergebnis = mysql_fetch_array($abfrage);
$Gruppe = $ergebnis[0];
switch ($Gruppe) {
    	case "Customer":
		echo $wgParser->parse(wfMsgForContent( 'Customer_sidebar' ),$wgTitle,$opt,true,true)->getText();
        	break;
	case "Sales":
		echo $wgParser->parse(wfMsgForContent( 'Sales_sidebar' ),$wgTitle,$opt,true,true)->getText();
        	break;
...
		}

und jetzt funktioniert es. Sicher geht es eleganter, aber es tut seinen Dienst
 
Zurück
Oben