Frage: Who is online - $is_auth_ary und auth

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Frage: Who is online - $is_auth_ary und auth

Beitrag von LuLa »

Hallo,
ich habe die Topic_in_Who_is_online-MOD von Niels (ehemals http://mods.db9.dk) eingebaut, aber es funktioniert leider noch nicht so richtig. Es geht um folgende Zeilen der viewonline.php:

Code: Alles auswählen

$is_auth_ary = array();
$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
.
.
.
// Start replacement - Topic in Who is online MOD
// if ( $row['session_topic'] )
if ( $row['session_topic'] && $is_auth_ary[$row['session_topic']]['auth_view'] )
{
	//
	// Topic info
	//
	$sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id=" . $row['session_topic'];
	if ( $result2 = $db->sql_query($sql) )
	{
		$topic_title = $db->sql_fetchrow($result2);
	}
	else
	{
		message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql);
	}
	$location_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $row['session_topic']);
	$location = $forum_data[$row['session_page']] .' -> '.$topic_title['topic_title'];
} else
{
	$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
	$location = $forum_data[$row['session_page']];
}
// End replacement - Topic in Who is online MOD
Der if-Zeile am Anfang habe ich das "&& $is_auth_ary[$row['session_topic']]['auth_view']" hinzugefügt, damit User die Information nur dann sehen können, wenn sie auch Leserechte für das entsprechende Forum haben. Leider habe ich da irgendwo etwas falsch gemacht. Nehme ich das "&& $is_auth_ary[$row['session_topic']]['auth_view']" weg, funktioniert alles. Bloß können dann User andere User in Foren sehen, die sie selber gar nicht sehen/kennen können. Das soll ja nicht sein.

Könnt Ihr mir sagen was ich falsch gemacht habe? Ist bestimmt nur eine Kleinigkeit. Niels' Board gibt es nicht mehr, aber Ihr könnt mir bestimmt auch helfen!


Danke im voraus.
LG Lula
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Beitrag von LuLa »

26 Stunden sind um und von allen PHP-Göttern hatte noch keiner eine Idee?
Glaube ich kaum... :D

Vielleicht würde es schon ausreichen, wenn mir jemand die Funktionsweise von $is_auth_ary und auth(...) erklärt.
Ich komme sonst in dieser Sache wirklich nicht weiter.
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Beitrag von LuLa »

Noch ein Versuch...
Hüüülfe! :D
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Re: Frage: Who is online - $is_auth_ary und auth

Beitrag von easygo »

LuLa hat geschrieben:Der if-Zeile am Anfang habe ich das "&& $is_auth_ary[$row['session_topic']]['auth_view']" hinzugefügt, damit User die Information nur dann sehen können, wenn sie auch Leserechte für das entsprechende Forum haben. Leider habe ich da irgendwo etwas falsch gemacht. Nehme ich das "&& $is_auth_ary[$row['session_topic']]['auth_view']" weg, funktioniert alles. Bloß können dann User andere User in Foren sehen, die sie selber gar nicht sehen/kennen können. Das soll ja nicht sein.

Könnt Ihr mir sagen was ich falsch gemacht habe? Ist bestimmt nur eine Kleinigkeit. Niels' Board gibt es nicht mehr, aber Ihr könnt mir bestimmt auch helfen!
Hi! Mach deine Änderung einfach wieder rückgängig. Da jetzt noch eine
Kontrolle einzubauen ergibt nämlich keinen Sinn. Schau hier -->
if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] )
{
.
.
.
}
else
{
$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
$location = $forum_data[$row['session_page']];

}
Die IF-Anweisung ist ja eindeutig genug und wenn du nur das Rote durch den Code
von Niels ersetzt hast, sollte das mit den Rechten keine Probleme geben. easy
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Beitrag von LuLa »

Hallo easygo,
die Installationsanweisung von Niels sah in der viewonline.php Folgendes vor:

Code: Alles auswählen

#
#-----[ FIND ]------------------------------------------------
#
$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
$location = $forum_data[$row['session_page']];

#
#-----[ REPLACE WITH ]----------------------------------------
#

// Start replacement - Topic in Who is online MOD
// if ($row['session_topic'])
if ( $row['session_topic'] && $is_auth_ary[$row['session_topic']]['auth_view'] )
{
	//
	// Topic info
	//
	$sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id=" . $row['session_topic'];
	if ( $result2 = $db->sql_query($sql) )
	{
		$topic_title = $db->sql_fetchrow($result2);
	}
	else
	{
		message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql);
	}
	$location_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $row['session_topic']);
	$location = $forum_data[$row['session_page']] .' -> '.$topic_title['topic_title'];
} else
{
	$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
	$location = $forum_data[$row['session_page']];
}
// End replacement - Topic in Who is online MOD
Von daher verstehe ich Deinen Hinweis nicht so ganz...
Bitte antworte nochmal darauf, vielleicht kapiere ich es dann...
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Stammt das aus der Orginal Install oder ist das dein Edit? :-? easy
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Beitrag von LuLa »

Original bis auf eine Zeile:

Code: Alles auswählen

// if ($row['session_topic'])
Diese Zeile war im Original "aktiv".
Benutzeravatar
LuLa
Mitglied
Beiträge: 290
Registriert: 14.02.2004 12:26

Beitrag von LuLa »

Letzter Versuch.
Bitte, helft...
Antworten

Zurück zu „phpBB 2.0: Mod Support“