You are here

public function SettingsForm::buildForm in CiviCRM Cron 8

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 ConfigFormBase::buildForm

File

src/Form/SettingsForm.php, line 75

Class

SettingsForm
Class SettingsForm.

Namespace

Drupal\civicrm_cron\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $this->civicrm
    ->initialize();
  $config = $this
    ->config('civicrm_cron.settings');
  $key = $config
    ->get('sitekey');

  // If it's still NULL at this point, set to site key constant.
  if ($key == NULL) {
    $key = CIVICRM_SITE_KEY;
    if (empty($form_state
      ->getValue('civicrm_cron_sitekey'))) {
      drupal_set_message($this
        ->t('Save the Configuration to Test CiviCRM Cron'), 'warning');
    }
  }
  $form['sitekey'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Sitekey'),
    '#default_value' => $key,
    '#description' => t('Must match the sitekey found in the civicrm-settings.php file. Leave this field empty to attempt to lookup the current site key.'),
  ];
  $form['advanced'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('CiviMail Settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  ];
  $form['advanced']['help'] = [
    '#type' => 'markup',
    '#markup' => 'A username and password of a Drupal user with the permission to view all contacts,
    access CiviCRM, and access CiviMail is required for CiviMail. Passing the username and password
    is less secure. ONLY configure this if you are using CiviMail.',
  ];
  $form['advanced']['username'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Username'),
    '#default_value' => $config
      ->get('username'),
    '#description' => $this
      ->t('CiviCRM runs cron as a specific user. This user should have MINIMAL permissions since the password will be saved in the database and seen in the logs.'),
  ];
  $form['advanced']['password'] = [
    '#type' => 'password',
    '#title' => $this
      ->t('Password'),
    '#default_value' => $config
      ->get('password'),
    '#description' => $this
      ->t('The password for user defined above. This will appear blank after it is saved.'),
  ];
  return parent::buildForm($form, $form_state);
}