/** * Add phone number fields as defined in StreakAddresses_PhoneNumberExtension to OrderForm * @param FieldList $fields */ public function updateFields(FieldList $fields) { $compositeFields = array('Shipping', 'Billing'); list($phoneFields, $labels) = CrackerjackModule::get_config_settings('StreakAddresses_PhoneNumbersExtension', array('db', 'field_labels')); list($insertAfter, $insertBefore, $required) = CrackerjackModule::get_config_settings(__CLASS__, array('streak_addresses_insert_after', 'streak_addresses_insert_before', 'streak_addresses_required_fields')); foreach ($compositeFields as $prefix) { foreach ($phoneFields as $fieldName => $schema) { if ($compositeField = $fields->fieldByName($prefix . 'Address')) { /** FormField */ if ($insertAfter) { $field = $compositeField->insertAfter(new TextField($prefix . $fieldName, isset($labels[$fieldName]) ? $labels[$fieldName] : $fieldName), $prefix . $insertAfter); } else { $field = $compositeField->insertBefore(new TextField($prefix . $fieldName, isset($labels[$fieldName]) ? $labels[$fieldName] : $fieldName), $prefix . $insertBefore); } $field->addExtraClass('phone-number'); if (isset($required[$fieldName])) { $field->setCustomValidationMessage(_t('CheckoutPage.PLEASE_ENTER_PHONE', "Please enter a phone number.")); } } } } }