本文链接: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创建自定义表单的更多相关文章

  1. Angular19 自定义表单控件

    1 需求 当开发者需要一个特定的表单控件时就需要自己开发一个和默认提供的表单控件用法相似的控件来作为表单控件:自定义的表单控件必须考虑模型和视图之间的数据怎么进行交互 2 官方文档 -> 点击前 ...

  2. activiti自定义流程之整合(三):整合自定义表单创建模型

    本来在创建了表单之后应该是表单列表和预览功能,但是我看了看整合的代码,和之前没有用angularjs的基本没有什么变化,一些极小的变动也只是基于angularjs的语法,因此完全可以参考之前说些的表单 ...

  3. activiti自定义流程之自定义表单(二):创建表单

    注:环境配置:activiti自定义流程之自定义表单(一):环境配置 在上一节自定义表单环境搭建好以后,我就正式开始尝试自己创建表单,在后台的处理就比较常规,主要是针对ueditor插件的功能在前端进 ...

  4. 用dedecms自定义表单创建简易自助预约系统

    建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击“核心” - 频道 ...

  5. 【.net+jquery】绘制自定义表单(含源码)

    前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也 ...

  6. activiti自定义流程之整合(四):整合自定义表单部署流程定义

    综合前几篇博文内容,我想在整合这一部分中应该会有很多模块会跳过不讲,就如自定义表单的表单列表那一块,因为这些模块在整合的过程中都几乎没有什么改动,再多讲也是重复无用功. 正因为如此,在创建了流程模型之 ...

  7. activiti自定义流程之自定义表单(三):表单列表及预览和删除

    注:(1)环境配置:activiti自定义流程之自定义表单(一):环境配置 (2)创建表单:activiti自定义流程之自定义表单(二):创建表单 自定义表单创建成功,要拿到activiti中使用,自 ...

  8. ZKEACMS 自定义表单的使用

    ZKEACMS Core 2.2 已经发布了,其中主要添加了自定义表单的功能.使用自定义表单的功能,您可以在几分钟内就创建一个表单,并用它来收集一些信息.导出收集的信息,就可以做一些统计分析. 创建表 ...

  9. angular 响应式自定义表单控件—注册头像实例

    1. 组件继承ControlValueAccessor,ControlValueAccessor接口需要实现三个必选方法 writeValue() 用于向元素中写入值,获取表单的元素的元素值 regi ...

随机推荐

  1. Warning:mailcious javascript detected on this domain来由

    http://www.thenewslens.com/post/144232/ 这是原文介绍,可能国内要用网络加速器才能查看. 以下是国外的一些文档介绍:Cyberspace Administrati ...

  2. windows server 2003下安装.net framework 3.5 一直安装不成功

    安装包是在微软下载中心下的197m的文件 重启了也是不行,最后 找到.net framework 3.5 sp1 一个237m的安装包 安装成功了! Congratulations ! ​

  3. Uva-11374-Airport Express

    A - Airport Express Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Appoi ...

  4. SSH web.xml文件配置

    启动一个WEB项目的时候, WEB容器会去读取它的配置文件web.xml web.xml中配置的加载优先级:context-param -> listener -> filter -> ...

  5. cri-o 与 cni的集成分析

    // 创建pod时,network的设置 1.// cri-o/server/sandbox.go // RunPodSandbox creates and runs a pod-level sand ...

  6. 【读书笔记《Android游戏编程之从零开始》】10.游戏开发基础(View 游戏框架)

    对于玩家来说,游戏是动态的:对于游戏开发人员来说,游戏是静态的,只是不停地播放不通的画面,让玩家看到了动态的效果. 进入Android之前,首先要熟悉三个重要的类:View(视图).Canvas(画布 ...

  7. 【读书笔记《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)

    Android 中常用的计量单位Android有时候需要一些计量单位,比如在布局Layout文件中可能需要指定具体单位等.常用的计量单位有:px.dip(dp).sp,以及一些不常用的pt.in.mm ...

  8. 谷歌和HTTPS

    谷歌和HTTPS HTTPS被觉得是加强互联网安全的次要部分,而且使用广泛.google近来做了一份关于数据加密近况的陈述. 正在陈述的最新部分中,提到了google以及第三方构造对于数据加密所做的贡 ...

  9. 怎样在python中获取时间?

    from time import strftime date = strftime('%y%m%d') hour = strftime('%H%M%S')

  10. BZOJ 1500 维修数列【Splay】

    注意:1,内存限制,所以需要回收删除的点 2,当前节点的左连续区间和最大值=max(左子树的左连续区间和最大值,左子树的总和+当节点的值+max(右子树的左连续区间和最大值,0)):右连续区间和最大值 ...