Implements hook_user_view().

File

modules/profile/profile.module, line 328
Support for configurable user profiles.

Code

function profile_user_view($account) {

  // Show private fields to administrators and people viewing their own account.
  if (user_access('administer users') || $GLOBALS['user']->uid == $account->uid) {
    $result = db_query('SELECT * FROM {profile_field} WHERE visibility <> :hidden ORDER BY category, weight', array(
      ':hidden' => PROFILE_HIDDEN,
    ));
  }
  else {
    $result = db_query('SELECT * FROM {profile_field} WHERE visibility <> :private AND visibility <> :hidden ORDER BY category, weight', array(
      ':private' => PROFILE_PRIVATE,
      ':hidden' => PROFILE_HIDDEN,
    ));
  }
  $fields = array();
  foreach ($result as $field) {
    if ($value = profile_view_field($account, $field)) {
      $title = $field->type != 'checkbox' ? check_plain($field->title) : NULL;

      // Create a single fieldset for each category.
      if (!isset($account->content[$field->category])) {
        $account->content[$field->category] = array(
          '#type' => 'user_profile_category',
          '#title' => $field->category,
        );
      }
      $account->content[$field->category][$field->name] = array(
        '#type' => 'user_profile_item',
        '#title' => $title,
        '#markup' => $value,
        '#weight' => $field->weight,
        '#attributes' => array(
          'class' => array(
            'profile-' . $field->name,
          ),
        ),
      );
    }
  }
}