Коллеги, поделитесь опытом: кто как хранит данные, такие, как телефон, адрес и т.д.
Заводите отдельную страничку с этими конфигами, используете кастомные блоки, пользуетесь доп. модулями?
D8
В семерке лучшим решением считалось использование Variable API.
В восьмерке я бы написал маленький кастомный модуль с формой для ввода этих данных. Форма сохраняет данные в виде конфигов -> использовать потом можно везде
Андрей, спасибо за обратную связь!
Для 8 сейчас я сам использую https://www.drupal.org/project/config_pages заменяет кастомное решение, которое ты предлагаешь, плюс есть ещё и возможность указание контектста, например, для domain_access.
Как-то видел, что кто-то говорил, что это излишнее и советовал использовать для этого пользовательские блоки, например, завести тип блока, config_block и создавать блоки, например, телефон, адрес и т.д. Как считаешь, нормальное решение или есть какие-то подводные камни?
С блоками тут может быть засада, что телефон редактируется в одном блоке, а адрес в другом - это неудобно, а в списке блоков может быть много и искать неудобно. Но в целом терпимо.
Config Pages позволяет создавать сущности, у которых в каждом типа может быть только один экземпляр. Плюс появляются блоки, отображающие эти сущности в нужных режимах отображения.
Применительно к задаче пример:
- создаём конфиг пэйдж "Данные компании"
- создаём поля: телефоны, емэйл, ссылки на соцсети, адрес, реквизиты и т.д.
- создаём и конфигурируем вью-моды, например "Телефоны и емэйлы", "Реквизиты"
- раскидываем блоки, куда надо: надо в хэдер телефоны - на странице схемы блоков: Добавить блок - Config Pages - выбираем наш конфиг пэйдж и указываем вью-мод. Надо телефоны в футер - не беда, добавляем в футер.
Можно также через панели, лэйаут билдер или ещё как-то собрать страницу "Контакты" с блоками конфиг пэйджей.
Итог - поменяли телефон в одном месте - он поменялся везде.
Комментарии
В семерке лучшим решением считалось использование Variable API.
В восьмерке я бы написал маленький кастомный модуль с формой для ввода этих данных. Форма сохраняет данные в виде конфигов -> использовать потом можно везде
Андрей, спасибо за обратную связь!
Для 8 сейчас я сам использую https://www.drupal.org/project/config_pages заменяет кастомное решение, которое ты предлагаешь, плюс есть ещё и возможность указание контектста, например, для domain_access.
Как-то видел, что кто-то говорил, что это излишнее и советовал использовать для этого пользовательские блоки, например, завести тип блока, config_block и создавать блоки, например, телефон, адрес и т.д. Как считаешь, нормальное решение или есть какие-то подводные камни?
config_pages выглядит любопытно. Посмотрю его на досуге.
С блоками тут может быть засада, что телефон редактируется в одном блоке, а адрес в другом - это неудобно, а в списке блоков может быть много и искать неудобно. Но в целом терпимо.
Config Pages позволяет создавать сущности, у которых в каждом типа может быть только один экземпляр. Плюс появляются блоки, отображающие эти сущности в нужных режимах отображения.
Применительно к задаче пример:
- создаём конфиг пэйдж "Данные компании"
- создаём поля: телефоны, емэйл, ссылки на соцсети, адрес, реквизиты и т.д.
- создаём и конфигурируем вью-моды, например "Телефоны и емэйлы", "Реквизиты"
- раскидываем блоки, куда надо: надо в хэдер телефоны - на странице схемы блоков: Добавить блок - Config Pages - выбираем наш конфиг пэйдж и указываем вью-мод. Надо телефоны в футер - не беда, добавляем в футер.
Можно также через панели, лэйаут билдер или ещё как-то собрать страницу "Контакты" с блоками конфиг пэйджей.
Итог - поменяли телефон в одном месте - он поменялся везде.
И ни одного миллиметра кастомного кода!
Спасибо всем! Тогда продолжу пока его использовать.
Еще имеется модуль https://www.drupal.org/project/site_settings - там хранимые данные доступны в переменных в twig шаблонах и в токенах (токены с модулем https://www.drupal.org/project/token_filter позволяют выводить нужные данные в контенте).