function fb_instant_articles_display_field_ui_fields 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_fields()
Adds the fields to the Field UI form.
Parameters
string $entity_type: The name of the entity type.
string $bundle: The name of the bundle.
string $view_mode: The name of the view_mode.
array $form: A collection of form properties.
array $form_state: A collection of form_state properties.
1 call to fb_instant_articles_display_field_ui_fields()
- 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 281 - View mode layout functions for Facebook Instant Articles Display.
Code
function fb_instant_articles_display_field_ui_fields($entity_type, $bundle, $view_mode, array &$form, array &$form_state) {
// Do not add the fields if there is no layout.
if (!isset($form['#fbia_layout'])) {
return;
}
// Get the fields and put them on the form.
$fields = fb_instant_articles_display_get_fields($entity_type, FALSE);
// Get field settings.
$field_settings = fb_instant_articles_display_get_field_settings($entity_type, $bundle, $view_mode, FALSE);
$form['#field_settings'] = $field_settings;
$table =& $form['fields'];
$form['#fbia_fields'] = array();
$field_label_options = array(
'above' => t('Above'),
'inline' => t('Inline'),
'hidden' => t('<Hidden>'),
);
drupal_alter('fb_instant_articles_display_label_options', $field_label_options);
foreach ($fields as $key => $field) {
$form['#fbia_fields'][] = $key;
// Check on formatter settings.
if (isset($form_state['formatter_settings'][$key])) {
$field['formatter_settings'] = $form_state['formatter_settings'][$key];
}
elseif (isset($field_settings[$key]['formatter_settings'])) {
$field['formatter_settings'] = $field_settings[$key]['formatter_settings'];
$form_state['formatter_settings'][$key] = $field['formatter_settings'];
}
if (!isset($field_settings[$key]['ft']) && isset($field_settings[$key]['ft'])) {
$form_state['formatter_settings'][$key]['ft'] = $field_settings[$key]['ft'];
}
$hidden = array(
'hidden' => t('<Hidden>'),
);
$formatters = isset($field['properties']['formatters']) ? $hidden + $field['properties']['formatters'] : $hidden + array(
'default' => t('Default'),
);
$table[$key] = array(
'#row_type' => 'field',
'#js_settings' => array(
'field',
),
'#region_callback' => 'field_ui_display_overview_row_region',
'#attributes' => array(
'class' => array(
'draggable',
'tabledrag-leaf',
),
),
'human_name' => array(
'#markup' => check_plain($field['title']),
),
'weight' => array(
'#type' => 'textfield',
'#default_value' => isset($field_settings[$key]['weight']) ? $field_settings[$key]['weight'] : 0,
'#size' => 3,
'#attributes' => array(
'class' => array(
'field-weight',
),
),
),
'parent_wrapper' => array(
'parent' => array(
'#type' => 'select',
'#empty_value' => '',
'#options' => array(),
'#attributes' => array(
'class' => array(
'field-parent',
),
),
'#parents' => array(
'fields',
$key,
'parent',
),
),
'hidden_name' => array(
'#type' => 'hidden',
'#default_value' => $key,
'#attributes' => array(
'class' => array(
'field-name',
),
),
),
),
'label' => array(
'#type' => 'select',
'#options' => $field_label_options,
'#default_value' => isset($field_settings[$key]['label']) ? $field_settings[$key]['label'] : 'hidden',
),
'format' => array(
'type' => array(
'#type' => 'select',
'#options' => $formatters,
'#default_value' => isset($field_settings[$key]['format']) ? $field_settings[$key]['format'] : 'hidden',
'#attributes' => array(
'class' => array(
'field-formatter-type',
),
),
),
),
'settings_summary' => array(),
'settings_edit' => array(),
);
$field['name'] = $key;
$field['entity_type'] = $entity_type;
$field['bundle'] = $bundle;
$field['view_mode'] = $view_mode;
}
// Add fields submit handler.
$form['#submit'][] = 'fb_instant_articles_display_field_ui_fields_save';
}