You are here

function phptemplate_user_picture in ImageCache Profiles 5

Theme override for user.module Utilize imagecache module to scale down large uploaded profile pictures

Parameters

$size: ImageCache preset applied to user images set at admin/user/settings

File

./imagecache_profiles.module, line 19

Code

function phptemplate_user_picture($account, $size = NULL) {
  if (variable_get('user_pictures', 0)) {
    if (variable_get('user_picture_imagecache_profiles_default', 0)) {

      // Define default user picture size
      $defaultquery = db_query("SELECT presetname FROM {imagecache_preset} WHERE presetid = '%s'", variable_get('user_picture_imagecache_profiles_default', 0));
      $size = db_result($defaultquery);
    }

    // If on user profile page
    if (arg(0) == 'user' && is_numeric(arg(1))) {
      if (variable_get('user_picture_imagecache_profiles', 0)) {
        $query = db_query("SELECT presetname FROM {imagecache_preset} WHERE presetid = '%s'", variable_get('user_picture_imagecache_profiles', 0));
        $size = db_result($query);
      }
    }

    // If viewing a comment, test for subject and comment for preview.
    if ($account->cid || isset($account->comment) && isset($account->subject)) {
      if (variable_get('user_picture_imagecache_comments', 0)) {
        $query = db_query("SELECT presetname FROM {imagecache_preset} WHERE presetid = '%s'", variable_get('user_picture_imagecache_comments', 0));
        $size = db_result($query);
      }
    }
    $alt = t("@user's picture", array(
      '@user' => $account->name ? $account->name : variable_get('anonymous', t('Anonymous')),
    ));
    if ($account->picture && file_exists($account->picture)) {
      if (isset($size)) {
        $picture = theme('imagecache', $size, $account->picture, $alt, $alt);
      }
      else {
        $picture = theme('image', file_create_url($account->picture), $alt, $alt, '', FALSE);
      }
    }
    else {
      if (variable_get('user_picture_default', '')) {
        $picture = variable_get('user_picture_default', '');
        if (isset($size)) {
          $picture = theme('imagecache', $size, $picture, $alt, $alt);
        }
        else {
          $picture = theme('image', file_create_url($picture), $alt, $alt, '', FALSE);
        }
      }
    }
    if (isset($picture)) {
      if (!empty($account->uid) && user_access('access user profiles')) {
        $picture = l($picture, "user/{$account->uid}", array(
          'title' => t('View user profile.'),
        ), NULL, NULL, FALSE, TRUE);
      }
      return '<div class="picture">' . $picture . '</div>';
    }
  }
}