Кастомные переменные в Drupal 8

Кастомные (в пользовательском контексте) переменные в Drupal 8 могут применяться для хранения и представления исходных (вводных) данных проекта, в состав которых входят наименование проекта, наименование продукта проекта, даты инициации и завершения проекта, заказчик, руководитель, куратор, все заинтересованные стороны, все участники проекта и многое-многое другое, в том числе параметры ссылок на внешние системы управления проектами (вроде Jira или Redmine).

Переменные могут существенно изменяться от проекта проекту, а могут и несущественно. Но в любом случае имеет смысл где-то их определить, зафиксировать документально и сохранить, а по мере необходимости вытаскивать на свет Божий и многократно повторно использовать в проектных документах. Все то же относится и к токенам. Редакция от 17.11.2021.

Создан 26.03.2021 10:33:06

- Кастомные переменные в Drupal 8

Кастомные переменные в Drupal 8 принято создавать и хранить (вроде как) в файлах с расширением .theme текущей темы оформления сайта или даже целого портала. Во всяком случае, можно принять это во внимание и использовать как один из честных вариантов, поскольку файл с указанным расширением действительно хранит шаблоны всевозможных функций препроцессинга, см. рисунок ниже.

- Функции препроцессинга

Требуется всего лишь наполнить «заготовки» функций некоторым программным кодом php, создать с его помощью переменные, которые затем будут подхватывать и внедрять в HTML-коды страницы соответствующие твиги (twigs).

Проектов (хороших и разных) может быть много. Каждый из них идентифицируется собственным уникальным идентификатором-префиксом, например 12345, 67890 и т.д. Префикс «имеет место быть» в каждом псевдониме каждого материала проекта. И в зависимости от префикса в материал (или страницу) проекта «выбрасываются» соответствующие ему значения переменных через твиги.

Действия:

  • получаем псевдоним материала методом \Drupal::request()->getPathInfo() или ему подобным, вариантов хватает;
  • «выгрызаем» из псевдонима собственно префикс - все то, что расположено от знака / до знака подчеркивания _ - разделителя. Для этого существует масса функций strpos(), substr() и тому подобных, обеспечивающих возможность синтаксического разбора строки любой сложности;
  • имея на руках значение префикса, проваливаемся в конструкцию switch case, в которой, в зависимости от значения селектора, каждой переменной проекта присваивается значение, соответствующее проекту;
  • затем переменная эта вызывается в необходимом месте в twig с помощью двойных кавычек { переменная }.

Вот так. Осталось сообразить, как поизящнее заставить эти переменные быть представленными еще и в виде пользовательских токенов.

Засим у нас все, автору не болеть (даже с похмелья) и не лениться писать больше и чаще. Сеять разумное, доброе, вечное вопреки проискам вражеского уандеха с его новой системой ранжирования.