formid = $formid; $this->fields = getcache('formguide_field_'.$formid, 'model'); $this->siteid = get_siteid(); } function get($data) { $this->data = $data; $this->id = $data['id']; $info = array(); foreach($this->fields as $field=>$v) { if(!isset($data[$field])) continue; $func = $v['formtype']; $value = $data[$field]; $result = method_exists($this, $func) ? $this->$func($field, $data[$field]) : $data[$field]; if($result !== false) $info[$field] = $result; } return $info; } function editor($field, $value) { return $value; } function box($field, $value) { extract(string2array($this->fields[$field]['setting'])); if($outputtype) { return $value; } else { $options = explode("\n",$this->fields[$field]['options']); foreach($options as $_k) { $v = explode("|",$_k); $k = trim($v[1]); $option[$k] = $v[0]; } $string = ''; switch($this->fields[$field]['boxtype']) { case 'radio': $string = $option[$value]; break; case 'checkbox': $value_arr = explode(',',$value); foreach($value_arr as $_v) { if($_v) $string .= $option[$_v].' 、'; } break; case 'select': $string = $option[$value]; break; case 'multiple': $value_arr = explode(',',$value); foreach($value_arr as $_v) { if($_v) $string .= $option[$_v].' 、'; } break; } return $string; } } function images($field, $value) { return string2array($value); } function datetime($field, $value) { $setting = string2array($this->fields[$field]['setting']); extract($setting); if($fieldtype=='date' || $fieldtype=='datetime') { return $value; } else { $format_txt = $format; } if(strlen($format_txt)<6) { $isdatetime = 0; } else { $isdatetime = 1; } if(!$value) $value = SYS_TIME; $value = date($format_txt,$value); return $value; } function linkage($field, $value) { $setting = string2array($this->fields[$field]['setting']); $datas = getcache($setting['linkageid'],'linkage'); $infos = $datas['data']; if($setting['showtype']==1) { $result = get_linkage($value, $setting['linkageid'], $setting['space'], 1); } elseif($setting['showtype']==2) { $result = $value; } else { $result = get_linkage($value, $setting['linkageid'], $setting['space'], 2); } return $result; } } ?>