array('label' => 'Full Name'), ); } // function cck_fullname_field_info() /** * Implementation of hook_field_settings(). */ function cck_fullname_field_settings($op, $field) { switch ($op) { case 'form': $form = array(); //borrowed from namefield module //-------allow content type creator to determine which fields are required-------- $required_default = array(); if (is_array($field['required_parts'])) { foreach ($field['required_parts'] as $part => $required) { if ($required) { $required_default[] = $part; } } // foreach possibly-required part } else { $required_default = array('legal_first', 'legal_last'); } // if we can make up our own defaults $form['required'] = array( '#type' => 'fieldset', '#weight' => 3, '#collapsible' => TRUE, '#collapsed' => TRUE, '#title' => t("Required Parts"), ); $form['required']['required_parts'] = array( '#type' => 'checkboxes', '#title' => t("Required Parts"),// CHANGES*** 98-116 copy/paste '#description' => t("Choose which fields are required. Applies only to fields made 'available' above.
(Ex. 1) If Required (above), then the fields checked here will be a part of that requirement. Unchecked fields will be optional if available above.
(Ex. 2) If Optional (above), then all fields made available are optional UNTIL one field is filled in, then those checked here become required. Unchecked fields here would still be optional. This will prevent the entering of partial or incomplete names."), '#default_value' => $required_default, '#options' => array( 'legal_prefix' => t("Prefix"), 'legal_first' => t("First"), 'legal_middle' => t("Middle"), 'legal_last' => t("Last"), 'legal_suffix' => t("Suffix"), // CHANGES*** removed all "preferred" options ), ); //----------allow content type creator to determine which fields to use----------- $legal_default = array(); if (is_array($field['legalname'])) { foreach ($field['legalname'] as $part => $legal) { if ($legal) { $legal_default[] = $part; } } // foreach possibly-legal part } else { $legal_default = array('legal_first', 'legal_middle', 'legal_last'); } // if we can make up our own default $form['legal_name'] = array( '#type' => 'fieldset', '#weight' => 2, '#collapsible' => TRUE, '#collapsed' => TRUE, // CHANGES*** 135-151 '#title' => t('Name'), ); $form['legal_name']['use_legalname'] = array( '#type' => 'radios', '#title' => t('Require name?'), '#description' => t("Choose if name is required or otional."), '#required' => TRUE, '#default_value' => isset($field['use_legalname']) ? $field['use_legalname'] : 'legal_require', '#options' => array( 'legal_require' => t("Required"), 'legal_optional' => t("Optional"), ), ); $form['legal_name']['legalname'] = array( '#type' => 'checkboxes', '#title' => t(''), // CHANGES*** '#description' => t("Check which fields are made available for this fullname set (not necessarily required)."), '#required' => TRUE, '#default_value' => $legal_default, '#options' => array( 'legal_prefix' => t("Prefix"), 'legal_first' => t("First"), 'legal_middle' => t("Middle"), 'legal_last' => t("Last"), 'legal_suffix' => t("Suffix"), ), ); // CHANGES** removed 208-226, pref form-note & mid-initial //-------------specify maximum lengths for each field------------------------ $form['max_lengths_legal'] = array( '#type' => 'fieldset', '#weight' => 4, '#title' => t('Maximum field lengths'), // CHANGES** '#collapsible' => TRUE, '#collapsed' => TRUE, ); $form['max_lengths_legal']['max_length_prefix_legal'] = array( '#type' => 'textfield', '#title' => t('Prefix maximum length'), '#size' => 1, '#default_value' => isset($field['max_length_prefix_legal']) ? $field['max_length_prefix_legal'] : '', '#required' => FALSE, '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'), ); $form['max_lengths_legal']['max_length_first_legal'] = array( '#type' => 'textfield', '#title' => t('First name maximum length'), '#size' => 6, '#default_value' => isset($field['max_length_first_legal']) ? $field['max_length_first_legal'] : '', '#required' => FALSE, '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'), ); $form['max_lengths_legal']['max_length_middle_legal'] = array( '#type' => 'textfield', '#title' => t('Middle name maximum length'), '#size' => 6, '#required' => FALSE, '#description' => t('The maximum length of the field in characters (unless Middle Initial is used instead). Leave blank for an unlimited size.'), ); if ($field['middle_initial'] == 1) { $form['max_lengths_legal']['max_length_middle_legal']['#default_value'] = 1; } else { $form['max_lengths_legal']['max_length_middle_legal']['#default_value'] = isset($field['max_length_middle_legal']) ? $field['max_length_middle_legal'] : ''; } $form['max_lengths_legal']['max_length_last_legal'] = array( '#type' => 'textfield', '#title' => t('Last name maximum length'), '#size' => 6, '#default_value' => isset($field['max_length_last_legal']) ? $field['max_length_last_legal'] : '', '#required' => FALSE, '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'), ); $form['max_lengths_legal']['max_length_suffix_legal'] = array( '#type' => 'textfield', '#title' => t('Suffix maximum length'), '#size' => 1, '#default_value' => isset($field['max_length_suffix_legal']) ? $field['max_length_suffix_legal'] : '', '#required' => FALSE, '#description' => t('The maximum length of the field in characters. Leave blank for an unlimited size.'), ); return $form; case 'save': return array( 'required_parts', 'use_legalname', 'legalname', 'middle_initial', 'max_length_prefix_legal', 'max_length_first_legal', 'max_length_middle_legal', 'max_length_last_legal', 'max_length_suffix_legal', // CHANGES*** removed all "preferred" options ); // CHANGES*** per d.o/node/252573#comment-1451844 for D6 attempt case 'database columns': $columns = array( 'last' => array('type' => 'varchar', 'not null' => FALSE, 'default' => "", 'sortable' => TRUE), 'first' => array('type' => 'varchar', 'not null' => FALSE, 'default' => "", 'sortable' => TRUE), 'middle' => array('type' => 'varchar', 'not null' => FALSE, 'default' => "", 'sortable' => TRUE), 'prefix' => array('type' => 'varchar', 'not null' => FALSE, 'default' => "", 'sortable' => TRUE), 'suffix' => array('type' => 'varchar', 'not null' => FALSE, 'default' => "", 'sortable' => TRUE), // CHANGES*** removed all "preferred" options ); //adjust field lengths based on settings for legal names if ($field['max_lengths_legal']['max_length_prefix_legal'] == 0 || $field['max_lengths_legal']['max_length_prefix_legal'] > 255) { $columns['prefix']['type'] = 'text'; // CHANGES*** per d.o/node/252573#comment-1451844 } else { $columns['prefix']['length'] = $field['max_lengths_legal']['max_length_prefix_legal']; } if ($field['max_lengths_legal']['max_length_first_legal'] == 0 || $field['max_lengths_legal']['max_length_first_legal'] > 255) { $columns['first']['type'] = 'text'; // CHANGES*** per d.o/node/252573#comment-1451844 } else { $columns['first']['length'] = $field['max_lengths_legal']['max_length_first_legal']; } if (($field['max_lengths_legal']['max_length_middle_legal'] == 0 || $field['max_lengths_legal']['max_length_middle_legal'] > 255) && ($field['middle_initial'] != 1)) { $columns['middle']['type'] = 'text'; // CHANGES*** per d.o/node/252573#comment-1451844 } elseif ($field['middle_initial'] == 1) { $columns['middle']['length'] = 1; } else { $columns['middle']['length'] = $field['max_lengths_legal']['max_length_middle_legal']; } if ($field['max_lengths_legal']['max_length_last_legal'] == 0 || $field['max_lengths_legal']['max_length_last_legal'] > 255) { $columns['last']['type'] = 'text'; // CHANGES*** per d.o/node/252573#comment-1451844 } else { $columns['last']['length'] = $field['max_lengths_legal']['max_length_last_legal']; } if ($field['max_lengths_legal']['max_length_suffix_legal'] == 0 || $field['max_lengths_legal']['max_length_suffix_legal'] > 255) { $columns['suffix']['type'] = 'text'; // CHANGES*** per d.o/node/252573#comment-1451844 } else { $columns['suffix']['length'] = $field['max_lengths_legal']['max_length_suffix_legal']; } // CHANGES*** removed all "preferred" options return $columns; case 'filters': return array( 'default' => array( 'operator' => 'views_handler_operator_like', 'handler' => 'views_handler_filter_like', ), ); case 'callbacks'://pairs up with cck_fullname_field::view return array( 'view' => CONTENT_CALLBACK_CUSTOM, ); } } // function cck_fullname_field_settings() /** * Implementation of hook_field(). */ function cck_fullname_field($op, &$node, $field, &$items, $teaser, $page) { switch ($op) { case 'submit': $info = content_database_info($field['field_name']); break; case 'validate': //validate field lengths if ($field['max_lengths_legal']['max_length_prefix_legal'] > 0) { foreach ($items as $delta => $data) { $error_field_prefix = $field['field_name']. '][' .$delta. '][prefix'; if (strlen($data['prefix']) > $field['max_lengths_legal']['max_length_prefix_legal']) { form_set_error($error_field_prefix, t('%label\'s Prefix field is longer than %max characters.', array('%label' => $field['widget']['label'], '%max' => $field['max_lengths_legal']['max_length_prefix_legal']))); // CHANGES*** } } } if ($field['max_lengths_legal']['max_length_first_legal'] > 0) { foreach ($items as $delta => $data) { $error_field_first = $field['field_name']. '][' .$delta. '][first'; if (strlen($data['first']) > $field['max_lengths_legal']['max_length_first_legal']) { form_set_error($error_field_first, t('%label\'s First name field is longer than %max characters.', array('%label' => $field['widget']['label'], '%max' => $field['max_lengths_legal']['max_length_first_legal']))); // CHANGES*** } } } if ($field['max_lengths_legal']['max_length_middle_legal'] > 0) { foreach ($items as $delta => $data) { $error_field_middle = $field['field_name']. '][' .$delta. '][middle'; if (strlen($data['middle']) > $field['max_lengths_legal']['max_length_middle_legal']) { form_set_error($error_field_middle, t('%label\'s Middle name field is longer than %max characters.', array('%label' => $field['widget']['label'], '%max' => $field['max_lengths_legal']['max_length_middle_legal']))); // CHANGES*** } } } if ($field['max_lengths_legal']['max_length_last_legal'] > 0) { foreach ($items as $delta => $data) { $error_field_last = $field['field_name']. '][' .$delta. '][last'; if (strlen($data['last']) > $field['max_lengths_legal']['max_length_last_legal']) { form_set_error($error_field_last, t('%label\'s Last name field is longer than %max characters.', array('%label' => $field['widget']['label'], '%max' => $field['max_lengths_legal']['max_length_last_legal']))); // CHANGES*** } } } if ($field['max_lengths_legal']['max_length_suffix_legal'] > 0) { foreach ($items as $delta => $data) { $error_field_suffix = $field['field_name']. '][' .$delta. '][suffix'; if (strlen($data['suffix']) > $field['max_lengths_legal']['max_length_suffix_legal']) { form_set_error($error_field_suffix, t('%label\'s Suffix field is longer than %max characters.', array('%label' => $field['widget']['label'], '%max' => $field['max_lengths_legal']['max_length_suffix_legal']))); // CHANGES*** } } } // CHANGES*** removed all "preferred" options //validate required-ness of fields foreach ($items as $delta => $data) { if (is_numeric($delta)) { //deal with legal name fields if (($field['use_legalname'] == 'legal_require') || ($field['use_legalname'] == 'legal_optional')) { $legal_empty = (empty($data['prefix']) && empty($data['first']) && empty($data['middle']) && empty($data['last']) && empty($data['suffix'])); if (!$legal_empty) { if (empty($data['prefix']) && $field['required_parts']['legal_prefix'] === 'legal_prefix' && !empty($field['legalname']['legal_prefix'])) { $error_field_prefix = $field['field_name']. '][' .$delta. '][prefix'; form_set_error($error_field_prefix, t('Prefix field is required.')); } if (empty($data['first']) && $field['required_parts']['legal_first'] === 'legal_first' && !empty($field['legalname']['legal_first'])) { $error_field_first = $field['field_name']. '][' .$delta. '][first'; form_set_error($error_field_first, t('First name field is required.')); } if (empty($data['middle']) && $field['required_parts']['legal_middle'] === 'legal_middle' && !empty($field['legalname']['legal_middle'])) { $error_field_middle = $field['field_name']. '][' .$delta. '][middle'; form_set_error($error_field_middle, t('Middle name field is required.')); } if (empty($data['last']) && $field['required_parts']['legal_last'] === 'legal_last' && !empty($field['legalname']['legal_last'])) { $error_field_last = $field['field_name']. '][' .$delta. '][last'; form_set_error($error_field_last, t('Last name field is required.')); } if (empty($data['suffix']) && $field['required_parts']['legal_suffix'] === 'legal_suffix' && !empty($field['legalname']['legal_suffix'])) { $error_field_suffix = $field['field_name']. '][' .$delta. '][suffix'; form_set_error($error_field_suffix, t('Suffix field is required.')); } } elseif ($field['use_legalname'] == 'legal_require') { form_set_error($field['field_name']. '][' .$delta. ']', t('Fullname is required.'));// CHANGES*** } } } } break; case 'view': $context = $teaser ? 'teaser' : 'full'; $formatter = isset($field['display_settings'][$context]['format']) ? $field['display_settings'][$context]['format'] : 'default'; foreach ($items as $delta => $item) { $items[$delta]['view'] = content_format($field, $item, $formatter, $node); } return theme('field', $node, $field, $items, $teaser, $page); } } // function cck_fullname_field() /** * Implementation of hook_field_formatter_info(). */ function cck_fullname_field_formatter_info() { return array( 'default' => array( 'label' => t('Default, prefix first middle last suffix'), 'field types' => array('cck_fullname'), ), 'last_name_only' => array( 'label' => t('Last name only'), 'field types' => array('cck_fullname'), ), 'first_name_only' => array( 'label' => t('First name only'), 'field types' => array('cck_fullname'), ), 'last_name_first' => array( 'label' => t('Last, first middle'), 'field types' => array('cck_fullname'), ), ); } // function cck_fullname_field_formatter_info() /** * Implemetation of hook_field_formatter(). */ function cck_fullname_field_formatter($field, $item, $formatter, $node) { $output = ''; if (!key_exists('prefix', $item)) { return ''; } switch ($formatter) { case 'default': //check and clean the values for output if (!empty($item['prefix'])) { $cck_legalname['prefix'] = strip_tags($item['prefix']); } if (!empty($item['first'])) { $cck_legalname['first'] = strip_tags($item['first']); } if (!empty($item['middle'])) { $cck_legalname['middle'] = strip_tags($item['middle']); } if (!empty($item['last'])) { $cck_legalname['last'] = strip_tags($item['last']); } if (!empty($item['suffix'])) { $cck_legalname['suffix'] = strip_tags($item['suffix']); } if (!empty($cck_legalname)) { $output .= t('Name: '). theme('cck_fullname', $cck_legalname, $field);// CHANGES*** } // CHANGES*** removed all "preferred" options return $output; case 'last_name_only'://output legal last name //check and clean the values for output if (isset($item['last'])) { $cck_fullname['last'] = strip_tags($item['last']); } $output .= theme('cck_fullname', $cck_fullname, $field); return $output; case 'first_name_only'://output legal first name// CHANGES*** //check and clean the values for output if (isset($item['first'])) { $cck_fullname['first'] = strip_tags($item['first']); } $output .= theme('cck_fullname', $cck_fullname, $field); return $output; case 'last_name_first': //check and clean the values for output if (!empty($item['prefix'])) { $cck_legalname['prefix'] = strip_tags($item['prefix']); } if (!empty($item['first'])) { $cck_legalname['first'] = strip_tags($item['first']); } if (!empty($item['middle'])) { $cck_legalname['middle'] = strip_tags($item['middle']); } if (!empty($item['last'])) { $cck_legalname['last'] = strip_tags($item['last']); } if (!empty($item['suffix'])) { $cck_legalname['suffix'] = strip_tags($item['suffix']); } if (!empty($cck_legalname)) {// CHANGES*** $output .= t('Name: '). theme('cck_fullname', $cck_legalname, $field, TRUE); } // CHANGES*** removed all "preferred" options return $output; } } // function cck_fullname_field_formatter() /** * Theme for address display as called from cck_fullname_field_formatter(). */ function theme_cck_fullname($cck_fullname, $field, $last_first = FALSE) { $output = ''; //create the output if ($last_first) { if (isset($cck_fullname['last'])) { $output .= $cck_fullname['last']; if (strlen($cck_fullname['last']) == 1) $output .= '., '; else $output .= ', '; } if (isset($cck_fullname['prefix'])) { $output .= $cck_fullname['prefix']; if (strlen($cck_fullname['prefix']) < 4) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['first'])) { $output .= $cck_fullname['first']; if (strlen($cck_fullname['first']) == 1) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['middle'])) { $output .= $cck_fullname['middle']; if ($field['middle_initial'] == 1) $output .= '. '; else $output .= ', '; } if (isset($cck_fullname['suffix'])) { $output .= $cck_fullname['suffix']; if (strlen($cck_fullname['suffix']) < 4) $output .= '.'; } $output .= '
'; } else { if (isset($cck_fullname['prefix'])) { $output .= $cck_fullname['prefix']; if (strlen($cck_fullname['prefix']) < 4) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['first'])) { $output .= $cck_fullname['first']; if (strlen($cck_fullname['first']) == 1) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['middle'])) { $output .= $cck_fullname['middle']; if ($field['middle_initial'] == 1) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['last'])) { $output .= $cck_fullname['last']; if (strlen($cck_fullname['last']) == 1) $output .= '. '; else $output .= ' '; } if (isset($cck_fullname['suffix'])) { $output .= $cck_fullname['suffix']; if (strlen($cck_fullname['suffix']) < 4) $output .= '.'; } $output .= '
'; } return $output; } // function theme_cck_fullname() /** * Implementation of hook_widget_info(). */ function cck_fullname_widget_info() { return array( 'cck_fullname' => array( 'label' => 'Full Name', 'field types' => array('cck_fullname'), ), ); } // function cck_fullname_widget_info() /** * Implementation of hook_widget_settings(). */ function cck_fullname_widget_settings($op, $widget) { switch ($op) { case 'callbacks': return array( 'default value' => CONTENT_CALLBACK_CUSTOM, ); } } // function cck_fullname_widget_settings() /** * Implementation of hook_widget(). */ function cck_fullname_widget($op, &$node, $field, &$items) { switch ($op) { case 'form': $form = array(); $form[$field['field_name']] = array('#tree' => TRUE); $form[$field['field_name']]['#theme'] = 'cck_fullname_display'; $form[$field['field_name']]['use_legalname'] = array( '#type' => 'value', '#value' => $field['use_legalname'], ); // CHANGES*** removed all "preferred" options $form[$field['field_name']]['required_parts'] = array( '#type' => 'value', '#value' => $field['required_parts'], ); $form[$field['field_name']]['legalname'] = array( '#type' => 'value', '#value' => $field['legalname'], ); // CHANGES*** removed all "preferred" options $form[$field['field_name']]['#type'] = 'fieldset'; $form[$field['field_name']]['#attributes'] = array('class' => 'cck-fullname-fieldset'); $form[$field['field_name']]['#title'] = ucfirst(t($field['widget']['label'])); $form[$field['field_name']]['#description'] = $field['widget']['description']; $form[$field['field_name']]['#weight'] = $field['widget']['weight']; if ($field['multiple']) { $delta = 0; foreach ($items as $data) { if (isset($field['legalname']['legal_prefix'])) { $form[$field['field_name']][$delta]['prefix'] = array( '#type' => 'textfield', '#default_value' => isset($data['prefix']) ? $data['prefix'] : '', '#size' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#maxlength' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_prefix'] === 'legal_prefix') { $form[$field['field_name']][$delta]['prefix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['prefix']['#attributes'] = $field['max_length_prefix_legal'] ? array('style' => 'width:' .$field["max_length_prefix_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_first'])) { $form[$field['field_name']][$delta]['first'] = array( '#type' => 'textfield', '#default_value' => isset($data['first']) ? $data['first'] : '', '#size' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#maxlength' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_first'] === 'legal_first') { $form[$field['field_name']][$delta]['first']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['first']['#attributes'] = $field['max_length_first_legal'] ? array('style' => 'width:' .$field["max_length_first_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_middle'])) { $form[$field['field_name']][$delta]['middle'] = array( '#type' => 'textfield', '#default_value' => isset($data['middle']) ? $data['middle'] : '', '#size' => $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL, '#maxlength' => $field['max_lengths']['max_length_middle_legal'] ? $field['max_lengths']['max_length_middle_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_middle'] === 'legal_middle') { $form[$field['field_name']][$delta]['middle']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { if ($field['middle_initial'] == 1) { $form[$field['field_name']][$delta]['middle']['#maxlength'] = 1; $form[$field['field_name']][$delta]['middle']['#attributes'] = array('style' => 'width:1em'); } else { $form[$field['field_name']][$delta]['middle']['#maxlength'] = $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL; $form[$field['field_name']][$delta]['middle']['#attributes'] = $field['max_length_middle_legal'] ? array('style' => 'width:' .$field["max_length_middle_legal"]*0.85. 'em') : array(); } } } if (isset($field['legalname']['legal_last'])) { $form[$field['field_name']][$delta]['last'] = array( '#type' => 'textfield', '#default_value' => isset($data['last']) ? $data['last'] : '', '#size' => $field['max_lengths']['max_length_last_legal'] ? $field['max_lengths']['max_length_last_legal'] : NULL, '#maxlength' => $field['max_lengths']['max_length_last_legal'] ? $field['max_lengths']['max_length_last_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_last'] === 'legal_last') { $form[$field['field_name']][$delta]['last']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['last']['#attributes'] = $field['max_length_last_legal'] ? array('style' => 'width:' .$field["max_length_last_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_suffix'])) { $form[$field['field_name']][$delta]['suffix'] = array( '#type' => 'textfield', '#default_value' => isset($data['suffix']) ? $data['suffix'] : '', '#size' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#maxlength' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_suffix'] === 'legal_suffix') { $form[$field['field_name']][$delta]['suffix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['suffix']['#attributes'] = $field['max_length_suffix_legal'] ? array('style' => 'width:' .$field["max_length_suffix_legal"]*0.85. 'em') : array(); } } // CHANGES*** removed all "preferred" options $delta++; } foreach (range($delta, $delta + 2) as $delta) { if (isset($field['legalname']['legal_prefix'])) { $form[$field['field_name']][$delta]['prefix'] = array( '#type' => 'textfield', '#default_value' => '', '#size' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#maxlength' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_prefix'] === 'legal_prefix') { $form[$field['field_name']][$delta]['prefix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['prefix']['#attributes'] = $field['max_length_prefix_legal'] ? array('style' => 'width:' .$field["max_length_prefix_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_first'])) { $form[$field['field_name']][$delta]['first'] = array( '#type' => 'textfield', '#default_value' => '', '#size' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#maxlength' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_first'] === 'legal_first') { $form[$field['field_name']][$delta]['first']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['first']['#attributes'] = $field['max_length_first_legal'] ? array('style' => 'width:' .$field["max_length_first_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_middle'])) { $form[$field['field_name']][$delta]['middle'] = array( '#type' => 'textfield', '#default_value' => '', '#size' => $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL, '#maxlength' => $field['max_lengths']['max_length_middle_legal'] ? $field['max_lengths']['max_length_middle_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_middle'] === 'legal_middle') { $form[$field['field_name']][$delta]['middle']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { if ($field['middle_initial'] == 1) { $form[$field['field_name']][$delta]['middle']['#maxlength'] = 1; $form[$field['field_name']][$delta]['middle']['#attributes'] = array('style' => 'width:1em'); } else { $form[$field['field_name']][$delta]['middle']['#maxlength'] = $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL; $form[$field['field_name']][$delta]['middle']['#attributes'] = $field['max_length_middle_legal'] ? array('style' => 'width:' .$field["max_length_middle_legal"]*0.85. 'em') : array(); } } } if (isset($field['legalname']['legal_last'])) { $form[$field['field_name']][$delta]['last'] = array( '#type' => 'textfield', '#default_value' => '', '#size' => $field['max_lengths']['max_length_last_legal'] ? $field['max_lengths']['max_length_last_legal'] : NULL, '#maxlength' => $field['max_lengths']['max_length_last_legal'] ? $field['max_lengths']['max_length_last_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_last'] === 'legal_last') { $form[$field['field_name']][$delta]['last']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['last']['#attributes'] = $field['max_length_last_legal'] ? array('style' => 'width:' .$field["max_length_last_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_suffix'])) { $form[$field['field_name']][$delta]['suffix'] = array( '#type' => 'textfield', '#default_value' => '', '#size' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#maxlength' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if ($field['required_parts']['legal_suffix'] === 'legal_suffix') { $form[$field['field_name']][$delta]['suffix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][$delta]['suffix']['#attributes'] = $field['max_length_suffix_legal'] ? array('style' => 'width:' .$field["max_length_suffix_legal"]*0.85. 'em') : array(); } } // CHANGES*** removed all "preferred" options } } else { //present form for legal name with no multiples if (isset($field['legalname']['legal_prefix'])) { $form[$field['field_name']][0]['prefix'] = array( '#type' => 'textfield', '#default_value' => isset($items[0]['prefix']) ? $items[0]['prefix'] : '', '#size' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#maxlength' => $field['max_length_prefix_legal'] ? $field['max_length_prefix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if($field['required_parts']['legal_prefix'] === 'legal_prefix') { $form[$field['field_name']][0]['prefix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][0]['prefix']['#attributes'] = $field['max_length_prefix_legal'] ? array('style' => 'width:' .$field["max_length_prefix_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_first'])) { $form[$field['field_name']][0]['first'] = array( '#type' => 'textfield', '#default_value' => isset($items[0]['first']) ? $items[0]['first'] : '', '#size' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#maxlength' => $field['max_length_first_legal'] ? $field['max_length_first_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if($field['required_parts']['legal_first'] === 'legal_first') { $form[$field['field_name']][0]['first']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][0]['first']['#attributes'] = $field['max_length_first_legal'] ? array('style' => 'width:' .$field["max_length_first_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_middle'])) { $form[$field['field_name']][0]['middle'] = array( '#type' => 'textfield', '#default_value' => isset($items[0]['middle']) ? $items[0]['middle'] : '', '#size' => $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if($field['required_parts']['legal_middle'] === 'legal_middle') { $form[$field['field_name']][0]['middle']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { if ($field['middle_initial'] == 1) { $form[$field['field_name']][0]['middle']['#maxlength'] = 1; $form[$field['field_name']][0]['middle']['#attributes'] = array('style' => 'width:1em'); } else { $form[$field['field_name']][0]['middle']['#maxlength'] = $field['max_length_middle_legal'] ? $field['max_length_middle_legal'] : NULL; $form[$field['field_name']][0]['middle']['#attributes'] = $field['max_length_middle_legal'] ? array('style' => 'width:' .$field["max_length_middle_legal"]*0.85. 'em') : array(); } } } if (isset($field['legalname']['legal_last'])) { $form[$field['field_name']][0]['last'] = array( '#type' => 'textfield', '#default_value' => isset($items[0]['last']) ? $items[0]['last'] : '', '#size' => $field['max_length_last_legal'] ? $field['max_length_last_legal'] : NULL, '#maxlength' => $field['max_length_last_legal'] ? $field['max_length_last_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if($field['required_parts']['legal_last'] === 'legal_last') { $form[$field['field_name']][0]['last']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][0]['last']['#attributes'] = $field['max_length_last_legal'] ? array('style' => 'width:' .$field["max_length_last_legal"]*0.85. 'em') : array(); } } if (isset($field['legalname']['legal_suffix'])) { $form[$field['field_name']][0]['suffix'] = array( '#type' => 'textfield', '#default_value' => isset($items[0]['suffix']) ? $items[0]['suffix'] : '', '#size' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#maxlength' => $field['max_length_suffix_legal'] ? $field['max_length_suffix_legal'] : NULL, '#prefix' => '
', '#suffix' => '
', ); if($field['required_parts']['legal_suffix'] === 'legal_suffix') { $form[$field['field_name']][0]['suffix']['#attributes'] = array('style' => 'border: 2px solid #ff0000'); } else { $form[$field['field_name']][0]['suffix']['#attributes'] = $field['max_length_suffix_legal'] ? array('style' => 'width:' .$field["max_length_suffix_legal"]*0.85. 'em') : array(); } } // CHANGES*** removed all "preferred" options } return $form; // CHANGES*** case 'process form values': // Don't save empty fields except the first value foreach ($items as $delta => $item) { if (!is_numeric($delta)) { unset($items[$delta]);//if we don't do this, for some reason, the first $delta of good values turns into a set of 'l's (the letter l) } //in the validation stage, we'll enforce required fields for $delta > 0, but let's just remove any totally empty $deltas now elseif (($item['prefix'] == '') && ($item['first'] == '') && ($item['middle'] == '') && ($item['last'] == '') && ($item['suffix'] == '') && $delta > 0) { unset($items[$delta]); // CHANGES*** removed all "preferred" options } } break; } } //function cck_fullname_widget() /** * Display the input fields to the user. */ function theme_cck_fullname_display($form) { drupal_add_css(drupal_get_path('module', 'cck_fullname') .'/cck_fullname.css', 'module', 'all', FALSE); $output = ''; $rows = array(); $header = array(); $header[] = t(''); // CHANGES*** removed all "preferred" options if ($form['legalname']['#value']['legal_prefix'] === 'legal_prefix') { $header[] = t('Prefix'); } if ($form['legalname']['#value']['legal_first'] === 'legal_first') { $header[] = t('First'); } if ($form['legalname']['#value']['legal_middle'] === 'legal_middle') { $header[] = t('Middle'); } if ($form['legalname']['#value']['legal_last'] === 'legal_last') { $header[] = t('Last'); } if ($form['legalname']['#value']['legal_suffix'] === 'legal_suffix') { $header[] = t('Suffix'); } foreach (element_children($form) as $delta) { if (is_numeric($delta)) { if ($form['use_legalname']['#value'] == 'legal_require') { $rows[$delta]['name'] = '
'. t('Name: ') .'*
'; // CHANGES*** } else { $rows[$delta]['name'] = '
'. t('Name:') .'
'; }// CHANGES*** unset($form['use_legalname']); if ($form['legalname']['#value']['legal_prefix'] === 'legal_prefix') { $rows[$delta]['prefix'] = drupal_render($form[$delta]['prefix']); } else { // CHANGES*** removed all "preferred" options $form[$delta]['prefix']['#access'] = FALSE; } if ($form['legalname']['#value']['legal_first'] === 'legal_first') { $rows[$delta]['first'] = drupal_render($form[$delta]['first']); } else { // CHANGES*** removed all "preferred" options $form[$delta]['first']['#access'] = FALSE; } if ($form['legalname']['#value']['legal_middle'] === 'legal_middle') { $rows[$delta]['middle'] = drupal_render($form[$delta]['middle']); } else { // CHANGES*** removed all "preferred" options $form[$delta]['middle']['#access'] = FALSE; } if ($form['legalname']['#value']['legal_last'] === 'legal_last') { $rows[$delta]['last'] = drupal_render($form[$delta]['last']); } else { // CHANGES*** removed all "preferred" options $form[$delta]['last']['#access'] = FALSE; } if ($form['legalname']['#value']['legal_suffix'] === 'legal_suffix') { $rows[$delta]['suffix'] = drupal_render($form[$delta]['suffix']); } else { // CHANGES*** removed all "preferred" options $form[$delta]['suffix']['#access'] = FALSE; } } } unset($form['use_legalname']); unset($form['use_preferredname']); unset($form['required_parts']); unset($form['legalname']); // CHANGES*** removed all "preferred" options $output .= theme('table', $header, $rows); $output .= drupal_render($form); return $output; } //function theme_cck_fullname_display /** * Implementation of hook_diff() */ function cck_fullname_diff(&$old_node, &$new_node) { $result = array(); $cck_info = content_types($new_node->type); if ($cck_info) { foreach ($cck_info['fields'] as $field) { if ($field['type'] == 'cck_fullname') { $old_values = array(); $new_values = array(); if (isset($old_node->$field['field_name'])) { $old_values = cck_fullname_diff_values($old_node, $field); } if (isset($new_node->$field['field_name'])) { $new_values = cck_fullname_diff_values($new_node, $field); } foreach ($new_values as $key => $value) { if (!isset($old_values[$key]) && ($new_values[$key] == '')) { unset($new_values[$key]); } } $result[] = array( 'name' => $field['widget']['label'], 'old' => $old_values, 'new' => $new_values, 'format' => array( 'show_header' => true, ), ); } } } return $result; } /** * A helper function for the diff hook */ function cck_fullname_diff_values(&$node, &$field) { foreach ($node->$field['field_name'] as $item => $value) { if (!is_numeric($item)) { continue; } else { $result[] = $value['prefix']; $result[] = $value['first']; $result[] = $value['middle']; $result[] = $value['last']; $result[] = $value['suffix']; // CHANGES*** removed all "preferred" options } } return $result; } /** * Implementation of hook_token_values */ function cck_fullname_token_values($type, $object = NULL) { if ($type == 'field') { $tokens = array(); $something = $object[0]; $tokens['fullname'] = $something['view']; $tokens['prefix'] = check_plain($something['prefix']); $tokens['first'] = check_plain($something['first']); $tokens['middle'] = check_plain($something['middle']); $tokens['last'] = check_plain($something['last']); $tokens['suffix'] = check_plain($something['suffix']); return $tokens; // CHANGES*** removed all "preferred" options } } // function cck_fullname_token_values() /** * Implementation of hook_token_list */ function cck_fullname_token_list($type = 'all') { if ($type == 'field' || $type == 'all') { $tokens = array(); $tokens['cck_fullname']['fullname'] = t("The user's full name"); $tokens['cck_fullname']['prefix'] = t("The user's legal prefix"); $tokens['cck_fullname']['first'] = t("The user's legal first name"); $tokens['cck_fullname']['middle'] = t("The user's legal middle name or initial"); $tokens['cck_fullname']['last'] = t("The user's legal last name"); $tokens['cck_fullname']['suffix'] = t("The user's legal suffix"); return $tokens; // CHANGES*** removed all "preferred" options } } // function cck_fullname_token_list()