You are here

public function ParagraphsGridConfigForm::buildForm in Paragraphs grid 8

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

Overrides ConfigFormBase::buildForm

File

src/Form/ParagraphsGridConfigForm.php, line 121

Class

ParagraphsGridConfigForm
Class ParagraphsGridConfigForm.

Namespace

Drupal\paragraphs_grid\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $field_map = $this->entityFieldManager
    ->getFieldMapByFieldType('grid_field_type');
  if (count($field_map) && in_array('administrator', $this
    ->currentUser()
    ->getRoles())) {
    $this
      ->messenger()
      ->addWarning('Grid classes of current type are already in use. Data will be lost if you change the grid type.');
    $disable_grid_type = FALSE;
  }
  elseif (count($field_map)) {
    $disable_grid_type = TRUE;
  }
  else {
    $disable_grid_type = FALSE;
  }
  $config = $this
    ->config('paragraphs_grid.settings');
  $form['gridtype'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Grid type'),
    '#description' => $this
      ->t('Select the grid type you want to use. If you do not find your grid, you can create your own. Follow instructions on http://drupal.org/project/paragraphs_grid.'),
    '#options' => $this
      ->getGridTypeOptions(),
    '#default_value' => $config
      ->get('gridtype'),
    '#disabled' => $disable_grid_type,
  ];
  $use_css = $this
    ->t('Use CSS delivered from Paragraphs Grid');
  $form['uselibrary'] = [
    '#type' => 'checkbox',
    '#title' => $use_css,
    '#description' => $this
      ->t('Disable this checkbox, if your theme already includes the grid css and javascript.'),
    '#default_value' => $config
      ->get('uselibrary'),
  ];
  $form['use_lib_admin_pages'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Load grid-CSS even on administration pages.'),
    '#description' => $this
      ->t('Enable if grids are displayed on admin pages. Has no effect if the Option "%above" is disabled', [
      '%above' => $use_css,
    ]),
    '#default_value' => $config
      ->get('use_lib_admin_pages'),
  ];
  return parent::buildForm($form, $form_state);
}