From 861e49a772e70c86dc70fcefe687a8b1b23deb76 Mon Sep 17 00:00:00 2001
From: MegaChriz <megachriz@hotmail.com>
Date: Sun, 6 Mar 2011 15:32:24 +0100
Subject: [PATCH] Issue #1070592 by MegaChriz: Let theme_uc_addresses_list_address() make use of theme_table().

---
 uc_addresses.module |   96 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 65 insertions(+), 31 deletions(-)

diff --git a/uc_addresses.module b/uc_addresses.module
index 12fcf88..254fd88 100644
--- a/uc_addresses.module
+++ b/uc_addresses.module
@@ -750,64 +750,98 @@ function theme_uc_addresses_list_address($address, $panes) {
 
   drupal_add_css(drupal_get_path('module', 'uc_addresses') .'/uc_addresses.css');
 
-  $output = '';
-  if ($address->is_default) {
-    $output = '<table class="address-preview-table addresses-default-address">';
-  }
-  else {
-    $output = '<table class="address-preview-table">';
-  }
+  $header = array();
 
+  // Setup table rows
+  $rows = array();
   foreach ($panes as $title => $data) {
 
     // We add an edit link only if the user is allowed to edit this address
-
     if (user_access(UC_ADDRESSES_ACCESS_ADD_EDIT) || $user->uid == $uid) {
-      $output .= '<tr class="pane-title-row"><td colspan="2">'
-	. l(t('Edit this address'), 'user/'. $uid .'/addresses/' . $aid . '/edit')
-	. ($address->is_default ? '' :
-	   ' | '
-	   . l(t('Delete this address'), 'user/'. $uid .'/addresses/' . $aid . '/delete'))
-	.'</td></tr>';
+      $rows[] = array(
+        'data' => array(
+          array(
+            'data' => l(
+              t('Edit this address'),
+              'user/'. $uid .'/addresses/' . $aid . '/edit',
+              array('attributes' => array('class' => 'edit-address'))              
+            )
+            . (
+              ($address->is_default) ? '' : 
+              ' | '
+              . l(
+                t('Delete this address'),
+                'user/'. $uid .'/addresses/' . $aid . '/delete',
+                array('attributes' => array('class' => 'delete-address'))
+               )
+             ),
+            'colspan' => 2,
+          ),
+        ),
+        'class' => 'pane-title-row',
+      );
     }
 
     if ($address->is_default) {
-      $output .= '<tr><td colspan="2" class="addresses-default-address-label"> '
-	. t('Default address') . '</td></tr>';
+      $rows[] = array(
+        'data' => array(
+          array('data' => t('Default address'), 'colspan' => 2, 'class' => 'addresses-default-address-label'),
+        ),
+      );
     }
 
     if ($address->address_name) {
-      $output .=
-	'<tr class="pane-data-row"><td class="title-col" '
-	.'>'.t('Name') .':</td><td class="data-col">'
-	. $address->address_name .'</td></tr>';
+      $rows[] = array(
+        'data' => array(
+          array('data' => t('Name') . ':', 'class' => 'title-col'),
+          array('data' => $address->address_name, 'class' => 'data-col'),
+        ),
+        'class' => 'pane-data-row',
+      );
     }
 
     if (is_array($data)) {
       foreach ($data as $row) {
         if (is_array($row)) {
+          $classes = array('pane-data-row');
           if (isset($row['border'])) {
-            $border = ' class="row-border-'. $row['border'] .'"';
+            $classes[] = 'row-border-'. $row['border'];
           }
-          else {
-            $border = '';
-          }
-          $output .= '<tr class="pane-data-row"'. $border .'><td class="title-col" '
-	    .'>'. $row['title'] .':</td><td class="data-col">'
-	    . $row['data'] .'</td></tr>';
+          $rows[] = array(
+            'data' => array(
+              array('data' => $row['title'] . ':', 'class' => 'title-col'),
+              array('data' => $row['data'], 'class' => 'data-col'),
+            ),
+            'class' => implode(' ', $classes),
+          );
         }
         else {
-          $output .= '<tr class="pane-data-row"><td colspan="2">'. $row .'</td></tr>';
+          $rows[] = array(
+            'data' => array(
+              array('data' => $row, 'colspan' => 2),
+            ),
+            'class' => 'pane-data-row',
+          );
         }
       }
     }
     else {
-      $output .= '<tr class="pane-data-row"><td colspan="2">'. $data .'</td></tr>';
+      $rows[] = array(
+        'data' => array(
+          array('data' => $data, 'colspan' => 2),
+        ),
+        'class' => 'pane-data-row',
+      );
     }
   }
-  $output .= '</table><br />';
 
-  return $output;
+  // Setup table attributes
+  $attributes['class'] = 'address-preview-table';
+  if ($address->is_default) {
+    $attributes['class'] .= ' addresses-default-address'; 
+  }
+
+  return theme('table', $header, $rows, $attributes) . '<br />';
 }
 
 /**
-- 
1.7.4.1

