Pagina 1 van 1

Birthday Mod BUG

Geplaatst: 21 okt 2005, 20:10
door funnyman
Hallo,

ik heb vandaag een BUG ontdekt.. miss was hij al bekend, maar als je de birthday mod installeerd werkt de PM pop-up niet meer..

open includes/page_header.php

Code: Selecteer alles

	if ( $userdata['user_new_privmsg'] )
moet je veranderen in:

Code: Selecteer alles

	elseif ( $userdata['user_new_privmsg'] )
dus uiteindelijk komt het er zo uit te zien:

Code: Selecteer alles

if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) )
{

// Start add - Birthday MOD
// see if user has or have had birthday, also see if greeting are enabled
	if ( $userdata['user_birthday']!=999999 && $board_config['birthday_greeting'] && create_date('Ymd', time(), $board_config['board_timezone'])  >= $userdata['user_next_birthday_greeting'].realdate ('md',$userdata['user_birthday'] ) )
	{
		$sql = "UPDATE " . USERS_TABLE . "
			SET user_next_birthday_greeting = " . (create_date('Y', time(), $board_config['board_timezone'])+1) . "
			WHERE user_id = " . $userdata['user_id'];
		if( !$status = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, "Could not update next_birthday_greeting for user.", "", __LINE__, __FILE__, $sql);
		}
		$template->assign_var("GREETING_POPUP",
			"<script language=\"Javascript\" type=\"text/javascript\"><!--
			window.open('".append_sid('birthday_popup.'.$phpEx)."', '_phpbbprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');
			//-->
			</script>");
	}
//Sorry user shall not have a greeting this year
// End add - Birthday MOD

	elseif ( $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;
}
en voila, beide pop-ups werken :bier:

Geplaatst: 21 okt 2005, 20:42
door Paul
Dit klopt niet hoor.
Als je nu EN jarig bent EN een pm hebt, werkt ALLEEN verjaardag, de else moet er dus niet, het zijn 2 apparte if lussen :)

Geplaatst: 22 okt 2005, 17:14
door funnyman
hmm.. maar anders werkt mij PM popup niet :S

Geplaatst: 22 okt 2005, 17:20
door Paul
Dat kan ik me bijna niet voorstellen. Dan zou die als je het wijzigt ook nie werken :)

Geplaatst: 22 okt 2005, 17:29
door funnyman
toch is het zo, als ik de 'else' weg haal doet me PM popup het niet..

Geplaatst: 22 okt 2005, 17:30
door Bee
Heb je al eens op http://mods.db9.dk gekeken of dat vaker voorkomt? Ik kan mij er geen problemen mee herinneren, behalve als je de Today/Yesterday mod ook geinstalleerd hebt. Die verrekte mod is nergens compatible mee.

Geplaatst: 22 okt 2005, 17:37
door Paul
funnyman schreef:toch is het zo, als ik de 'else' weg haal doet me PM popup het niet..
Het kan php technische gezien gewoon niet. Het spreekt elkaar namelijk tegen.
Voorbeeld:
We hebben $a en $b.
Met code 1:

Code: Selecteer alles

if($a == 1){
print "a";
}elseif($b == 1){
print "b";
}
Als a == 1 en b == 1 krijg je:
a
Als a == 1 en b == 0 krijg je:
a
Als a == 0 en b == 1 krijg je:
b
En als ze allebei 0 zijn krijg je niks :)
code 2:

Code: Selecteer alles

if($a == 1){
print "a";
}
if($b == 1){
print "b";
}
Als a == 1 en b == 1 krijg je:
ab
Als a == 1 en b == 0 krijg je:
a
Als a == 0 en b == 1 krijg je:
b
En als ze allebei 0 zijn krijg je niks :)
Zie je het verschil?

Geplaatst: 22 okt 2005, 17:47
door svenn
een halve php les ... maar ik denk ook dat je gelijk hebt ....

Geplaatst: 22 okt 2005, 17:49
door funnyman
jah ik snap em.. toch vraag ik me af wat er verkeerd is dan..