Всем привет.
Мне нужно отдавать страницу в стороннее моб.приложение. Т.е. кроме обычного отображения страницы, для посетителей, нужно ещё отображение, где будет только контент без заголовка, футера и т.п. (аналог iframe)
Например, по адресу site.com/catalog/tovar1 - нормальное отображение, а site.com/catalog/tovar1/teaser - только контент.
Подскажите, как это можно сделать. Спасибо!
Комментарии
https://www.drupal.org/project/view_mode_page
Спасибо!
То, что делает этот модуль у меня получилось сделать вьюсом с путём catalog/%/teaser. выводится нужный контент.
Не понимаю как задать шаблон страницы для такого вьюса, где путь динамический. Чтобы выкинуть хедер и футер.
views назыается hteaser.
page--hteaser.html.twig не прокатывает. Путь жёстко не задать.... ((((
Есть два пути: как умею я и правильный
Как умею я: на /admin/structure/block сделать все ненужные блоки невидимыми на страницах с шаблоном catalog/*/teaser.
Правильный: через Layout Builder, но я им не владею.
Спасибо. Попробую, но похоже придётся в программировании разбираться. У меня в шаблоне ещё много всего зашито что менять/удалять нужно(фоновое видео, вёрстка, соц.сети, аналитика). Одних блоков мало.
В Вашем случае можно использовать Context. У Вас же разные URL?
Спасибо. Да. Урлы разные. Вьюс один, но для каждого товара генерится свой урл. В этом главная проблема. Сейчас гляну.
ЗАРАБОТАЛО!!!:
<?php
function THEME_suggestions_page_alter(array &$suggestions, array $variables) {
if (
$node = \Drupal::routeMatch()->getParameter('node')) {$content_type = $node->bundle();
$suggestions[] = 'page__'.$content_type;
/******teaser*****/
$current_path = Drupal::service('path.current')->getPath();
if (strpos($current_path , 'teaser') !== false) {
$suggestions[] = 'page__teaser';
}
}
}?>
шаблон page--teaser.html.twig
P.S. со вьюсом не совсем получилось контекстный фильтр настроить. Сделал вывод тизера через https://www.drupal.org/project/view_mode_page