Seite 1 von 2

memberlist durch Realnamen Feld erweitern

Verfasst: 21.10.2005 20:49
von MaracujaJoe
Hallo,
ich habe folgendes Problem ...
Ich möchte meiner memberlist.php ein neues Feld Namens Real Namen: hinzufügen:
Die Informationen zum jeweiligen Namen soll sich die memberlist aus dem XDATA Mod holen!
Die Felder und Namen werden auch dargestellt nachdem ich einige Zeit gebraucht habe um die memberlist.php anzupassen ...
Doch nun Tritt folgender Fehler auf:
Von alle Benutzern die keinen Realnamen angegeben haben, hat der XDATA auch keinen XDATA_DATA -> user_id table angelegt ...
Die bedeutet mein Code füllt alle folgenden Felder bis zur neuen vorhandenen ID mit dem letzten Namen:
Seht selbst ...
http://www.bsv-heeren.de/5150/abi07/php ... erlist.php

Hier der Code:

Code: Alles auswählen

$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	$i = 0;
	do
	{
		$username = $row['username'];
		$user_id = $row['user_id'];
		
		$sql2 = 'SELECT * FROM ' . XDATA_DATA_TABLE . '';
		
if( !($resultx = $db->sql_query($sql2)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql2);
}
if ( $row2 = $db->sql_fetchrow($resultx) )
{
	do
	{
		if ($row2['user_id'] == $user_id && $row2['field_id'] == 10)
			{
				$realusername = $row2['xdata_value'];
			}
		else if (!$row2['user_id'] != $user_id)
			{
			 $realusername = '-' ;
			 }
	}
	while ( $row2 = $db->sql_fetchrow($resultx) );
	$db->sql_freeresult($resultx);
}




		$from = ( !empty($row['user_from']) ) ? $row['user_from'] : '&nbsp;';
		$joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']);
		$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;

		$poster_avatar = '';
		if ( $row['user_avatar_type'] && $user_id != ANONYMOUS && $row['user_allowavatar'] )
		{
			switch( $row['user_avatar_type'] )
			{
				case USER_AVATAR_UPLOAD:
					$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
					break;
				case USER_AVATAR_REMOTE:
					$poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : '';
					break;
				case USER_AVATAR_GALLERY:
					$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : '';
					break;
			}
		}

		if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN )
		{
			$email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id) : 'mailto:' . $row['user_email'];

			$email_img = '<a href="' . $email_uri . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>';
			$email = '<a href="' . $email_uri . '">' . $lang['Send_email'] . '</a>';
		}
		else
		{
			$email_img = '&nbsp;';
			$email = '&nbsp;';
		}

		$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id");
		$profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['Read_profile'] . '" title="' . $lang['Read_profile'] . '" border="0" /></a>';
		$profile = '<a href="' . $temp_url . '">' . $lang['Read_profile'] . '</a>';

		$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id");
		$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
		$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';

		$www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
		$www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';

		if ( !empty($row['user_icq']) )
		{
			$icq_status_img = '<a href="http://wwp.icq.com/' . $row['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>';
			$icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>';
			$icq =  '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '">' . $lang['ICQ'] . '</a>';
		}
		else
		{
			$icq_status_img = '';
			$icq_img = '';
			$icq = '';
		}

		$aim_img = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
		$aim = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?">' . $lang['AIM'] . '</a>' : '';

		$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id");
		$msn_img = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
		$msn = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '">' . $lang['MSNM'] . '</a>' : '';

		$yim_img = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
		$yim = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg">' . $lang['YIM'] . '</a>' : '';

		$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts");
		$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
		$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';

		$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

	
		$template->assign_block_vars('memberrow', array(
			'REALNAME' => $realusername,
			'ROW_NUMBER' => $i + ( $start + 1 ),
			'ROW_COLOR' => '#' . $row_color,
			'ROW_CLASS' => $row_class,
			'USERNAME' => $username,
			'FROM' => $from,
			'JOINED' => $joined,
			'POSTS' => $posts,
			'AVATAR_IMG' => $poster_avatar,
			'PROFILE_IMG' => $profile_img, 
			'PROFILE' => $profile, 
			'SEARCH_IMG' => $search_img,
			'SEARCH' => $search,
			'PM_IMG' => $pm_img,
			'PM' => $pm,
			'EMAIL_IMG' => $email_img,
			'EMAIL' => $email,
			'WWW_IMG' => $www_img,
			'WWW' => $www,
			'ICQ_STATUS_IMG' => $icq_status_img,
			'ICQ_IMG' => $icq_img, 
			'ICQ' => $icq, 
			'AIM_IMG' => $aim_img,
			'AIM' => $aim,
			'MSN_IMG' => $msn_img,
			'MSN' => $msn,
			'YIM_IMG' => $yim_img,
			'YIM' => $yim,
			
			'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
		);

		$i++;
	}
	while ( $row = $db->sql_fetchrow($result) );
	$db->sql_freeresult($result);
}
Hier muss ich wohl irgendetwas ändern:

Code: Alles auswählen

if ( $row2 = $db->sql_fetchrow($resultx) )
{
	do
	{
		if ($row2['user_id'] == $user_id && $row2['field_id'] == 10)
			{
				$realusername = $row2['xdata_value'];
			}
		else if (!$row2['user_id'] != $user_id)
			{
			 $realusername = '-' ;
			 }
	}
	while ( $row2 = $db->sql_fetchrow($resultx) );
	$db->sql_freeresult($resultx);
Ich müsste irgendwie eine Abfrage einbringen die die nicht vorhandenen Tabbellen berücksichtigt ...

Noch eine Info:
$row2['field_id'] == 10 ist das Realnamesfeld im XDATA_DATA_TABLE

mfg MaracujaJoe
Danke an alle Helfer im vorraus!

Verfasst: 22.10.2005 19:41
von MaracujaJoe
Hm, hat niemand eine Idee wie man Abfragen kann ob der Table überhaupt existiert?

Verfasst: 10.05.2006 00:08
von Amaya
Hätte das selbe Problem, weiß da vielleicht inzwischen jemand eine Lösung? :cry:

Verfasst: 10.05.2006 08:57
von FSKiller / Phoenix
Das Problem ist doch behoben oder sehe ich das falsch?

Verfasst: 10.05.2006 16:12
von MaracujaJoe
Haha, das is ja Monate her ^^

Aber nein behoben ist es nicht, oder?
Ich habe es bei mir gelöst indem ich ein Normales Feld genommen habe und das hab ich einfach umbenannt und eins was ich ned Abfragen muss einfacvh in Xdata erstellt ... also bei mir geht es so, aber die richtige Lösung kann das denke ich nicht sein ...

Verfasst: 10.05.2006 16:13
von MaracujaJoe
Bzw. Tacheles würde immernoch gerne weitere Feld in die Mitgleiderliste einfügen ... also nun wo ichs mal wieder so ansehe ...

Verfasst: 10.05.2006 16:24
von FSKiller / Phoenix
sei doch froh das dir wer helfen will .....

poste mal bitte memberlist.php und tpl dazu, damit ich mir das anschauen kann, also verlinken die datei nicht den code hier posten.

Verfasst: 10.05.2006 23:56
von Amaya
@ MaracujaJoe Schade, hatte in deinem Forum gesehen, dass es jetzt geht und hatte schon gehofft, aber ich bekomme das auch irgendwie noch mit xdata hin und wenn ich das alles nochmal komplett umschreiben muss, hab mich jetzt an deine Anfänge gehalten, da ich dachte es geht inzwischen irgendwie, naja mal schaun.

@FSKiller die beiden Dateien: memberlist.php und tpl

Im moment sieht es eben so aus wie oben beschrieben, das die User, die die Angabe nicht gemacht haben, keine Tabelle erstellt bekommen und dadurch die Infos von anderen Usern dort eingetragen werden. Hoffe du hast vielleicht ne Idee, danke.

Verfasst: 12.05.2006 11:08
von Kiste7
Hi, ich hatte die Idee für meine Community auch schon, aber jetzt mal ernsthaft, wer gibt seinen echten Namen an? Ich glaube das machen sehr wenige. Vielleicht kann man aber den echten Namen hinterlegen, und nur einzelnen freigeben. Sozusagen die akzeptierten Freunden.

D.H, wenn ich Heinz in meine Buddylist aufnehme, und Heiz auch mich, dann ist es ein akzeptierter zweiseitiger Kontakt. Dann könnte man den Realnamen einblenden.

Oder ist das doof? Schließlich weiß man ja vielleicht gar nicht, dass Heinz angemeldet ist, und möchte nach dem richtigen Namen suchen?!

Verfasst: 15.05.2006 10:50
von MaracujaJoe
Hehe das mit Hinz hört sich gut an ^^

Aber für mein Forum ist das mit den Namen schon Sinnvoll, denn es ist für meinen Abiturjahrgang!

Naja, irgendwie müsste man das doch hinbekommen ;-) kehr kehr ^^