You are here

function comment_ajax_pager_form_alter in Comments ajax pager 8

Implements hook_form_alter().

File

./comment_ajax_pager.module, line 41

Code

function comment_ajax_pager_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  switch ($form_id) {
    case 'field_config_edit_form':
      if (!empty($form['settings']['per_page'])) {
        $entity = $form['#entity'];
        $entityTypeId = $entity
          ->getEntityTypeId();
        $bundle = $entity
          ->bundle();
        $field_name = $form['default_value']['widget']['#field_name'];
        $form['settings']['load_more'] = [
          '#type' => 'details',
          '#title' => 'Load more',
        ];
        $form['settings']['load_more']['on'] = [
          '#type' => 'checkbox',
          '#title' => 'Load more',
          '#default_value' => \Drupal::config('comment_ajax_pager.settings')
            ->get('settings.' . $entityTypeId . '.' . $bundle . '.' . $field_name . '.on'),
        ];
        $form['settings']['load_more']['text'] = [
          '#type' => 'textfield',
          '#field_prefix' => 't(',
          '#field_suffix' => ')',
          '#states' => [
            'visible' => [
              'input[name="settings[load_more][on]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
          '#description' => '@per_page@ - ' . $form['settings']['per_page']['#title'],
          '#default_value' => \Drupal::config('comment_ajax_pager.settings')
            ->get('settings.' . $entityTypeId . '.' . $bundle . '.' . $field_name . '.text'),
        ];
        $form['actions']['submit']['#submit'][] = 'comment_ajax_pager_settings_submit';
      }
      break;
  }
}