Definition

address_page($action = null, $aid = null)
ecommerce-5--4/address/address.module, line 215

Description

The controller for managing addresses. Callback happens via menu().

Parameters

$action String (optional), the action to be done

$aid Number (optional), the Address ID

Code

<?php
function address_page($action = null, $aid = null) {
  global $user;
  $uid = $user->uid;
  $access = user_access('administer users');
  if (!empty($access)) {
    $uid = arg(1);
  }
  $name = db_result(db_query('SELECT name FROM {users} WHERE uid = %d', $uid));
  drupal_set_title(t('%username\'s - address book',
    array('%username' => check_plain($name))));

  $help = t('Your address book is used to save addresses for billing and shipping of items from our store.');

  switch ($action) {
    case 'add':
    case 'edit':
      $edit = $aid && empty($edit) ? address_address_load($aid) : array();
      if (empty($edit)) {
        $edit['uid'] = $uid;
      }
      elseif (empty($access) && $edit['uid'] != $uid) {
        return drupal_access_denied();
      }

      // The form builder is inside another file
      include_once drupal_get_path('module', 'address') .'/address.inc';
      $output .= drupal_get_form('_address_form', $edit);
      break;

    case 'delete':
      db_query('DELETE FROM {ec_address} WHERE aid = %d', $aid);
      drupal_set_message(t('The address has been deleted.'));
      drupal_goto("user/$uid/address");
      break;

    default:
      $output .= theme('address_overview');
  }

  return theme('address_page', $help, $output);
}
?>