Comment obtenir le formulaire de contact latéral (feedback) individuellement affiché dans un bloc personnalisé ou une autre page puis / contact (par exemple, la page d'accueil)?
J'ai essayé ce code, mais il ne fonctionne pas (les formulaires de contact sont-ils des entités?):
// get default form
// get the entity object
$default_form = \Drupal::config('contact.settings')->get('default_form');
$entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form);
// get view builder
// render view
$view_builder = \Drupal::entityManager()->getViewBuilder('contact_form');
$full_output = $view_builder->view($entity);
entityManager
est déconseillé au profit deentityTypeManager
( API docs )Réponses:
Le formulaire de contact est une entité, mais vous ne pouvez pas le voir.
Ce que vous voulez à la place, c'est un formulaire d'ajout d'un contact_message avec contact_form comme bundle.
Voir
ContactController::contactSitePage()
(EDIT: API docs ) comme exemple:EDIT (merci @nilsun): Notez que entityManager est déconseillé au profit de entityTypeManager.
la source
entityManager
est déconseillé en faveur deentityTypeManager
( documentation API ) et certains liens manquent ici dans la réponse. Dans la réponse, il déclare: VoirContactController::contactSitePage()
comme exemple. Où est-ce? Est-ce une page doc sur Drupal.org? Est-ce une fonction de base? Comment implémenter cela dans une fonction de prétraitement puisque la question portait sur .theme? Les choses ont changé à la fin de l'année dernière et il y a des informations manquantes sur le noyau D8 final concernant ces questions dans la plupart des réponses.