Как сделать так, чтобы боковая контактная форма (обратная связь) индивидуально отображалась в пользовательском блоке или другой странице / контакте (например, на первой странице)?
Я пробовал этот код, но он не работает (являются ли контактные формы сущностями?):
// 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
устарела в пользуentityTypeManager
( API docs )Ответы:
Контактная форма - это объект, но вы не можете его просмотреть.
Вместо этого вы хотите добавить форму contact_message с contact_form в виде пакета.
См.
ContactController::contactSitePage()
(РЕДАКТИРОВАТЬ: API документы ) в качестве примера:РЕДАКТИРОВАТЬ (спасибо @nilsun): Обратите внимание, что entityManager устарела в пользу entityTypeManager.
источник
entityManager
устарела в пользуentityTypeManager
( API docs ) и некоторые ссылки здесь отсутствуют в ответе. В ответе говорится: см.ContactController::contactSitePage()
Пример. Где это находится? Это страница документации на Drupal.org? Это функция в ядре? Как реализовать это в функции предварительной обработки, так как вопрос был о .theme? Ситуация изменилась в конце прошлого года, и в большинстве ответов отсутствует информация об окончательном ядре D8, касающаяся таких вопросов.