PHP-Frage: Override User picture?
am 17.02.2011 - 01:49 Uhr in
Hallo Freunde,
ich habe gerade arge Verständnisprobleme und bitte um Hilfe.
Wenn bei mir ein User kein User-Picture hochlädt, möchte ich dem jeweiligen User (nach seiner Rolle) ein bestimmtes Standard/Default-Bild zuweisen.
Ich lese nun schon seit Ewigkeiten diverse Threads - in einem wird erwähnt, dass man dies mit der Function theme_preprocess_user_picture aus dem user.module machen kann.
Also übernehme ich die Funktion in die template.php
<?php
function framework_preprocess_user_picture(&$variables) {
$variables['picture'] = '';
if (variable_get('user_pictures', 0)) {
$account = $variables['account'];
if (!empty($account->picture) && file_exists($account->picture)) {
$picture = file_create_url($account->picture);
}
else if (variable_get('user_picture_default', '')) {
$picture = variable_get('user_picture_default', '');
}
if (isset($picture)) {
$alt = t("@user's picture", array('@user' => $account->name ? $account->name : variable_get('anonymous', t('Anonymous'))));
$variables['picture'] = theme('image', $picture, $alt, $alt, '', FALSE);
if (!empty($account->uid) && user_access('access user profiles')) {
$attributes = array(
'attributes' => array('title' => t('View user profile.')),
'html' => TRUE,
);
$variables['picture'] = l($variables['picture'], "user/$account->uid", $attributes);
}
}
}
}
?>
Bloß wie bekomme ich jetzt in diesen Code die Rollenabfrage hinein und vor Allem woher kommen die Werte variable_get('user_picture_default') ich muss doch 'user_picture_default' jetzt pro Rolle einen Bild-Pfad zuweisen oder irre ich mich da? Aber wo wird "user_picture_default" definiert? In der $user oder $account-Variablen finde ich kein "user_picture_default". Ich finde nichts dazu? Meine PHP-Kentnisse sind dafür nicht ausreichend - ich stehe hier völlig auf dem Schlauch.
Wäre jemand bitte so nett und könnte mir auf die Sprünge helfen?
Vielen Dank und schöne Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Tja - ich bin leider immer
am 17.02.2011 - 11:49 Uhr
Tja - ich bin leider immer noch kein Stück weiter gekommen. Wenn ich den obigen Code in die template.php übernehme dann werden bei den Usern welche ein eigenes Profilbild nutzen sämtliche Imagecache-Presets ignoriert - sprich - es wird überall das Profilbild in Originalgröße angezeigt obwohl bei den verschiedenen Views unterschiedliche Einstellungen vorgenommen wurden.
Und beim Default-picture bin ich auch weiter gekommen.
Nutze ich .....
$picture = variable_get('user_picture_default', 'path/to/avatar.gif');
ergibt das überhaupt keine Ausgabe eines Bild-Dummys für User die kein eigenes Profilbild nutzen.
Grübel!
Drupal rockt!!!