function fb_instant_articles_display_field_ui_layouts_save in Facebook Instant Articles 7.2
Same name and namespace in other branches
- 7 modules/fb_instant_articles_display/includes/view_mode_layout.inc \fb_instant_articles_display_field_ui_layouts_save()
Saves layout configuration of Facebook Instant Articles Display View Mode.
1 string reference to 'fb_instant_articles_display_field_ui_layouts_save'
- fb_instant_articles_display_layout_form in modules/
fb_instant_articles_display/ includes/ view_mode_layout.inc - Includes Facebook Instant Articles Display View Mode elements.
File
- modules/
fb_instant_articles_display/ includes/ view_mode_layout.inc, line 148 - View mode layout functions for Facebook Instant Articles Display.
Code
function fb_instant_articles_display_field_ui_layouts_save($form, &$form_state) {
$weight = 0;
// Get default values.
$entity_type = $form['#entity_type'];
$bundle = $form['#bundle'];
$view_mode = $form['#view_mode'];
// Save layout and add regions if necessary.
$record = new stdClass();
$record->id = $form['#export_id'];
$record->entity_type = $entity_type;
$record->bundle = $bundle;
$record->settings = array();
$form_state['layout_saved'] = TRUE;
$fields = fb_instant_articles_display_sort_fields($form_state['values']['fields'], 'weight');
foreach ($fields as $key => $field) {
// Make sure we need to save anything for this field.
if (fb_instant_articles_display_field_valid($key, $field, $form_state, $view_mode)) {
continue;
}
if (!isset($record->settings['regions'][$field['region']])) {
$record->settings['regions'][$field['region']] = array();
}
$record->settings['regions'][$field['region']][$weight++] = $key;
$record->settings['fields'][$key] = $field['region'];
}
// Let other modules alter the layout settings.
drupal_alter('fb_instant_articles_display_layout_settings', $record, $form_state);
$layout = $form['#fbia_layout'];
if (!isset($layout->export_type)) {
drupal_write_record('fb_instant_articles_display_layout_settings', $record);
}
else {
drupal_write_record('fb_instant_articles_display_layout_settings', $record, array(
'id',
));
}
// Clear entity info cache.
cache_clear_all('entity_info', 'cache', TRUE);
}