benefits: Display email aliases in a table.
[org.fsf.memberdashboard.git] / CRM / Memberdashboard / Page / Benefits.php
index 034ec9abb121f0dcf6cc6a879e917409b35ba84e..286ecd6caa407a700f3374121d3ba3171c18c9b9 100644 (file)
@@ -3,14 +3,49 @@
 require_once 'CRM/Memberdashboard/Page.php';
 
 class CRM_Memberdashboard_Page_Benefits extends CRM_Memberdashboard_Page {
+  function loadEmailAliases() {
+    $dao = CRM_Core_DAO::executeQuery(
+      'SELECT * FROM member_email_alias WHERE contact_id=%1',
+      array( 1 => array($this->contact['id'], 'Integer') )
+    );
+    $rows = array();
+
+    while($dao->fetch()) {
+      $rows[] = array(
+        'id' => $dao->id,
+        'contact_id' => $dao->contact_id,
+        'localpart' => $dao->localpart,
+        'forward' => $dao->forward
+      );
+    }
+
+    $dao->free();
+
+    return $rows;
+  }
+
+  function padEmailAliases($emailAliases) {
+    $nil = array(
+      'id' => NULL,
+      'contact_id' => NULL,
+      'localpart' => '',
+      'forward' => '',
+    );
+
+    return array_pad($emailAliases, MEMBERDASHBOARD_MAX_EMAIL_ALIASES, $nil);
+  }
+
   function run() {
     // FIXME: Assumes CiviCRM is running on Drupal.
     // Ugly global variable for the current Drupal user.
     global $user;
 
+    $emailAliases = $this->padEmailAliases($this->loadEmailAliases());
+
     CRM_Utils_System::setTitle(ts('Benefits'));
 
     $this->assign('user', $user);
+    $this->assign('emailAliases', $emailAliases);
 
     parent::run();
   }