public function ConfigForm::buildForm in GatherContent 8.4
Same name and namespace in other branches
- 8.5 src/Form/ConfigForm.php \Drupal\gathercontent\Form\ConfigForm::buildForm()
- 8 src/Form/ConfigForm.php \Drupal\gathercontent\Form\ConfigForm::buildForm()
- 8.3 src/Form/ConfigForm.php \Drupal\gathercontent\Form\ConfigForm::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 ConfigFormBase::buildForm
File
- src/
Form/ ConfigForm.php, line 55
Class
- ConfigForm
- Class ConfigForm.
Namespace
Drupal\gathercontent\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('gathercontent.settings');
$form['gathercontent_username'] = [
'#type' => 'email',
'#title' => $this
->t('GatherContent User Email Address'),
'#description' => $this
->t('This is the email address you use to login to GatherContent. Your permissions will determine what accounts, projects and content is available.'),
'#default_value' => $config
->get('gathercontent_username'),
'#required' => TRUE,
];
$form['gathercontent_api_key'] = [
'#type' => 'textfield',
'#title' => $this
->t('GatherContent API key'),
'#description' => Link::fromTextAndUrl($this
->t('Click to find out where you can generate your API Key'), Url::fromUri('https://gathercontent.com/developers/authentication/')),
'#maxlength' => 64,
'#size' => 64,
'#default_value' => $config
->get('gathercontent_api_key'),
'#required' => TRUE,
];
$form['actions']['#type'] = 'actions';
if (!$form_state
->isSubmitted()) {
$account = $config
->get('gathercontent_account');
if (!empty($account)) {
$account = unserialize($account);
$account = array_pop($account);
$form['current_account'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $this
->t('Current account is <strong>@account</strong>.', [
'@account' => $account,
]),
];
}
}
if ($form_state
->isSubmitted()) {
/** @var \Cheppers\GatherContent\DataTypes\Account[] $data */
$data = $this->client
->accountsGet();
$accounts = [];
if (!is_null($data)) {
foreach ($data as $account) {
$accounts[$account->id] = $account->name;
}
$form['account'] = [
'#type' => 'select',
'#options' => $accounts,
'#title' => $this
->t('Select GatherContent Account'),
'#required' => TRUE,
'#description' => $this
->t('Multiple accounts will be listed if the GatherContent
user has more than one account. Please select the account you want to
import and update content from.'),
];
}
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => is_null($data) ? $this
->t('Verify') : $this
->t('Save'),
'#button_type' => 'primary',
];
}
else {
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => !empty($account) ? $this
->t('Change GatherContent Account') : $this
->t('Verify'),
'#button_type' => 'primary',
];
}
if (!empty($account)) {
$form['actions']['reset'] = [
'#type' => 'submit',
'#value' => $this
->t('Reset credentials'),
];
}
// By default, render the form using theme_system_config_form().
$form['#theme'] = 'system_config_form';
return $form;
}