function uc_addresses_form_uc_store_address_fields_form_alter in Ubercart Addresses 7
Implements hook_form_FORM_ID_alter() for form uc_store_address_fields_form().
Adds address fields from Ubercart Addresses to the address field settings form, so the weight of these fields can also be adjusted.
Return value
void
File
- ./
uc_addresses.module, line 1589 - Adds user profile address support to Ubercart.
Code
function uc_addresses_form_uc_store_address_fields_form_alter(&$form, &$form_state) {
$fields = uc_addresses_get_address_fields();
$weights = uc_addresses_address_field_weights();
// Propose delta of weight fields.
$delta = count($fields);
if ($delta < 10) {
// Delta should be 10 at least.
$delta = 10;
}
// Set adjust delta of current defined weight fields.
foreach (element_children($form['uc_address_fields_weight']) as $fieldname) {
if ($form['uc_address_fields_weight'][$fieldname]['#type'] == 'weight') {
// Set or adjust delta only if it not set or if it's currently lower than
// the proposed value.
if (!isset($form['uc_address_fields_weight'][$fieldname]['#delta']) || $form['uc_address_fields_weight'][$fieldname]['#delta'] < $delta) {
$form['uc_address_fields_weight'][$fieldname]['#delta'] = $delta;
}
}
}
foreach ($fields as $fieldname => $field) {
if (!$field['hidden'] && !isset($form['fields'][$fieldname])) {
$form['fields'][$fieldname] = array(
'default' => array(
'#markup' => $field['title'],
),
'title' => array(
'#type' => 'value',
'#value' => $field['title'],
),
'#weight' => isset($weights[$fieldname]) ? $weights[$fieldname] : 0,
);
$form['uc_address_fields_weight'][$fieldname] = array(
'#type' => 'weight',
'#delta' => $delta,
'#default_value' => isset($weights[$fieldname]) ? $weights[$fieldname] : 0,
'#attributes' => array(
'class' => array(
'uc-store-address-fields-weight',
),
),
);
}
}
}