public function posid($field, $value, $fieldinfo) { $setting = string2array($fieldinfo['setting']); $position = D('Position')->select(); if (empty($position)) { return ''; } $array = array(); foreach ($position as $_key => $_value) { if ($_value['modelid'] && ($_value['modelid'] != $this->modelid || $_value['catid'] && strpos(',' . $this->categorys[$_value['catid']]['arrchildid'] . ',', ',' . $this->catid . ',') === false)) { continue; } $array[$_value['id']] = $_value['name']; } $posids = array(); if (ACTION_NAME == 'edit') { $position_data = D('PositionData')->where('id = %d and modelid = %d', $this->id, $this->modelid)->field('posid')->group('posid')->select(); $position_data_ids = array(); foreach ($position_data as $key => $pos) { $position_data_ids[] = $pos['posid']; } $posids = implode(',', $position_data_ids); } else { $posids = $setting['defaultvalue']; } return "<input type='hidden' name='info[{$field}][]' value='-1'>" . \Org\Util\Form::checkbox($array, $posids, "name='info[{$field}][]'", '', $setting['width']); }
public function box($field, $value, $fieldinfo) { if ($value == '') { $value = $fieldinfo['defaultvalue']; } $options = explode("\n", $fieldinfo['options']); foreach ($options as $_k) { $v = explode("|", $_k); $k = trim($v[1]); $option[$k] = $v[0]; } $values = explode(',', $value); $value = array(); foreach ($values as $_k) { if ($_k != '') { $value[] = $_k; } } $value = implode(',', $value); switch ($fieldinfo['boxtype']) { case 'radio': $string = \Org\Util\Form::radio($option, $value, "name='info[{$field}]' {$fieldinfo['formattribute']}", $fieldinfo['width'], $field); break; case 'checkbox': $string = \Org\Util\Form::checkbox($option, $value, "name='info[{$field}][]' {$fieldinfo['formattribute']}", 1, $fieldinfo['width'], $field); break; case 'select': $string = \Org\Util\Form::select($option, $value, "name='info[{$field}]' id='{$field}' {$fieldinfo['formattribute']}"); break; case 'multiple': $string = \Org\Util\Form::select($option, $value, "name='info[{$field}][]' id='{$field} ' size=2 multiple='multiple' style='height:60px;' {$fieldinfo['formattribute']}"); break; } return $string; }