/** 调用文件浏览器的图片按钮 @param string $id 获得返回值的表单ID @param string $path 起始打开的目录地址,相对于安装目录,如果有$file值,则 @param string $filetype 可上传的文件类型 默认0:图片类型,1:文件类型,2:模板类型 @param bool $is 插入方式 0: 选择插入后关闭文件浏览器 1: 选择插入后不关闭文件浏览器,并继续点击的时候追加插入,用在多列表模式 @param string $jsfun 插入结束后调用执行的javascript函数 @param string $file 如果有文件,则显示文件 @return string */ function kc_f_brow($id, $path, $filetype = 0, $is = 0, $jsfun = '', $file = '') { global $king; $s = ''; //模板类型的时候,增加一个快速插入 if ($filetype == 2 && is_dir(ROOT . $path)) { if ($array = kc_f_getdir($path, $king->config('templateext'))) { $array_setvalue = array(); foreach ($array as $val) { $array_setvalue[$path . '/' . $val] = $val; } $s = kc_htm_setvalue($id, $array_setvalue); } } if (substr($path, -1) != '/') { //老版本的没有写/来区分文件和目录,所以设置自动补充 $path .= '/'; } $s .= "<a href=\"javascript:;\" class=\"k_ajax\" "; $s .= "rel=\"{URL:'../system/manage.php',CMD:'brow',id:'{$id}',path_def:'{$path}',jsfun:'{$jsfun}',is:{$is},filetype:{$filetype},VAL:'{$id}'}\">"; $s .= kc_icon('a9', $king->lang->get('system/common/browserver')) . "</a>"; /* if($is){ $s.='<a class="k_ajax" rel="{URL:\'../system/manage.php\',CMD:\'brow\',id:\''.$id.'\',path:\''.urlencode($path).'\',jsfun:\''.urlencode($jsfun).'\',is:1,filetype:\''.$filetype.'\',path_def:\''.$path.'\'}">'.kc_icon('a9',$king->lang->get('system/common/browserver')).'</a>'; }else{ $s.='<a class="k_ajax" rel="{URL:\'../system/manage.php\',CMD:\'brow\',id:\''.$id.'\',path:($(\'#'.$id.'\').val()==\'\'?\''.$path.'\':$(\'#'.$id.'\').val()),is:0,jsfun:\''.urlencode($jsfun).'\',filetype:\''.$filetype.'\',path_def:\''.$path.'\'}">'.kc_icon('a9',$king->lang->get('system/common/browserver')).'</a>'; } */ return $s; }
function king_admin_edt() { global $king; $data = array(); $s = $king->access('admin'); $_sql = "adminname,adminpass,adminlevel,adminlanguage,admineditor,adminmode,adminlogin,siteurl"; //,admindiymenu $_adminid = kc_get('adminid'); if ($GLOBALS['ismethod'] || $_adminid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['adminlanguage'] = LANGUAGE; $data['adminlogin'] = '******'; } } else { //编辑数据,从数据库读出 $data = $king->db->getRows_one('select ' . $_sql . ' from %a_admin where adminid=' . $_adminid . ' limit 1;'); } $fields = explode(',', $_sql); $data = kc_data($fields, $data); $s = $king->openForm('manage.php?action=admin_edt'); //帐号 if ($_adminid) { //update $s .= $king->htmForm($king->lang->get('system/admin/name'), '<input class="k_in w100" type="text" disabled="true" value="' . htmlspecialchars($data['adminname']) . '" />'); $s .= kc_htm_hidden(array('adminname' => $data['adminname'])); } else { $_array = array(array('adminname', 0, 2, 12), array('adminname', 1), array('adminname', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select adminid from %a_admin where adminname='" . $king->db->escape(kc_post('adminname')) . "';"))); $s .= $king->htmForm($king->lang->get("system/admin/name") . ' (2-12)', '<input class="k_in w150" type="text" name="adminname" value="' . htmlspecialchars($data['adminname']) . '" maxlength="12" />', $_array); } //密码 if ($_adminid) { $_array = array(array('pass1', 17, null, 'pass2')); } else { $_array = array(array('pass1', 0, 6, 30), array('pass1', 17, null, 'pass2')); } $s .= $king->htmForm($king->lang->get('system/admin/pass1') . ' (6-30)', '<input class="k_in w150" type="password" name="pass1" maxlength="30" />', $_array); $s .= $king->htmForm($king->lang->get('system/admin/pass2'), '<input class="k_in w150" type="password" name="pass2" maxlength="30" />'); //adminlanguage $s .= $king->htmForm($king->lang->get('system/common/language'), kc_htm_select('adminlanguage', kc_htm_selectlang(), $data['adminlanguage'])); //admineditor $array_dir = kc_f_getdir('system/editor/', 'dir'); $_array = array(); foreach ($array_dir as $val) { $_array[$val] = $val; } $s .= $king->htmForm($king->lang->get('system/common/editor'), kc_htm_select('admineditor', $_array, $data['admineditor'])); //adminmode $_array = array(2 => $king->lang->get('system/admin/mode2'), 1 => $king->lang->get('system/admin/mode1'), 0 => $king->lang->get('system/admin/mode0')); $s .= $king->htmForm($king->lang->get('system/admin/mode'), kc_htm_radio('adminmode', $_array, $data['adminmode'])); //adminlevel if ($king->admin['adminid'] != $_adminid) { $data['adminlevel'] == 'admin' ? $_checkbox = '<input type="checkbox" id="adminlevel" name="adminlevel" value="admin" onclick="javascript:selevel()" checked="checked" />' : ($_checkbox = '<input type="checkbox" id="adminlevel" name="adminlevel" value="admin" onclick="javascript:selevel()" />'); $_array = array('-' . $king->lang->get('system/name') . '-', $king->lang->get('system/level/channel') . '[', '#open_settring' => $king->lang->get('system/common/setting'), '#open_help' => $king->lang->get('system/common/help'), ']', '[', '#resetpass' => $king->lang->get('system/level/resetpass'), ']', '[', '#novice' => $king->lang->get('system/level/novice'), ']', '|', $king->lang->get('system/common/system') . '[', '#systeminfo' => $king->lang->get('system/level/config'), '#systemcache' => $king->lang->get('system/level/clearcache'), '#module' => $king->lang->get('system/level/module'), '#plugin' => $king->lang->get('system/level/plugin'), '#lnk' => $king->lang->get('system/level/lnk'), '#phpinfo' => $king->lang->get('system/level/phpinfo'), '#timingtask' => $king->lang->get('system/level/timingtask'), ']', '|', $king->lang->get('system/level/log') . '[', '#log' => $king->lang->get('system/common/access'), '#log_delete' => $king->lang->get('system/common/del'), ']', '-', $king->lang->get('system/common/filemanage') . '[', '#brow' => $king->lang->get('system/common/access'), '#brow_md' => $king->lang->get('system/common/md'), '#brow_upfile' => $king->lang->get('system/common/upfile'), '#brow_delfile' => $king->lang->get('system/common/delfile'), ']', '|', $king->lang->get('system/level/event') . '[', '#event' => $king->lang->get('system/common/access'), '#event_delete' => $king->lang->get('system/common/del'), ']', '-', $king->lang->get('system/upfile/manage') . '[', '#upfile' => $king->lang->get('system/upfile/access'), '#upfile_edt' => $king->lang->get('system/common/edit'), '#upfile_delete' => $king->lang->get('system/upfile/del'), ']', '-', $king->lang->get('system/bot/title') . '[', '#bot' => $king->lang->get('system/common/access'), '#botedt' => $king->lang->get('system/common/edit'), '#botdel' => $king->lang->get('system/common/del'), ']', '|', $king->lang->get('system/title/conn') . '[', '#conn' => $king->lang->get('system/common/access'), '#conn_edt' => $king->lang->get('system/common/edit'), '#conn_del' => $king->lang->get('system/common/del'), ']'); $module = $king->getModule(); foreach ($module as $val) { $language = is_file(ROOT . $val . '/language/' . $king->admin['adminlanguage'] . '.xml') ? $king->admin['adminlanguage'] : LANGUAGE; $xml = new KC_XML_class(); $xml->load_file($val . '/language/' . $language . '.xml'); $array_kingcms = $xml->xml2array(); $array_access = $array_kingcms['ACCESS']; if ($array_access) { $_array[] = '|'; $_array[] = '|'; $_array[] = '-' . $king->lang->get($val . '/name') . '-'; // kc_error('<pre>'.print_r($array_access,1)); foreach ($array_access as $k => $v) { $v == '|' ? $_array[] = '|' : ($_array[$k] = $v); } } } $_s = '<div id="levels">'; $_s .= kc_htm_checkbox('level', $_array, $data['adminlevel']); $_s .= '</div>'; $s .= $king->htmForm($king->lang->get('system/admin/setlevel'), '<span>' . $_checkbox . '<label for="adminlevel">' . $king->lang->get('system/level/admin') . '</label></span>' . $_s); $s .= "<script>function selevel(){if (\$('#adminlevel').attr('checked')==true){\$('#levels').hide()}"; $s .= "else{\$('#levels').show();}};selevel();</script>"; } //adminlogin $_array = array(array('adminlogin', 0, 5, 100)); $array_value = array('../system/manage.php' => $king->lang->get('system/common/home'), '../portal/manage.php' => $king->lang->get('system/title/list')); $s .= $king->htmForm($king->lang->get('system/admin/login') . ' (5-100)', '<input type="text" name="adminlogin" id="adminlogin" class="k_in w300" value="' . htmlspecialchars($data['adminlogin']) . '" maxlength="100" />' . kc_htm_setvalue('adminlogin', $array_value), $_array); //siteurl $_array = array(array('siteurl', 0, 0, 100)); $s .= $king->htmForm($king->lang->get('system/admin/url') . ' (0-100)', '<input type="text" name="siteurl" id="siteurl" class="k_in w300" value="' . htmlspecialchars($data['siteurl']) . '" maxlength="100" />', $_array, null, kc_help('system/help/lockurl', 350, 150)); $s .= kc_htm_hidden(array('adminid' => $_adminid)); $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { $_sql = 'adminlanguage,admineditor,adminmode,adminlogin,siteurl'; //,admindiymenu if (!$_adminid) { $_sql .= ',adminname'; } $_array_sql = explode(',', $_sql); $_array = array(); foreach ($_array_sql as $val) { $_array[$val] = $data[$val]; } // $_array=array_combine($_array_sql,array_map('post',$_array_sql)); if (kc_post('pass1')) { $_array['adminpass'] = md5(kc_post('pass1')); } if ($king->admin['adminid'] != $_adminid) { if (kc_post('adminlevel') == 'admin') { $_adminlevel = 'admin'; } else { $data['level'][] = 0; /** is_array($data['level']) ? array_push($data['level'],0) : $data['level']=array(0); */ $_adminlevel = implode(',', $data['level']); } $_array['adminlevel'] = $_adminlevel; } if ($_adminid) { $king->db->update('%a_admin', $_array, 'adminid=' . $_adminid); $_nlog = 7; $king->cache->del('system/admin/' . $data['adminname']); } else { // kc_error('<pre>'.print_r($_array,1)); $king->db->insert('%a_admin', $_array); $_nlog = 5; } //写log $king->log($_nlog, 'AdminName:' . $data['adminname']); //更新缓存 $king->cache->rd('system/mainmenu/' . $king->admin['adminid']); $king->cache->del('system/admin/' . $king->admin['adminname']); kc_goto($king->lang->get('system/goto/is'), 'manage.php?action=admin_edt', 'manage.php?action=admin'); } $king->skin->output($king->lang->get('system/title/admin'), king_inc_admin_left(), '', $s); }
function king_edt() { global $king; $king->access('portal_model_edt'); $_htmlcode = ''; $_arraycheck = array(); /** $_isattrib='isshow,ishead,iscommend,isup,isfocus,ishot'; $_sql=$_isattrib.',issearch,modelname,modeltable,klanguage,isid,klistorder,kpageorder,nlocktime,nshowtime,ktemplatesearch,ktemplatepublish'; */ $_sql = 'issearch,modelname,modeltable,klanguage,isid,klistorder,kpageorder,nlocktime,nshowtime,ktemplatesearch,ktemplatepublish,npagenumber,nlistnumber,ispublish1,ispublish2,ktemplatecomment,ncommentnumber'; $modelid = kc_get('modelid'); $fields = explode(',', $_sql); if ($GLOBALS['ismethod'] || $modelid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $_array = array('istag', 'iscontent', 'isshow', 'ispath', 'iscommend', 'iskeyword', 'isdescription', 'isimage', 'isrelate'); foreach ($_array as $_value) { $data[$_value] = 1; } $data['kretitle'] = $king->lang->get('system/common/title'); $data['klanguage'] = $_COOKIE['language']; $data['nlocktime'] = 24; $data['nshowtime'] = 0; $data['isid'] = 1; //默认排序 $data['klistorder'] = 'nup desc,norder desc'; $data['kpageorder'] = 'norder,kid'; //默认显示数 $data['nlistnumber'] = 20; $data['npagenumber'] = 1; $data['ncommentnumber'] = 20; //默认模板 $tpath = $king->config('templatepath'); $tdefa = $king->config('templatedefault'); $ktemplate = $tpath . '/' . $tdefa; $data['ktemplatesearch'] = is_file(ROOT . $ktemplate) ? $ktemplate : ''; $data['ktemplatepublish'] = is_file(ROOT . $ktemplate) ? $ktemplate : ''; $data['ktemplatecomment'] = is_file(ROOT . $ktemplate) ? $ktemplate : ''; } } else { //编辑数据,从数据库读出 $data = $king->db->getRows_one('select ' . $_sql . ' from %s_model where modelid=' . $modelid . ' limit 1;'); $data['modeltable'] = DB_PREFIX . '__' . $data['modeltable']; } $data = kc_data($fields, $data); $s = $king->openForm('manage.model.php?action=edt', $king->lang->get('portal/caption/basic')); //模型名称 $_array = array(array('modelname', 0, 2, 50)); $s .= $king->htmForm($king->lang->get('portal/list/modelname') . ' (2-50)', '<input class="k_in w200" type="text" name="modelname" value="' . htmlspecialchars($data['modelname']) . '" maxlength="50" />', $_array); //数据表名 if (empty($modelid)) { //update $_array = array(array('modeltable', 0, 1, 50), array('modeltable', 1), array('modeltable', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select modelid from %s_model where modeltable='" . $king->db->escape(kc_post('modeltable')) . "';")), array('modeltable', 18, null, $king->portal->holdmodel)); $s .= $king->htmForm($king->lang->get('portal/list/table') . ' (1-50)', '<input class="k_in w200" type="text" name="modeltable" value="' . htmlspecialchars($data['modeltable']) . '" maxlength="50" />', $_array); } else { $s .= $king->htmForm($king->lang->get('portal/list/table') . ' (1-50)', '<input class="k_in w200" type="text" disabled="true" value="' . htmlspecialchars($data['modeltable']) . '" />'); $s .= kc_htm_hidden(array('modeltable' => $data['modeltable'])); } //klanguage $s .= $king->htmForm($king->lang->get('system/common/language'), kc_htm_select('klanguage', kc_htm_selectlang(), $data['klanguage'])); /** //[ATTRIB] $_array_attrib=explode(',',$_isattrib); foreach($_array_attrib as $_value){ $data[$_value]==1 ? $_checked=' checked="checked"' : $_checked=''; $_htmlcode.='<input type="checkbox" value="1" id="'.$_value.'" name="'.$_value.'"'.$_checked.'/>'; $_htmlcode.='<label for="'.$_value.'">'.$king->lang->get('portal/label/attrib/'.$_value).'</label> '; } $s.=$king->htmForm($king->lang->get('portal/label/attrib1'),"<span>$_htmlcode</span>"); */ //加入搜索 $data['issearch'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode = '<span><input type="checkbox" value="1" id="issearch" name="issearch"' . $_checked . '/>'; $_htmlcode .= '<label for="issearch">' . $king->lang->get('portal/label/attrib/issearch') . '</label></span>'; //是否在列表中显示id $data['isid'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= ' <span><input type="checkbox" value="1" id="isid" name="isid"' . $_checked . '/>'; $_htmlcode .= '<label for="isid">' . $king->lang->get('portal/label/attrib/isid') . '</label></span>'; $s .= $king->htmForm($king->lang->get('system/common/option'), $_htmlcode); $s .= $king->splitForm($king->lang->get('portal/caption/all')); //klistorder $array_select = array('nup desc,norder desc' => $king->lang->get('portal/order/list1'), 'nup desc,norder' => $king->lang->get('portal/order/list2'), 'nup desc,nlastdate desc' => $king->lang->get('portal/order/list3'), 'nup desc,nhit desc' => $king->lang->get('portal/order/list4'), 'nup desc,nhitlate desc' => $king->lang->get('portal/order/list5'), 'nup desc,ndigg1 desc' => $king->lang->get('portal/order/list6'), 'nup desc,ndigg0 desc' => $king->lang->get('portal/order/list7'), 'nup desc,ndigg desc' => $king->lang->get('portal/order/list8'), 'nup desc,nprice asc' => $king->lang->get('portal/order/list9'), 'nup desc,nprice desc' => $king->lang->get('portal/order/list10')); $array = array(array('klistorder', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('portal/label/listorder'), kc_htm_input('klistorder', $data['klistorder'], 255, 200), $array, '', kc_htm_setvalue('klistorder', $array_select, 300, 1) . kc_help('portal/help/listorder', 500, 400)); //nlistnumber $array = array(array('nlistnumber', 0, 1, 3), array('nlistnumber', 2), array('nlistnumber', 16, $king->lang->get('portal/check/listnumber'), 1, 100)); $array_select = array(10 => 10, 20 => 20, 25 => 25, 30 => 30); $s .= $king->htmForm($king->lang->get('portal/label/mlistnumber'), kc_htm_input('nlistnumber', $data['nlistnumber'], 3, 50), $array, '', kc_htm_setvalue('nlistnumber', $array_select, 200)); //kpageorder $array_select = array('norder,kid' => $king->lang->get('portal/order/page1'), 'norder desc,kid desc' => $king->lang->get('portal/order/page2'), 'kid' => $king->lang->get('portal/order/page3'), 'kid desc' => $king->lang->get('portal/order/page4'), 'kid1,kid' => $king->lang->get('portal/order/page5'), 'kid1,kid desc' => $king->lang->get('portal/order/page6'), 'kid1,isok desc,kid desc' => $king->lang->get('portal/order/page7')); $array = array(array('kpageorder', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('portal/label/pageorder'), kc_htm_input('kpageorder', $data['kpageorder'], 255, 200), $array, '', kc_htm_setvalue('kpageorder', $array_select, 300, 1) . kc_help('portal/help/pageorder', 500, 400)); //npagenumber $array = array(array('npagenumber', 0, 1, 3), array('npagenumber', 2), array('npagenumber', 16, $king->lang->get('portal/check/pagenumber'), 1, 100)); $array_select = array(1 => 1, 10 => 10, 20 => 20, 30 => 30); $s .= $king->htmForm($king->lang->get('portal/label/mpagenumber'), kc_htm_input('npagenumber', $data['npagenumber'], 3, 50), $array, '', kc_htm_setvalue('npagenumber', $array_select, 200)); //ispublish1 $_array_radio = array(0 => $king->lang->get('portal/label/pub0'), 1 => $king->lang->get('portal/label/pub1'), 2 => $king->lang->get('portal/label/pub2')); $s .= $king->htmForm($king->lang->get('portal/label/mpublish1'), kc_htm_radio('ispublish1', $_array_radio, $data['ispublish1'])); //ispublish2 $_array_radio = array(0 => $king->lang->get('portal/label/pub0'), 1 => $king->lang->get('portal/label/pub1'), 2 => $king->lang->get('portal/label/pub2')); $s .= $king->htmForm($king->lang->get('portal/label/mpublish2'), kc_htm_radio('ispublish2', $_array_radio, $data['ispublish2'])); //nlocktime $array_value = array(24 => $king->lang->get('system/time/oneday'), 168 => $king->lang->get('system/time/hebdomad'), 360 => $king->lang->get('system/time/halfmoon'), 0 => $king->lang->get('system/time/always')); $_array = array(array('nlocktime', 0, 1, 10)); $s .= $king->htmForm($king->lang->get('portal/label/locktime') . ' (' . $king->lang->get('portal/label/unit') . ')', '<input class="k_in w100" type="text" name="nlocktime" id="nlocktime" value="' . htmlspecialchars($data['nlocktime']) . '" maxlength="10" />', $_array, null, kc_htm_setvalue('nlocktime', $array_value) . kc_help('portal/help/locktime')); //nshowtime $array_value = array(168 => $king->lang->get('system/time/hebdomad'), 360 => $king->lang->get('system/time/halfmoon'), 720 => $king->lang->get('system/time/jan'), 4368 => $king->lang->get('system/time/halfyear'), 0 => $king->lang->get('system/time/always')); $_array = array(array('nshowtime', 0, 1, 10)); $s .= $king->htmForm($king->lang->get('portal/label/showtime') . ' (' . $king->lang->get('portal/label/unit') . ')', '<input class="k_in w100" type="text" name="nshowtime" id="nshowtime" value="' . htmlspecialchars($data['nshowtime']) . '" maxlength="10" />', $_array, null, kc_htm_setvalue('nshowtime', $array_value, 200) . kc_help('portal/help/showtime')); //ktemplatepublish $_array = array(array('ktemplatepublish', 0, 5, 255), array('ktemplatepublish', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatepublish') . ' (5-255)', '<input class="k_in w400" type="text" id="ktemplatepublish" name="ktemplatepublish" value="' . htmlspecialchars($data['ktemplatepublish']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatepublish', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455)); //ktemplatesearch $_array = array(array('ktemplatesearch', 0, 5, 255), array('ktemplatesearch', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatesearch') . ' (5-255)', '<input class="k_in w400" type="text" id="ktemplatesearch" name="ktemplatesearch" value="' . htmlspecialchars($data['ktemplatesearch']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatesearch', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455)); //ktemplatecomment $_array = array(array('ktemplatecomment', 0, 5, 255), array('ktemplatecomment', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatecomment') . ' (5-255)', '<input class="k_in w400" type="text" id="ktemplatecomment" name="ktemplatecomment" value="' . htmlspecialchars($data['ktemplatecomment']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatecomment', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455)); //ncommentnumber $array = array(array('ncommentnumber', 0, 1, 3), array('ncommentnumber', 2), array('ncommentnumber', 16, $king->lang->get('portal/check/commentnumber'), 1, 100)); $array_select = array(10 => 10, 20 => 20, 25 => 25, 30 => 30); $s .= $king->htmForm($king->lang->get('portal/label/mcommentnumber'), kc_htm_input('ncommentnumber', $data['ncommentnumber'], 3, 50), $array, '', kc_htm_setvalue('ncommentnumber', $array_select, 200)); $s .= kc_htm_hidden(array('modelid' => $modelid)); $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { /** $_array=array(); $_array_sql=explode(',',$_isattrib.',issearch,isid'); foreach($_array_sql as $_value){ $data[$_value]==1 ? $_val=1 : $_val=0; $_array+=array($_value=>$_val); } */ $_array = array('issearch' => $data['issearch'] ? 1 : 0, 'isid' => $data['isid'] ? 1 : 0, 'ispublish1' => $data['ispublish1'], 'ispublish2' => $data['ispublish2'], 'modelname' => $data['modelname'], 'klanguage' => $data['klanguage'], 'klistorder' => $data['klistorder'], 'kpageorder' => $data['kpageorder'], 'npagenumber' => $data['npagenumber'], 'nlistnumber' => $data['nlistnumber'], 'nshowtime' => $data['nshowtime'], 'nlocktime' => $data['nlocktime'], 'ktemplatesearch' => $data['ktemplatesearch'], 'ktemplatepublish' => $data['ktemplatepublish'], 'ktemplatecomment' => $data['ktemplatecomment'], 'ncommentnumber' => $data['ncommentnumber']); //添加&更新数据 if (!empty($modelid)) { $king->db->update('%s_model', $_array, 'modelid=' . $modelid); $_nlog = 7; } else { $_array += array('modeltable' => strtolower($data['modeltable']), 'norder' => $king->db->neworder('%s_model')); $_nlog = 5; $_newid = $king->db->insert('%s_model', $_array); //__[modeltable] $king->portal->installmodeltable($data['modeltable']); $_array_sql = array('ktitle', 'ksubtitle', 'kimage', 'kcontent', 'kkeywords', 'ktag', 'kdescription', 'kpath', 'krelate', 'nprice', 'nnumber', 'nweight', 'nattrib'); //补充循环添加的内容。 $i = 0; foreach ($_array_sql as $val) { $_array = array('modelid' => $_newid, 'ktitle' => $king->lang->get('system/common/' . substr($val, 1)), 'kfield' => $val, 'norder' => $i + 1); if ($val == 'kcontent') { //内容设置长度 $_array['nsizemin'] = 10; $_array['nsizemax'] = 999999; $_array['nstylewidth'] = 780; $_array['nstyleheight'] = 360; } $i++; $new_kid = $king->db->insert('%s_field', $_array); //循环最后一个获得的值为nattrib的newid } // $_array_sql = array('show', 'head', 'commend', 'up', 'focus', 'hot'); foreach ($_array_sql as $val) { $_array = array('modelid' => $_newid, 'ktitle' => $king->lang->get('portal/label/attrib/is' . $val), 'kfield' => 'n' . $val, 'kid1' => $new_kid, 'norder' => $i + 1, 'isuser1' => 0, 'isuser2' => 0, 'islist' => 1); $i++; $king->db->insert('%s_field', $_array); } } $king->cache->del('portal/model/model' . $modelid); $king->cache->del('portal/model/name'); $king->cache->del('portal/model/table'); /**/ if (!($res = $king->db->getRows("select listid from %s_list where modelid={$modelid};"))) { $res = array(); } foreach ($res as $rs) { //更新列表信息 $king->portal->lastUpdated($rs['listid'], 'list'); $king->cache->del('portal/list/' . $rs['listid']); } $king->cache->del('portal/model'); $king->cache->del('portal/model/table'); $king->cache->del('portal/model/name'); /**/ //写log $king->log($_nlog, 'Model:' . $data['modelname']); kc_goto($king->lang->get('system/goto/is'), 'manage.model.php?action=edt', 'manage.model.php'); } list($left, $right) = king_inc_list(); $king->skin->output($king->lang->get('portal/title/model' . ($modelid ? 'edt' : 'add')), $left, $right, $s); }
function king_edt() { global $king; $_htmlcode = ''; $_arraycheck = array(); $_array_varchar = $king->portal->array_varchar; //varchar类型的字段 $king->access('portal_field_edt'); $_sql = 'ktitle,kfield,modelid,ntype,nvalidate,nsizemin,nsizemax,kdefault,koption,nstylewidth,nstyleheight,issearch,isadmin1,isadmin2,isuser1,isuser2,islist,khelp,isrelate,istitle'; $modelid = kc_get('modelid'); $kid = kc_get('kid', 2); $type = kc_get('type', 2); $kid1 = kc_get('kid1', 2); if ($type == '') { $type = 1; } $at_array = array(1, 4, 5, 7, 12, 13, 14); //允许添加的子字段 //ntype参数验证 if ($kid1 && !in_array($type, $at_array) || !in_array($type, $king->portal->ntype)) { kc_error($king->lang->get('system/error/param') . kc_clew(__FILE__, __LINE__)); } $fields = explode(',', $_sql); if ($GLOBALS['ismethod'] || $kid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 if (in_array($type, $_array_varchar)) { $data['nsizemin'] = 1; $data['nsizemax'] = 255; } else { $data['nsizemin'] = 1; $data['nsizemax'] = 999999; } $data['nstylewidth'] = 400; $data['nstyleheight'] = 70; $data['isadmin1'] = 1; $data['isadmin2'] = 1; $data['isuser1'] = 1; $data['isuser2'] = 1; $data['istitle'] = 1; if ($type == 12) { $data['nvalidate'] = 13; $data['kdefault'] = '#000000'; $data['nsizemax'] = 7; } if ($type == 14) { $data['nstylewidth'] = 100; $data['nsizemax'] = 10; $data['kdefault'] = 'TODAY'; $data['nvalidate'] = 9; //数据类型设置为日期类型 $data['nsizemin'] = 10; $data['nsizemax'] = 10; } } else { if ($kid != '') { $_res = $king->db->getRows_one('select ntype from %s_field where kid=' . $kid); //上面kc_get('kid')中有数据类型验证,无安全隐患 $_res ? $type = $_res['ntype'] : kc_error($king->lang->get('system/error/not')); } } } else { //编辑数据,从数据库读出 if ($data = $king->db->getRows_one('select ' . $_sql . ' from %s_field where kid=' . $kid . ' limit 1;')) { $type = $data['ntype']; $modelid = $data['modelid']; } else { kc_error($king->lang->get('system/error/param') . '<br/>select ' . $_sql . ' from %s_field where kid=' . $kid . ' limit 1;<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__); } } $data = kc_data($fields, $data); $model = $king->portal->infoModel($modelid); $s = '<script type="text/javascript">'; $s .= 'function jumpmenu(obj){eval("parent.location=\'manage.field.php?action=edt&modelid=' . $modelid . '&kid1=' . $kid1 . '&type="+obj.options[obj.selectedIndex].value+"\'");}'; $s .= '</script>'; $s .= $king->openForm('manage.field.php?action=edt'); //字段类型 $_array = array(array('ntype', 2)); if ($kid) { $s .= $king->htmForm($king->lang->get('portal/list/ntype'), kc_htm_select('type', array($type => $king->lang->get('portal/type/n' . $type)), '', ' disabled="true"'), $_array); } else { $_array_select = array(); $array_type = $kid1 ? $at_array : $king->portal->ntype; foreach ($array_type as $val) { $_array_select[$val] = $king->lang->get('portal/type/n' . $val); } $s .= $king->htmForm($king->lang->get('portal/list/ntype'), kc_htm_select('type', $_array_select, $type, ' onChange="jumpmenu(this);"'), $_array); } //子项目中是否显示标题 if ($kid1 && $type != 13) { $checked = $data['istitle'] == 1 ? ' checked="checked"' : ''; $s_istitle = $kid1 ? '<input' . $checked . ' type="checkbox" id="istitle" name="istitle" value="1"/><label for="istitle">' . $king->lang->get('portal/label/showtitle') . '</label>' : ''; } else { $s_istitle = ''; } //字段标题 $_array = array(array('ktitle', 0, 2, 50)); $s .= $king->htmForm($king->lang->get('portal/list/ktitle') . ' (2-50)', '<input class="k_in w200" type="text" name="ktitle" value="' . htmlspecialchars($data['ktitle']) . '" maxlength="50" />' . $s_istitle, $_array); if ($type != 99) { //字段名 if ($kid) { //update $s .= $king->htmForm($king->lang->get('portal/list/kfield'), '<input class="k_in w200" type="text" disabled="true" value="' . htmlspecialchars($data['kfield']) . '" />'); $s .= kc_htm_hidden(array('kfield' => $data['kfield'])); } else { $_array = array(array('kfield', 0, 1, 50), array('kfield', 4), array('kfield', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select kid from %s_field where kfield='k_" . $king->db->escape(kc_post('kfield')) . "' and modelid={$modelid};"))); $s .= $king->htmForm($king->lang->get('portal/list/kfield') . ' (1-50)', '<input class="k_in w200" type="text" name="kfield" value="' . htmlspecialchars($data['kfield']) . '" maxlength="50" />', $_array); } //数据类型 if (in_array($type, array(1, 14))) { $array = array(0, 1, 2, 22, 3, 4, 5, 6, 7, 8, 9, 13); $_array_select = array(); foreach ($array as $val) { $_array_select += array($val => $king->lang->get('portal/validate/n' . $val)); } $s .= $king->htmForm($king->lang->get('portal/list/nvalidate'), kc_htm_select('nvalidate', $_array_select, $data['nvalidate']), array(array('nvalidate', 2))); } //长度 if (!in_array($type, array(0, 4, 5, 6, 7, 12, 13)) || $data['kfield'] == 'kcontent') { //系统标签和颜色值无需设置长度 $_size = '<input class="k_in w50" type="text" name="nsizemin" id="nsizemin" value="' . htmlspecialchars($data['nsizemin']) . '" maxlength="6" />'; $_size .= ' - <input class="k_in w100" type="text" name="nsizemax" id="nsizemax" value="' . htmlspecialchars($data['nsizemax']) . '" maxlength="11" />'; $_array = array(array('nsizemin', 2), array('nsizemax', 2), array('nsizemin', 0, 1, 6), array('nsizemax', 0, 1, 11)); if (in_array($type, $_array_varchar)) { $_lang = 'nsize'; $_array[] = array('nsizemin', 16, $king->lang->get('portal/check/nsize1'), 0, 255); $_array[] = array('nsizemax', 16, $king->lang->get('portal/check/nsize2'), 1, 255); } else { $_lang = 'nsizetext'; } $s .= $king->htmForm($king->lang->get('portal/label/' . $_lang), $_size, $_array); } else { $s .= kc_htm_hidden(array('nsizemin' => $data['nsizemin'], 'nsizemax' => $data['nsizemax'])); } //默认值 if (in_array($type, array(1, 4, 5, 6, 7, 8, 10))) { $_array = array(array('kdefault', 0, 0, 255)); $str = '<input class="k_in w400" type="text" id="kdefault" name="kdefault" value="' . htmlspecialchars($data['kdefault']) . '" maxlength="255" />'; /**/ if (in_array($type, array(8))) { $str .= kc_f_brow('kdefault', $king->config('uppath') . '/image', 0); } if (in_array($type, array(10))) { $str .= kc_f_brow('kdefault', $king->config('uppath') . '/file', 1); } /**/ $s .= $king->htmForm($king->lang->get('portal/label/kdefault') . ' (0-255)', $str, $_array); } elseif (in_array($type, array(12))) { //颜色 $_array = array(array('kdefault', 0, 7, 7), array('kdefault', 13)); $str = '<input class="k_in k_color" type="text" id="kdefault" name="kdefault" value="' . htmlspecialchars($data['kdefault']) . '" maxlength="7" ' . (kc_validate($data['kdefault'], 13) ? ' style="background:' . $data['kdefault'] . '"' : '') . '/>'; $s .= $king->htmForm($king->lang->get('portal/label/kdefault'), $str, $_array, null, kc_f_color('kdefault')); } elseif (in_array($type, array(14))) { $array = array('TODAY' => $king->lang->get('system/time/today')); $_array = array(array('kdefault', 0, 0, 20)); $s .= $king->htmForm($king->lang->get('portal/label/kdefault'), kc_htm_input('kdefault', $data['kdefault']), $_array, 0, kc_htm_setvalue('kdefault', $array)); } elseif (in_array($type, array(13))) { $array = array(1 => $king->lang->get('system/common/yes'), 0 => $king->lang->get('system/common/no')); $s .= $king->htmForm($king->lang->get('portal/label/kdefault'), kc_htm_radio('kdefault', $array, $data['kdefault'])); } else { $s .= kc_htm_hidden(array('kdefault' => '')); } } //end if($type==99) //选项 if (in_array($type, array(4, 5, 6, 7))) { $array = array(array('koption', 0, 1, 999999)); $_default = '<table class="k_side" cellspacing="0"><tr><td><textarea name="koption" class="k_in w400" cols="130" rows="7">' . htmlspecialchars($data['koption']) . '</textarea></td>'; $_default .= '<td>' . kc_help('portal/help/koption', 360, 310); $_default .= '</td></tr></table>'; $s .= $king->htmForm($king->lang->get('portal/label/koption'), $_default, $array); } elseif (in_array($type, array(1, 8, 10)) || in_array($data['kfield'], array('nprice', 'nnumber', 'nweight'))) { $array = array(array('koption', 0, 0, 999999)); $_default = '<table class="k_side" cellspacing="0"><tr><td><textarea name="koption" class="k_in w400" cols="130" rows="7">' . htmlspecialchars($data['koption']) . '</textarea></td>'; $_default .= '<td>' . kc_help('portal/help/kdefault', 360, 260); $_default .= '</td></tr></table>'; $s .= $king->htmForm($king->lang->get('portal/label/kdefault1'), $_default, $array); } else { $s .= kc_htm_hidden(array('koption' => '')); } //尺寸 if (in_array($type, array(2, 3, 6, 9, 11)) || $data['kfield'] == 'kcontent') { //长X宽 $_size = '<input class="k_in w50" type="text" name="nstylewidth" id="nstylewidth" value="' . htmlspecialchars($data['nstylewidth']) . '" maxlength="4" />'; $_size .= ' X <input class="k_in w50" type="text" name="nstyleheight" id="nstyleheight" value="' . htmlspecialchars($data['nstyleheight']) . '" maxlength="4" />(px)'; $_array = array(array('nstylewidth', 2), array('nstyleheight', 2), array('nstylewidth', 0, 1, 4), array('nstyleheight', 0, 1, 4)); $s .= $king->htmForm($king->lang->get('portal/label/nstyle'), $_size, $_array); } elseif (in_array($type, array(1, 8, 10))) { //长 $_size = '<input class="k_in w50" type="text" name="nstylewidth" id="nstylewidth" value="' . htmlspecialchars($data['nstylewidth']) . '" maxlength="4" />'; $_array = array(array('nstylewidth', 2), array('nstyleheight', 2), array('nstylewidth', 0, 1, 4), array('nstyleheight', 0, 1, 4)); $s .= kc_htm_hidden(array('nstyleheight' => 0)); $s .= $king->htmForm($king->lang->get('portal/label/nstylewidth'), $_size, $_array, '', kc_htm_setvalue('nstylewidth', array(50 => '50 px', 100 => '100 px', 200 => '200 px', 400 => '400 px'))); } else { $s .= kc_htm_hidden(array('nstylewidth' => 0, 'nstyleheight' => 0)); } /** //上传文件类型 if(in_array($type,array(8))){ $_array=array( array('nupfile',0,0,255), array('nupfile',2), ); $s.=$king->htmForm($king->lang->get('portal/label/nupfile'),'<input class="k_in w300" type="text" name="nupfile" value="'.htmlspecialchars($data['nupfile']).'" maxlength="255" />',$_array); }else{ $s.=kc_htm_hidden(array('nupfile'=>'')); } /**/ $_htmlcode = ''; //加入搜索和关联选项 if (in_array($type, array(1, 2))) { $data['issearch'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode = '<span><input type="checkbox" value="1" id="issearch" name="issearch"' . $_checked . '/>'; $_htmlcode .= '<label for="issearch">' . $king->lang->get('portal/label/attrib/issearch') . '</label></span>'; // $s.=$king->htmForm($king->lang->get('system/common/option'),$_htmlcode); } else { $s .= kc_htm_hidden(array('issearch' => 0)); } if (in_array($type, array(1, 4, 5))) { $data['isrelate'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= ' <span><input type="checkbox" value="1" id="isrelate" name="isrelate"' . $_checked . '/>'; $_htmlcode .= '<label for="isrelate">' . $king->lang->get('portal/label/attrib/isrelate1') . '</label></span>'; // $s.=$king->htmForm($king->lang->get('system/common/option'),$_htmlcode); } else { $s .= kc_htm_hidden(array('issearch' => 0)); } if ($_htmlcode) { $s .= $king->htmForm($king->lang->get('system/common/option'), $_htmlcode); } //是否显示 if ($type == 0 && $data['kfield'] == 'ktitle' || $type == 99) { $s .= kc_htm_hidden(array('isadmin1' => 1, 'isadmin2' => 1, 'isuser1' => 1, 'isuser2' => 1)); } else { $_htmlcode = '<span>'; $data['isadmin1'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= '<input type="checkbox" value="1" id="isadmin1" name="isadmin1"' . $_checked . '/>'; $_htmlcode .= '<label for="isadmin1">' . $king->lang->get('portal/label/attrib/isadmin1') . '</label>'; $data['isadmin2'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= '<input type="checkbox" value="1" id="isadmin2" name="isadmin2"' . $_checked . '/>'; $_htmlcode .= '<label for="isadmin2">' . $king->lang->get('portal/label/attrib/isadmin2') . '</label>'; $data['isuser1'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= '<input type="checkbox" value="1" id="isuser1" name="isuser1"' . $_checked . '/>'; $_htmlcode .= '<label for="isuser1">' . $king->lang->get('portal/label/attrib/isuser1') . '</label>'; $data['isuser2'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= '<input type="checkbox" value="1" id="isuser2" name="isuser2"' . $_checked . '/>'; $_htmlcode .= '<label for="isuser2">' . $king->lang->get('portal/label/attrib/isuser2') . '</label>'; if (!in_array($type, array(0, 2, 3, 9, 11))) { $data['islist'] == 1 ? $_checked = ' checked="checked"' : ($_checked = ''); $_htmlcode .= '<input type="checkbox" value="1" id="islist" name="islist"' . $_checked . '/>'; $_htmlcode .= '<label for="islist">' . $king->lang->get('portal/label/attrib/islist') . '</label>'; } $_htmlcode .= '</span>'; $s .= $king->htmForm($king->lang->get('portal/label/attrib/isshow'), $_htmlcode); } //khelp if ($type != 0 && !$kid1) { $s .= $king->htmForm($king->lang->get('portal/list/khelp'), '<table class="k_side" cellspacing="0"><tr><td><textarea class="k_in w400" rows="5" name="khelp" >' . htmlspecialchars($data['khelp']) . '</textarea></td><td>' . kc_help('portal/help/khelp', 300, 160) . '</td></tr></table>'); } $s .= kc_htm_hidden(array('modelid' => $modelid, 'kid' => $kid, 'ntype' => $type, 'kid1' => $kid1)); $s .= $king->closeForm('save'); //数据处理 if ($GLOBALS['ischeck']) { $_sql = 'ktitle,nsizemin,nsizemax,kdefault,koption,nstylewidth,nstyleheight,khelp'; $_array = array(); $_array_sql = explode(',', $_sql); foreach ($_array_sql as $val) { if (isset($_POST[$val])) { $_array[$val] = $data[$val]; } } $array_is = array('issearch', 'isadmin1', 'isadmin2', 'isuser1', 'isuser2', 'islist', 'isrelate', 'istitle'); foreach ($array_is as $val) { $_array[$val] = $data[$val] == 1 ? 1 : 0; } $_array['nvalidate'] = $data['nvalidate'] ? $data['nvalidate'] : 0; //添加&更新数据 if ($kid) { //update if (!($resmt = $king->db->getRows_one("select modeltable from %s_model where modelid={$modelid};"))) { kc_error($king->lang->get('system/error/param') . '<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__); } $_modeltable = $resmt['modeltable']; if (in_array($type, $_array_varchar)) { //varchar类型 $king->db->query('alter table %s__' . $king->db->escape($_modeltable) . ' modify ' . $king->db->escape(kc_post('kfield')) . ' varchar(' . $_array['nsizemax'] . ') null;'); } $king->db->update('%s_field', $_array, 'kid=' . $kid); $_nlog = 7; } else { $_array += array('ktitle' => $data['ktitle'], 'kfield' => $data['kfield'] ? 'k_' . $data['kfield'] : '', 'modelid' => $data['modelid'], 'ntype' => $data['ntype'], 'norder' => $king->db->neworder('%s_field', 'modelid=' . $modelid), 'khelp' => $data['khelp'], 'kid1' => $kid1 ? $kid1 : 0); if (in_array($data['ntype'], array('10,11'))) { //当文件上传字段的时候,才可以上传文件 $_array += array('ntype' => 1); } $king->db->insert('%s_field', $_array); $_nlog = 5; $res = $king->db->getRows_one("select modeltable from %s_model where modelid={$modelid};"); $_modeltable = $res['modeltable']; if (in_array($type, $_array_varchar)) { //varchar类型 $king->db->query('alter table %s__' . $king->db->escape($_modeltable) . ' add k_' . $king->db->escape($data['kfield']) . ' varchar(' . $_array['nsizemax'] . ') null;'); } elseif (in_array($type, array(13))) { //tinyint $king->db->query('alter table %s__' . $king->db->escape($_modeltable) . ' add k_' . $king->db->escape($data['kfield']) . ' tinyint(1) not null default 0;'); } elseif ($type == 99) { //组选项不需要字段 } else { $king->db->query('alter table %s__' . $king->db->escape($_modeltable) . ' add k_' . $king->db->escape($data['kfield']) . ' text null;'); } } $king->cache->del('portal/model/model' . $modelid); $king->cache->rd('data/_' . $_modeltable); //写log $king->log($_nlog, 'Field:' . $data['ktitle']); kc_goto($king->lang->get('system/goto/is'), 'manage.field.php?action=edt&modelid=' . $modelid . '&kid1=' . $kid1, 'manage.field.php?modelid=' . $modelid . '&kid1=' . $kid1); } list($left, $right) = king_inc_list(); $king->skin->output($king->lang->get('portal/title/field' . ($kid ? 'edt' : 'add')) . "({$model['modelname']})", $left, $right, $s); }