Wie kann das seitenweite Kontaktformular (Feedback) einzeln in einem benutzerdefinierten Block oder einer anderen Seite angezeigt werden, dann / Kontakt (z. B. Startseite)?
Ich habe diesen Code ausprobiert, aber er funktioniert nicht (sind Kontaktformulare Entitäten?):
// 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
wird zugunsten vonentityTypeManager
( API-Dokumenten )Antworten:
Das Kontaktformular ist eine Entität, die Sie jedoch nicht anzeigen können.
Stattdessen möchten Sie ein Formular für eine Kontaktnachricht mit contact_form als Bundle hinzufügen.
Siehe
ContactController::contactSitePage()
(EDIT: API-Dokumente ) als Beispiel:BEARBEITEN (danke @nilsun): Beachten Sie, dass entityManager zugunsten von entityTypeManager veraltet ist.
quelle
entityManager
ist zugunsten vonentityTypeManager
( API-Dokumenten ) veraltet und einige Links fehlen hier in der Antwort. In der Antwort heißt es: SieheContactController::contactSitePage()
als Beispiel. Wo ist es? Ist es eine Dokumentseite auf Drupal.org? Ist es eine Funktion im Kern? Wie kann man dies in einer Vorverarbeitungsfunktion implementieren, da die Frage nach .theme war? Ende letzten Jahres haben sich die Dinge geändert, und in den meisten Antworten fehlen Informationen zum endgültigen D8-Kern in Bezug auf solche Fragen.