<?php namespace Phpcmf\Field;
class Group extends \Phpcmf\Library\A_Field {
public function __construct(...$params) {
parent::__construct(...$params);
$this->close_xss = 1; $this->fieldtype = ''; $this->defaulttype = ''; }
public function option($option, $field = NULL) {
$group = array();
$option['value'] = isset($option['value']) ? $option['value'] : '';
if ($field) {
foreach ($field as $t) {
if ($t['fieldtype'] == 'Group') {
$t['setting'] = dr_string2array($t['setting']);
if (preg_match_all('/\{(.+)\}/U', $t['setting']['option']['value'], $value)) {
foreach ($value[1] as $v) {
$group[] = $v;
}
}
}
}
$_field = array();
$_field[] = '<option value=""> -- </option>';
foreach ($field as $t) {
$t['fieldtype'] != 'Group'
&& !@in_array($t['fieldname'], $group)
&& $_field[] = '<option value="'.$t['fieldname'].'">'.$t['name'].'</option>';
}
$_field = @implode('', @array_unique($_field));
}
return ['
<div class="form-group">
<label class="col-md-2 control-label">'.dr_lang('可用字段').'</label>
<div class="col-md-9">
<label><select class="form-control" name="xx" id="fxx">'.$_field.'</select></label>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">'.dr_lang('分组规则').'</label>
<div class="col-md-9">
<textarea name="data[setting][option][value]" id="fvalue" style="height:120px;" class="form-control">'.$option['value'].'</textarea>
<span class="help-block">'.dr_lang('分组规则支持html标签,注意每个字段只能存在于一个分组中,否则会出错;此字段只能用于模块中').'</span>
</div>
</div>
<script type="text/javascript">
$(function() {
$("#fxx").change(function(){
var value = $(this).val();
var fvalue = $("#fvalue").val();
var text = $("#fxx").find("option:selected").text();
$("#fxx option[value=\'"+value+"\']").remove();
$("#fvalue").val(fvalue+" "+text+": {"+value+"}");
});
});
</script>
'];
}
public function create_sql($name, $value, $cname) {
}
public function alter_sql($name, $value, $cname) {
}
public function drop_sql($name) {
}
public function test_sql($tables, $field) {
return 0;
}
public function insert_value($field) {
}
public function input($field, $value = '') {
if ($this->_not_edit($field, $value)) {
return $this->show($field, $value);
}
$text = ($field['setting']['validate']['required'] ? '<span class="required" aria-required="true"> * </span>' : '').$field['name'];
$tips = isset($field['setting']['validate']['tips']) && $field['setting']['validate']['tips'] ? '<div class="help-block" id="dr_'.$field['fieldname'].'_tips">'.$field['setting']['validate']['tips'].'</div>' : '';
$value = $field['setting']['option']['value'];
return $this->input_format($field['fieldname'], $text, $value.$tips);
}
}