You are here

function _rdfui_mapping_save in RDF Extensions 7.2

Saves the mapping

3 calls to _rdfui_mapping_save()
rdfui_admin_rdf_overview_form_submit in rdfui/rdfui.module
Saves RDF mapping for all fields and node type.
rdfui_form_field_ui_field_edit_form_submit in rdfui/rdfui.module
Saves RDF mapping for individual field.
rdfui_form_node_type_form_submit in rdfui/rdfui.module
Saves RDF mapping for Title field.

File

rdfui/rdfui.module, line 562

Code

function _rdfui_mapping_save($form_state, $entity_type, $bundle, $field_name) {
  $mapping = rdf_mapping_load($entity_type, $bundle);

  // Set the RDF type if it is in this form.
  if (!empty($form_state['values']['rdf_rdftype'])) {
    $mapping['rdftype'] = rdfui_extract_curies($form_state['values']['rdf_rdftype']);
  }

  // Turn the predicates string into an array.
  if (isset($form_state['input']['rdf_title_type']) || $field_name != 'title') {
    $form_state['values']['rdf_' . $field_name . '_predicates'] = rdfui_extract_curies($form_state['values']['rdf_' . $field_name . '_predicates']);
  }
  foreach (array(
    'type',
    'datatype',
    'predicates',
  ) as $key) {

    // If there is form input for this key, set it in the mapping.
    if (!empty($form_state['values']['rdf_' . $field_name . '_' . $key])) {
      $mapping[$field_name][$key] = $form_state['values']['rdf_' . $field_name . '_' . $key];
    }
    else {

      // If there are no predicates, there should be no mapping at all for the
      // field.
      if ($key == 'predicates') {
        unset($mapping[$field_name]);
      }
      else {
        unset($mapping[$field_name][$key]);
      }
    }
  }
  $mapping_info = array(
    'mapping' => $mapping,
    'type' => $entity_type,
    'bundle' => $bundle,
  );
  rdf_mapping_save($mapping_info);
}