You are here

function recipe_form_node_type_edit_form_alter in Recipe 8.2

Implements hook_form_BASE_FORM_ID_alter() for 'node_type_edit_form'.

Adds recipe options to the node type form.

See also

NodeTypeForm::form()

recipe_form_node_type_form_builder()

File

./recipe.module, line 60
Contains functions for Recipe node CRUD and display.

Code

function recipe_form_node_type_edit_form_alter(&$form, FormStateInterface $form_state) {
  $node_type = $form_state
    ->getFormObject()
    ->getEntity();
  if ($node_type
    ->id() != 'recipe') {
    return;
  }
  $form['recipe'] = [
    '#type' => 'details',
    '#title' => t('Recipe settings'),
    '#group' => 'additional_settings',
  ];

  // Create form elements for configuring the Total time pseudo-field.
  $form['recipe']['total_time'] = [
    '#type' => 'fieldset',
    '#title' => t('Total time pseudo-field'),
  ];
  $form['recipe']['total_time']['recipe_total_time_label'] = [
    '#type' => 'textfield',
    '#title' => t('Label'),
    '#default_value' => $node_type
      ->getThirdPartySetting('recipe', 'total_time_label', 'Total time'),
    '#size' => 20,
  ];
  $form['recipe']['total_time']['recipe_total_time_label_display'] = [
    '#type' => 'select',
    '#title' => t('Label display'),
    '#options' => [
      'above' => t('Above'),
      'inline' => t('Inline'),
      'hidden' => '- ' . t('Hidden') . ' -',
      'visually_hidden' => '- ' . t('Visually Hidden') . ' -',
    ],
    '#default_value' => $node_type
      ->getThirdPartySetting('recipe', 'total_time_label_display', 'above'),
  ];

  // Create form elements for configuring the Yield pseudo-field.
  $form['recipe']['yield'] = [
    '#type' => 'fieldset',
    '#title' => t('Yield pseudo-field'),
  ];
  $form['recipe']['yield']['recipe_yield_label'] = [
    '#type' => 'textfield',
    '#title' => t('Label'),
    '#default_value' => $node_type
      ->getThirdPartySetting('recipe', 'yield_label', 'Yield'),
    '#size' => 20,
  ];
  $form['recipe']['yield']['recipe_yield_label_display'] = [
    '#type' => 'select',
    '#title' => t('Label display'),
    '#options' => [
      'above' => t('Above'),
      'inline' => t('Inline'),
      'hidden' => '- ' . t('Hidden') . ' -',
      'visually_hidden' => '- ' . t('Visually Hidden') . ' -',
    ],
    '#default_value' => $node_type
      ->getThirdPartySetting('recipe', 'yield_label_display', 'above'),
  ];
  $form['#entity_builders'][] = 'recipe_form_node_type_form_builder';
}