В моем проекте есть специальный флаг с полем ссылки на сущность в нем для узлов типа контента, который я назову здесь «корзина».
Как это работает:
- Флаг «добавить в корзину» появляется на узлах типа «Статья».
- Если пользователь хочет поместить узел в корзину, он нажимает флаг «добавить в корзину».
- Флаг «добавить в корзину» настроен на отображение диалога (на данный момент не модального)
- Диалог позволяет им выбрать ведро; при отправке диалога пометка создается с отношением к выбранному сегменту
Все это отлично работает (просмотры позволяют пользователю видеть статьи в каждой корзине)
Проблема возникает, когда пользователь решает удалить пометка от узла.
Модуль флага использует тот же диалог, только с добавленной в него кнопкой «удалить». Поскольку это тот же диалог, который используется для добавления флажков, в нем есть поле ссылки на объект со списком сегментов... но это бессмысленно. Нажатие «Удалить» удаляет пометку независимо от того, к какому «сегменту» она относится.
В диалоговом окне также есть кнопка «Сохранить», которая не имеет смысла в этом контексте.
Я бы хотел, чтобы пользователи не видели поле ссылки на сущность при снятии флага... а также не видели кнопку сохранения.
Опция 1: возможно для этого есть настройка в конфигурации флага и я иду на фейспалм . . . но я не вижу настройку, если она существует. (Слепота от усталости? Я делал это раньше!)
Вариант 2: используйте CSS, чтобы скрыть эти два элемента. Проблема: не существует классов, позволяющих отличить контекст удаления от контекста добавления. Может я что-то там упускаю? Я вижу, что в моей теме form.html.twig обрабатывает отдельные элементы формы, но я не вижу, какой шаблон генерирует диалог.С этой информацией, может быть, какая-то логика может войти в шаблон, чтобы создать некоторые классы для неизменности?
Вариант 3: заставить его использовать другую форму для сброса. ... Как это сделать?
Может быть, есть модуль, который может это сделать, или их комбинация? Я не нашел ни одного.
Если мне нужно будет закодировать модуль, какие-нибудь советы по общему подходу? (Примечание: раньше я кодировал, может быть, два крошечных модуля, в основном вырезал и вставлял, так что... уровень навыков для этого, вероятно, «ниже новичка». Так что используйте короткие слова, лол)