exadium / extra-attributes-field
此包最新版本(dev-master)没有可用的许可证信息。
扩展 SilverStripe 表单字段,允许在下拉(选项)和复选框集(复选框)字段上为子元素添加属性。
dev-master
2015-12-18 10:05 UTC
Requires
- silverstripe/cms: ~3.1
- silverstripe/framework: ~3.1
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