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.
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.
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