예제 #1
0
 /**
  * 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."));
                 }
             }
         }
     }
 }