Fehler in Profile C. P. - Pers. Info nur "für Freunde&q

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
Sir Drink a lot
Mitglied
Beiträge: 24
Registriert: 20.12.2004 04:14

Fehler in Profile C. P. - Pers. Info nur "für Freunde&q

Beitrag von Sir Drink a lot »

Hi!

Ich bin recht neu und habe keinerlei Ahnung von PHP. Aber die manuelle Installation dieses Mods hat funktioniert :)
*Wusste bis vorhin gar nicht, dass es EasyMod gibt :oops: *

Aber nun zu dem Problem, was ich anscheindend auch gelöst habe, aber gerne validiert hätte.

1. "persönliche Informationen" wurden von den jeweiligen Benutzern auf "für Freunde" gesetzt
2. Die Freunde wurden jeweils zur Buddyliste hinzugefügt.
3. Trotzdem wurden dem "Freund" die Daten einfach nicht angezeigt.

Jetzt habe ich im Code einfach in der \profilcp\profilcp_public_base.php

folgendes geändert:

--von---

Code: Alles auswählen

//----------------------------------------
//
// inits
//
//----------------------------------------

// ids
$user_id = $userdata['user_id'];
$view_user_id = $view_userdata['user_id'];

// get buddy infos
$sql = "SELECT * FROM " . BUDDYS_TABLE . " 
		WHERE (user_id=$user_id AND buddy_id=$view_user_id) OR (user_id=$view_user_id AND buddy_id=$user_id)";
if ( !$result = $db->sql_query($sql) )
{
	message_die(GENERAL_ERROR, 'Could not get buddy information', '', __LINE__, __FILE__, $sql);	
}
while ( $row = $db->sql_fetchrow($result) )
{
	if ( $row['user_id'] = $user_id )
	{
		$view_userdata['user_my_friend'] = !$row['buddy_ignore'];
		$view_userdata['user_my_ignore'] = $row['buddy_ignore'];
		$view_userdata['user_my_visible'] = $row['buddy_visible'];
	}
	else
	{
		$view_userdata['user_friend'] = !$row['buddy_ignore'];
		$view_userdata['user_ignore'] = $row['buddy_ignore'];
		$view_userdata['user_visible'] = $row['buddy_visible'];
	}
}
--zu--

Code: Alles auswählen

//----------------------------------------
//
// inits
//
//----------------------------------------

// ids
$user_id = $userdata['user_id'];
$view_user_id = $view_userdata['user_id'];

// get buddy infos
$sql = "SELECT * FROM " . BUDDYS_TABLE . " 
		WHERE (user_id=$user_id AND buddy_id=$view_user_id) OR (user_id=$view_user_id AND buddy_id=$user_id)";
if ( !$result = $db->sql_query($sql) )
{
	message_die(GENERAL_ERROR, 'Could not get buddy information', '', __LINE__, __FILE__, $sql);	
}

//Ich verstehe es nicht, aber es scheint zu funktionieren

while ( $row = $db->sql_fetchrow($result) )
{
	if ( $row['user_id'] != $user_id )
	{
		$view_userdata['user_friend'] = !$row['buddy_ignore'];
		$view_userdata['user_ignore'] = $row['buddy_ignore'];
		$view_userdata['user_visible'] = $row['buddy_visible'];
	}
	else
	{
		$view_userdata['user_my_friend'] = !$row['buddy_ignore'];
		$view_userdata['user_my_ignore'] = $row['buddy_ignore'];
		$view_userdata['user_my_visible'] = $row['buddy_visible'];
	}
}
Also einfach alles rumgedreht und if ( $row['user_id'] != $user_id ) gesetzt. Vorher hat der if - Satz einfach nicht funktioniert.

Habe ich da jetzt eventuell großen Blödsinn veranstaltet? Ich meine ok, es funktioniert jetzt. Aber auf Grund der Sicherheit frage ich lieber nochmal nach. Es ist doch eigentlich das selbe in Grün...

Über Antworten/Tipps würde ich mich freuen.

P.S.:
Benutze phpbb 2.0.11
Zuletzt geändert von Sir Drink a lot am 20.12.2004 16:36, insgesamt 1-mal geändert.
Sir Drink a lot
Mitglied
Beiträge: 24
Registriert: 20.12.2004 04:14

lol

Beitrag von Sir Drink a lot »

Tja, da sieht man, was passiert, wenn man keine Ahnung von PHP hat.

Im Original-Code vom Download-Packet ist ein Fehler. Es fehlt = im if -Satz.

Es muss natürlich if ( $row['user_id'] == $user_id ) heissen.

Deswegen hat es dann natürlich mit != und Code rumgedreht funktioniert.

Naja...

Aber neues Thema: Wie bekomme ich den ganzen Block "Persönliche Information" weg? Mit Block meine ich den "Persönliche Information" - Rahmen. Säh viel besser aus, als einfach nur die Daten nicht anzuzeigen, wenn es nicht mein Freund ist.
Antworten

Zurück zu „phpBB 2.0: Mod Support“