You are here

function views_handler_field_user_badges_user_uid::render in User Badges 7

Same name and namespace in other branches
  1. 6.2 views_handler_field_user_badges_user_uid.inc \views_handler_field_user_badges_user_uid::render()
  2. 6 views_handler_field_user_badges_user_uid.inc \views_handler_field_user_badges_user_uid::render()
  3. 7.2 includes/views/views_handler_field_user_badges_user_uid.inc \views_handler_field_user_badges_user_uid::render()
  4. 7.3 includes/views/views_handler_field_user_badges_user_uid.inc \views_handler_field_user_badges_user_uid::render()

Render the field.

Parameters

array $values: The values retrieved from the database.

Overrides views_handler_field::render

File

./views_handler_field_user_badges_user_uid.inc, line 13
A handler to provide proper displays for user badges.

Class

views_handler_field_user_badges_user_uid
@file A handler to provide proper displays for user badges.

Code

function render($values) {

  //We'll be needing the uid
  $uid = $values->{$this->field_alias};
  switch ($this->options['appearance']) {

    //For the text options, get the badge objects and format their names
    case 'linked_text':
    case 'unlinked_text':
      $user_badges = user_badges_get_badges($uid);

      //If we have no badges for the user, just return nothing.
      if (count($user_badges) == 0) {
        return '';
      }
      foreach ((array) $user_badges as $badge) {
        if ($this->options['appearance'] == 'linked_text' && $badge->href) {
          $badges[] = l($badge->name, $badge->href);
        }
        else {
          $badges[] = check_plain($badge->name);
        }
      }
      return implode($this->options['seperator'], $badges);

    //Send the array of badge objects to the custom theme function
    case 'custom_theme':
      $user_badges = user_badges_get_badges($uid);

      // TODO Please change this theme call to use an associative array for the $variables parameter.
      return theme($this->options['theme'], $user_badges);

    //This case is for everything else. It returns the normal themed badges.
    default:
      return user_badges_for_uid($uid);
  }
}