Example #1
0
 /**
 	解析表单项目
 	@param array $rs    数据构成
 	@param array $data  表单值
 	@return string
 
 	$rs['ntype']值
 	1  单行文本
 	2  多行文本(不支持编辑器)
 	3  多行文本 (支持编辑器)
 	4  单选 (下拉列表)
 	5  单选 (radio)
 	6  多选 (多选列表)
 	7  复选框
 	8  文件上传(图片类型)
 	9  图片列表
 	10 文件上传(文件类型)
 	11 文件列表
 	12 颜色框
 	13 选择模板
 */
 public function formdecode($rs, $data)
 {
     $c = array();
     $s = '';
     $h = kc_help($rs['khelp'] ? $rs['kmodule'] . '/' . $rs['khelp'] : '');
     switch ($rs['ntype']) {
         case 1:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             if ($rs['nvalidate'] != 0) {
                 $c[] = array($rs['kname'], $rs['nvalidate']);
             }
             $s = '<input type="text" name="' . $rs['kname'] . '" id="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h .= kc_htm_setvalue_nl($rs['kname'], $rs['koption']);
             break;
         case 2:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<textarea name="' . $rs['kname'] . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;" >' . htmlspecialchars($data[$rs['kname']]) . '</textarea>';
             break;
         case 3:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = kc_htm_editor($rs['kname'], $data[$rs['kname']], $rs['nstylewidth'], $rs['nstyleheight']);
             break;
         case 4:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $array_def = explode(NL, $rs['koption']);
             $array_select = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_select += array($array_val[0] => $array_val[1]);
                     } else {
                         $array_select += array($val => $val);
                     }
                 }
             }
             $s = kc_htm_select($rs['kname'], $array_select, $data[$rs['kname']]);
             break;
         case 5:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $array_def = explode(NL, $rs['koption']);
             $array_radio = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_radio += array($array_val[0] => $array_val[1]);
                     } else {
                         $array_radio += array($val => $val);
                     }
                 }
             }
             $s = kc_htm_radio($rs['kname'], $array_radio, $data[$rs['kname']]);
             break;
         case 6:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $array_def = explode(NL, $rs['koption']);
             $array_select = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_select += array($array_val[0] => $array_val[1]);
                     } else {
                         $array_select += array($val => $val);
                     }
                 }
             }
             $s = kc_htm_select($rs['kname'], $array_select, $data[$rs['kname']], ' multiple="multiple" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;"');
             break;
         case 7:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $array_def = explode(NL, $rs['koption']);
             $array_radio = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_radio += array($array_val[0] => $array_val[1]);
                     } else {
                         $array_radio += array($val => $val);
                     }
                 }
             }
             $s = kc_htm_checkbox($rs['kname'], $array_radio, $data[$rs['kname']]);
             break;
         case 8:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="text" name="' . $rs['kname'] . '" id="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h .= kc_f_brow($rs['kname'], $this->config('uppath') . '/image', 0);
             break;
         case 9:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="hidden" id="' . $rs['kname'] . '" name="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '"/>';
             $s .= '<table class="k_side" cellspacing="0"><tr><td id="k' . $rs['kname'] . 'show" class="k_in imglist" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;">';
             $s .= 'Loading...';
             $s .= '</td><td>';
             $s .= kc_f_brow($rs['kname'], $this->config('uppath') . '/image', 0, 1, $jsfun = 'k' . $rs['kname'] . 'show();');
             $s .= '</td></tr></table>';
             $s .= kc_help($rs['khelp'] ? $rs['kmodule'] . '/' . $rs['khelp'] : '');
             $s .= "<script>function k{$rs['kname']}show(){\$.kc_ajax('{CMD:\\'imageload\\',label:\\'{$rs['kname']}\\',VAL:\\'{$rs['kname']}\\',listid}\\'}');k{$rs['kname']}show();</script>";
             break;
         case 10:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="text" name="' . $rs['kname'] . '" id="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h .= kc_f_brow($rs['kname'], $this->config('uppath') . '/file', 1);
             break;
         case 11:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="hidden" id="' . $rs['kname'] . '" name="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '"/>';
             $s .= '<table class="k_side" cellspacing="0"><tr><td id="k' . $rs['kname'] . 'show" class="k_in filelist" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;">';
             $s .= 'Loading...';
             $s .= '</td><td>';
             $s .= kc_f_brow($rs['kname'], $this->config('uppath') . '/file', 1, 1, $jsfun = 'k' . $rs['kname'] . 'show();');
             $s .= '</td></tr></table>';
             $s .= kc_help($rs['khelp'] ? $rs['kmodule'] . '/' . $rs['khelp'] : '');
             $s .= "<script>function k{$rs['kname']}show(){\$.kc_ajax('{CMD:\\'filesload\\',label:\\'{$rs['kname']}\\',VAL:\\'{$rs['kname']},listid\\',ID:\\'k{$rs['kname']}show\\'}')};k{$rs['kname']}show();</script>";
             break;
         case 12:
             $c[] = array('kcolor', 0, 6, 6);
             $s = '<input class="k_in w50" type="text" id="' . $rs['kname'] . '" name="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '" maxlength="6" />';
             $h .= kc_f_color($rs['kname']);
             break;
         case 13:
             $c[] = array($rs['kname'], 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="text" name="' . $rs['kname'] . '" id="' . $rs['kname'] . '" value="' . htmlspecialchars($data[$rs['kname']]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h .= kc_f_brow($rs['kname'], $this->config('templatepath'), 2);
             break;
     }
     $htm = $this->htmForm($this->lang->get($rs['kmodule'] . '/const/' . $rs['kname']), $s, $c, 'config.' . $rs['kmodule'] . '.' . $rs['kname'], $h);
     return $htm;
 }
Example #2
0
 /**
 	解析表单项目
 	@param array  $rs    当前对象的数组
 	@param array  $data  表单值
 	@param array  $info  模型及字段相关信息,由listid值获取
 	@param int    $is    默认为1后台,0的时候是前台调用
 	@param int    $at    默认为1首页,2的时候是次页调用
 	@param int    $group 默认为1非组,0的时候是[组]调用
 */
 public function formDeCode($rs, $data, $info, $is = 1, $at = 1, $group = 1)
 {
     /*
     $sql='ktitle,kfield,ntype,nvalidate,nsizemin,nsizemax,kdefault,koption,nstylewidth,nstyleheight,nupfile,issearch,isshow';
     */
     global $king;
     $model = $this->infoModel($info['modelid']);
     $s = '';
     $h = '';
     $c = array();
     $f = $rs['kfield'];
     switch ($rs['ntype']) {
         case 0:
             //系统字段
             switch ($f) {
                 case 'ktitle':
                     if ($at == 1) {
                         //首页必填
                         $c[] = array($f, 0, 1, 100);
                     } else {
                         //次页可选择不填
                         $c[] = array($f, 0, 0, 100);
                     }
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w400" maxlength="100" />';
                     $h = '<a id="cktitle" class="k_ajax" rel="{URL:\'manage.content.php\',CMD:\'ckre\',obj:\'ktitle\',listid:' . $info['listid'] . ',kid:\'' . $data['kid'] . '\',ID:\'cktitle\',IS:2,ktitle:$(\'#ktitle\').val()}" >';
                     $h .= kc_icon('a7', $king->lang->get('system/common/ckre')) . '</a>';
                     break;
                 case 'ksubtitle':
                     $c = $data[$f] != '' ? array(array($f, 0, 4, 20)) : array();
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w300" maxlength="20" />';
                     break;
                 case 'kkeywords':
                     $c[] = array($f, 0, 0, 100);
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w400" maxlength="100" />';
                     $h = '<a class="k_ajax" rel="{URL:\'manage.content.php\',CMD:\'keywords\',VAL:\'' . $f . ',ktitle,listid\'}" >';
                     $h .= kc_icon('d7', $king->lang->get('portal/label/insert')) . '</a>' . kc_help('portal/help/comma', 350, 100);
                     break;
                 case 'ktag':
                     $c[] = array($f, 0, 0, 100);
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w400" maxlength="100" />';
                     $h = '<a class="k_ajax" rel="{URL:\'manage.content.php\',CMD:\'tag\',VAL:\'' . $f . ',ktitle,listid\'}" >';
                     $h .= kc_icon('d7', $king->lang->get('portal/label/insert')) . '</a>';
                     $h .= '<a href="manage.tag.php" target="_blank">' . kc_icon('e7', $king->lang->get('system/common/manage')) . '</a>' . kc_help('portal/help/comma', 350, 100);
                     break;
                 case 'kimage':
                     $c[] = array($f, 0, 0, 255);
                     $c[] = array($f, 15, null, $king->config('upimg'));
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w400" maxlength="100" />';
                     $h = kc_f_brow('kimage', $king->config('uppath') . '/image/', 0);
                     break;
                 case 'kpath':
                     if ($info['npage'] == 0 && $king->admin['adminmode'] != 0) {
                         //如果生成静态,则
                         $c[] = array($f, 0, 1, 255);
                         $c[] = array($f, 15);
                         if ($data['kid']) {
                             $c[] = array($f, 12, $king->lang->get('portal/tip/isexist1'), $king->db->getRows_one("select kpath from %s__{$model['modeltable']} where kpath='" . $king->db->escape($data['kpath']) . "' and kid<>{$data['kid']};"));
                         } else {
                             $c[] = array($f, 12, $king->lang->get('portal/tip/isexist1'), $king->db->getRows_one("select kpath from %s__{$model['modeltable']} where kpath='" . $king->db->escape($data['kpath']) . "';"));
                         }
                         $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w400" maxlength="100" />';
                         $h = '<a id="ckpath" class="k_ajax" rel="{URL:\'manage.content.php\',ID:\'ckpath\',CMD:\'ckre\',obj:\'kpath\',listid:' . $info['listid'] . ',kid:\'' . $data['kid'] . '\',' . $f . ':$(\'#' . $f . '\').val()}" >';
                         $h .= kc_icon('a7', $king->lang->get('system/common/ckre')) . '</a>';
                     } else {
                         return;
                         //						$s=kc_htm_hidden(array($f=>htmlspecialchars($data[$f])));
                     }
                     break;
                 case 'nattrib':
                     $kid = $rs['kid'];
                     $isshow = $is == 1 ? "isadmin{$at}" : "isuser{$at}";
                     if (!($res2 = $king->db->getRows("select * from %s_field where modelid={$info['modelid']} and {$isshow}=1 and kid1={$kid} order by norder,kid;"))) {
                         //全部调用
                         return;
                     }
                     //如果没有可见项,则返回空值
                     $s = '';
                     $c2 = array();
                     $h2 = '';
                     //($s,$c,$h)
                     foreach ($res2 as $rs2) {
                         list($s2, $c2, $h2) = $this->formdecode($rs2, $data, $info, $is, $at, 0);
                         $s .= '<span class="k_field">';
                         if ($rs2['istitle']) {
                             $s .= '<label>' . addslashes($rs2['ktitle']) . '</label>';
                         }
                         $s .= $s2 . '</span>';
                         $c = array_merge($c, $c2);
                         $h .= $h2;
                     }
                     break;
                 case 'kcontent':
                     $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
                     $c[] = array($f, 21);
                     if ($is) {
                         $s .= '<span><input type="checkbox" id="isgrab" name="isgrab" ' . (kc_post('isgrab') ? 'checked="true"' : '') . '/><label for="isgrab">' . $king->lang->get('system/common/grab') . '</label>';
                         $s .= '<input type="checkbox" id="isoneimage" name="isoneimage" ' . (kc_post('isoneimage') ? 'checked="true"' : '') . '/><label for="isoneimage">' . $king->lang->get('portal/remove/oneimage') . '</label></span>';
                         //$s.='<input type="checkbox" id="isreplacetag" name="isreplacetag" '.(kc_post('isreplacetag')?'checked="true"':'').'/><label for="isreplacetag">'.$king->lang->get('portal/remove/replacetag').'</label></span>';
                         $s .= '<span><img src="../system/images/white.gif" class="os n4"/>' . $king->lang->get('system/common/filtercode') . '[<input type="checkbox" id="isremovea" name="isremovea" ' . (kc_post('isremovea') ? 'checked="true"' : '') . '/><label for="isremovea">' . $king->lang->get('portal/remove/a') . '</label>';
                         $s .= '<input type="checkbox" id="isremovetable" name="isremovetable" ' . (kc_post('isremovetable') ? 'checked="true"' : '') . '/><label for="isremovetable">' . $king->lang->get('portal/remove/table') . '</label>';
                         $s .= '<input type="checkbox" id="isremovestyle" name="isremovestyle" ' . (kc_post('isremovestyle') ? 'checked="true"' : '') . '/><label for="isremovestyle">' . $king->lang->get('portal/remove/style') . '</label>';
                         $s .= '<input type="checkbox" id="isremoveid" name="isremoveid" ' . (kc_post('isremoveid') ? 'checked="true"' : '') . '/><label for="isremoveid">' . $king->lang->get('portal/remove/id') . '</label>';
                         $s .= '<input type="checkbox" id="isremoveclass" name="isremoveclass" ' . (kc_post('isremoveclass') ? 'checked="true"' : '') . '/><label for="isremoveclass">' . $king->lang->get('portal/remove/class') . '</label>]</span><br/>';
                     }
                     $s .= kc_htm_editor($f, $data[$f], $rs['nstylewidth'], $rs['nstyleheight']);
                     break;
                 case 'krelate':
                     $c = $data[$f] ? array(array($f, 3)) : array();
                     $s = '<input type="hidden" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '"/>';
                     $s .= '<table class="k_side" cellspacing="0"><tr><td id="krelateshow" class="k_in">';
                     $s .= 'Loading...';
                     $s .= '</td><td>';
                     $s .= '<a class="k_ajax" rel="{URL:\'manage.content.php\',CMD:\'hrelate\',VAL:\'krelate,listid,kid\'}" >' . kc_icon('b7', $king->lang->get('portal/label/relate1')) . '</a>';
                     //手动匹配
                     $s .= '<a class="k_ajax" rel="{URL:\'manage.content.php\',ID:\'krelateshow\',CMD:\'relate\',VAL:\'ktitle,listid,kid\'}">' . kc_icon('c7', $king->lang->get('portal/label/relate0')) . '</a>';
                     //自动匹配
                     $s .= kc_help('portal/help/relate');
                     $s .= '</td></tr></table>';
                     $s .= "<script>function krelateshow(){\$.kc_ajax('{URL:\\'manage.content.php\\',CMD:\\'relateload\\',ID:\\'krelateshow\\',VAL:\\'krelate,listid\\'}')};krelateshow();</script>";
                     break;
                 case 'kdescription':
                     $c[] = array($f, 0, 0, 255);
                     $s = '<textarea rows="4" cols="100" class="k_in w400" name="' . $f . '" maxlength="255" >' . htmlspecialchars($data[$f]) . '</textarea>';
                     break;
                 case 'nprice':
                     $c[] = array($f, 0, 1, 11);
                     $c[] = array($f, 3);
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w100" maxlength="11" />';
                     $h = kc_htm_setvalue_nl($f, $rs['koption']);
                     break;
                 case 'nweight':
                     $c[] = array($f, 0, 1, 11);
                     $c[] = array($f, 2);
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w100" maxlength="11" />';
                     $h = kc_htm_setvalue_nl($f, $rs['koption']) . kc_help('portal/help/weight');
                     break;
                 case 'nnumber':
                     $c[] = array($f, 0, 1, 11);
                     $c[] = array($f, 2);
                     $s = '<input type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in w100" maxlength="11" />';
                     $h = kc_htm_setvalue_nl($f, $rs['koption']);
                     break;
                 default:
                     if (in_array($f, array('nshow', 'nhead', 'ncommend', 'nup', 'nfocus', 'nhot'))) {
                         $c[] = array($f, 20, null, array(0, 1));
                         //						kc_error(print_r($data,1));
                         $checked = empty($data[$f]) ? '' : ' checked="checked"';
                         $s = '<input' . $checked . ' type="checkbox" id="' . $f . '" name="' . $f . '" value="1" />';
                         $s .= '<label for="' . $f . '">' . htmlspecialchars($rs['ktitle']) . '</label>';
                     }
             }
             break;
             //value="'.htmlspecialchars($data[$f]).'"
             //$rs='ktitle,kfield,ntype,nvalidate,nsizemin,nsizemax,kdefault,koption,nstylewidth,nstyleheight,nupfile,issearch,isshow';
         //value="'.htmlspecialchars($data[$f]).'"
         //$rs='ktitle,kfield,ntype,nvalidate,nsizemin,nsizemax,kdefault,koption,nstylewidth,nstyleheight,nupfile,issearch,isshow';
         case 1:
             //单行文本
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             if ($rs['nvalidate'] != 0) {
                 $c[] = array($f, $rs['nvalidate']);
             }
             $s = '<input type="text" name="' . $f . '" id="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h = $this->help($rs['kid'], $rs['khelp']) . kc_htm_setvalue_nl($f, $rs['koption']);
             break;
         case 2:
             //多行文本 (不支持编辑器)
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<table class="k_side" cellspacing="0"><tr><td><textarea name="' . $f . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;" >' . htmlspecialchars($data[$f]) . '</textarea></td><td>' . $this->help($rs['kid'], $rs['khelp']) . '</td></tr></table>';
             break;
         case 3:
             //多行文本 (支持编辑器)
             $c[] = array($f, 0);
             $c[] = array($f, 21);
             $s = '<table class="k_side" cellspacing="0"><tr><td>' . kc_htm_editor($f, $data[$f]) . '</td><td>' . $this->help($rs['kid'], $rs['khelp']) . '</td></tr></table>';
             break;
         case 4:
             //单选 (下拉列表)
             $c[] = array($f, 0, 0, 255);
             $array_def = explode(NL, $rs['koption']);
             $array_select = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_select[$array_val[0]] = $array_val[1];
                     } else {
                         $array_select[$val] = $val;
                     }
                 }
             }
             $c[] = array($f, 20, null, array_keys($array_select));
             $s = kc_htm_select($f, $array_select, $data[$f]);
             $h = $this->help($rs['kid'], $rs['khelp']);
             break;
         case 5:
             //单选 (radio)
             $c[] = array($f, 0, 0, 255);
             $array_def = explode(NL, $rs['koption']);
             $array_radio = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_radio[$array_val[0]] = $array_val[1];
                     } else {
                         $array_radio[$val] = $val;
                     }
                 }
             }
             $c[] = array($f, 20, null, array_keys($array_radio));
             $s = kc_htm_radio($f, $array_radio, $data[$f]);
             $h = $this->help($rs['kid'], $rs['khelp']);
             break;
         case 6:
             //多选 (多选列表)
             $c[] = array($f, 0, 0, 255);
             $array_def = explode(NL, $rs['koption']);
             $array_select = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_select[$array_val[0]] = $array_val[1];
                     } else {
                         $array_select[$val] = $val;
                     }
                 }
             }
             $array_keys = array_keys($array_select);
             //可选值,但需要再加一个空值进去
             $array_keys[''] = '';
             $c[] = array($f, 23, null, $array_keys);
             $s = kc_htm_select($f, $array_select, $data[$f], ' multiple="multiple" style="width:' . $rs['nstylewidth'] . 'px;height:' . $rs['nstyleheight'] . 'px;"');
             $h = $this->help($rs['kid'], $rs['khelp']);
             break;
         case 7:
             //复选框
             $c[] = array($f, 0, 0, 255);
             $array_def = explode(NL, $rs['koption']);
             $array_radio = array();
             foreach ($array_def as $val) {
                 if (isset($val[0])) {
                     //不能为空值
                     $array_val = explode('|', $val, 2);
                     if (count($array_val) > 1) {
                         //有分割符号
                         $array_radio[$array_val[0]] = $array_val[1];
                     } else {
                         $array_radio[$val] = $val;
                     }
                 }
             }
             $array_keys = array_keys($array_radio);
             //可选值,但需要再加一个空值进去
             $array_keys[''] = '';
             $c[] = array($f, 23, null, $array_keys);
             $s = kc_htm_checkbox($f, $array_radio, $data[$f]);
             $h = $this->help($rs['kid'], $rs['khelp']);
             break;
         case 8:
             //文件上传(图片类型)
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="text" name="' . $f . '" id="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h = kc_f_brow($f, $king->config('uppath') . '/image', 0) . $this->help($rs['kid'], $rs['khelp']) . kc_htm_setvalue_nl($f, $rs['koption']);
             break;
         case 9:
             //图片列表
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             // class="w800"
             $s = kc_htm_hidden(array($f => $data[$f]));
             $src = $king->lang->get('portal/label/imgsrc');
             $alt = $king->lang->get('portal/label/imgalt');
             $s .= kc_htm_input("S{$f}", $src, 400, 400, " onClick=\"\$(this).val(this.value=='{$src}'?'':this.value)\"") . "<br/>";
             $s .= kc_htm_input("A{$f}", $alt, 400, 300, " onClick=\"\$(this).val(this.value=='{$alt}'?'':this.value)\"");
             $s .= " <input type=\"button\" value=\"" . $king->lang->get('system/common/add') . "\" id=\"B{$f}\" />";
             // onClick=\"F$f()\"
             $s .= "<div id=\"W{$f}\" class=\"imglist\" style=\"width:{$rs['nstylewidth']}px\"></div>";
             //JavaScript中判断Src值是否为远程图像,如果是的话,则直接抓取图片到本地
             $s .= "<script>\r\n\t\t\t\t//点击“添加”按钮的时候的效果\r\n\t\t\t\tfunction F{$f}(){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar S=\$('#S{$f}').val().replace(t,'');\r\n\t\t\t\t\tvar A=\$('#A{$f}').val().replace(t,'');\r\n\t\t\t\t\t//判断是否填写图片地址\r\n\t\t\t\t\tif(S=='' || S=='{$src}'){\r\n\t\t\t\t\t\talert('" . $king->lang->get('portal/error/notimgsrc') . "');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(A=='' || A=='{$alt}') A=S;\r\n\t\t\t\t\tvar s=S+t+A;\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\t//如果S为空,则提示错误\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#{$f}').val(s);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//判断图片是否已经存在\r\n\t\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\t\tvar ss_2,src;\r\n\t\t\t\t\t\tfor(i=0;i<ss_1.length;i++){\r\n\t\t\t\t\t\t\tss_2=ss_1[i].split(t);\r\n\t\t\t\t\t\t\tsrc=ss_2[0];\r\n\t\t\t\t\t\t\tif(src==S){\r\n\t\t\t\t\t\t\t\talert('" . $king->lang->get('portal/error/retimgsrc') . "');\r\n\t\t\t\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\$('#{$f}').val(ss+t+t+s);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('');\r\n\t\t\t\t\tS{$f}();\r\n\t\t\t\t}\r\n\t\t\t\t//显示数据\r\n\t\t\t\tfunction S{$f}(){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#W{$f}').html('');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar s='';\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\tvar ss_2,alt,src;\r\n\t\t\t\t\tfor(i=0;i<ss_1.length;i++){\r\n\t\t\t\t\t\tss_2=ss_1[i].split(t);\r\n\t\t\t\t\t\tsrc=ss_2[0];\r\n\t\t\t\t\t\talt=ss_2[1];\r\n\r\n\t\t\t\t\t\ts+='<span class=\"img\" title=\"'+alt+'\">';\r\n\t\t\t\t\t\ts+='<a href=\"javascript:;\" onClick=\"E{$f}('+i+')\" class=\"img\" title=\"" . $king->lang->get('system/common/edit') . "\">';\r\n\t\t\t\t\t\ts+='<img class=\"img\" src=\"'+(ss_2[0].match(/^[a-zA-Z]{3,10}:\\/\\/[^\\s]+\$/) ? ss_2[0] : '../'+ss_2[0])+'\"/>';\r\n\t\t\t\t\t\ts+='</a>';\r\n\r\n\t\t\t\t\t\ts+='<a class=\"title\" href=\"javascript:;\" onClick=\"D{$f}('+i+')\" title=\"" . $king->lang->get('system/common/del') . "\">';\r\n\t\t\t\t\t\ts+=\$.kc_icon('j2')+alt;\r\n\t\t\t\t\t\ts+='</a>';\r\n\t\t\t\t\t\ts+='</span>';\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\$('#W{$f}').html(s);\r\n\t\t\t\t}\r\n\t\t\t\t//删除图片\r\n\t\t\t\tfunction D{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#W{$f}').html('');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\t\r\n\t\t\t\t\tss_1.splice(num,1);\r\n\r\n\t\t\t\t\t\$('#{$f}').val(ss_1.join(t+t));\r\n\r\n\t\t\t\t\tS{$f}();\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t//编辑图片\r\n\t\t\t\tfunction E{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss=='') return;\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\r\n\t\t\t\t\tvar ss_num=ss_1.slice(num,num+1);\r\n\t\t\t\t\tvar ss_2=ss_num[0].split(t);\r\n\r\n\t\t\t\t\t\$('#S{$f}').val(ss_2[0]);\r\n\t\t\t\t\t\$('#A{$f}')\r\n\t\t\t\t\t\t.val(ss_2[1])\r\n\t\t\t\t\t\t.width(250);\r\n\r\n\t\t\t\t\t\$('#B{$f}')\r\n\t\t\t\t\t\t.val('" . $king->lang->get('system/common/up') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){U{$f}(num)});\r\n\t\t\t\t\tif(!\$('#B{$f}').next('input').length){\r\n\t\t\t\t\t\t\$('#B{$f}').after('<input type=\"button\" value=\"" . $king->lang->get('system/common/cancel') . "\" onClick=\"C{$f}()\"/>');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//提交编辑结果\r\n\t\t\t\tfunction U{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\r\n\t\t\t\t\tvar S=\$('#S{$f}').val().replace(t,'');\r\n\t\t\t\t\tvar A=\$('#A{$f}').val().replace(t,'');\r\n\r\n\t\t\t\t\t//判断是否填写图片地址\r\n\t\t\t\t\tif(S=='' || S=='{$src}'){\r\n\t\t\t\t\t\talert('" . $king->lang->get('portal/error/notimgsrc') . "');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\tss_1.splice(num,1,S+t+A);\r\n\r\n\t\t\t\t\t\$('#{$f}').val(ss_1.join(t+t));\r\n\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('')\r\n\t\t\t\t\t\t.width(300);\r\n\r\n\t\t\t\t\t\$('#B{$f}').val('" . $king->lang->get('system/common/add') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){F{$f}()})\r\n\t\t\t\t\t\t.next('input').remove();\r\n\r\n\t\t\t\t\tS{$f}();\r\n\r\n\t\t\t\t}\r\n\t\t\t\t//取消按钮\r\n\t\t\t\tfunction C{$f}(){\r\n\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('')\r\n\t\t\t\t\t\t.width(300);\r\n\r\n\t\t\t\t\t\$('#B{$f}').val('" . $king->lang->get('system/common/add') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){F{$f}()})\r\n\t\t\t\t\t\t.next('input').remove();\r\n\r\n\t\t\t\t}\r\n\t\t\t\tS{$f}();\r\n\t\t\t\t\$('#B{$f}').click(function(){F{$f}()});\r\n\t\t\t\t</script>";
             $h = kc_f_brow("S{$f}", $king->config('uppath') . '/image/', 0, 1, "F{$f}()");
             $h .= $this->help($rs['kid'], $rs['khelp']);
             break;
         case 10:
             //文件上传(文件类型)
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = '<input type="text" name="' . $f . '" id="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" class="k_in" style="width:' . $rs['nstylewidth'] . 'px;" maxlength="' . $rs['nsizemax'] . '" />';
             $h = kc_f_brow($f, $king->config('uppath') . '/file/', 1) . $this->help($rs['kid'], $rs['khelp']) . kc_htm_setvalue_nl($f, $rs['koption']);
             break;
         case 11:
             //文件列表
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             $s = kc_htm_hidden(array($f => $data[$f]));
             $src = $king->lang->get('portal/label/filesrc');
             $alt = $king->lang->get('portal/label/filealt');
             $s .= kc_htm_input("S{$f}", $src, 400, 400, " onClick=\"\$(this).val(this.value=='{$src}'?'':this.value)\"") . "<br/>";
             $s .= kc_htm_input("A{$f}", $alt, 400, 300, " onClick=\"\$(this).val(this.value=='{$alt}'?'':this.value)\"");
             $s .= " <input type=\"button\" value=\"" . $king->lang->get('system/common/add') . "\" id=\"B{$f}\" />";
             $s .= "<div id=\"W{$f}\" class=\"filelist\" style=\"width:{$rs['nstylewidth']}px\"></div>";
             $s .= "<script>\r\n\t\t\t\t//点击“添加”按钮的时候的效果\r\n\t\t\t\tfunction F{$f}(){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar S=\$('#S{$f}').val().replace(t,'');\r\n\t\t\t\t\tvar A=\$('#A{$f}').val().replace(t,'');\r\n\t\t\t\t\t//判断是否填写文件地址\r\n\t\t\t\t\tif(S=='' || S=='{$src}'){\r\n\t\t\t\t\t\talert('" . $king->lang->get('portal/error/notimgsrc') . "');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(A=='' || A=='{$alt}') A=S;\r\n\t\t\t\t\tvar s=S+t+A;\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\t//如果S为空,则提示错误\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#{$f}').val(s);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\t//判断文件是否已经存在\r\n\t\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\t\tvar ss_2,src;\r\n\t\t\t\t\t\tfor(i=0;i<ss_1.length;i++){\r\n\t\t\t\t\t\t\tss_2=ss_1[i].split(t);\r\n\t\t\t\t\t\t\tsrc=ss_2[0];\r\n\t\t\t\t\t\t\tif(src==S){\r\n\t\t\t\t\t\t\t\talert('" . $king->lang->get('portal/error/retfilesrc') . "');\r\n\t\t\t\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\$('#{$f}').val(ss+t+t+s);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('');\r\n\t\t\t\t\tS{$f}();\r\n\t\t\t\t}\r\n\t\t\t\t//显示数据\r\n\t\t\t\tfunction S{$f}(){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#W{$f}').html('');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar s='';\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\tvar ss_2,alt,src;\r\n\t\t\t\t\tfor(i=0;i<ss_1.length;i++){\r\n\t\t\t\t\t\tss_2=ss_1[i].split(t);\r\n\t\t\t\t\t\tsrc=ss_2[0];\r\n\t\t\t\t\t\talt=ss_2[1];\r\n\r\n\t\t\t\t\t\ts+='<span class=\"file\" title=\"'+alt+'\">';\r\n\r\n\t\t\t\t\t\ts+='<a href=\"javascript:;\" class=\"icon\" onClick=\"D{$f}('+i+')\" title=\"" . $king->lang->get('system/common/del') . "\">';\r\n\t\t\t\t\t\ts+=\$.kc_icon('j2','" . $king->lang->get('system/common/del') . "')+'</a>';\r\n\r\n\t\t\t\t\t\ts+='<a href=\"javascript:;\" onClick=\"E{$f}('+i+')\" class=\"title\" title=\"" . $king->lang->get('system/common/edit') . "\">';\r\n\t\t\t\t\t\ts+=alt;\r\n\t\t\t\t\t\t//s+='<img class=\"file\" src=\"'+(ss_2[0].match(/^[a-zA-Z]{3,10}:\\/\\/[^\\s]+\$/) ? ss_2[0] : '../'+ss_2[0])+'\"/>';\r\n\t\t\t\t\t\ts+='</a>';\r\n\r\n\t\t\t\t\t\ts+='<a title=\"" . $king->lang->get('system/common/down') . "\" class=\"src\" href=\"'+(ss_2[0].match(/^[a-zA-Z]{3,10}:\\/\\/[^\\s]+\$/) ? ss_2[0] : '../'+ss_2[0])+'\">';\r\n\t\t\t\t\t\ts+=\$.kc_icon('e3','" . $king->lang->get('system/common/down') . "');\r\n\t\t\t\t\t\ts+=src+'</a>';\r\n\t\t\t\t\t\ts+='</span>';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\$('#W{$f}').html(s);\r\n\t\t\t\t}\r\n\t\t\t\t//删除文件\r\n\t\t\t\tfunction D{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss==''){\r\n\t\t\t\t\t\t\$('#W{$f}').html('');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\t\r\n\t\t\t\t\tss_1.splice(num,1);\r\n\r\n\t\t\t\t\t\$('#{$f}').val(ss_1.join(t+t));\r\n\r\n\t\t\t\t\tS{$f}();\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t//编辑图片\r\n\t\t\t\tfunction E{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\t\t\t\t\tif(ss=='') return;\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\r\n\t\t\t\t\tvar ss_num=ss_1.slice(num,num+1);\r\n\t\t\t\t\tvar ss_2=ss_num[0].split(t);\r\n\r\n\t\t\t\t\t\$('#S{$f}').val(ss_2[0]);\r\n\t\t\t\t\t\$('#A{$f}')\r\n\t\t\t\t\t\t.val(ss_2[1])\r\n\t\t\t\t\t\t.width(250);\r\n\r\n\t\t\t\t\t\$('#B{$f}')\r\n\t\t\t\t\t\t.val('" . $king->lang->get('system/common/up') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){U{$f}(num)});\r\n\t\t\t\t\tif(!\$('#B{$f}').next('input').length){\r\n\t\t\t\t\t\t\$('#B{$f}').after('<input type=\"button\" value=\"" . $king->lang->get('system/common/cancel') . "\" onClick=\"C{$f}()\"/>');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//提交编辑结果\r\n\t\t\t\tfunction U{$f}(num){\r\n\t\t\t\t\tvar t=String.fromCharCode(9);\r\n\t\t\t\t\tvar ss=\$('#{$f}').val();\r\n\r\n\t\t\t\t\tvar S=\$('#S{$f}').val().replace(t,'');\r\n\t\t\t\t\tvar A=\$('#A{$f}').val().replace(t,'');\r\n\r\n\t\t\t\t\t//判断是否填写图片地址\r\n\t\t\t\t\tif(S=='' || S=='{$src}'){\r\n\t\t\t\t\t\talert('" . $king->lang->get('portal/error/notfilesrc') . "');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar ss_1=ss.split(t+t);\r\n\t\t\t\t\tss_1.splice(num,1,S+t+A);\r\n\r\n\t\t\t\t\t\$('#{$f}').val(ss_1.join(t+t));\r\n\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('')\r\n\t\t\t\t\t\t.width(300);\r\n\r\n\t\t\t\t\t\$('#B{$f}').val('" . $king->lang->get('system/common/add') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){F{$f}()})\r\n\t\t\t\t\t\t.next('input').remove();\r\n\r\n\t\t\t\t\tS{$f}();\r\n\r\n\t\t\t\t}\r\n\t\t\t\t//取消按钮\r\n\t\t\t\tfunction C{$f}(){\r\n\r\n\t\t\t\t\t\$('#S{$f}').val('');\r\n\t\t\t\t\t\$('#A{$f}').val('')\r\n\t\t\t\t\t\t.width(300);\r\n\r\n\t\t\t\t\t\$('#B{$f}').val('" . $king->lang->get('system/common/add') . "')\r\n\t\t\t\t\t\t.unbind('click')\r\n\t\t\t\t\t\t.click(function(){F{$f}()})\r\n\t\t\t\t\t\t.next('input').remove();\r\n\r\n\t\t\t\t}\r\n\t\t\t\tS{$f}();\r\n\t\t\t\t\$('#B{$f}').click(function(){F{$f}()});\r\n\t\t\t\t</script>";
             /*
             $s='<input type="hidden" id="'.$f.'" name="'.$f.'" value="'.htmlspecialchars($data[$f]).'"/><br/>';
             $s.='<input type="hidden" id="'.$f.'_temp" name="'.$f.'_temp"/>';
             $s.='<table class="k_side" cellspacing="0"><tr><td id="k'.$f.'show" class="k_in filelist" style="width:'.$rs['nstylewidth'].'px;height:'.$rs['nstyleheight'].'px;">';
             $s.='Loading...';
             $s.='</td></tr></table>';
             $h=kc_f_brow($f.'_temp',$king->config('uppath').'/file/',1,1,$jsfun='k'.$f.'show();');
             
             $s.="<script>function k{$f}js(title,file,label){var s='<span class=\"file\" title=\"'+title+'\">";
             $s.="<a class=\"img k_ajax\" href=\"javascript:;\" rel=\"{CMD:\'filetitle\',file:\''+file+'\',label:\''+label+'\',VAL:\''+label+','+label+'_temp,listid\',METHOD:\'GET\'}\">";
             $s.="<img class=\"file\" src=\"../'+file+'\"/></a>";
             $s.="<em class=\"title\">";
             $s.="<a class=\"k_ajax\" href=\"javascript:;\" rel=\"{CMD:\'filesdel\',delfile:\''+file+'\',label:\''+label+'\',VAL:\''+label+','+label+'_temp,listid\',IS:1}\">";
             $s.="'+\$.kc_icon('j2')+'</a>'+title+'</em></span>';return s;};";
             
             $s.="function k{$f}show(){\$.kc_ajax('{URL:\'manage.content.php\',ID:\'k{$f}show\',CMD:\'filesload\',label:\'{$f}\',VAL:\'{$f}_temp,{$f},listid\'}')};k{$f}show();</script>";
             */
             $h = kc_f_brow("S{$f}", $king->config('uppath') . '/file/', 1, 1, "F{$f}()");
             $h .= $this->help($rs['kid'], $rs['khelp']);
             break;
         case 12:
             //颜色框
             $c[] = array($f, 0, 7, 7);
             $c[] = array($f, 13);
             //			$s='<table class="k_side" cellspacing="0"><tr><td><input class="k_in k_color" type="text" id="'.$f.'" name="'.$f.'" value="'.htmlspecialchars($data[$f]).'" '.(kc_validate($data[$f],13)?' style="background:'.$data[$f].'"':'').' maxlength="7" /></td>';
             //			$s.='<td>'.kc_f_color($f).'</td></tr></table>';
             $s = '<input class="k_in w50" type="text" id="' . $f . '" name="' . $f . '" value="' . htmlspecialchars($data[$f]) . '" ' . (kc_validate($data[$f], 13) ? ' style="background:' . $data[$f] . '"' : '') . ' maxlength="7" />';
             $s .= kc_f_color($f);
             //"<a href=\"javascript:;\" class=\"k_color\" rel=\"{id:'{$f}'}\"><img src=\"../system/images/white.gif\" class=\"os a8\"/></a>";
             break;
         case 13:
             //是/否
             $c[] = array($f, 20, null, array('', 1));
             $checked = $data[$f] ? ' checked="checked"' : '';
             $s = '<input' . $checked . ' type="checkbox" id="' . $f . '" name="' . $f . '" value="1" />';
             $s .= '<label for="' . $f . '">' . ($group ? $king->lang->get('system/common/selectyes') : htmlspecialchars($rs['ktitle'])) . '</label>';
             break;
         case 14:
             //日期
             //			$c[]=array($f,9);
             $c[] = array($f, 0, $rs['nsizemin'], $rs['nsizemax']);
             if ($rs['nvalidate'] != 0) {
                 $c[] = array($f, $rs['nvalidate']);
             }
             $date = $data[$f] == 'TODAY' ? kc_formatdate(time(), "Y-m-d") : $data[$f];
             $s = kc_htm_input($f, $date, 30, 100);
             $s .= "<a href=\"javascript:;\" class=\"k_calendar\" rel=\"{id:'{$f}'}\"><img src=\"../system/images/white.gif\" class=\"os k9\"/></a>";
             /*
             $h="<script>";//<script type=\"text/javascript\" src=\"../system/js/calendar.js\"></script>
             for($i=0;$i<7;$i++){
             	$h.="k_lang['week{$i}']='".$king->lang->get('system/time/week'.$i)."';";
             }
             $h.="$.kc_calendar('{$f}')</script>";
             */
             break;
         case 99:
             $kid = $rs['kid'];
             $isshow = $is == 1 ? "isadmin{$at}" : "isuser{$at}";
             if (!($res2 = $king->db->getRows("select * from %s_field where modelid={$info['modelid']} and {$isshow}=1 and kid1={$kid} order by norder,kid;"))) {
                 //全部调用
                 return;
             }
             //若没有可见项,返回空值
             $s = '';
             $c2 = array();
             $h2 = '';
             //($s,$c,$h)
             foreach ($res2 as $rs2) {
                 list($s2, $c2, $h2) = $this->formdecode($rs2, $data, $info, $is, $at, 2);
                 $s .= '<span class="k_field">';
                 if ($rs2['istitle']) {
                     $s .= '<label>' . addslashes($rs2['ktitle']) . '</label>';
                 }
                 $s .= $s2 . '</span>';
                 $c = array_merge($c, $c2);
                 $h .= $h2;
             }
             break;
         default:
             $s = $rs['ktitle'] . '=' . $rs['ntype'];
     }
     if ($group == 1) {
         if ($is == 1) {
             //后台调用
             if ($rs['ntype'] == 0 && $f == 'nattrib' || $rs['ntype'] == 99) {
                 //组输出,不需要标签
                 return $king->htmForm($rs['ktitle'], $s, $c, '', $h);
             } else {
                 return $king->htmForm($rs['ktitle'], $s, $c, substr($f, 1), $h);
             }
         } else {
             return $king->htmForm($rs['ktitle'], $s, $c);
         }
     } else {
         //组调用
         if ($is == 1) {
             return array($s, $c, $h);
         } else {
             return array($s, $c, '');
         }
     }
     //	return $htmlForm;
 }