/** * Processes the form state, populating the mapping array. * * @param arary &$form_state * The form state array to process. */ protected function processFormState($form, &$form_state) { // Process any plugin configuration. if (isset($form_state['triggering_element']['#delta']) && !empty($form_state['triggering_element']['#saved'])) { $delta = $form_state['triggering_element']['#delta']; $this->importer->getTargetPlugin($delta)->submitConfigurationForm($form, $form_state); } if ($form_state['values']['mappings']) { foreach ($form_state['values']['mappings'] as $delta => $mapping) { $this->importer->setMapping($delta, $mapping); } } // Remove any mappings. if (!empty($form_state['values']['remove_mappings'])) { foreach (array_keys(array_filter($form_state['values']['remove_mappings'])) as $delta) { $this->importer->removeMapping($delta); } } // Add any targets. if ($new_target = $form_state['values']['add_target']) { $map = array_fill_keys(array_keys($this->targets[$new_target]['properties']), ''); $this->importer->addMapping(array('target' => $form_state['values']['add_target'], 'map' => $map)); } // Allow the #default_value of 'add_target' to be reset. unset($form_state['input']['add_target']); }