You are here

public function NodeTypeThumbnailFormHelper::getForm in Acquia Lift Connector 8

Get Form.

Parameters

string $node_type: Node Type.

Return value

array Acquia Lift Thumbnail Form.

File

src/Service/Helper/NodeTypeThumbnailFormHelper.php, line 75
Contains \Drupal\acquia_lift\Service\Helper\NodeTypeThumbnailFormHelper.

Class

NodeTypeThumbnailFormHelper
Defines a form that alters node type form to add a thumbnail form.

Namespace

Drupal\acquia_lift\Service\Helper

Code

public function getForm($node_type) {
  $form = [
    '#title' => t('Acquia Lift'),
    '#type' => 'details',
    '#tree' => TRUE,
    '#group' => 'additional_settings',
  ];

  // Find image fields.
  $this
    ->collectImageFields('node', $node_type);
  if (empty($this->imageFields)) {
    $form['no_image_field'] = [
      '#type' => 'markup',
      '#markup' => '<div>' . t('This content type has no image field yet.') . '</div>',
    ];
    return $form;
  }

  // Find image styles.
  $image_styles = image_style_options(FALSE);
  if (empty($image_styles)) {
    $form['no_image_styles'] = [
      '#type' => 'markup',
      '#markup' => '<div>' . t('This site has no image style yet. Please define an image style first.') . '</div>',
    ];
    return $form;
  }
  $thumbnail_settings = $this->settings
    ->get('thumbnail');
  $node_type_thumbnail_settings = isset($thumbnail_settings[$node_type]) ? $thumbnail_settings[$node_type] : [
    'field' => '',
    'style' => '',
  ];
  $form['field'] = [
    '#type' => 'select',
    '#title' => t('Select preview image to use for content recommendations.'),
    '#options' => $this->imageFields,
    '#default_value' => $node_type_thumbnail_settings['field'],
    '#empty_option' => t('None'),
    '#empty_value' => '',
  ];
  $form['style'] = [
    '#type' => 'select',
    '#title' => t('Select the style to use for the thumbnail.'),
    '#options' => $image_styles,
    '#default_value' => $node_type_thumbnail_settings['style'],
    '#empty_option' => t('None'),
    '#empty_value' => '',
    '#states' => [
      'visible' => [
        ':input[name="acquia_lift[field]"]' => [
          '!value' => '',
        ],
      ],
    ],
  ];
  return $form;
}