Не могу найти нужных доков.
Задача:
Нужна страница со сферической вакуумной формой-фильтром и таким же сферическим списком списком результатов. Блок с результатами должен аяксом обновляться при сабмите этой самой формы.
Как я вижу решение:
- Создать модуль с контроллером
- Прописать роуты или роут(если в методе сделать проверку, что реквест пришёл через аякс)
- Создать 2 шаблона:
- Шаблон для списка результатов
- Шаблон для всего контента(форма + инклуд первого шаблона)
- Написать js, который будет обрабатывать сабмит формы, аяксом слать запросы на нужный роут и возвращать первый шаблон с результатами
В чём проблема:
Дело в том, что рендерится вся цепочка шаблонов. То есть page.html.twig->my_module_template.html.twig
Собственно вопрос: Как мне избавиться при рендере от этого page.html.twig?
Комментарии
В https://www.drupal.org/project/examples для 8-ки находил достаточно сферические вакуумные формы.
Не знал, что восьмерка на питоне. Кто-то бахвалился, что с друпалом уже не работает)
/**
* @file
* Contains \Drupal\demo\Controller\DemoController.
*/
namespace Drupal\demo\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Render\RendererInterface;
use Symfony\Component\HttpFoundation\Response;
/**
* DemoController.
*/
class DemoController extends ControllerBase {
/**
* @var \Drupal\Core\Render\RendererInterface
*/
protected $renderer;
/**
* Class constructor.
*/
public function __construct(RendererInterface $renderer) {
$this->renderer = $renderer;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('renderer')
);
}
/**
* Generates an example page.
*/
public function demo() {
$form = [
'#theme' => 'myform',
];
$rendered_form = $this->renderer->render($form);
$response = new Response($rendered_form);
return $response;
}
}
импорт ContainerInterface не пропускает фильтр матерных слов - конструкцию use для ContainerInterface я думаю сами допишите
Далее собственно реализуем hook_theme для myform и соответственно шаблон myform.html.twig, роут тоже я думаю создадите