Pagina 1 van 1

Avatar eerst goedkeuren

Geplaatst: 10 mar 2004, 18:07
door rogierb
Ey,
om mijn forum een beetje in 'stijl' te houden mogen nu de leden alleen gallery avatars gebruiken. Maar is er ook een manier om ze de mogelijkheid te geven om wel een eigen avatar (van pc of internet) te laten gebruiken, maar dat deze pas zichtbaar is nadat hij is goedgekeurd door mij?

Ik heb al gezocht op phpbbhacks.com, maar kon niets vinden.
Weet iemand misschien of dit bestaat?

Geplaatst: 10 mar 2004, 22:24
door mosymuis
Voor zover ik weet bestond het nog niet, dus heb het uitgezocht:

Open
/includes/usercp_viewprofile.php

Zoek

Code: Selecteer alles

if ( $profiledata['user_avatar_type'] && $profiledata['user_allowavatar'] )
Vervang met

Code: Selecteer alles

if ( $profiledata['user_avatar_type'] && ($profiledata['user_allowavatar'] || $userdata['user_level'] == ADMIN) )
Open
/includes/usercp_register.php

Zoek

Code: Selecteer alles

			$avatar_sql = user_avatar_upload($mode, $avatar_mode, $userdata['user_avatar'], $userdata['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype);
Plaats erachter

Code: Selecteer alles

			$allowavatar = 0;
Zoek

Code: Selecteer alles

		$avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl);
Plaats erachter

Code: Selecteer alles

		$allowavatar = 0;
Zoek

Code: Selecteer alles

		$avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local);
		
	}
Vervang met

Code: Selecteer alles

		$avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local);
		$allowavatar = 1; 
		
	}
	else
	{
		$allowavatar = 1; 
	}

	if ( $allowavatar == 0 && !$error )
	{
			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$emailer->from($board_config['board_email']);
			$emailer->replyto($board_config['board_email']);

			$emailer->use_template('user_activate_avatar', stripslashes($user_lang));
			$emailer->email_address($board_config['board_email']);
			$emailer->set_subject($lang['New_password_activation']);

			$emailer->assign_vars(array(
				'USERNAME' => $username,
				'U_PROFIEL_LINK' => $server_url . '?mode=viewprofile&' . POST_USERS_URL . '=' . $user_id,
				'U_EDIT_LINK' => $server_protocol . $server_name . $server_port . preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path'])) . '/admin/admin_users.'.$phpEx.'?mode=edit&u='.$user_id,
				'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
			);
			$emailer->send();
			$emailer->reset();
	}
Zoek

Code: Selecteer alles

" . $avatar_sql . "
Plaats erachter

Code: Selecteer alles

, user_allowavatar = $allowavatar
Zoek

Code: Selecteer alles

	$user_avatar = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar'] : '';
	$user_avatar_type = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar_type'] : USER_AVATAR_NONE;
Vervang met

Code: Selecteer alles

	$user_avatar = $userdata['user_avatar'];
	$user_avatar_type = $userdata['user_avatar_type'];
Zoek

Code: Selecteer alles

		if ( $userdata['user_allowavatar'] && ( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] ) )
Vervang met

Code: Selecteer alles

		if ( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] )
Open
/language/{taal}/lang_main.php

Zoek

Code: Selecteer alles

// That's all, Folks!
// -------------------------------------------------
Plaats erachter

Code: Selecteer alles

// avatar activatie hack
$lang['New_avatar_activation'] = 'Avatar activeren';
Maak een nieuwe file
/languages/{taal}/email/user_activate_avatar.tpl

Code: Selecteer alles

Subject: Avatar activeren
Charset: iso-8859-1

Hoi,

De gebruiker {USERNAME} heeft een nieuwe avatar toegevoegd aan zijn profiel:
{U_PROFIEL_LINK}

Klik hier om naar het adminpanel te gaan en deze goed te keuren:
{U_EDIT_LINK}


{EMAIL_SIG}
Ik heb het getest en het werkt, bij een gallery avatar gebeurt er niks en kan het lid de avatar gebruiken, bij alle andere avatars wordt de avatar uitgeschakeld en krijgt de admin een mailtje op het forumadres waarin gemeldt wordt dat deze een avatar mag gaan activeren. Dit gebeurt dan op de user management pagina in het adminpanel, onderaan bij "Kan avatar weergeven".

De admin ziet de avatar in de admin pagina en in de publieke profiel pagina van de gebruiker, maar voor alle andere forumleden is deze avatar overal verborgen totdat hij ingeschakeld wordt. De gebruiker zelf ziet hem nog wel tijdens het aanpassen van zijn profiel, en kan deze desgewenst nog veranderen. :bier:

Geplaatst: 11 mar 2004, 17:02
door rogierb
Heel erg bedankt! Ik ga hem proberen!

Geplaatst: 11 mar 2004, 18:50
door mosymuis
De finishing touch:

Open
/language/{taal}/lang_main.php

Zoek

Code: Selecteer alles

$lang['Profile_updated'] = 'Je profiel is bijgewerkt';
Plaats eronder

Code: Selecteer alles

$lang['Profile_updated_avatar'] = 'Je profiel is bijgewerkt, je nieuwe avatar is tijdelijk uitgeschakeld totdat de beheerder deze heeft goedgekeurd';
Open
/includes/usercp_register.php

Zoek

Code: Selecteer alles

$message = $lang['Profile_updated'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
Vervang met

Code: Selecteer alles

$message = (($allowavatar == 0) ? $lang['Profile_updated_avatar'] : $lang['Profile_updated']) . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
--

Nu geeft hij een een verklarende boodschap aan de gebruiker, wanneer deze een remote of ge-uploade avatar heeft ingevuld. :)