form.inc.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. function sysconfig($field, $value, $fieldinfo) {
  2. $string = '';
  3. $require = $fieldinfo['min_length'] ? 'required required_box' : '';
  4. $pattern = $fieldinfo['pattern'] ?$fieldinfo['pattern']:'';
  5. $errortips = $fieldinfo['error_tips'] ?$fieldinfo['error_tips']:'';
  6. $setting = string2array($fieldinfo['setting']);
  7. $configName = $setting['sysconfig'];
  8. if($value=='') $value = !empty($fieldinfo['default_value'])?$fieldinfo['default_value']:'';
  9. $sysconfig = Sysconfig::find()->where("name='".$configName."'")->one();
  10. if($sysconfig->type==1) $optionList = json_decode($sysconfig->value,true);
  11. if($sysconfig->type==2)
  12. {
  13. $options = json_decode($sysconfig->value,true);
  14. foreach($options as $v)
  15. {
  16. $optionList[$v] = $v;
  17. }
  18. }
  19. //去除空内容
  20. $values = explode(',',$value);
  21. $value = array();
  22. if(!empty($values))foreach($values as $_k) {
  23. if($_k != '') $value[] = $_k;
  24. }
  25. $value = implode(',',$value);
  26. $string = '<div class="mb-3 row '.$require.'" data-pattern = "'.$pattern.'" data-errtips = "'.$errortips.'" data-boxtype="'.$this->fields[$field]['box_type'].'" data-name="'.(in_array($this->fields[$field]['box_type'],['multiple','checkbox'])?"info[$field][]":"info[$field]").'">';
  27. $string .= '<label class="col-md-2 col-form-label">'.$fieldinfo['name'].'</label>';
  28. if(isset($optionList)&&isset($this->fields[$field]['box_type']))switch($this->fields[$field]['box_type']) {
  29. case 'radio':
  30. $string .= FormElements::radio($optionList,$value,"name='info[$field]' $fieldinfo[form_attribute] class='form-check-input' ",0);
  31. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux offset-l-2">提示:'.$fieldinfo['tips'].'</div>':'';
  32. break;
  33. case 'checkbox':
  34. $string .= FormElements::checkbox($optionList,$value,"name='info[$field][]' $fieldinfo[form_attribute] class='form-check-input' ",0);
  35. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux offset-l-2">提示:'.$fieldinfo['tips'].'</div>':'';
  36. break;
  37. case 'select':
  38. $string .= '<div class="col-md-10">';
  39. $string .= FormElements::select($optionList,$value,Yii::t('admin','please select'),"name='info[$field]' id='$field' $fieldinfo[form_attribute] data-dselect-clearable='true' class='form-select $require'");
  40. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux">提示:'.$fieldinfo['tips'].'</div>':'';
  41. $string .= '</div>';
  42. break;
  43. case 'multiple':
  44. $string .= '<div class="col-md-10">';
  45. $string .= FormElements::select($optionList,$value,Yii::t('admin','please select'),"name='info[$field][]' id='$field' multiple='multiple' data-dselect-clearable='true' class='form-select $require'");
  46. $string .= $fieldinfo['tips']?'<div class="text-muted input-word-aux">提示:'.$fieldinfo['tips'].'</div>':'';
  47. $string .= '</div>';
  48. break;
  49. }
  50. $string .= '</div>';
  51. return $string;
  52. }