Seite 1 von 1

Sie haben eine neue Privatmessage

Verfasst: 25.07.2004 14:00
von DreamPromise
Hi Leute

Ich möchte anzeigen lassen wenn ein Mitglied eine neue Message hat.
Es soll dem Mitglied angezeigt werden wenn er sich einloggt.
Wenn möglich noch mit Link damit er sofort diese Message lesen kann.
Ich hab 2.0.6

Wie geht das bitte ?

Danke schon mal

DP

Verfasst: 25.07.2004 14:46
von Fabse
Wo soll das angezeigt werden? Was für eine Seite?

Verfasst: 25.07.2004 15:26
von DreamPromise
Hi

also nachdem man sich eingeloggt hat sollte auf der index-seite eine nachricht stehen.
Wenn man die dann gelesen hat sollte natürlich der eintrag auf der index weg sein.

DP

Verfasst: 25.07.2004 15:33
von Fabse
index_body.tpl einfügen:

Code: Alles auswählen

<!-- BEGIN switch_enable_pm_popup -->
<script language="Javascript" type="text/javascript">
<!--
	if ( {PRIVATE_MESSAGE_NEW_FLAG} )
	{
		window.open('{U_PRIVATEMSGS_POPUP}', '_phpbbprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');;
	}
//-->
</script>
<!-- END switch_enable_pm_popup -->
index.php einfügen:

Code: Alles auswählen

//
// Obtain number of new private messages
// if user is logged in
//
if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) )
{
	if ( $userdata['user_new_privmsg'] )
	{
		$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
		$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);

		if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] )
		{
			$sql = "UPDATE " . USERS_TABLE . "
				SET user_last_privmsg = " . $userdata['user_lastvisit'] . "
				WHERE user_id = " . $userdata['user_id'];
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql);
			}

			$s_privmsg_new = 1;
			$icon_pm = $images['pm_new_msg'];
		}
		else
		{
			$s_privmsg_new = 0;
			$icon_pm = $images['pm_new_msg'];
		}
	}
	else
	{
		$l_privmsgs_text = $lang['No_new_pm'];

		$s_privmsg_new = 0;
		$icon_pm = $images['pm_no_new_msg'];
	}

	if ( $userdata['user_unread_privmsg'] )
	{
		$l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms'];
		$l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']);
	}
	else
	{
		$l_privmsgs_text_unread = $lang['No_unread_pm'];
	}
}
else
{
	$icon_pm = $images['pm_no_new_msg'];
	$l_privmsgs_text = $lang['Login_check_pm'];
	$l_privmsgs_text_unread = '';
	$s_privmsg_new = 0;
}
Suche:

Code: Alles auswählen

$template->assign_vars(array(
After Add:

Code: Alles auswählen

	'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text,
	'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread,
	'PRIVATE_MESSAGE_NEW_FLAG' => $s_privmsg_new,
	'L_PRIVATEMSGS' => $lang['Private_Messages'],
	'U_PRIVATEMSGS' => append_sid('privmsg.'.$phpEx.'?folder=inbox'),
	'U_PRIVATEMSGS_POPUP' => append_sid('privmsg.'.$phpEx.'?mode=newpm'),

Verfasst: 25.07.2004 18:30
von DreamPromise
Hi

also es geht wohl so...das Problem ist nur das viele einen Popupblocker haben.

Wie kann man das denn anders lösen?

DP

Verfasst: 25.07.2004 18:31
von Fabse
Das hat ja nix mit einem Popup Blocker zu tun. Du muss nur den js code ein bissl umschreiben!

Verfasst: 25.07.2004 23:07
von DreamPromise
Hi

Also mein IE hat die Nachricht nicht angezeigt...wohl aber das er was geblockt hat.

DP

Verfasst: 25.07.2004 23:13
von Fabse
DreamPromise hat geschrieben:Hi

Also mein IE hat die Nachricht nicht angezeigt...wohl aber das er was geblockt hat.

DP
Hää?

Verfasst: 26.07.2004 07:21
von DreamPromise
Hi

Ist es denn nicht Möglich das oben ein Button erscheint der anzeigt das einen neue Message da ist.
Wenn man dann auf diesen Button klickt kommt man direkt zur Message.
Danach muß der Button aber weg sein.

Kann man das realisieren..und wie ??

Danke schon mal.

DP

Verfasst: 26.07.2004 15:10
von Fabse
Dass man direkt zur message kommt ist etwas schwieriger!
Aber das man direkt zur privmsg.php?folder=inbox kommt ist kein Problem.
Dazu hat ich dir schon früher den Code gepostet den du nehen musst.