Fermer

juillet 21, 2022

Comment donner une suggestion de brindille pour un formulaire personnalisé dans Drupal 8 et 9


Dans ce tutoriel, nous allons apprendre à donner des suggestions de brindilles à un formulaire personnalisé dans Drupal 8/9

Tout d’abord, nous rendrons l’intégralité du formulaire dans le fichier twig, puis nous rendrons un champ par un dans le fichier twig

Ici nous avons un module ttn_blogs module. Ci-dessous les étapes à suivre :

Étape 1

Créer un fichier de routage dans le module : ttn_blogs.routing.yml

ttn_blogs.add_article :

chemin : ‘/ajout/article

par défaut :

_title : ‘Ajouter un article

_form : ‘\Drupal\ttn_blogs\Form\AddArticleForm’

conditions:

_accès : ‘VRAI’

Étape 2

Créez un formulaire dans le chemin du module \Src\Form\AddArticleForm.php.

espace de noms Drupal\ttn_blogs\Form ;

utilisez Drupal\Core\Form\FormBase ;

utilisez Drupal\Core\Form\FormStateInterface ;

utilisez Drupal\Core\Database\Database ;

utilisez Drupal\Core\Url ;

utilisez Drupal\Core\Routing ;

/**

* Fournit le formulaire pour ajouter un article à partir d’un formulaire personnalisé.

*/

class AddArticleForm étend FormBase {

/**

* {@inheritdoc}

*/

fonction publique getFormId() {

renvoie ‘ttn_blogs_add_article_form’ ;

}

/**

* {@inheritdoc}

*/

public function buildForm(array $form, FormStateInterface $form_state) {

$formulaire[‘title’] = [

      ‘#type’ => ‘textfield’,

      ‘#title’ => $this->t(‘Article Title’),

      ‘#required’ => TRUE,

      ‘#maxlength’ => 20,

      ‘#default_value’ => ”,

    ];

$formulaire[‘body’] = [

      ‘#type’ => ‘textarea’,

      ‘#title’ => $this->t(‘Body’),

      ‘#required’ => TRUE,

       ‘#rows’ => 10,

      ‘#cols’ => 60,

      ‘#resizable’ => TRUE,

    ];

$formulaire[‘submit’] = [

      ‘#type’ => ‘submit’,

      ‘#value’ => $this->t(‘Save’) ,

    ];

$formulaire[‘#theme’] = ‘ttn_blogs_add_article_form’ ;

retourner $form ;

}

/**

* {@inheritdoc}

*/

public function validateForm(array & $form, FormStateInterface $form_state) {

// formez la logique de validation ici

}

/**

* {@inheritdoc}

*/

fonction publique submitForm(array & $form, FormStateInterface $form_state) {

// Ajouter une logique d’article ici

}

}

Vous trouverez ci-dessous la suggestion de brindille pour notre formulaire personnalisé :

$formulaire[‘#theme’] = ‘ttn_blogs_add_article_form’;

Étape 3

Créez la fonction hook_theme et fournissez les détails de votre modèle de formulaire dans votre fichier de module ou votre fichier .theme comme ci-dessous.

/**

* @dossier

* Implémentation de nos crochets.

*/

/**

* Implémente hook_theme().

*/

function ttn_blogs_theme($existing, $type, $theme, $path) {

revenir [

       ‘ttn_blogs_add_article_form’ => [

      ‘render element’ => ‘form’,

    ],

];

}

Ici ‘ttn_blogs_add_article_form’ est le modèle de brindille de formulaire.

Étape 4

Créez un modèle de brindille comme ci-dessous dans le chemin /templates/

Ici, le nom du modèle sera ttn-blogs-add-article-form.html.twig

Le code ci-dessous dans la brindille imprime le formulaire entier dans le modèle de brindille ci-dessus.

{{ formulaire }}

Maintenant, voyez l’itinéraire du formulaire et vous pouvez voir les classes de formulaire personnalisées dans div tout en inspectant cette page

Étape 5

Ici, nous imprimons chaque champ de formulaire dans le modèle de brindille

Alors dans notre ttn-blogs-add-article-form.html.twig dossier,

Donc, finalement, le code dans le modèle de brindille sera comme ci-dessous.

{{ formulaire.titre }}

{{ formulaire.corps }}

{{forme|sans(‘titre’,’corps’)}}

Vous pouvez maintenant voir le formulaire ci-dessus dans votre navigateur, qui est imprimé par le fichier brindille ci-dessus.

TROUVÉ CELA UTILE ? PARTAGEZ-LE




Source link