function king_edt() { global $king; $king->access('portal_content_edt'); //初始化 $listid = kc_get('listid', 2, 1); //$info['listid']; $info = $king->portal->infoList($listid); $model = $king->portal->infoModel($info['modelid']); // kc_error('<pre>'.print_r($array_field,1)); $kid = kc_get('kid', 2); $kid1 = kc_get('kid1', 2); $isadmin = $kid1 ? 'isadmin2' : 'isadmin1'; //次页:首页 $array_field = array_keys($model['field'][$isadmin]); $sql_field = implode(',', $array_field); //[tablemodel]字段调用 // $listid=kc_get('listid',2); if ($GLOBALS['ismethod'] || $kid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['kpath'] = $king->portal->depathMode($info); $data['nshow'] = 1; $array_field_default = $model['field']['default']; foreach ($array_field_default as $key => $val) { $data[$key] = $val; } } } else { //编辑数据,从数据库读出 if (!($data = $king->db->getRows_one('select ' . $sql_field . ' from %s__' . $model['modeltable'] . ' where kid=' . $kid . ' limit 1;'))) { kc_error($king->lang->get('system/error/param') . '<br/>select ' . $sql_field . ' from %s__' . $model['modeltable'] . ' where kid=' . $kid . ' limit 1;' . '<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__); } } $data = kc_data($array_field, $data); $data['kid'] = $kid; if (!($res = $king->db->getRows("select * from %s_field where modelid={$info['modelid']} and {$isadmin}=1 and kid1=0 order by norder,kid;"))) { //全部调用 $res = array(); } $s = $king->openForm('manage.content.php?action=edt'); $s .= kc_htm_hidden(array('listid' => $listid, 'kid' => $kid, 'kid1' => $kid1)); //这个隐藏域不要放在下面 //kc_error("select * from %s_field where modelid={$info['modelid']} and {$isshow}=1 and kid1=0 order by norder,kid;"); //kc_error('<pre>'.print_r($res,1)); foreach ($res as $rs) { $s .= $king->portal->formdecode($rs, $data, $info, 1, $kid1 ? 2 : 1); } $s .= $king->htmForm($king->lang->get('portal/common/exp'), kc_htm_checkbox('pag', array(1 => $king->lang->get('portal/goto/addpag')), kc_post('pag'))); $s .= $king->closeForm('save'); //数据处理 if ($GLOBALS['ischeck']) { $_array = array(); //设置为空数组 //收集字段的值 foreach ($array_field as $val) { if (in_array($val, array('nshow', 'nhead', 'ncommend', 'nup', 'nfocus', 'nhot')) || array_key_exists($val, $model['field']['offon'])) { //增加判断offon $_array[$val] = $data[$val] ? 1 : 0; } else { if (is_array($data[$val])) { $_array[$val] = implode(',', $data[$val]); } else { $_array[$val] = $data[$val]; } //抓图和过滤链接 if ($val == 'kcontent') { if (kc_post('isgrab')) { //抓图 $_array[$val] = kc_grab($_array[$val]); } if (kc_post('isremovea')) { //过滤链接 $_array[$val] = preg_replace('/<a ([^>]*)>|<\\/a>/is', '', $_array[$val]); } if (kc_post('isremovetable')) { //过滤表格 $_array[$val] = preg_replace('/<(table|tbody|thead|tr|td|th|caption) ?([^>]*)>|<\\/(table|tbody|thead|tr|td|th|caption)>/is', '', $_array[$val]); } if (kc_post('isremovestyle')) { //过滤样式 $_array[$val] = preg_replace('/(<([^>]*))( style=)(["\'])(.*?)\\4(([^>]*)\\/?>)/is', '$1 $6', $_array[$val]); } if (kc_post('isremoveid')) { //过滤样式 $_array[$val] = preg_replace('/(<([^>]*))( id=)(["\'])(.*?)\\4(([^>]*)\\/?>)/is', '$1 $6', $_array[$val]); } if (kc_post('isremoveclass')) { //过滤样式 $_array[$val] = preg_replace('/(<([^>]*))( class=)(["\'])(.*?)\\4(([^>]*)\\/?>)/is', '$1 $6', $_array[$val]); } } } } if (in_array('kimage', $_array) && in_array('kcontent', $_array)) { //如果有选择第一个图作为缩略图 并 kimage在列表里 if (kc_post('isoneimage')) { //抓第一张图为缩略图 if ($oneimage = preg_match('/(<img([^>]*))( src=)(["\'])(.*?)\\4(([^>]*)\\/?>)/is', $_array['kcontent'], $oneimage_array)) { $smartimg = $oneimage_array[5]; if (is_file(ROOT . substr($smartimg, strlen($king->config('inst'))))) { //判断是否为本地文件 $_array['kimage'] = substr($smartimg, strlen($king->config('inst'))); } else { //若是远程文件,则抓取 if ($path = kc_grab_get($smartimg)) { //抓取成功 if ($path != $smartimg) { //值不一样,说明抓取成功 $_array['kimage'] = $path; } } } } } } //listid & kid1 $_array['listid'] = $data['listid']; $_array['kid1'] = $data['kid1'] ? $data['kid1'] : 0; /** 检查kpath是否在键名列表里,如果有则判断是否为空值 如果没有,则补充 */ if (empty($_array['kpath'])) { $_array['kpath'] = $king->portal->depathMode($info); } /** 检查kkeywords,如果没有,则自动补充其值 如果有,则更新列表 */ $_array['kkeywords'] = !empty($data['kkeywords']) ? $king->portal->getKey($_array['ktitle'], $_array['kkeywords']) : $king->portal->getKey($_array['ktitle']); /** 关键字替换功能的实现概论 从$_array['kkeywords']中获得关键字列表,从预置的[关键字链接页/待做的表]中查找相关关键字 kname 关键字 kkeywords 关键字相关关键字 kpath 关键字链接网址 preg_replace('',$rs['kpath'],$_array['kcontent'],1); */ /** 检查ktag,如果没有,则自动补充其值 如果有,则更新列表 */ $_array['ktag'] = !empty($data['ktag']) ? $king->portal->getTag($_array['ktitle'], $_array['ktag']) : $king->portal->gettag($_array['ktitle']); /** 如果description值为空,则从content中获取 */ if (empty($data['kdescription']) && !empty($data['kcontent'])) { $kdescription = strip_tags($data['kcontent']); $kdescription = preg_replace('/(\\&[a-z]{1,6};)|\\s/', '', $kdescription); $_array['kdescription'] = kc_substr($kdescription, 0, 200); } //副标题长度 $_array['nsublength'] = isset($data['ksubtitle']) ? kc_strlen($data['ksubtitle']) : 0; //更新时间 $_array['nlastdate'] = time(); //如果有kid1值,则对kid1对应的nlastdate进行更新 if ($kid1) { $king->db->update('%s__' . $model['modeltable'], array('nlastdate' => time()), 'kid=' . $kid1); } //图片框写远程路径的时候,抓图 foreach ($model['field']['image'] as $key => $val) { if (isset($_array[$key])) { //当有image类型的字段的时候,检查一下其值 if (kc_validate($_array[$key], 6)) { //若为网址类型的话,自动抓图到本地 $_array[$key] = kc_grab_get($_array[$key]); } } } //添加&更新数据 if ($kid) { //update $king->db->update('%s__' . $model['modeltable'], $_array, 'kid=' . $kid); $_nlog = 7; } else { $_array['ndate'] = time(); $_array['adminid'] = $king->admin['adminid']; $_array['userid'] = -1; $_array['norder'] = $king->db->neworder('%s__' . $model['modeltable']); //不同的浏览器不同的分页标签,前台不支持 switch (strtolower($king->admin['admineditor'])) { case 'fckeditor': $pagebreak = '<div style="page-break-after: always"><span style="display: none"> </span></div>'; break; case 'tiny_mce': $pagebreak = '<!-- pagebreak -->'; break; case 'edit_area': $pagebreak = '<!-- pagebreak -->'; break; } if (isset($pagebreak) && isset($_array['kcontent'])) { $array = explode($pagebreak, $_array['kcontent']); foreach ($array as $key => $val) { $_array['kcontent'] = $val; $_array['norder']++; if ($key === 0) { //第一个 $kid = $king->db->insert('%s__' . $model['modeltable'], $_array); } else { $_array['kpath'] = $king->portal->depathMode($info); $_array['kid1'] = $data['kid1'] ? $data['kid1'] : $kid; $king->db->insert('%s__' . $model['modeltable'], $_array); } } } else { $kid = $king->db->insert('%s__' . $model['modeltable'], $_array); } $_nlog = 5; if ($kid == 0) { kc_error($king->lang->get('system/error/insert') . kc_clew(__FILE__, __LINE__, nl2br(print_r($_array, 1)))); } } //更新列表信息 $king->portal->lastUpdated($listid, 'list'); //删除缓存重建缓存 $king->cache->del('portal/list/' . $listid); kc_f_delete($king->config('xmlpath', 'portal') . '/portal/' . $info['modelid'] . '/' . wordwrap($kid, 1, '/', 1) . '.xml'); $id = $king->portal->infoID($listid, $kid); if ($kid1) { kc_f_delete($king->config('xmlpath', 'portal') . '/portal/' . $info['modelid'] . '/' . wordwrap($kid1, 1, '/', 1) . '.xml'); $id = $king->portal->infoID($listid, $kid1); } //生成操作 if ($info['npage'] == 0) { if ($info['npagenumber'] == 1) { $king->portal->createPage($listid, $kid1 ? $kid1 : $kid); //$listid,$kid,$pid=1,$is=null $subkid = $id['subkid']; if ($subkid) { $subid = explode(',', $subkid); foreach ($subid as $sid) { $king->portal->createPage($listid, $sid); } } } else { $pcount = ceil($id['ncount'] / $info['npagenumber']); for ($i = 1; $i <= $pcount; $i++) { $king->portal->createPage($listid, $kid1 ? $kid1 : $kid, $i); } } } //写log $king->log($_nlog, $model['modeltable'] . ':' . $data['ktitle']); // if(kc_post('pag')[0]==1){ if (kc_post('pag') == 1) { $s = kc_goto($king->lang->get('system/goto/saveok'), 'manage.content.php?action=edtpag&listid=' . $data['listid'] . '&kid1=' . ($kid1 ? $kid1 : $kid)); } else { if ($kid1) { kc_goto($king->lang->get('system/goto/is'), 'manage.content.php?action=edtpag&listid=' . $data['listid'] . '&kid1=' . $kid1, 'manage.content.php?action=pag&listid=' . $data['listid'] . '&kid1=' . $kid1); } else { kc_goto($king->lang->get('system/goto/is'), 'manage.content.php?action=edt&listid=' . $data['listid'], 'manage.content.php?listid=' . $data['listid']); } } } list($left, $right) = king_inc_list(); $king->skin->output($info['ktitle'], $left, $right, $s); }
function king_lnkedt() { global $king; $king->access('#lnk'); $kid = kc_get('kid', 2); $adminid = kc_get('adminid', 2) ? kc_get('adminid', 2, 1) : $king->admin['adminid']; //当提交过来的adminid和当前管理员id不同的时候,验证管理员的级别 if ($adminid != $king->admin['adminid']) { $king->access('admin'); } $sql = 'kname,ktitle,kpath,adminid,kimage,isblank,konclick,isflo'; if ($GLOBALS['ismethod'] || $kid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['kimage'] = 'lnk.gif'; $data['adminid'] = $adminid; } } else { if (!($data = $king->db->getRows_one("select {$sql} from %s_lnk where kid={$kid} limit 1;"))) { kc_error($king->lang->get('system/error/param') . '<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__); } } $fields = explode(',', $sql); $data = kc_data($fields, $data); $s = $king->openForm('manage.php?action=lnkedt'); //kname $_array = array(array('kname', 0, 1, 20)); $s .= $king->htmForm($king->lang->get('system/lnk/kname') . ' (1-20)', '<input class="k_in w200" type="text" name="kname" value="' . htmlspecialchars($data['kname']) . '" maxlength="20" />', $_array); //ktitle $_array = array(array('ktitle', 0, 0, 100)); $s .= $king->htmForm($king->lang->get('system/lnk/ktitle') . ' (0-100)', '<input class="k_in w400" type="text" name="ktitle" value="' . htmlspecialchars($data['ktitle']) . '" maxlength="100" />', $_array); //kpath $_array = array(array('kpath', 0, 1, 100)); $s .= $king->htmForm($king->lang->get('system/lnk/kpath') . ' (1-100)', '<input class="k_in w400" type="text" name="kpath" value="' . htmlspecialchars($data['kpath']) . '" maxlength="100" />', $_array); //konclick $_array = array(array('konclick', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('system/lnk/konclick') . ' (0-255)', '<input class="k_in w400" type="text" name="konclick" value="' . htmlspecialchars($data['konclick']) . '" maxlength="255" />', $_array); //isblank&isflo $array_blank = array(1 => $king->lang->get('system/lnk/blank')); $array_flo = array(1 => $king->lang->get('system/lnk/flo')); $s .= $king->htmForm($king->lang->get('system/lnk/attrib'), kc_htm_checkbox('isblank', $array_blank, $data['isblank']) . kc_htm_checkbox('isflo', $array_flo, $data['isflo'])); //kimage $_array = array(array('kimage', 0, 1, 100)); $array = kc_f_getdir('system/images/lnk', 'gif|png|jpg'); $image = '<div id="lnksel"><p>'; $i = 1; foreach ($array as $val) { $image .= '<a href="javascript:;" onclick="$(\'#kimage\').val(\'' . $val . '\');lnksel();"><img src="images/lnk/' . $val . '"/></a>'; if ($i++ == 6) { $image .= '</p><p>'; $i = 1; } } $image .= '</p></div>'; $s .= $king->htmForm($king->lang->get('system/lnk/image'), '<table class="k_side" cellspacing="0"><tr><td><img src="images/lnk/' . htmlspecialchars($data['kimage']) . '" id="klnkimage"/></td><td>' . $image . '</td></tr></table>', $_array, null, kc_help('system/help/lnkimg')); $s .= kc_htm_hidden(array('adminid' => $data['adminid'], 'kimage' => htmlspecialchars($data['kimage']), 'kid' => $kid)); $s .= '<script>function lnksel(){var kimage=$(\'#kimage\').val();$(\'#klnkimage\').attr(\'src\',\'images/lnk/\'+kimage);}</script>'; $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { // $sql='kname,ktitle,kpath,adminid,kimage,isblank,konclick,isflo'; $array = array(); foreach ($fields as $val) { $array[$val] = $data[$val]; } $_array = array('isblank', 'isflo'); foreach ($_array as $val) { $array[$val] = $data[$val] ? 1 : 0; } if ($kid) { //update $king->db->update('%s_lnk', $array, "kid={$kid}"); $nlog = 7; } else { //insert $array['norder'] = $king->db->neworder('%s_lnk', "adminid={$data['adminid']}"); $nlog = 5; $king->db->insert('%s_lnk', $array); } $king->cache->del('system/lnk/' . $data['adminid']); $king->cache->del('system/lnk/flo_' . $data['adminid']); //写log $king->log($nlog, $data['kname']); kc_goto($king->lang->get('system/goto/is'), 'manage.php?action=lnkedt&adminid=' . $data['adminid'], 'manage.php?action=lnk&adminid=' . $data['adminid']); } $king->skin->output($king->lang->get('system/title/lnk'), king_inc_lnk_left(), '', $s); }
/** 解析表单项目 @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; }
/** 解析表单项目 @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; }