Hallo,
ich möchte wenn sich ein neuer User registriert hat, aber sich noch
kein Userbild ausgewählt hat, ein Standard-Userbild zuweisen.
Hab gedacht, das es einfach gehen wird:
In der DB unter smf_members im Feld avatar einfach einen Vorgabewert machen.
Das Feld ist aber vom Typ Tiny Text und da kann ich keinen Vorgabewert setzen.
Ändern auf Varchar will ich nicht einfach so machen, weiß ja nicht was dann passiert?
Könnt Ihr mir da helfen?
Gruß
Till
Du könntest auch einfach während der Registrierung die Daten in die Datenbank schreiben, falls kein Avatar ausgesucht wurde.
Oder du änderst das ganze nur im Template, so dass jeder User, der keinen Avatar eingestellt hat ein bestimmtest Bild bekommt. Das hätte den Vorteil, dass der User auch ein Bild hätte, wenn er seinen Avatar im Profil löscht.
Lainaus käyttäjältä: xduugu - huhtikuu 03, 2006, 08:26:45 AP
Du könntest auch einfach während der Registrierung die Daten in die Datenbank schreiben, falls kein Avatar ausgesucht wurde.
Oder du änderst das ganze nur im Template, so dass jeder User, der keinen Avatar eingestellt hat ein bestimmtest Bild bekommt. Das hätte den Vorteil, dass der User auch ein Bild hätte, wenn er seinen Avatar im Profil löscht.
und welche änderung wo müste man im welchen temlate machen ?
danke und Cu Michael
Kommt ganz darauf an welches Template für welche Foreversion du benutzt und an welchen Stelle du den Avatar anzeigen möchtest.
Im Standardtemplate des RC2 sind glaub ich 4 Stellen möglich; das Profil, Ändern des Profils, Oben im Header und in den Threads.
aber das wird nicht nur in den templatedateien gemacht. auch in den Source-Dateien. z.b. Profile.php
Nicht umbedingt. z.B. in der Display.template.php kann ich aus
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
folgendes machen:
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
elseif (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;"><img src="http://www.domain.de/Themes/default/images/no_avatar.gif" alt=""></div><br />';
Lainaus käyttäjältä: xduugu - huhtikuu 06, 2006, 12:35:52 IP
Nicht umbedingt. z.B. in der Display.template.php kann ich aus
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
folgendes machen:
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
elseif (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;"><img src="http://www.domain.de/Themes/default/images/no_avatar.gif" alt=""></div><br />';
na dann hoff ich mal das in der 1.1 RC3
dieses enthalten ist
danke und Cu Michael
1.1RC3 wird es nicht geben...
aber xduugu hat recht. man kann es so machen ;D hab ich ganz vergessen :P
Wobei ich bis jetzt die einfachere Methode außer acht gelassen habe. Dank Dark_Neakro hab ich mir jetzt mal die Load.php angeschaut und die zwei Stellen rausgesucht, die man abändern müsste. So spart man sich das anpassen jedes Themes.
Die Stellen die angepasst werden müssen sind in der
Funktion loadUserSettings
'avatar' => array(
'url' => isset($user_settings['avatar']) ? $user_settings['avatar'] : '',
'filename' => empty($user_settings['filename']) ? '' : $user_settings['filename'],
'custom_dir' => !empty($user_settings['attachmentType']) && $user_settings['attachmentType'] == 1,
'ID_ATTACH' => isset($user_settings['ID_ATTACH']) ? $user_settings['ID_ATTACH'] : 0
),
und in der Funktion loadMemberContext
'avatar' => array(
'name' => &$profile['avatar'],
'image' => $profile['avatar'] == '' ? ($profile['ID_ATTACH'] > 0 ? '<img src="' . (empty($profile['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $profile['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $profile['filename']) . '" alt="" class="avatar" border="0" />' : '') : (stristr($profile['avatar'], 'http://') ? '<img src="' . $profile['avatar'] . '"' . $avatar_width . $avatar_height . ' alt="" class="avatar" border="0" />' : '<img src="' . $modSettings['avatar_url'] . '/' . htmlspecialchars($profile['avatar']) . '" alt="" class="avatar" border="0" />'),
'href' => $profile['avatar'] == '' ? ($profile['ID_ATTACH'] > 0 ? (empty($profile['attachmentType']) ? $scripturl . '?action=dlattach;attach=' . $profile['ID_ATTACH'] . ';type=avatar' : $modSettings['custom_avatar_url'] . '/' . $profile['filename']) : '') : (stristr($profile['avatar'], 'http://') ? $profile['avatar'] : $modSettings['avatar_url'] . '/' . $profile['avatar']),
'url' => $profile['avatar'] == '' ? '' : (stristr($profile['avatar'], 'http://') ? $profile['avatar'] : $modSettings['avatar_url'] . '/' . $profile['avatar'])
),
Dann müssten kein Anpassen der Themes mehr notwendig sein.
und wie lege ich dnan fest, welches Bild das standard avatar ist??
Das musst du hardcoded im Quelltext verlinken.
Wenn du das Avatar in der neben den Posts verändern wilst, dann mach dies hier:
Lainaus käyttäjältä: xduugu - huhtikuu 06, 2006, 12:35:52 IP
Nicht umbedingt. z.B. in der Display.template.php kann ich aus
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
folgendes machen:
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
elseif (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;"><img src="http://www.domain.de/Themes/default/images/no_avatar.gif" alt=""></div><br />';