ai_accessibility-1.0.2/src/Form/AdminSettingsForm.php

src/Form/AdminSettingsForm.php
<?php
namespace Drupal\ai_accessibility\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

class AdminSettingsForm extends ConfigFormBase {
  public function getFormId() {
    return 'ai_accessibility_settings';
  }

  protected function getEditableConfigNames() {
    return ['ai_accessibility.settings'];
  }

  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config('ai_accessibility.settings');

    $form['provider'] = [
      '#type' => 'select',
      '#title' => $this->t('AI Provider'),
      '#options' => [
        'mock' => $this->t('Mock (no external API)'),
        'openai' => $this->t('OpenAI'),
      ],
      '#default_value' => $config->get('provider') ?: 'mock',
    ];

    $form['language'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Default language'),
      '#default_value' => $config->get('language') ?: 'es',
    ];

    $form['api_key'] = [
      '#type' => 'textfield',
      '#title' => $this->t('AI API Key'),
      '#description' => $this->t('Clave para proveedor AI (p.ej. OpenAI). Guardar de forma segura. For testing you can leave empty to use mock.'),
      '#default_value' => $config->get('api_key') ?: '',
    ];

    return parent::buildForm($form, $form_state) + $form;
  }

  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->config('ai_accessibility.settings')
  ->set('provider', $form_state->getValue('provider'))
  ->set('language', $form_state->getValue('language'))
  ->set('api_key', $form_state->getValue('api_key'))
  ->save();

    parent::submitForm($form, $form_state);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc