Я хотел бы создать пользовательский тип контента, используемый в форме, которая имеет поля, которые ведут себя по-разному, когда редактируются в пользовательской форме чем изнутри бэкэнда администратора. Форма позволяет посетителям регистрироваться, чтобы получать уведомления при изменении онлайн-публикации. Я планирую использовать форму в пределах iframe
внутри другого приложения.Orchard CMS - Как реализовать поля в пользовательской форме, которые ведут себя по-разному на странице пользовательской формы vs admin backend
Пользовательские поля Content Type
- ПгвЬЫате
- LastName
- Род занятий
- PublicationId
- SubscribeDate
- CancelDate
- IsActive
Для пользователей, заполнив форму на странице пользовательской формы (в отличие от создания нового элемента контента внутри администратора бэкэнда) Я хотел бы изменить поведение несколько полей:
ProductId
поля (тип текст) не должно быть доступно для редактирования или видимыми и должны получить его значение из строки запроса переменнойSubscribeDate
поле не должно быть редактируемым или видимым и должно быть автоматически установлено на дату формы отправленоCancelDate
поле не должно быть редактируемым или видимыйIsActive
поле не должно быть редактируемым или видимым и должно быть автоматически установлено истинным
Я новичок в сад и сначала я думал о создании пользовательских полей или пользовательские части или альтернативные представления для полей, в которых используются скрытые входы. После написания вопроса я думаю, что у меня есть хорошее решение, но я хотел бы знать, есть ли лучший способ.
Возможное решение
- Создание пользовательского типа содержимого специально для формы, которая отличается, чем один выше, который имеет только
FirstName
,LastName
,Occupation
,Email
иPublicationId
. - Переопределите представление формы и вместо элемента
text input
дляPublicationId
используйтеhidden input
, который получает свое значение из строковой переменной запроса. Кроме того, создайте пользовательский вид только для поляPublicationId
. - Использование Workflow, после отправки формы создайте экземпляр пользовательского типа контента выше. Установите значения по умолчанию для
SubscribeDate
иIsActive
. Я не уверен, сколько элементов управления у меня есть в Workflows, так что вместо этого создайте обработчик для отправки формы (это существует?), Который создает экземпляр настраиваемого типа контента выше и устанавливает значения по умолчанию.
Я направляюсь в правильном направлении?И должен ли я создавать пользовательские типы контента в пользовательском интерфейсе администратора или в коде? Я хотел бы, чтобы весь мой код, связанный с этой функцией уведомления о публикации, был в одном месте, поэтому написать модуль имеет смысл. Некоторые другие части этой функции будут:
- отправить подтверждение по электронной почте, когда пользователь подписывает вверх
- имеет возможность для пользователя нажать на ссылку в электронном письме, которое отписать их от уведомления публикации
- запустить ежедневную задачу, которая проверяет, что публикации изменились (у нас есть отдельный API, чтобы мы могли написать логику там и просто позвонить API) и отправить по электронной почте всем, кто подписался на эту публикацию
Благодаря! Любой вход очень приветствуется.
Спасибо. Создание части таким образом совпадает с добавлением типа контента в пользовательский интерфейс администратора? И я могу делать экспорт/импорт, если я работаю в разных средах? – pholly
Да, это то же самое, но каждый раз, когда вам нужно обновить тип детали/содержимого, вам придется экспортировать/импортировать снова. – krbnr