Seite 2 von 2

Verfasst: 13.08.2003 17:36
von Matlock
QCO hat geschrieben::D ok, war ja auch nur ein schuss ins blaue
hab noch ein paar fehler rausgemacht:

Code: Alles auswählen

    if ( !empty($userdata['user_avatar']) && ( @fileatime(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar']))+60*60*24*30 > time() ) && ( !empty($user_avatar_upload) || !empty($user_avatar_name) || !empty($user_avatar_remoteurl) || !empty($user_avatar_local) ) ) { 
        $error = true; 
        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Du darfst deinen Avatar nur alle 30 Tage ändern.'; 
    }
leider hab ich grad keine boardinstallation, in der ich das gefahrlos testen könnte...

Jetzt funktionierts, danke :)

@Henne23: ja, Avatar war schon auf dem Server.



Aaaaaaber: Obwohl es funktioniert, ist es letztlich wirkungslos. Denn wenn der User nicht einfach nen neuen Avatar hochlädt, sondern in einem ersten Schritt den alten löscht, geht die Zeitabfrage ins Leere, da dann ja keine Datei mehr da ist.

Daher Folgefrage:
Wie deaktiviere ich für die User (also für alle User) das Löschen des Avatars?

Im Adminbereich sollte das Löschen aber weiterhin funktionieren, logo.



Verfasst: 13.08.2003 17:48
von Matlock
Die Folgefrage von eben hat sich erledigt. In der profile_add_body.tpl konnte ich die Löschfunktion rauskommentieren.

Danke nochmal an alle, die sich hier beteiligt haben.



Verfasst: 13.08.2003 20:14
von QCO
ok, anderer vorschlag, der sicherer ist. allerdings verbunden mit einem neuen db-feld.

wieder includes/usercp_register.php
nach (etwa zeile 382)

Code: Alles auswählen

	$avatar_sql = '';
einfügen

Code: Alles auswählen

// uploadsperre 30 tage
    if ( ( $userdata['user_last_avatar_change']+60*60*24*30 > time() ) && ( !empty($user_avatar_upload) || !empty($user_avatar_name) || !empty($user_avatar_remoteurl) || !empty($user_avatar_local) || isset($HTTP_POST_VARS['avatardel']) ) )
    { 
        $error = true; 
        $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . 'Du darfst deinen Avatar nur alle 30 Tage ändern.'; 
    }
    else
    {
// uploadsperre 30 tage ende
nach (etwa zeile 430)

Code: Alles auswählen

            $avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local);
        }
einfügen

Code: Alles auswählen

// uploadsperre 30 tage
	}
// uploadsperre 30 tage ende
und abschließend noch nach (etwa 436)

Code: Alles auswählen

		if ( $avatar_sql == '' )
		{
			$avatar_sql = ( $mode == 'editprofile' ) ? '' : "'', " . USER_AVATAR_NONE;
		}
einfügen

Code: Alles auswählen

// uploadsperre 30 tage
		else
		{
			$avatar_sql .= ', user_last_avatar_change = ' . time();
		}
// uploadsperre 30 tage ende
jetzt noch die db-änderung:

Code: Alles auswählen

ALTER TABLE `phpbb_users` ADD `user_last_avatar_change` INT( 11 ) DEFAULT '0' NOT NULL
damit wird jede änderung des avatars (löschen, neuanlegen, ändern in irgendeiner form) erfasst. ich hab es nur ganz kurz getestet und schien zu arbeiten

Verfasst: 14.08.2003 17:36
von Matlock
QCO hat geschrieben:ok, anderer vorschlag, der sicherer ist. allerdings verbunden mit einem neuen db-feld.
Thanks nochmal. Wir versuchen es zunächst ne Weile mit der ersten Lösung, ich hab mir den Thread aber sicherheitshalber mal gebookmarked ;)