You are here

public function CleantalkCheckUsersForm::buildForm in Anti Spam by CleanTalk 8.3

Same name and namespace in other branches
  1. 8.4 src/Form/CleantalkCheckUsersForm.php \Drupal\cleantalk\Form\CleantalkCheckUsersForm::buildForm()
  2. 9.1.x src/Form/CleantalkCheckUsersForm.php \Drupal\cleantalk\Form\CleantalkCheckUsersForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides FormInterface::buildForm

File

src/Form/CleantalkCheckUsersForm.php, line 43

Class

CleantalkCheckUsersForm

Namespace

Drupal\cleantalk\Form

Code

public function buildForm(array $form, \Drupal\Core\Form\FormStateInterface $form_state) {
  if (!empty(\Drupal::config('cleantalk.settings')
    ->get('cleantalk_authkey'))) {
    $form_state
      ->setStorage(array(
      'spam_users' => $this
        ->cleantalk_find_spammers_users(),
    ));
    if (isset($form_state
      ->getStorage()['spam_users'])) {
      $form['spam_users'] = array(
        '#type' => 'table',
        '#header' => array(
          'Username',
          'E-mail',
          'Status',
          'Registered',
          'Last visit',
          '',
        ),
        '#empty' => $this
          ->t('No users found'),
      );
      $spam_users = $form_state
        ->getStorage()['spam_users'];
      foreach ($spam_users as $user) {

        // Show user name
        $form['spam_users'][$user['id']][0] = array(
          '#type' => 'label',
          '#title' => $user['name'],
        );

        // Show user mail
        $form['spam_users'][$user['id']][1] = array(
          '#type' => 'label',
          '#title' => '<a target="_blank" href = "https://cleantalk.org/blacklists/' . $user['mail'] . '">' . $user['mail'] . '</a>',
        );

        // Show user status
        $form['spam_users'][$user['id']][2] = array(
          '#type' => 'label',
          '#title' => $user['status'],
        );

        // Show user date created
        $form['spam_users'][$user['id']][3] = array(
          '#type' => 'label',
          '#title' => $user['created'],
        );

        // Show user login
        $form['spam_users'][$user['id']][4] = array(
          '#type' => 'label',
          '#title' => $user['login'],
        );

        // Show button for each user
        $form['spam_users'][$user['id']]['removememberbutton']['dummyNode'] = array(
          '#type' => 'submit',
          '#value' => 'Remove',
          '#name' => 'remove_' . $user['id'],
          '#submit' => array(
            '::cleantalk_remove_user',
          ),
        );
      }
      $data = array();
      foreach ($spam_users as $user) {
        array_push($data, $user['id']);
      }
      $form['delete_all_spammers_users'] = array(
        '#type' => 'submit',
        '#value' => $this
          ->t('Delete all'),
        '#name' => 'delete_all_' . implode('_', $data),
        '#submit' => array(
          '::cleantalk_delete_all_spammers_users',
        ),
      );
    }
  }
  else {
    $this
      ->messenger()
      ->addError('Access key is not valid.');
  }
  return $form;
}