构造器的表单是由不同的字段组成的,字段也分为很多类型,不同的类型提供不同的功能。在本章,我们重点将介绍各个字段类型的功能,以及其推荐的使用场景。
字段类型
字段类型不同,那么其提供的功能也不一样。单行输入框会提供一个输入框供用户输入,而单个图片则会让用户上传一张图片。我们应该按照自己的需要来选择字段类型。
字段的场景
同一个字段,会在5个不同的场景出现,其展示形式也是不一样的。具体的场景如下,我们以“单个图片”字段类型来说明:
- 后台表单 (当字段出现在后台录入数据表单页面)
- 后台展示列表页 (当字段出现在后台数据列表页面)
- 前台表单 (当字段出现在前台给用户提供输入的表单页面)
- 前台展示详情页 (当字段出现在前台给用户展示详情页面)
- 前台展示列表页 (当字段出现在前台给用户展示列表页面)
对于开发者,我们需要充分考虑新的字段在这个5种场景下的显示效果。
对于普通的使用者,我们一般只需要考虑前台的3种显示效果来决定选择使用何种字段类型。
我该如何选择
对于普通的使用者,在选择字段的而时候我们可以全部选择为单行输入框。当组件安装到自己的网站上后,开始尝试录入数据,如果发现不满足需要,再更加需要进行更改。常用的字段功能介绍如下:
- 单行输入框
- 提供一个只有1行的输入框,也就是我们场景的输入框
- 多行输入框
- 提供一个有1多行的输入框
- 单张图片
- 提供一个上传按钮,允许我们上传图片。在展示的时候,可以查看大图
- 单个文件
- 提供一个上传按钮,允许我们上传文件,在展示的时候,允许用户下载。
- 多个图片
- 多个文件
二次开发说明
所有的表单字段都已XML的形式进行存储。所有的字段都分为通用属性和专用属性。下面以subform字段为例说明:
专属属性:
- type (必填) 必须为 subform.
- formsource(必填) 要包含的表单定义,可以是XML文件的相对路径(相对于站点的根目录)或者可通过JForm::getInstance()找到的有效的表单名称.
- multiple (选填) (true/false) 是否允许重复
- min (选填) 当选择可重复的时候,最小的重复次数。默认为0.
- max (选填) 当选择可重复的时候,最大的重复次数。默认为1000.
- default (选填) 默认值,这里应该是一个JSON字符串
- groupByFieldset (选填) 是否按照子表单的fieldset进行分组,可选择true|false。默认为false
- buttons (选填) 。在多选模式下,需要显示的按钮,默认为 add,remove,move
- layout (选填) 显示子表单时使用的布局
- validate (选填) 推荐被设置为SubForm(注意,这里是大小写敏感的!),只有这样,子表单中的字段才会被校验。默认情况下,子表单的字段是不会被校验的,即便你指定了校验规则也是无效的。
通用属性:
- name (必填) 能代表该字段的唯一的名称.
- label (选填) (支持多语言机制) 字段的标题
- description (选填) (支持多语言机制) 该字段的描述信息。当鼠标移动到标签上面的时候,会以tooltip的形式显示出来.
- default (选填) (不支持多语言机制) 默认值
- class (选填) 表单字段的css类名。如果省略,默认为'text_area'.
- required (选填l) 是否必须填写内容,用于在提交表单是进行校验. ( "true", "1", "readonly"这些都表示true)
- hint 显示在html占位符元素中的文本,通常是在空白字段内显示的浅色提示
- readonly (选填l) 是否只读,字段的值不能编辑. ("true", "1", "readonly" 这些都表示true)
- disabled (选填) 是否禁用字段。如果为true,那么这个字段的值不能填写,只能展示 - 并且这个值不会在表单中提交. (可设置的值: "true", "1", "readonly" 这些都表示true)
在代码中的使用方法
要使用子表单字段需要有两个步骤。
第一步定义字段,将字段类型定义为subform,同时指定formsouce.
<field name="value" type="subform" description="单选框的选项" formsource="administrator/components/com_zmaxappbuilder/fieldtype/zmaxradio/option.xml" multiple="true" label="选项" min="2" />
第二步定义子表单的XML。也就是 administrator/components/com_zmaxappbuilder/fieldtype/zmaxradio/option.xml的内容如下:
<?xml version="1.0" encoding="utf-8"?> <form> <field name="text" type="text" required="true" label="选项文本" /> <field name="value" type="text" hint="默认系统自动生成" label="选项值" description="一般供开发者传递参数使用,普通用户保持默认即可" /> </form>
除了单独使用单独的XML文件来定子表单,也可以使用内联的方式来定义。上面的表单可以简化在一个XML文件中。如下:
<field name="value" type="subform" description="单选框的选项" multiple="true" label="选项" min="2" > <form> <field name="text" type="text" required="true" label="选项文本" /> <field name="value" type="text" hint="默认系统自动生成" label="选项值" description="一般供开发者传递参数使用,普通用户保持默认即可" /> </form> </field>
评论 (0)