function fb_instant_articles_display_field_ui_fields_save in Facebook Instant Articles 7
Same name and namespace in other branches
- 7.2 modules/fb_instant_articles_display/includes/view_mode_layout.inc \fb_instant_articles_display_field_ui_fields_save()
Saves the field settings from the 'Manage display' screen.
1 string reference to 'fb_instant_articles_display_field_ui_fields_save'
- fb_instant_articles_display_field_ui_fields in modules/
fb_instant_articles_display/ includes/ view_mode_layout.inc - Adds the fields to the Field UI form.
File
- modules/
fb_instant_articles_display/ includes/ view_mode_layout.inc, line 467 - View mode layout functions for Facebook Instant Articles Display.
Code
function fb_instant_articles_display_field_ui_fields_save($form, &$form_state) {
// Setup some variables.
$entity_type = $form['#entity_type'];
$bundle = $form['#bundle'];
$view_mode = $form['#view_mode'];
// Delete previous field configuration configuration.
db_delete('fb_instant_articles_display_field_settings')
->condition('entity_type', $entity_type)
->condition('bundle', $bundle)
->condition('view_mode', $view_mode)
->execute();
if (empty($form_state['layout_saved'])) {
return;
}
$field_settings = array();
// Save settings for each field.
$fields = $form['#fbia_fields'];
foreach ($fields as $field) {
// Field settings.
$field_values = $form_state['values']['fields'][$field];
// In case the region is hidden, do not save.
if (isset($field_values['region']) && $field_values['region'] == 'hidden') {
continue;
}
// Build settings.
$settings = array();
$settings['weight'] = $field_values['weight'];
$settings['label'] = $field_values['label'];
$settings['format'] = $field_values['format']['type'];
// Any formatter settings.
if (isset($form_state['formatter_settings'][$field])) {
$settings['formatter_settings'] = $form_state['formatter_settings'][$field];
}
$field_settings[$field] = $settings;
}
// Allow other modules to modify the field settings before they get saved.
drupal_alter('fb_instant_articles_display_field_settings', $field_settings, $form, $form_state);
// Save the record.
if (!empty($field_settings)) {
$record = new stdClass();
$record->id = $form['#export_id'];
$record->entity_type = $entity_type;
$record->bundle = $bundle;
$record->view_mode = $view_mode;
$record->settings = $field_settings;
drupal_write_record('fb_instant_articles_display_field_settings', $record);
}
// Clear the field cache.
cache_clear_all('fb_instant_articles_display_fields:', 'cache', TRUE);
cache_clear_all('fb_instant_articles_display_field_settings', 'cache');
}