我想创建一个在表单中使用的自定义内容类型,该表单具有在自定义表单页面上编辑时与在管理后端中编辑时行为不同的字段。该表格将允许访问者注册以在在线出版物更改时收到通知。iframe
我计划在另一个应用程序中使用该表单。
自定义内容类型字段
- 名
- 姓
- 职业
- 电子邮件
- 出版物编号
- 订阅日期
- 取消日期
- 活跃
对于在自定义表单页面上填写表单的用户(与从管理后端创建新内容项相反),我想更改一些字段的行为:
ProductId
字段(文本类型)不应是可编辑或可见的,并且应从查询字符串变量中获取其值SubscribeDate
字段不应是可编辑或可见的,并且应自动设置为提交表单的日期CancelDate
字段不应是可编辑或可见的IsActive
字段不应是可编辑或可见的,应自动设置为 true
我是 Orchard 的新手,起初我正在考虑为使用隐藏输入的字段创建自定义字段或自定义部分或替代视图。写下问题后,我认为我有一个很好的解决方案,但我想知道是否有更好的方法。
可能的解决方案
- 专门为与上述仅具有
FirstName
、LastName
、Occupation
、Email
和的表单不同的表单创建自定义内容类型PublicationId
。 - 覆盖表单的视图,而不是使用从查询字符串变量获取其值的
text input
元素。或者,仅为该字段创建自定义视图。PublicationId
hidden input
PublicationId
- 使用 Workflows,在表单提交时创建上面自定义内容类型的实例。
SubscribeDate
为和设置默认值IsActive
。我不确定我在工作流中有多少控制权,因此或者为表单提交创建一个处理程序(这是否存在?),它创建一个上面的自定义内容类型的实例并设置默认值。
我是否朝着正确的方向前进?我应该在管理 UI 中还是在代码中创建自定义内容类型?我希望与此发布通知功能相关的所有代码都集中在一个位置,因此编写模块是有意义的。此功能的其他一些部分将是:
- 用户注册时发送确认电子邮件
- 用户可以单击电子邮件中的链接,取消订阅发布通知
- 运行一项日常任务,检查哪些出版物发生了变化(我们有一个单独的 api,因此我们可以在那里编写逻辑并调用 api)并向所有注册该出版物的人发送电子邮件
谢谢!非常感谢任何输入。