Кастомные (в пользовательском контексте) переменные в Drupal 8 могут применяться для хранения и представления исходных (вводных) данных проекта, в состав которых входят наименование проекта, наименование продукта проекта, даты инициации и завершения проекта, заказчик, руководитель, куратор, все заинтересованные стороны, все участники проекта и многое–многое другое, в том числе параметры ссылок на внешние системы управления проектами (вроде Jira или Redmine).
Переменные могут существенно изменяться от проекта проекту, а могут и несущественно. Но в любом случае имеет смысл где–то их определить, зафиксировать документально и сохранить, а по мере необходимости вытаскивать на свет Божий и многократно повторно использовать в проектных документах. Все то же относится и к токенам. Редакция от 09.11.2024.
Создан 26.03.2021 10:33:06
Кастомные переменные в Drupal 8 принято создавать и хранить (вроде как) в файлах с расширением .theme текущей темы оформления сайта или даже целого портала. Во всяком случае, можно принять это во внимание и использовать как один из честных вариантов, поскольку файл с указанным расширением действительно хранит шаблоны всевозможных функций препроцессинга, см. рисунок ниже.
Требуется всего лишь наполнить «заготовки» функций некоторым программным кодом php, создать с его помощью переменные, которые затем будут подхватывать и внедрять в HTML–коды страницы соответствующие твиги (twigs).
Проектов (хороших и разных) может быть много. Каждый из них идентифицируется собственным уникальным идентификатором–префиксом, например 12345, 67890 и т.д. Префикс «имеет место быть» в каждом псевдониме каждого материала проекта. И в зависимости от префикса в материал (или страницу) проекта «выбрасываются» соответствующие ему значения переменных через твиги.
Действия:
- получаем псевдоним материала методом \Drupal::request()–>getPathInfo() или ему подобным, вариантов хватает;
- «выгрызаем» из псевдонима собственно префикс — все то, что расположено от знака / до знака подчеркивания _ — разделителя. Для этого существует масса функций strpos(), substr() и тому подобных, обеспечивающих возможность синтаксического разбора строки любой сложности;
- имея на руках значение префикса, проваливаемся в конструкцию switch case, в которой, в зависимости от значения селектора, каждой переменной проекта присваивается значение, соответствующее проекту;
- затем переменная эта вызывается в необходимом месте в twig с помощью двойных кавычек { переменная }.
Вот так. Осталось сообразить, как поизящнее заставить эти переменные быть представленными еще и в виде пользовательских токенов.
Засим у нас все, автору не болеть (даже с похмелья) и не лениться писать больше и чаще. Сеять разумное, доброе, вечное вопреки проискам вражеского уандеха с его новой системой ранжирования.