Как реализовать выбор цвета термина таксономии в режиме создания/редактирования типа материала?

Аватар пользователя Joseph Joseph 14 февраля в 23:17

Есть тип материала "Новость". Нужно чтобы контент менеджер мог выбирать цвет у конкретной категории новости в режиме создания/редактирования новости, выбрав нужный чекбокс с цветом или выбрав нужный цвет в dropdown списке и соответственно с таким цветом категория отображалась на странице. Как это можно реализовать?
Буду очень благодарен за ссылку на какую-нибудь статью или видео где что-то такое реализовано.

Лучший ответ

Аватар пользователя madt madt 14 февраля в 23:30
1

Вопросы:

  1. Какая версия Drupal?
  2. Варианты цвета фиксированные или должна быть возможность выбрать любой цвет?
  3. Цвет категории задается для каждой ноды отдельно или конкретная категория в разных нодах всегда определенного цвета?

--

Думаю что-то из этого попробовать:

1. Создаем словарь для цветов. Добавляем термины с названиями цветов. Добавляем в ноду поле для выбора термина из словаря с цветами. В шаблонах назначаем класс с названием выбранного термина (цвета). В css прописываем каким цветом красить текст с определенным классом.

2. Добавляем в ноду поле для выбора цвета. В шаблонах для категории прописываем в инлайн-стиле значение выбранного цвета.

3. В словарь с категориями добавляем поле для выбора цвета (как в варианте 1 или 2). Настраиваем цвета для категорий. Затем для категорий назначаем цвет как в варианте 1 или 2.

Комментарии

Аватар пользователя madt madt 14 февраля в 23:30
1

Вопросы:

  1. Какая версия Drupal?
  2. Варианты цвета фиксированные или должна быть возможность выбрать любой цвет?
  3. Цвет категории задается для каждой ноды отдельно или конкретная категория в разных нодах всегда определенного цвета?

--

Думаю что-то из этого попробовать:

1. Создаем словарь для цветов. Добавляем термины с названиями цветов. Добавляем в ноду поле для выбора термина из словаря с цветами. В шаблонах назначаем класс с названием выбранного термина (цвета). В css прописываем каким цветом красить текст с определенным классом.

2. Добавляем в ноду поле для выбора цвета. В шаблонах для категории прописываем в инлайн-стиле значение выбранного цвета.

3. В словарь с категориями добавляем поле для выбора цвета (как в варианте 1 или 2). Настраиваем цвета для категорий. Затем для категорий назначаем цвет как в варианте 1 или 2.

Аватар пользователя Joseph Joseph 14 февраля в 23:47

1. 9
Второй и третий вопрос нужно будет мне уточнить завтра. Но думаю что:
2. Должно быть около 10-15 цветов.
3. Конкретная категория в разных нодах всегда определенного цвета.

Аватар пользователя madt madt 15 февраля в 0:16
1

Пример реализации в шаблоне представления views-view-unformatted.html.twig для фиксированной палитры, значения цветов которой заданы в css/scss. Названия цветов — термины на английском языке. Можно сделать названия и по-русски, что может потребовать дополнительные усилия.

{% if title %}
  <h3>{{ title }}</h3>
{% endif %}
{% for row in rows %}
  {% set color_theme = row.content['#row']._entity.field_color_theme.value %}
  {% set color_theme_name = color_theme ? 'color-theme--' ~ row.content['#row']._entity.field_color_theme.entity.name.value|lower %}

  {%
    set row_classes = [
      'portfolio-card',
      color_theme_name
    ]
  %}
  <article{{ row.attributes.addClass(row_classes) }}>
    {{- row.content -}}
  </article>
{% endfor %}

Аватар пользователя Joseph Joseph 15 февраля в 0:01

Добавляем в ноду поле для выбора термина из словаря с цветами.

А какой тип поля нужно выбрать? Reference: Taxonomy term?

В шаблонах назначаем класс с названием выбранного термина (цвета).

В шаблонах чего? В шаблоне моего Content type? Или в каких шаблонах?

Аватар пользователя madt madt 15 февраля в 0:07

Да, поле вида «Reference: Taxonomy term».

В шаблоне, где можно/нужно будет вписать логику назначения цвета категории. Может, шаблон content type, может шаблон поля.