Comment obtenir le formulaire de contact latéral (commentaires) affiché individuellement 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);
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:
$message = \Drupal::entityTypeManager()
->getStorage('contact_message')
->create(array(
'contact_form' => $contact_form->id(),
));
// This works in a controller, use \Drupal::service('entity.form_builder') elsewhere.
$form = $this->entityFormBuilder()->getForm($message);
$form['#title'] = SafeMarkup::checkPlain($contact_form->label());
EDIT (merci @nilsun): Notez que entityManager est déconseillé au profit de entityTypeManager.