Orchard创建自定义表单
本文链接:http://www.cnblogs.com/souther/p/4520130.html
自定义表单模块可以用来获取网站前台用户的信息。自定义表单需要与一个内容类型结合使用。它可以用来创建“联系我们”以及“订阅”之间称为关联的的部件/页面 。该信息被储存在Orchard中并可以导出。
开启自定义表单模块
自定义表单模块与一个内容类型结合使用,以获取前台的输入信息。这种信息被提交后可以存储也可以使用导入导出模块(Import-Export-Module)导出。接下来让我们通过Orchard提供的管理菜单中的模块选项来开启自定义模块。

(译者:上述界面打开后有很多,大家通过Filter中输入Cu搜索下可以直接看到Custom Forms)
一旦开启这个模块,在管理界面下,左侧的导航列表中就会看到Forms的链接。
如上所述,为了在网站前台创建可提交的表单,自定义表单模块需要结合一个内容类型来工作。在管理界面的Forms选项中,如果你点了Add a new Custom Form(添加新表单) ,那么在弹出的页面上我们会看到内容类型的下拉列表,它显示了此CMS当前所有内容类型。举个例子,比如说我们想要添加一个显示在右侧框框内的新部件(二逼区域内),它的作用是让访客输入他们的邮件地址,那么这个仅有输入框将只能获取到用户的邮件地址。
对于这段译者自己配了相关的图如下(写官方文档的人也忒懒了)。

创建一个新的内容类型
在Orchard中我们如果想要创建一个能获取用户邮件地址的自定义表单,我们需要创建新的内容类型。在管理界面,点击左侧的Content Definition(译者加的,怕你们的找不见),再点Content Types(内容类型)并选择右上角的Create new type(注:内容类型在版本<1.6是在内容区域中,>=1.7以后就是选择Content Definition即可),我们给新类型起个名字就叫“Subscribe Form”吧。

输入之后点击创建,会跳转到一个页面,在这个页面中让我们选择给这个内容类型添加其它功能,(译者:有哪些功能,下图大家看看,挺全的,Orchard中所有的东西都对象实例化的,我们创建的这个内容类型也一样,所以它会有很多属性,你可以选择上,也可以不选,根据你创建的实际部件的作用来确定,每个功能的作用,在后续章节中有提到),
下图是译者添加的,关于内容类型还有哪些东西可以选择添加,有很多,截图没截完

因为我们这里是获取用户的邮件地址,所以我们就不选其它的了,记得保存,现在我们为新创建的类型添加一个文本类型的字段用以输入EMAIL。

在添加并保存了名称是“Email”的输入字段后,我们现在就能设置它的验证类型了,显然这个字段应该选择输入类型为Email。剩下的其它信息就由你随意发挥吧。

总结一下,上边这段我们了解了创建出新部件所需要的所有内容,包括开启自定义表单,创建用于获取访客邮件地址的内容类型。接下来我们来创建部件。
创建一个自定义表彰部件
选择左侧的Widgets选项进入部件管理界面,找到二逼区域(AsideSecond zone)点击右边的Add按钮添加一个自定义部件,然后点击自定义表彰组件。(译者:官方的插件与上一张重复了,我给删了).
下面给我们新创建的部件调整下设置。例如,Layer(层)调成“Default”,位置调成1.这样做能使AsideSecond Zone始终保持在所有页面的最上层。还有一些其它设置见下图:

保存后,我们可以找个页面看看效果!

注意:如果你(所有者,Owner)不想看到这个框框,可以到Subcribe Form内容类型的常规设置部分去掉“Show editor for owner”前边的勾即可。

查看提交的自定义表彰数据
前边我们开启了自定义表单模块,创建了自定义表单的一个新内容类型,而且添加了一个自定义部件来在所有页面的右侧区域(AsideSecond zone)来提取Subscribe Form的内容类型。由于自定义表单部件的“'Save the item once the form is submitted”被选中,所以提交会被保存在Orchard中。那么这些东西被保存在哪了?在CMS中有两种方式查看提交结果。第一种方式是选择左侧导航中的“Forms”链接查看。

导出自定义表单数据
还有件事就是导出提交结果,以便email地址用于其它像出版、竞选、邮件推广等类似服务。最简单的办法就是通过导入导出模块导出CMS的所有东西。在1.6版本中导入导出模块是默认就有的,只是没有开启而已。接下来我们打开该功能。

这时候,在左侧的导航列表中就可以看到有了“导入/导出”。点击进去之后,选择导出,可以看到所有可选择的内容类型。要导出所有提交过的email地址,需要选中Subscribe Form复选框。下边有几个导出选项。第一个选项Metadata,包含此内容类型的定义。利用此选项可以很容易实现将一个内容类型从一个CMS复制到另一个。这个功能的最常用于从开发的网站将一个新的内容类型和数据移到发布的网站上。当导入的XML文件包含元数据与数据时,Orchard会创建包含此内容类型数据的复本。
当然,我们这里只对导出感兴趣,所以不用选中Metadata。同时,请确定选中“Only Draft”,因为如果没有前端提交的数据的话,会有发布状态。(译者:也就是如果没有人提交的email地址,也会告诉现在啥情况,比如没有数据。)

导出的文件是一个XML文件,可以用Excel打开操作,使得它能用于你所选择的email竞选平台。就是说,访客的email地址可以被网站收集、保存并导出。自定义表单同时用于实现联系我们这样的页面也是很不错的方法,或者用于实现收集用户各种各样信息的功能。
Orchard创建自定义表单的更多相关文章
- Angular19 自定义表单控件
1 需求 当开发者需要一个特定的表单控件时就需要自己开发一个和默认提供的表单控件用法相似的控件来作为表单控件:自定义的表单控件必须考虑模型和视图之间的数据怎么进行交互 2 官方文档 -> 点击前 ...
- activiti自定义流程之整合(三):整合自定义表单创建模型
本来在创建了表单之后应该是表单列表和预览功能,但是我看了看整合的代码,和之前没有用angularjs的基本没有什么变化,一些极小的变动也只是基于angularjs的语法,因此完全可以参考之前说些的表单 ...
- activiti自定义流程之自定义表单(二):创建表单
注:环境配置:activiti自定义流程之自定义表单(一):环境配置 在上一节自定义表单环境搭建好以后,我就正式开始尝试自己创建表单,在后台的处理就比较常规,主要是针对ueditor插件的功能在前端进 ...
- 用dedecms自定义表单创建简易自助预约系统
建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击“核心” - 频道 ...
- 【.net+jquery】绘制自定义表单(含源码)
前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也 ...
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
综合前几篇博文内容,我想在整合这一部分中应该会有很多模块会跳过不讲,就如自定义表单的表单列表那一块,因为这些模块在整合的过程中都几乎没有什么改动,再多讲也是重复无用功. 正因为如此,在创建了流程模型之 ...
- activiti自定义流程之自定义表单(三):表单列表及预览和删除
注:(1)环境配置:activiti自定义流程之自定义表单(一):环境配置 (2)创建表单:activiti自定义流程之自定义表单(二):创建表单 自定义表单创建成功,要拿到activiti中使用,自 ...
- ZKEACMS 自定义表单的使用
ZKEACMS Core 2.2 已经发布了,其中主要添加了自定义表单的功能.使用自定义表单的功能,您可以在几分钟内就创建一个表单,并用它来收集一些信息.导出收集的信息,就可以做一些统计分析. 创建表 ...
- angular 响应式自定义表单控件—注册头像实例
1. 组件继承ControlValueAccessor,ControlValueAccessor接口需要实现三个必选方法 writeValue() 用于向元素中写入值,获取表单的元素的元素值 regi ...
随机推荐
- python模块调用
1.某个模块1被调用到另一个模块2的时候,当不想模块1中的某些代码在模块2中执行时,可以在模块一种添加如下代码: if __name__ == "__main__" ...
- Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: htt ...
- Redis高级应用
上一篇博文讲述了Redis的一些常用命令,可以对数据库及数据库服务器进行操作,本篇将讲述Redis的高级应用及配置 安全性 设置密码:修改redis.conf中的requirepass,在其后面添加密 ...
- 在linux下修改mysql的root密码
第一种方法: root用户登录系统 /usr/local/mysql/bin/mysqladmin -u root -p password 新密码 enter password 旧密码 第二种方法: ...
- [分享]一个String工具类,也许你的项目中会用得到
每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...
- android linker (1) —— __linker_init()
ilocker:关注 Android 安全(新手) QQ: 2597294287 __linker_init() 在 begin.S 中被调用,并传入两个参数:sp(堆栈指针).#0. linker( ...
- hdu 2196 Computer(树形DP)
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Linux学习之六——使用vi和vim
一.vi的三种模式和相互切换 1. 一般模式 1) 移动光标 可以用箭头键,Page Up, Page Down, Home,End等按键移动光标 G,移动到档案最后一行 1G,gg,移动到档案第一行 ...
- hdu-5496 Beauty of Sequence(递推)
题目链接: Beauty of Sequence Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java ...
- POJ 1269 Intersecting Lines --计算几何
题意: 二维平面,给两条线段,判断形成的直线是否重合,或是相交于一点,或是不相交. 解法: 简单几何. 重合: 叉积为0,且一条线段的一个端点到另一条直线的距离为0 不相交: 不满足重合的情况下叉积为 ...