diff --git a/plugins/state_to_abbrev.inc b/plugins/state_to_abbrev.inc new file mode 100644 index 0000000..39498ae --- /dev/null +++ b/plugins/state_to_abbrev.inc @@ -0,0 +1,105 @@ + 'feeds_tamper_state_to_abbrev_form', + 'callback' => 'feeds_tamper_state_to_abbrev_callback', + 'name' => 'Full U.S. state name to abbrev', + 'multi' => 'loop', + 'category' => 'Other', + 'default description' => 'Full state name to abbrev', +); + +function feeds_tamper_state_to_abbrev_form($importer, $element_key, $settings) { + $form = array(); + $form['help'] = array( + '#markup' => t('Converts this field from a full state name name string to the two character abbreviation.'), + ); + return $form; +} + +function feeds_tamper_state_to_abbrev_callback($result, $item_key, $element_key, &$field, $settings) { + static $states = array(); + + if (empty($states)) { + $states = _feeds_tamper_state_to_abbrev_states_get_list(); + } + + //Trim whitespace, set to lowercase. + $state = t(drupal_strtolower(trim($field))); + if (isset($states[$state])) { + $field = $states[$state]; + } + else { + // If state name cannot be found, return nothing. + $field = ''; + } +} + +function _feeds_tamper_state_to_abbrev_states_get_list() { + $states = array( + 'alabama' => 'AL', + 'alaska' => 'AK', + 'arizona' => 'AZ', + 'american samoa' => 'AS', + 'arkansas' => 'AR', + 'california' => 'CA', + 'colorado' => 'CO', + 'connecticut' => 'CT', + 'delaware' => 'DE', + 'district of columbia' => 'DC', + 'federated states of micronesia' => 'FM', + 'florida' => 'FL', + 'georgia' => 'GA', + 'guam' => 'GU', + 'hawaii' => 'HI', + 'idaho' => 'ID', + 'illinois' => 'IL', + 'indiana' => 'IN', + 'iowa' => 'IA', + 'kansas' => 'KS', + 'kentucky' => 'KY', + 'louisiana' => 'LA', + 'maine' => 'ME', + 'maryland' => 'MD', + 'massachusetts' => 'MA', + 'marshall islands' => 'MH', + 'michigan' => 'MI', + 'minnesota' => 'MN', + 'mississippi' => 'MS', + 'missouri' => 'MO', + 'montana' => 'MT', + 'nebraska' => 'NE', + 'nevada' => 'NV', + 'new hampshire' => 'NH', + 'new jersey' => 'NJ', + 'new mexico' => 'NM', + 'new york' => 'NY', + 'north carolina' => 'NC', + 'north dakota' => 'ND', + 'northern mariana islands' => 'mp', + 'ohio' => 'OH', + 'oklahoma' => 'OK', + 'oregon' => 'OR', + 'pennsylvania' => 'PA', + 'palau' => 'PW', + 'puerto rico' => 'PR', + 'rhode island' => 'RI', + 'south carolina' => 'SC', + 'south dakota' => 'SD', + 'tennessee' => 'TN', + 'texas' => 'TX', + 'utah' => 'UT', + 'vermont' => 'VT', + 'virginia' => 'VA', + 'virgin islands' => 'VI', + 'washington' => 'WA', + 'west virginia' => 'WV', + 'wisconsin' => 'WI', + 'wyoming' => 'WY' + ); + return $states; +}