Добавить контент к страницам сайта Д8

Аватар пользователя vMorkova vMorkova 20 сентября в 18:36

Здравствуйте.

У меня сайт на Д8, содержащий разного рода страницы: ноды, вьюхи, страницы, созданные модулями. Сео специалист дал задание добавить к страницам статьи, мета тэги, поменять заголовки.

Например, есть страница, отображающая вьюху. Под ней должна быть статья (нода, нарпимер). Мета тэги тоже должны быть поменяны.

Я вижу решение как размещение блоков на нужных страницах, но это не очень удобно т.к. блок не содержит полей вроде изображений и не сможет переопределить метатэги. Можно в блок разместить ноду при помощи модуля но метатэги не заменить тоже.

Смотрел Panels, Layouts и т.д. Похоже, они не подходят для данной задачи т.к. нужно добавлять контент на страницы с вьюхами и созданные модулями.

Есть ли решение без написания кода?

Комментарии

Аватар пользователя VasyOK VasyOK 20 сентября в 18:46

Скорей всего есть. Вот только задачу более конкретно опишите. Со скринами ссылками и т.д. Надеюсь что вы сделали бекап БД, если сайт не ваш.

Аватар пользователя vMorkova vMorkova 20 сентября в 20:54

Скинов нет т.к. это еще не реализовано а только в виде задачи от Сео специалиста текстом.

Задача следующая:
-На первую страницу вьюхи снизу добавить Сео статью (текст, изображения и т.д.) + метатэги
-На станицу, созданную модулем, также добавить снизу статью + метатэги. Модуль можно менять но хотелось бы какое-нибудь решение средствами Drupal для обеих кейсов без костылей.

Как пример: https://posterhd.ru/catalog/abstrakcii/1 - каталог товаров (у нас это вьюха и страницы, созданные модулем) а внизу статья.

Аватар пользователя VasyOK VasyOK 20 сентября в 21:05

Модуль https://www.drupal.org/project/metatag поставлен?

Первую страницу вьюхи показывайте.
Если это страница термина создайте представление блок выводящее термины таксономии с аргументом ID термина значение по умолчанию - ID термина со страницы. Есдинственное поле - Описание термина (ваш сео текст). Или другое поле под этот текст на термине создайте. Вывод блока только на первой странице этим модулем: https://www.drupal.org/project/condition_query

"На станицу, созданную модулем" - скорей всего только блоками. Метатеги задайте для синонима урл. Вообще хотелось бы узнать что там за страница такая созданная модулем. И нет ли буквы Г в верхнем левом углу в админке?

Аватар пользователя vMorkova vMorkova 20 сентября в 21:20

metatag стоит.

"Страница такая созданная модулем" - обычные страницы, указанные в .routing.yml и возвращаемые соответствующим контроллером. Модуль наш, мы можем поменять метатэги в нем и добавить отображение статей прямо в модуль но не охота хардкодить это. Наверно, metatag не получится использовать в данном случае.

Админка стандартная, установка minimal

Аватар пользователя gun_dose gun_dose 20 сентября в 22:17

Включите лэйаут билдер. Создайте тип материала, у которого из полей будут только метатеги. Назначьте в настройках отображения использовать лэйаут билдер и поставьте галочку, чтобы для каждой такой ноды можно было делать свой лэйаут. И делайте сколько угодно страниц и собирайте их из блоков с вашими вьюхами и блоками из любых модулей.

Аватар пользователя OldWarrior OldWarrior 25 сентября в 19:25

Самое простое, но, к сожалению, не полностью удовлетворяющее вашим требованиям решение - тупо вбить СЕО-статью в подвал (footer) вьюхи. Подвал (ну, вдруг не знаете) вьюхи - это по сути специальное HTML-поле, выводящее произвольный статический текст ниже вывода самого представления. Правда, и выводит этот текст в неизменном виде на всех страницах представления: от первой до последней.

Мне такое решение раньше встречалось на некоторых сайтах - именно для целей СЕО. А уж с помощью кода ваяли разные динамические функции для содержимого этого поля-подвала. Вплоть до "на каждую страницу view - отдельная статья".

Аватар пользователя vMorkova vMorkova 29 сентября в 19:46

Всем спасибо.

Решили тэги для вьюхи задать через UI вьюхи. Для страниц, созданных модулем, - зашить в модуль.

СЕО статью отображать в виде блока. Чтобы отображалась только на первой странице пришлось использовать модуль request_data_conditions , подробнее https://drupal.stackexchange.com/questions/251970/show-a-block-on-the-fr...