构造器的表单是由不同的字段组成的,字段也分为很多类型,不同的类型提供不同的功能。在本章,我们重点将介绍各个字段类型的功能,以及其推荐的使用场景。

字段类型

字段类型不同,那么其提供的功能也不一样。单行输入框会提供一个输入框供用户输入,而单个图片则会让用户上传一张图片。我们应该按照自己的需要来选择字段类型。

字段的场景

同一个字段,会在5个不同的场景出现,其展示形式也是不一样的。具体的场景如下,我们以“单个图片”字段类型来说明:

  • 后台表单 (当字段出现在后台录入数据表单页面)
  • 后台展示列表页 (当字段出现在后台数据列表页面)
  • 前台表单 (当字段出现在前台给用户提供输入的表单页面)
  • 前台展示详情页 (当字段出现在前台给用户展示详情页面)
  • 前台展示列表页 (当字段出现在前台给用户展示列表页面)

对于开发者,我们需要充分考虑新的字段在这个5种场景下的显示效果。

对于普通的使用者,我们一般只需要考虑前台的3种显示效果来决定选择使用何种字段类型。

我该如何选择

对于普通的使用者,在选择字段的而时候我们可以全部选择为单行输入框。当组件安装到自己的网站上后,开始尝试录入数据,如果发现不满足需要,再更加需要进行更改。常用的字段功能介绍如下:

  1. 单行输入框
    1. 提供一个只有1行的输入框,也就是我们场景的输入框
  2. 多行输入框
    1. 提供一个有1多行的输入框
  3. 单张图片
    1. 提供一个上传按钮,允许我们上传图片。在展示的时候,可以查看大图
  4. 单个文件
    1. 提供一个上传按钮,允许我们上传文件,在展示的时候,允许用户下载。
  5. 多个图片
  6. 多个文件

二次开发说明

所有的表单字段都已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> 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前