Pagina 1 van 1

Birthday Hack (index.php) i.c.m. Group Color

Geplaatst: 18 jun 2004, 22:37
door cartoontje
Scroll naar beneden voor de nieuwe vraag! :)

--------------------------------------------------------------------------------------

Hoe kan ik ervoor zorgen dat Color Groups wordt gebruikt in de Users of the day mod?

Code: Selecteer alles

# 
#-----[ ACTION: open ]--------------------------------
# 
/includes/page_header.php

# 
#-----[ ACTION: find ]--------------------------------
# 
//
// Obtain number of new private messages
// if user is logged in
//

# 
#-----[ ACTION: add before ]--------------------------
# 
//
// Users of the day MOD
//

// ############ Edit below ############
// #
$display_not_day_userlist = 0;	// change to 1 here if you also want the list of the users who didn't visit to be displayed
$users_list_delay = 24;		// change here to the number of hours wanted for the list
// #
// ############ Edit above ############

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_level DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}

$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;

while( $row = $db->sql_fetchrow($result) )
{
	$style_color = '';
	if ( $row['user_level'] == ADMIN )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
	}
	else if ( $row['user_level'] == MOD )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
	}
	if ( $row['user_allow_viewonline'] )
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
	}
	else
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
	}
	if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
	{
		if ( $row['user_session_time'] >= ( time() - $users_list_delay * 3600 ) )
		{
			$day_userlist .= ( $day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
			$day_users++;
		}
		else
		{
			$not_day_userlist .= ( $not_day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
			$not_day_users++;
		}
	}
}

$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;

$not_day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Not_day_users'], $not_day_users, $users_list_delay) ) . ' ' . $not_day_userlist;

if ( $display_not_day_userlist )
{
	$day_userlist .= '<br />' . $not_day_userlist;
}

//
// End of MOD
//
Dat stuk moet dus aangepast worden.

Bij Who Is On-line deed Color Groups dat zo:

Code: Selecteer alles

# 
#-----[ FIND ]------------------------------------------ 
#
				$style_color = '';
				if ( $row['user_level'] == ADMIN )
				{
					$row['username'] = '<b>' . $row['username'] . '</b>';
					$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
				}
				else if ( $row['user_level'] == MOD )
				{
					$row['username'] = '<b>' . $row['username'] . '</b>';
					$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
				}
				if ( $row['user_allow_viewonline'] )
				{
					$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
					$logged_visible_online++;
				}
				else
				{
					$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
					$logged_hidden_online++;
				}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
				$user_online_link = color_group_colorize_name($row['user_id']);
				if ( $row['user_allow_viewonline'] )
				{
					$logged_visible_online++;
				}
				else
				{
					$logged_hidden_online++;
				}
Ik heb al geprobeerd om:

Code: Selecteer alles

	$style_color = '';
	if ( $row['user_level'] == ADMIN )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
	}
	else if ( $row['user_level'] == MOD )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
	}
Te veranderen in:

Code: Selecteer alles

$user_online_link = color_group_colorize_name($row['user_id']);
Maar dan wordt er helemaal geen onderscheid meer gemaakt tussen users, mods en admins.

Iemand een idee?

Geplaatst: 18 jun 2004, 23:47
door sukkelaap
Ik heb het al vaak gevraagd alleen niemand weet antwoord.

Geplaatst: 19 jun 2004, 06:41
door WebSiteNet
Ik denk zo:

Code: Selecteer alles

   $style_color = ''; 
   if ( $row['user_level'] == ADMIN ) 
   { 
      $row['username'] = '<b>' . $row['username'] . '</b>'; 
      $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; 
   } 
   else if ( $row['user_level'] == MOD ) 
   { 
      $row['username'] = '<b>' . $row['username'] . '</b>'; 
      $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; 
   } 
   if ( $row['user_allow_viewonline'] ) 
   { 
      $user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>'; 
   } 
   else 
   { 
      $user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>'; 
   } 
En vervang dat met:

Code: Selecteer alles

$user_day_link = color_group_colorize_name($row['user_id']);
Ik hoop dat hij zo werkt. ik weet niet of die functie er ook gelijk een link van maakt, maar ik denk het wel.

Geplaatst: 19 jun 2004, 09:07
door sukkelaap
In welk bestand moet ik dat vinden?

Geplaatst: 19 jun 2004, 09:34
door WebSiteNet
Open het tekstbestandje van users of the day mod en zoek in welk bestand je dat moest toevoegen. :wink:

Geplaatst: 19 jun 2004, 10:41
door cartoontje
sukkelaap schreef:In welk bestand moet ik dat vinden?
page_header.php :)

Geplaatst: 19 jun 2004, 10:46
door cartoontje
Het werkt!!! :D

Thanks WebSiteNet! :D

---

Edit: Alleen als ik nu een bericht wil posten:

Code: Selecteer alles

Fatal error: Call to undefined function: color_group_colorize_name() in /usr/local/psa/home/vhosts/mr-ski.nl/subdomains/timtheweb/httpdocs/phpBB2/includes/page_header.php on line 280
Lijn 280 van page_header.php

Code: Selecteer alles

$user_day_link = color_group_colorize_name($row['user_id']);

Geplaatst: 19 jun 2004, 10:49
door sukkelaap
Bij mij ook thanxxxxxxxxxxxxxxx :thumb:

Geplaatst: 19 jun 2004, 10:54
door cartoontje
De oplossing heb ik ook! :)

Vind:

Code: Selecteer alles

//
// Users of the day MOD
//
Voeg daarna toe:

Code: Selecteer alles

include_once($phpbb_root_path.'includes/functions_color_groups.'.$phpEx);

Geplaatst: 19 jun 2004, 10:57
door sukkelaap
idd dat porbleme had ik ook is nu opgelost. Thanxxxx. Als er meer problemen zijn horen jullie het wel :bier:

Geplaatst: 01 jul 2004, 14:02
door cartoontje
Ik zou dit ook graag voor de birthdayhack op de index pagina willen hebben. Dit is de code:

Code: Selecteer alles

// Birthday Mod, Show users with birthday 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql)) 
{ 
	if (!empty($result)) 
	{ 
		$time_now = time();
		$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
		$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
		$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
	      while ($birthdayrow = $db->sql_fetchrow($result))
		{ 
usleep(2);
		      $user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] )); 
      		if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
			if ( $user_birthday2 > $date_today  && $user_birthday2 <= $date_forward ) 
			{ 
				// user are having birthday within the next days
				$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']); 
				switch ($birthdayrow['user_level'])
				{
					case ADMIN :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
      					$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
						break;
					case MOD :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
      					$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
						break;
					default: $style_color = '';
				}
				$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,'; 
			} else if ( $user_birthday2 == $date_today ) 
      		{ 
				//user have birthday today 
				$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] ); 
				switch ($birthdayrow['user_level'])
				{
					case ADMIN :
		      			$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
      					$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
						break;
					case MOD :
			      		$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>'; 
      					$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
						break;
					default: $style_color = '';
				}

				$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,'; 
		      }
			 
		}
		if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
		if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
	} 
	$db->sql_freeresult($result);
}
Ik ben er al mee bezig geweest, maar ik kreeg telkens een Parse Error ( Expecting { or : ).

Kan iemand die code misschien op die Colour Groups code op die 2 plekken goed invoegen (zie 1e post voor meer uitleg m.b.t. die code).

Volgensmij ben ik ook vergeten de leeftijd erachter te plakken! :?

Geplaatst: 01 jul 2004, 14:04
door WebSiteNet
Wat is de preciese foutmelding?

Zou je de code van index.php willen geven rond die regel met 10 regels er boven en er onder?

Geplaatst: 01 jul 2004, 14:12
door cartoontje
De code uit mijn vorige post (dat is de originele code) heb ik gewijzigd in

Code: Selecteer alles

// Birthday Mod, Show users with birthday 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql)) 
{ 
	if (!empty($result)) 
	{ 
		$time_now = time();
		$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
		$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
		$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
	      while ($birthdayrow = $db->sql_fetchrow($result))
		{ 
usleep(2);
		      $user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] )); 
      		if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
			if ( $user_birthday2 > $date_today  && $user_birthday2 <= $date_forward ) 
			{ 
				// user are having birthday within the next days
				$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']); 
				switch ($birthdayrow['user_level'])
				$birthday_week_list .= color_group_colorize_name($row['user_id']); 
			} else if ( $user_birthday2 == $date_today ) 
      		{ 
				//user have birthday today 
				$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] ); 
				switch ($birthdayrow['user_level'])
				$birthday_today_list .= color_group_colorize_name($row['user_id']); 
		      }
			 
		}
		if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
		if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
	} 
	$db->sql_freeresult($result);
}
Ik krijg dan de volgende foutmelding in index.php

Code: Selecteer alles

Parse error: parse error, expecting `':'' or `'{'' in /usr/local/psa/home/vhosts/mr-ski.nl/subdomains/timtheweb/httpdocs/phpBB2/index.php on line 330
De code is op 2 plaatsen gewijzigd (bij komende 7 dagen en vandaag).
Volgensmij heb ik me ook iets te letterlijk aan jouw wijziging bij users of the day gehouden! :roll:

Geplaatst: 01 jul 2004, 16:13
door WebSiteNet
Welke regel is dan precieds 330?

Geplaatst: 01 jul 2004, 18:16
door cartoontje

Code: Selecteer alles

$birthday_week_list .= color_group_colorize_name($row['user_id']);

Geplaatst: 02 jul 2004, 17:56
door WebSiteNet
Er staat iets van 2 keer dit in. Dat zorgt voor dee error en mag verwijderd worden:

Code: Selecteer alles

switch ($birthdayrow['user_level']) 

Geplaatst: 03 jul 2004, 13:55
door cartoontje
Dankje! :thumb:

Alleen klopt de code nu voor geen meter. Ik heb me iets te letterlijk aan je wijziging bij users of the day gehouden en nu wordt de naam van user + leeftijd e.d. niet weergegeven. Ik ben weer ermee bezig gegaan en krijg het er niet goed in.

Weet jij misschien hoe ik alles hetzelfde houd, maar dan met de color groups kleuren, want ik maak er nu een zooitje van! :roll: