orchard文档之-创建自定义表单
创建自定义表单
自定义表单(Custom Forms) 模块用来在前台收集网站访问者的信息,自定义表单与一个内容类型组合起来工作,自定义表单可以用来创建联系我们和订阅等页面或部件. 信息存储在orchard中,可以在以后导出。
启用自定义表单模块
自定义表单模块与一种内容类型组合起来在前端收集用户输入。提交的信息被存储起来用导入-导出模块(Import-Export-Module)导出. 让我们从管理菜单的模块部分启用自定义表单开始.
一旦模块启用了模块,在导航栏的左边会出现一个新的"Form"链接。如前所述,自定义表单的工作原理是在站点的前端创建一个与一种内容类型(Content Type)相关的提交表单
在admin的Form部分,如果“Add a new Custom Form”选定后,一个目前存在于CMS中默认的内容类型的下拉列表出现, a drop-down list in the next screen for the content types will show all of the default content types that exist currently in the CMS.然而,让我们看看在右边(AsideSecond zone)添加一个部件用来要求游客加入一个邮件列表。唯一的收集信息是用户的email地址
添加一个新内容类型
为了收集和保存用户的email地址,我们需要在orchard中创建一个新类型。在admin菜单中,找到"Content Type"标签,选择创"建新类型"按钮,把新类型命名为 'Subscribe Form'.
下一页询问你是否需要保持其它Part到新建的"Subscribe Form"内容类型,由于我们希望收集用户的email地址,不选择其它任何选项,按"保存"按钮。现在我们有了一个新的内容类型,我们想为email添加一个" input field" 。
在名称里输入 'Email',添加和保存“input field”后,我们可以自定义新的输入字段的验证规则,选择输入类型为Email.你也可以自由地选择其它输入类型。
这样,我们就有了在右边创建一个新的widget的所有材料。我们启用了自定义表单模块,创建了一个新的内容类型(Subscribe Form) 用来收集用户的email地址,剩下的就是创建一个部件(Widget).
创建一个自定义表单部件
在管理导航栏的左边选择 Widgets ,在AsideSecond 区域找到合适的 Add 按钮,添加自定义表单部件.
剩下的事情就是调整我们新的自定义表单部件的设置了,在这个例子在,层( layer)设置为 'Default' ,位置设为 '1'.这样部件会在所有页面的右边的顶部显示。下面是本例的设置:
保存后浏览站点,检查新的特征。
备注: 如果输入字段显示出了作者,要移除的话在 Subscribe Form类型中的Common Part中不选 'Show editor for owner' .
查看提交的自定义表单数据
此时,我们启用了自定义表单,为自定义表单创建了一个新的内容类型,在所有页面的右边添加了一个自定义表单部件 。提交的信息因为我们选择了'Save the item once the form is submitted'而被保存下来了那么数据保存在哪?有两种方式查看提交的信息,第一是选择选择在"admin“菜单栏选择"Form"链接:
第二个是从内容类型中选择.如下图:
导出自定义表单数据
剩余的事情是导出提交的email地址,用来出版物,竞选监视,邮件分发等等。在orchard CMS中最容易的输出任何事情和所有事情的方法是使用 Import/Export 模块. Import/Export 模块默认安装在1.6版本中,但默认没有开启。让我们启用 Import/Export 模块.
Import/Export 功能现在在admin的导航栏可用了. 在 Import/Export 选项的顶部选择'Export'标签,出现所有可用的内容类型. 为了导出email列表,勾选 Subscribe Form 。在底部有一些导出设置选项,第一个选项元数据(Metadata), 会包含内容类型的定义.选择这个选项可用方便的从一个Orchard CMS站点copy内容到另外的orchard 站点。主要的例子是可以从一个开发站点迁移内容到生产站点。当导入一个包含了元数据与数据的xml文件时, Orchard 将创建内容类型拷入包含的数据。
在这个例子中,我们只对导出数据感兴趣,所以不需要勾选元数据选项。并且,确保选择了"Draft Only",因为前台输入的项目有发布状态。
导出的是XML文件,可以用 MS Excel 打开和编辑. 站点不仅能设计访问者的email地址,保存下来方便将来导出,自定义表单也是一个很好的实现联系我们或其它类型用来收集用户信息的工具。