Exemple #1
0
 /**
  * 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']);
 }