exadium/extra-attributes-field

此包最新版本(dev-master)没有可用的许可证信息。

扩展 SilverStripe 表单字段,允许在下拉(选项)和复选框集(复选框)字段上为子元素添加属性。

dev-master 2015-12-18 10:05 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:43:42 UTC


README

描述

扩展 SilverStripe 表单字段,允许在下拉和复选框集字段上为子元素添加属性。

维护者联系方式

Marijn Kampf <marijn (at) exadium (dot) com>

赞助商

Exadium 网络开发与在线营销。更多信息请访问 http://www.exadium.com

安装

composer require "exadium/extra-attributes-field":"*"

该模块应在 SilverStripe 标准安装上直接运行。如果您已经通过

\extra-attributes-field\templates
\themes\bootstrap\templates

使用方法

public function getCMSFields() {
	$fields = parent::getCMSFields();

	$count = array('1' => 'One', '2' => 'Two', '3' => 'Three');
	$batties = array('1' => 'Batty', '2' => 'Batty batty', '3' => 'Batty batty batty');

	$fields->push(
		DropdownAttributesField::create('DropdownAttributesCount', 'DropdownAttributesField Count', $count)
			->setOptionsAttributes('data-bats', $batties)
	);

	$fields->push(
		CheckboxSetField::create('CheckCount', 'CheckboxSetField Count', $count)
			->setOptionsAttributes('data-bats', $batties)
	);

	return $fields;
}

生成如下代码

<div id="DropdownAttributesCount" class="field dropdownattributes">
	<label class="left" for="Form_EditForm_DropdownAttributesCount">DropdownAttributesField Count</label>
	<div class="middleColumn">
		<select name="DropdownAttributesCount" class="dropdownattributes" id="Form_EditForm_DropdownAttributesCount">
			<option value="1" data-bats="Batty">One</option>
			<option value="2" data-bats="Batty batty">Two</option>
			<option value="3" data-bats="Batty batty batty">Three</option>
		</select>
	</div>
</div>

<div id="CheckCount" class="field optionset checkboxset">
	<label class="left">CheckboxSetField Count</label>
	<div class="middleColumn">
		<ul id="Form_EditForm_CheckCount" class="optionset checkboxset">
			<li class="odd val1">
				<input id="Form_EditForm_CheckCount_1" class="checkbox" name="CheckCount[1]" type="checkbox" value="1" data-bats="Batty">
				<label for="Form_EditForm_CheckCount_1">One</label>
			</li>
			<li class="even val2">
				<input id="Form_EditForm_CheckCount_2" class="checkbox" name="CheckCount[2]" type="checkbox" value="2" data-bats="Batty batty">
				<label for="Form_EditForm_CheckCount_2">Two</label>
			</li>
			<li class="odd val3">
				<input id="Form_EditForm_CheckCount_3" class="checkbox" name="CheckCount[3]" type="checkbox" value="3" data-bats="Batty batty batty">
				<label for="Form_EditForm_CheckCount_3">Three</label>
			</li>
		</ul>
	</div>
</div>

或者您也可以从数据库字段映射中加载。同时展示了添加多个选项。

$fields->push(
	DropdownAttributesField::create('Members', 'Members', Member::get()->map('ID', 'Name'))
		->setOptionsAttributes('data-email', Member::get()->map('ID', 'Email'))
		->setOptionsAttributes('data-firstname', Member::get()->map('ID', 'FirstName'))
);

备注

如果您使用 silverstripe-bootstrap-forms,请将 BootstrapCheckboxSetField.ss 复制到您的模板文件夹中。如果您使用自己的自定义字段模板,请添加

$OptionAttributesHTML 

到您的 input/option/checkbox/...

要求

SilverStripe 3.1