Seite 1 von 2

Profil in einem Popup öffnen

Verfasst: 26.09.2004 12:05
von raphael
Ich würde in meinem Forum das Profil eines Mitglieds gerne in einem Popup öffnen lassen. Wenn jemand also auf den Benutzernamen in der viewforum.php, index.php oder memberlist.php klickt soll sich das Profil in einem Popup öffnen.
Ich habe hier schon danach gesucht, wurde aus den Ergebnissen (zumal sie schon sehr weit zurückliegen und sich auf eine alte Version beziehen) nicht richtig schlau.

Was muss ich z.B. an der viewforum.php an diesen Stellen umändern um den gewünschten Effekt zu erhalten?

Code: Alles auswählen

		$topic_author = ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $topic_rowset[$i]['user_id']) . '">' : '';
		$topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] );

		$topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '</a>' : '';

Code: Alles auswählen

		$last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '='  . $topic_rowset[$i]['id2']) . '">' . $topic_rowset[$i]['user2'] . '</a>';
Über Hilfe wäre ich sehr dankbar.

Verfasst: 26.09.2004 12:51
von Leuchte

Verfasst: 26.09.2004 13:33
von raphael
Ich werde es mal austesten. Danke für den Link (an phpbb.com hab ich garnicht gedacht :oops:)

Verfasst: 26.09.2004 14:41
von raphael
Ich habe die Dateien mal etwas angepasst, sodass das komplette Profil angezeigt wird. Das Outfit passe ich noch etwas an, damit es absolut meinen Vorstellungen entspricht.

Allerdings habe ich noch eine Frage:
Durch diesen Mod kann man das Miniprofil nur über die viewtopic.php aufrufen. Wie muss ich die Links in viewforum.php, memberlist.php und index.php anpassen um auch dort das Miniprofil aufrufen zu können?

Verfasst: 26.09.2004 20:21
von Acid
Zwischenfrage.. was soll in den anderen Bereichen als Link für das Miniprofil dienen? Wenn´s der Name ist, könnt man nicht mehr auf´s "richtige Profil" gelangen.

Verfasst: 26.09.2004 21:08
von raphael
Das "richtige" Profil würde dann einfach wegfallen. Ich habe das Miniprofil mitlerweile so umgebaut, dass es dem richtigen in nichts mehr nachsteht. Das ist alles kompakter und verzichtet auf Header und Footer. Außerdem ist ein Popup praktischer, damit die Mitglieder weiterhin auf der aktuellen Seite bleiben.
Darum bräuchte ich das Profil am Ende garnicht mehr.

Verfasst: 26.09.2004 22:08
von Acid

Code: Alles auswählen

# 
#-----[ ÖFFNEN ]------------------------------------------ 
# 
# memberlist.php
# 
#-----[ FINDE ]------------------------------------------ 
# 
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

# 
#-----[ DARUNTER EINFÜGEN ]------------------------------------------ 
# 
		// Mini Profile Begin
		$mini_profile_url = append_sid("profile.$phpEx?mode=miniprofile&" . POST_USERS_URL .'=' . $user_id);
		$mini_profile ='<a href="' . $mini_profile_url . '" onclick="window.open(\'' .$mini_profile_url . '\', \'_miniprofile\', \'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=290\');return false;" target="_miniprofile">' . $username . '</a></span>';
		// Mini Profile End

# 
#-----[ FINDE ]------------------------------------------ 
# 
			'USERNAME' => $username,

# 
#-----[ DARUNTER EINFÜGEN ]------------------------------------------ 
# 
			//Begin Mini Profile MOD
			'MINIPROFILE' => $mini_profile,
			//End Mini Profile MOD

# 
#-----[ ÖFFNEN ]------------------------------------------ 
# 
# templates/subSilver/memberlist_body.tpl
# 
#-----[ FINDE ]------------------------------------------ 
# 
<a href="{memberrow.U_VIEWPROFILE}" class="gen">{memberrow.USERNAME}</a>

# 
# 
#-----[ MIT FOLGENDEM ERSETZEN ]------------------------------------------ 
#
{memberrow.MINIPROFILE}
Genügt dir das Anleitung für die anderen Bereiche ? Die Schritte wären identisch, natürlich unterscheiden sich die zu findenen Bereiche (die einzufügenden Codes wären fast identisch (nur die Variabel $user_id und $username sind gegebenfalls anders)).

Verfasst: 27.09.2004 13:56
von raphael
Du meintest wohl memberlist_body.tpl anstatt viewtopic_body.tpl
Hier musste man übrigens anstatt $poster_id $user_id und anstatt $poster $username verwenden.

Achja, die anderen Links zum Profil sind übrigens nicht alle nach diesem Muster gestrickt. Ich ändere da einfach die Links direkt um, sodass ich in den Template-Dateien nichts mehr machen muss. Da habe ich mir allerdings generell ein arbeitsintensives Ziel gesteckt. Ich muss jetzt insgesamt so um die 50 Links an allen Ecken und Kanten in sauvielen Dateien ändern :roll: (Da habe ich ziemlich falsch gelegen, als ich mal grade von 4 Dateien ausging) und immer wieder die dämlichen Variabeln ändern :-? Naja, das wird schon hinhauen.
Ich meld mich vielleicht nochmal, wenn ich irgendwo Probleme bekommen sollte.

Danke für die Hilfe!

Verfasst: 27.09.2004 22:58
von raphael
So, da bin ich nochmal.
Ich habe jetzt (hoffentlich ;)) alle Links geändert. Naja, sagen wir fast alle.
Es sind noch drei Dinge übrig geblieben:

1.) In der index.php steht unten im Feld "Registrierte Benutzer: xxx, yyy,", die gerade online sind. Wo finde ich das in der index.php? In der Template-Datei ist dafür "{LOGGED_IN_USER_LIST}" vorhanden. Wo wird das genauer definiert (oder wie auch immer man sowas bezeichnet)?

2.) In der viewforum.php sieht man oben links ein "Benutzer in diesem Forum: xxx, yyy". Auch hier konnte ich nirgends etwas dazu finden. In der Template-Datei befindet sich auch wieder ein "{LOGGED_IN_USER_LIST}", dass damit zu tun hat.

3.) Ich habe das Birthday-Addon für den Kalender (mycalendar) eingebaut. Ich konnte das auch so anpassen, dass sich das Miniprofil in einem neuen Fenster öffnet. Allerdings öffnet es sich im Vollbild. Vielleicht weiß jemand, was ich an dieser Stelle falsch gemacht habe:

Code: Alles auswählen

            while ($topic = $db->sql_fetchrow($result)) { 
                $topic_text = $lang['Birthday']; 
                $username = $topic['username'];
                $birthday = $topic['birthday']; 
                $user_id = $topic['user_id']; 
                $mini_profile_url = append_sid("profile.$phpEx?mode=miniprofile&" . POST_USERS_URL . "=$user_id"); 

                $template->assign_block_vars('date_row.date_cell.switch_date_cells.date_event', array( 
                     'U_EVENT' => "$first_date<a href=\"$mini_profile_url\" onclick=\"window.open(\'' .$mini_profile_url . '\', \'_miniprofile\', \'HEIGHT=600,resizable=yes,scrollbars=yes,WIDTH=540\');return false;\" target=\"_miniprofile\" onMouseOver=\"createTitle(this, '<b>" . $lang['Birthday'] . ":</b> $username<br>" . $lang['Calendar_birthday_greeting_first'] . "&nbsp;<b>$birthday</b>&nbsp;" . $lang['Calendar_birthday_greeting_sec'] . "', event.pageX, event.pageY);\" onMouseOut=\"destroyTitle();\" class=\"gensmall\">$topic_text: <b>$username</b></a>") 
                ); 
            }
Ansonsten hat aber schon alles gut hingehauen. Danke nochmals für die Hilfe!

Verfasst: 28.09.2004 00:13
von Acid
1) und 2) page_header.php

Code: Alles auswählen

$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';

Code: Alles auswählen

$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
3) Ersetze die Zeile mal mit..

Code: Alles auswählen

'U_EVENT' => $first_date .'<a href="'. $mini_profile_url .'" onclick="window.open(\''. $mini_profile_url .'\', \'_miniprofile\', \'height=600,resizable=yes,scrollbars=yes,width=540\'); return false;" target="_miniprofile" onMouseOver="createTitle(this, \'<b>'. $lang['Birthday'] .':</b> '. $username .'<br />'. $lang['Calendar_birthday_greeting_first'] .'&nbsp;<b>'. $birthday .'</b>&nbsp;'. $lang['Calendar_birthday_greeting_sec'] .'\', event.pageX, event.pageY);" onMouseOut="destroyTitle();" class="gensmall">'. $topic_text .': <b>'. $username .'</b></a>')