Как вывести сообщение с условным оператором в drupal 8?

Главные вкладки

Аватар пользователя Сергей_dev Сергей_dev 3 августа 2018 в 12:44

У сайта 2 каталога, каталог продуктов и ингредиентов. У каждого продукта есть состав, в котором выводится несколько ингредиентов. В каждом отдельном ингредиенте задаются параметры(могут быть одновременно заданы): "вредный","аллергенный", "ядовитый".
Исходя из этого, нужно на странице отдельного продукта выводить сообщение(может быть только одно)"безвредный" или "вредный" или "ядовитый".
Если продукт не содержит никаких ингредиентов с параметрами ("вредный","аллергенный", "ядовитый"), то вывести сообщение "безвредный".
Если продукт содержит ингредиенты с параметрами "вредный"или "аллергенный", но не содержит ингредиентов "ядовитый", то вывести сообщение "вредный".
Если продукт в независимости содержит ингредиенты с параметрами "вредный"или "аллергенный", но содержит хотя бы один ингредиент с параметром "ядовитый", то вывести сообщение "ядовитый".

Приоритет:
Безвредный<Вредный<Ядовитый
Безвредный = нету параметров "вредный","аллергенный", "ядовитый"
Вредный = есть хотя бы один из параметров "вредный" или "аллергенный", но нету "ядовитый".
Ядовитый = есть хотя бы один из параметров "ядовитый", несмотря на параметры "вредный","аллергенный".

Только начал знакомство с drupal и не знаю как это реализовать на этом движке. Пожалуйста помогите

Комментарии

Аватар пользователя Orion76 Orion76 4 августа 2018 в 15:28

Наверное, проще будет добавить к продукту поле, значение которого будет устанавливаться автоматически, в зависимости от набора ингридиентов продукта..

Каким "способом" добавить это поле, зависит от того, насколько хорошо Вы дружите с PHP.

вариант 1
Для Drupal 7 для подобных задач есть модуль Computed Field. ( https://www.drupal.org/project/computed_field )
Так же есть версия данного модуля и для Drupal 8, но в документации к модулю нет примеров для Drupal 8.

вариант 2
Если для Вас не проблема написать свой простенький модуль для Drupal 8 , то руководств в сети можно нарыть огромное множество.