Условно отобразить одно из двух полей в Display Suite?

8

Мне интересно, есть ли умный или предпочтительный способ использования Display Suite для отображения одного из двух полей.

Таким образом, мой случай требует либо изображения, если оно загружено, либо EVA (сущность просматривает вложение). У меня они оба отображаются правильно, и, конечно, если изображение не загружено (не заполнено), то поле EVA отображается нормально. Но если изображение загружено, я хочу скрыть поле EVA.

Я думаю, что я мог бы сделать произвольное поле кода, но я хотел бы избежать этого, если есть встроенный метод выбора одного над другим полем. Может быть, что-то с полевыми группами?

Спасибо!

JonMcL
источник

Ответы:

2

Ваша единственная опция - поле с пользовательским кодом. Были попытки сделать условные поля возможными через пользовательский интерфейс, но это было слишком сложно.

Jyve
источник
1
Это, вероятно, было бы хорошим решением, но я бы не назвал это единственным вариантом. Я уверен, что вы также можете скрыть EVA от функции предварительной обработки или даже настроить представление EVA, чтобы оно ничего не возвращало, если изображение присутствует.
Marcvangend
4

Используйте модуль условий форматирования поля: https://www.drupal.org/project/ffc

Это даст вам те же опции, что и у блоков (и более). Таким образом, вы можете отобразить поле на основе любого шаблона URL так же, как и блоки:

http://cl.ly/image/2A2Y373Y3e1J

Надеюсь, это поможет.

джайв
источник
0

Вы можете использовать Entity Display Plugin для Field UI для подобных задач.

Я не пробовал это специально для EVA, но, между прочим, он может встраивать представления.

Интеграция формы детализации в форму пользовательского интерфейса в настоящее время немного неуклюжа, но она работает.

Я рекомендую также включить Cfr Preset .

Приготовление:

  • Включить entdispfieldui
  • При желании включить cfrpreset

На странице «Управление отображением»:

  • Прокрутите вниз, добавьте поле EntDisP.
  • Переместить поле вверх в активный регион.
  • Нажмите «Сохранить» внизу страницы.
  • Отредактируйте конфигурацию для поля EntDisP (нажмите на зубчатое колесо).
  • Выберите «Цепочка ответственности», затем «Поле с форматером» или «Изображение с процессором».
  • Нажмите «Обновить» в форме.
  • Снова нажмите на зубчатое колесо, чтобы снова открыть форму.
  • Выберите «Отображение просмотров ..» для «Новый элемент». Выберите вид дисплея ID.
  • Нажмите «Обновить» в форме.
  • Нажмите «Сохранить» внизу страницы.

Это должно работать сейчас, но иметь эту конфигурацию в конфигурации дисплея грязно.

Чтобы избежать этого, вы можете использовать cfrpreset.

На странице «Управление отображением»:

  • Снова нажмите на зубчатое колесо.
  • Наведите указатель мыши рядом с элементом выбора развертки для «Отображения объекта».
  • Нажмите «Создать пресет» (откроется в новой вкладке).

На странице «Добавить предустановку»:

  • Выберите название для предустановки.
  • Сохранить.

На странице «Управление отображением»:

  • Закройте форму, если она все еще открыта.
  • Снова нажмите на зубчатое колесо.
  • Выберите пресет, который вы только что создали.
  • Нажмите «Обновить» в форме.
  • Нажмите «Сохранить» внизу страницы.

При желании вы можете экспортировать частичную конфигурацию как новые пресеты.

Скриншоты

Я надеюсь, что это не слишком много. Было бы здорово, если бы у тебя была развёрнутая / разваленная вещь.

Добавьте поле EntDisP.

Добавьте поле EntDisP.

Конфигурация с "Полем с форматером".

Настройте поле EntDisP.

Альтернативная конфигурация с «Изображение с процессором».

Альтернативная конфигурация с использованием «Изображение с процессором».

Экспортировать как пресет.

По желанию, экспорт в качестве предустановки.

Сохраните пресет.

Сохраните пресет.

Используйте предустановку вместо конфигурации на месте.

Используйте предустановку вместо конфигурации на месте.

Дон Кихот
источник