You are here

signup_handler_field_signup_user_email.inc in Signup 7

File

views/handlers/signup_handler_field_signup_user_email.inc
View source
<?php

/**
 * Field handler to display the email address of a signed up user.
 *
 * This requires the relationship between {signup_log} and {users} when
 * generating the query.  When rendering the field, if the uid is 0 (anonymous
 * signup) it pulls the {signup_log}.anon_mail field.  For authenticated
 * users, it grabs the {users}.mail field from the relationship.
 */
class signup_handler_field_signup_user_email extends views_handler_field {
  var $table_alias = '';
  var $users_alias = '';
  function ensure_my_table() {
    $this->table_alias = $this->query
      ->ensure_table('signup_log', $this->relationship);
    $this->users_table = $this->query
      ->ensure_table('users', 'signup_log');
  }
  function query() {
    $this
      ->ensure_my_table();
    $this->aliases['signup_uid'] = $this->query
      ->add_field($this->table_alias, 'uid');
    $this->aliases['signup_anon_mail'] = $this->query
      ->add_field($this->table_alias, 'anon_mail');
    $this->aliases['users_mail'] = $this->query
      ->add_field($this->users_alias, 'mail');
  }
  function render($values) {
    if (empty($values->{$this->aliases['signup_uid']})) {
      return check_plain($values->{$this->aliases['signup_anon_mail']});
    }
    else {
      return check_plain($values->{$this->aliases['users_mail']});
    }
  }

}

Classes

Namesort descending Description
signup_handler_field_signup_user_email Field handler to display the email address of a signed up user.