logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Travail avec les formulaires de configuration

05/07/2025, by Ivan

Utiliser $config dans le contexte d’un formulaire

Vous pouvez utiliser les formulaires de configuration pour comprendre comment $config peut récupérer les données saisies par l’utilisateur et modifier les données dans le fichier {module}.settings.yml. Voici le code pour déclarer l’objet $config dans un formulaire, que vous trouverez dans le fichier PHP du formulaire de configuration.

La classe Core ConfigFactory de Drupal est une manière de lire et écrire des données de configuration, elle est utilisée pour créer une instance de l’objet Config basée sur le contenu du fichier de configuration spécifié. Ce nouvel objet Config peut ensuite être utilisé pour effectuer des opérations CRUD sur ces données.

Config

Exemple de définition de formulaire (situé dans example/src/Form/exampleSettingsForm.php) :

namespace Drupal\example\Form;

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

/**
 * Configure les paramètres de example pour ce site.
 */
class ExampleSettingsForm extends ConfigFormBase {

  /** 
   * Paramètres de configuration.
   *
   * @var string
   */
  const SETTINGS = 'example.settings';

  /** 
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'example_admin_settings';
  }

  /** 
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      static::SETTINGS,
    ];
  }

  /** 
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config(static::SETTINGS);

    $form['example_thing'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Things'),
      '#default_value' => $config->get('example_thing'),
    ];  

    $form['other_things'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Other things'),
      '#default_value' => $config->get('other_things'),
    ];  

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

  /** 
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    // Récupérer la configuration.
    $this->configFactory->getEditable(static::SETTINGS)
      // Définir le paramètre de configuration soumis.
      ->set('example_thing', $form_state->getValue('example_thing'))
      // Vous pouvez définir plusieurs configurations en appelant
      // plusieurs fois set().
      ->set('other_things', $form_state->getValue('other_things'))
      ->save();

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

}

Fichier de routage (example.routing.yml) :

example.settings:
  path: '/admin/config/example/settings'
  defaults:
    _form: '\Drupal\example\Form\ExampleSettingsForm'
    _title: 'example'
  requirements:
    _permission: 'administer site configuration'

En utilisant l’objet Config, vous pouvez simplifier le stockage des données collectées via le formulaire. Avec le code ci-dessus dans le fichier du formulaire de configuration, vous pourrez stocker les données du formulaire dans {module}.settings.yml.

Toute classe qui étend ConfigFormBase doit implémenter la méthode getEditableConfigNames et retourner un tableau des noms de configurations qu’elle modifie.