/** 搜索结果显示页 ########## 搜索结果和所属网站做绑定,根据URL判断 ########## */ function king_search() { global $king; $king->Load('portal'); //获得modelid if (!($modelTables = getModelTables())) { $king->portal->error($king->lang->get('portal/common/error'), $king->lang->get('portal/error/notmodel')); } $currentArray = current($modelTables); $modelid = isset($_GET['modelid']) ? $_GET['modelid'] : $currentArray['modelid']; $model = $king->portal->infoModel($modelid); $query = kc_get('query', 0); $querys = preg_split("/[,\\*\\%\\.\\(\\)\\'\\`><\\}\\{ ]/", $query); $querys = array_diff($querys, array('')); $q = implode("%' or ktitle like '%", $querys); if (isset($q[0])) { $q = " and (ktitle like '%" . $q . "%')"; } if (is_array($model['field']['issearch'])) { foreach ($model['field']['issearch'] as $key => $val) { $getVal = kc_get(substr($key, 1), 0); if (isset($getVal[0])) { $q .= " and {$key}='" . $king->db->escape($getVal) . "'"; } } } foreach ($model['field']['id'] as $val) { $getVal = kc_val($_GET, $val); //kc_get($val,2); if (isset($getVal[0])) { if (kc_validate($getVal, 2)) { $q .= " and {$val}='{$getVal}'"; } else { $q .= " and {$val} in ({$getVal})"; } } } $pid = isset($_GET['pid']) ? kc_get('pid', 2, 1) : 1; $rn = isset($_GET['rn']) ? kc_get('rn', 2, 1) : 20; if ($rn > 100) { $rn = 100; } $tmp = new KC_Template_class($model['ktemplatesearch'], $king->config('templatepath') . '/inside/search/' . strtolower($model['modeltable']) . '[page].htm'); $tmp->assign('type', 'search'); $tmp->assign('pid', $pid); $tmp->assign('rn', $rn); $tmp->assign('search', $q); //传递搜索条件,也就是where条件 $tmp->assign('modelid', $modelid); //传递模型类型 // $tmp->assign('siteid');//这个还得获取 $tmp->assign('title', $king->lang->get('system/common/search')); echo $tmp->output(); }
function king_ajax_openlist() { global $king; $king->access('portal'); $is = kc_get('is', 2, 1); $space = kc_get('space', 2, 1); $ID = kc_get('ID', 4, 1); $listid = substr($ID, 4); //获得listid if (!kc_validate($listid, 2)) { kc_error($king->lang->get('system/error/param')); } $s = kc_icon($is ? 'l1' : 'k1'); $js = "\$('#{$ID}').attr('rel','{CMD:\\'openlist\\',is:" . (1 - $is) . ",ID:\\'{$ID}\\',IS:2,listid:{$listid},space:{$space}}');"; if ($is) { if ($res = $king->db->getRows("select listid,isexist from %s_list where listid1={$listid} order by norder desc,listid desc;")) { $array = array(); $isopen = ''; if (isset($_COOKIE['portal_isopen'])) { $array = explode(',', $_COOKIE['portal_isopen']); $isopen = $_COOKIE['portal_isopen'] . (in_array($listid, $array) ? '' : ',' . $listid); } else { $isopen = $listid; } foreach ($res as $rs) { $info = $king->portal->infoList($rs['listid']); $str = $king->tdList(array($info['listid'], $info['modelid'], $info['klistname'], kc_getlang($info['klanguage']), $space + 1, $info['isexist'], $info['ncount'], $info['ncountall'], addslashes($king->portal->pathList($info))), 2); $js .= "\$('#tr_{$listid}').after({$str});\$.kc_ready('#tr_{$info['listid']}');"; if ($rs['isexist'] == 1 && in_array($rs['listid'], $array)) { $js .= "\$.kc_ajax('{CMD:\\'openlist\\',is:1,ID:\\'ico_{$rs['listid']}\\',IS:2,listid:{$rs['listid']},space:" . ($space + 1) . "}');"; } unset($info); } } else { //当没有下级栏目的时候,删掉 $king->cache->del('portal/list/' . $listid); kc_ajax('', kc_icon('')); } } else { $js .= "tr_remove({$listid},{$space});"; //\$('#tr_{$listid} ~ tr').remove(); $array = explode(',', $_COOKIE['portal_isopen']); $array = array_diff($array, array($listid)); //删掉当前的listid $isopen = implode(',', $array); } kc_setCookie('portal_isopen', $isopen, 86400 * 366); //写isopen值 kc_ajax('', $s, '', $js); }
function king_ajax_bind_edt() { global $king; $king->access('block_edt'); $ntype = kc_post('ntype', 2, 1); $bid = kc_post('bid'); $kcontent = kc_post('kcontent'); $kid = kc_post('kid'); $kid1 = kc_post('kid1', 2, 1); //bid if (!isset($bid[0])) { kc_error($king->lang->get('block/error/bid', 0)); } if (!kc_validate($bid, 2)) { kc_error($king->lang->get('block/error/bid', 1)); } //kcontent if (!isset($kcontent[0])) { kc_error($king->lang->get('block/error/name', 3)); } /** 补充相同验证 ntype bid */ if (empty($kid)) { //insert //验证重复 if ($king->db->getRows_one("select kid from %s_block where kid1={$kid1} and ntype={$ntype} and bid={$bid}")) { kc_error($king->lang->get('block/error/bind')); } $block = $king->block->infoBlock($kid1); $array = array('kname' => $block['kname'], 'kcontent' => $kcontent, 'kid1' => $kid1, 'ntype' => $ntype, 'bid' => $bid, 'norder' => $king->db->neworder('%s_block')); $king->db->insert('%s_block', $array); $cmd = 'add'; $url = "<a href=\"manage.php?action=edt&kid={$kid1}\">" . $king->lang->get('system/common/enter') . "</a>"; } else { //kid $kid = kc_post('kid', 2, 1); //验证重复 if ($king->db->getRows_one("select kid from %s_block where kid1={$kid1} and ntype={$ntype} and bid={$bid} and kid<>{$kid}")) { kc_error($king->lang->get('block/error/bind')); } $array = array('kcontent' => $kcontent, 'ntype' => $ntype, 'bid' => $bid); $king->db->update('%s_block', $array, "kid={$kid}"); $king->cache->del("block/info/{$kid1}"); $cmd = 'edt'; $url = 0; } kc_ajax('OK', '<p class="k_ok">' . $king->lang->get("block/ok/{$cmd}") . '</p>', $url); //编辑成功后返回的地址 }
public function __construct() { $cookie = kc_cookie('userauth'); $cookiePass = substr($cookie, 0, 32); $ischeck = true; //是否审核cookie $GLOBALS['db'] = new db(); global $db; if (empty($cookie) && !empty($_GET['jsoncallback']) && !empty($_GET['USERID']) && !empty($_GET['SIGN'])) { $get_userid = $_GET['USERID']; $get_sign = $_GET['SIGN']; $sign = md5($get_userid . SITEURL . kc_config('system.salt')); $userid = $sign == $get_sign ? $get_userid : 0; $ischeck = false; //$userid=$get['USERID']; } else { $userid = substr($cookie, 32); } if (!kc_validate($userid, 2)) { $userid = 0; } if (empty($userid)) { $user = array('userpass' => 'x', 'openid' => 'xx'); } else { $user = $db->getRows_one('%s_user', '*', 'userid=' . $userid); if (empty($user)) { $user = array('userpass' => 'x', 'openid' => 'xx'); } } //用户已登录 if (md5($user['userpass']) == $cookiePass || $ischeck == false || md5($user['openid']) == $cookiePass) { //更新在线时间 $zx = time() - $user['datezx']; if ($zx < 300) { $array = array('[zaixian]' => 'zaixian+' . $zx, 'datezx' => time()); } else { $array = array('datezx' => time()); } $db->update('%s_user', $array, 'userid=' . $userid); unset($user['userpass']); $user['islogin'] = true; } else { $user = array('ismanage' => 0, 'userid' => 0, 'username' => '[匿名]', 'islogin' => false, 'name' => '', 'tel' => '', 'email' => '', 'msn' => '', 'qq' => '', 'userstatu' => false); } $this->info = $user; unset($user); return $this->info; }
public function __construct() { //当前页数 $pid = isset($_GET['pid']) ? $_GET['pid'] : 1; $rn = isset($_GET['rn']) ? $_GET['rn'] : 20; $this->pid = kc_validate($pid, 2) ? $pid : 1; if ($this->pid == 0) { $this->pid = 1; } //每页显示数 $this->rn = kc_validate($rn, 2) ? $rn : 20; if ($this->rn > 100) { $this->rn = 100; } //限制 rn 最大值为100 }
function king_ajax_add() { global $king; $fbtime = kc_cookie("fbtime"); //获得上次操作时间 $ktitle = kc_post('ktitle'); $kname = kc_post('kname'); $kemail = kc_post('kemail'); $kphone = kc_post('kphone'); $kqq = kc_post('kqq'); $kcontent = kc_post('kcontent'); //check ktitle if (!isset($ktitle[1]) || strlen($ktitle) > 50) { kc_error($king->lang->get('feedback/error/name', 0)); } //check kname if (!isset($kname[1]) || strlen($kname) > 30) { kc_error($king->lang->get('feedback/error/name', 1)); } //check kemail if (!kc_validate($kemail, 5)) { kc_error($king->lang->get('feedback/error/name', 2)); } //check kcontent if (!isset($kcontent[9])) { kc_error($king->lang->get('feedback/error/name', 3)); } if ($fbtime > time() - 3600) { kc_ajax($king->lang->get('system/common/tip'), $king->lang->get('feedback/error/name', 5), 0); } else { //记录本次发布时间 setcookie("fbtime", time(), time() + 3600, '/'); $array = array('ktitle' => $ktitle, 'kname' => $kname, 'kemail' => $kemail, 'kphone' => $kphone, 'kqq' => $kqq, 'kcontent' => $kcontent, 'norder' => $king->db->neworder('%s_feedback'), 'ndate' => time()); $king->db->insert('%s_feedback', $array); kc_ajax('OK', '<p class="k_ok">' . $king->lang->get('feedback/ok/add') . '</p>', "<a href=\"index.php\">" . $king->lang->get('system/common/enter') . "</a>"); //添加成功后返回的地址 } }
/** 数组转换为xml文档 @param array $array 数组 @param int $is 递归时用的参数 @return string */ public function array2xml($array, $is = 0) { $str = ''; foreach ($array as $key => $val) { if (is_array($val)) { //若为数组 $str .= "<{$key}>" . NL . $this->array2xml($val, 1) . NL . "</{$key}>" . NL; } elseif (kc_validate($key, 23)) { kc_validate($val, 4) || $val == null ? $str .= "<{$key}>{$val}</{$key}>" . NL : ($str .= "<{$key}><![CDATA[" . $val . "]]></{$key}>" . NL); /* */ } } if ($is == 0) { $s = '<?xml version="1.0" encoding="UTF-8"?>'; $s .= '<kingcms>'; $s .= $str; $s .= '</kingcms>'; } else { $s = $str; } return $s; }
function king_edt() { global $king; $king->access("portal_tag_edt"); $kid = kc_get('kid'); $_sql = 'ktag,kimage,kkeywords,kdescription,kcolor,nsize,isbold,iscommend,ktemplate1,ktemplate2'; if ($GLOBALS['ismethod'] || $kid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['kcolor'] = '#000000'; $data['nsize'] = 12; $tpath = $king->config('templatepath'); $tdefa = $king->config('templatedefault'); $ktemplate1 = $tpath . '/' . $tdefa; $data['ktemplate1'] = is_file(ROOT . $ktemplate1) ? $ktemplate1 : ''; $ktemplate2 = $tpath . '/inside/tag/' . $tdefa; $data['ktemplate2'] = is_file(ROOT . $ktemplate2) ? $ktemplate2 : ''; } } else { //编辑数据,从数据库读出 $data = $king->db->getRows_one('select ' . $_sql . ' from %s_tag where kid=' . $kid . ' limit 1;'); } $fields = explode(',', $_sql); $data = kc_data($fields, $data); $s = $king->openForm('manage.tag.php?action=edt'); //ktag $_array = array(array('ktag', 0, 1, 100)); $kid ? array_push($_array, array('ktag', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select kid from %s_tag where ktag='" . $king->db->escape($data['ktag']) . "' and kid<>{$kid};"))) : array_push($_array, array('ktag', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select kid from %s_tag where ktag='" . $king->db->escape($data['ktag']) . "';"))); $s .= $king->htmForm($king->lang->get('portal/label/ktag') . ' (1-100)', '<input class="k_in w200" type="text" name="ktag" value="' . htmlspecialchars($data['ktag']) . '" maxlength="100" />', $_array); //kkeywords $_array = array(array('kkeywords', 0, 0, 100)); $s .= $king->htmForm($king->lang->get('system/common/keywords') . ' (0-100)', '<input class="k_in w400" type="text" name="kkeywords" value="' . htmlspecialchars($data['kkeywords']) . '" maxlength="100" />', $_array); //kdescription $_array = array(array('kdescription', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('system/common/description') . ' (0-255)', '<textarea rows="4" cols="100" class="k_in w400" name="kdescription" maxlength="255" >' . htmlspecialchars($data['kdescription']) . '</textarea>', $_array); //kimage $_array = array(array('kimage', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('system/common/image') . ' (0-255)', '<input class="k_in w400" type="text" id="kimage" name="kimage" value="' . htmlspecialchars($data['kimage']) . '" maxlength="255" />' . kc_f_brow('kimage', $king->config('uppath') . '/image', 0), $_array); //iscommend $data['iscommend'] == 1 ? $checked = 'checked="checked"' : ($checked = ''); $str = '<span><input type="checkbox" name="iscommend" id="iscommend" value="1" ' . $checked . '/><label for="iscommend">' . $king->lang->get('portal/label/attrib/iscommend') . '</label></span>'; $s .= $king->htmForm($king->lang->get('system/common/attrib'), $str); //kcolor,nsize,isbold $_array = array(array('kcolor', 0, 7, 7), array('nsize', 0, 1, 2), array('nsize', 2), array('kcolor', 13)); $str = '<span><input type="text" class="k_in w60" name="nsize" value="' . $data['nsize'] . '" maxlength="2"/><label> px</label>'; $data['isbold'] == 1 ? $checked = 'checked="checked"' : ($checked = ''); $str .= ' <input type="checkbox" name="isbold" id="isbold" value="1" ' . $checked . '/><label for="isbold">' . $king->lang->get('portal/label/bold') . '</label>'; $str .= ' <label for="kcolor">' . $king->lang->get('portal/label/kcolor') . ':</label><input class="k_in w50" type="text" id="kcolor" name="kcolor" value="' . htmlspecialchars($data['kcolor']) . '" maxlength="7"' . (kc_validate($data['kcolor'], 13) ? ' style="background:' . $data['kcolor'] . '"' : '') . ' />' . kc_f_color('kcolor', $data['kcolor']) . '</span>'; $s .= $king->htmForm($king->lang->get('system/common/style'), $str, $_array); //ktemplate1 $_array = array(array('ktemplate1', 0, 5, 255), array('ktemplate1', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatetag1') . ' (5-255)', '<input class="k_in w400" type="text" name="ktemplate1" id="ktemplate1" value="' . htmlspecialchars($data['ktemplate1']) . '" maxlength="255" />' . kc_f_brow('ktemplate1', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455), $_array); //ktemplate2 $_array = array(array('ktemplate2', 0, 5, 255), array('ktemplate2', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatetag2') . ' (5-255)', '<input class="k_in w400" type="text" name="ktemplate2" id="ktemplate2" value="' . htmlspecialchars($data['ktemplate2']) . '" maxlength="255" />' . kc_f_brow('ktemplate2', $king->config('templatepath') . '/inside/tag', 2), $_array); $s .= kc_htm_hidden(array('kid' => $kid)); $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { $array = array(); $array_sql = explode(',', $_sql); $data['isbold'] == 1 ? $data['isbold'] = 1 : ($data['isbold'] = 0); $data['iscommend'] ? $data['iscommend'] = 1 : ($data['iscommend'] = 0); foreach ($array_sql as $val) { $array += array($val => $data[$val]); } /** 检查kkeywords,如果没有,则自动补充其值 如果有,则更新列表 */ if (!$array['kkeywords']) { $array += array('kkeywords' => $king->portal->getkey($array['ktag'])); } else { $array['kkeywords'] = $king->portal->getkey($array['ktag'], $array['kkeywords']); } if ($kid) { //update $king->db->update('%s_tag', $array, 'kid=' . $kid); $nlog = 7; } else { //insert $array += array('norder' => $king->db->neworder('%s_tag')); $king->db->insert('%s_tag', $array); $nlog = 5; } $md5path = preg_replace('/(\\w{2})(\\w+)/', "\$1/\$2", md5($data['ktag'])); $xmlpath = $king->config('xmlpath', 'portal') . '/portal/tag/' . $md5path . '.xml'; kc_f_delete($xmlpath); //写log $king->log($nlog, 'Tag:' . $data['ktag']); kc_goto($king->lang->get('system/goto/is'), 'manage.tag.php?action=edt', 'manage.tag.php'); } list($left, $right) = king_inc_list(); $king->skin->output($king->lang->get('portal/title/tag' . ($kid ? 'edt' : 'add')), $left, $right, $s); }
public function infoGroup($gid) { global $king; $cachepath = "user/group/" . $gid; if (!($array = $king->cache->get($cachepath, 1))) { if ($gid == 0) { $array = array('gid' => 0, 'kname' => $king->lang->get('user/group/default'), 'norder' => 0, 'kaccess' => '', 'kremark' => '', 'kmenu' => ''); } elseif ($res = $king->db->getRows_one("select * from %s_usergroup where gid={$gid}")) { $array = array(); foreach ($res as $key => $val) { if (!kc_validate($key, 2)) { $array[$key] = htmlspecialchars($val); } } } else { return False; } $king->cache->put($cachepath, $array); } return $array; }
/** 重命名文件或文件夹 */ function king_ajax_rename() { global $king; $king->access('webftp_rename'); $isdir = kc_post('isdir', 2, 1); $path = kc_post('path'); $file = kc_post('file', 0, 1); $id = kc_post('id'); $new = kc_post($id); if (!kc_validate($new, '/^[A-Za-z0-9\\.\\_]+$/')) { kc_ajax('', kc_icon('a1'), '', "alert('" . $king->lang->get('webftp/error/newname') . "')"); } kc_f_rename($path . $file, $path . $new); $s = "<a rel=\"{CMD:'right',path:'{$path}{$new}/',ID:'ftp_root',leftopen:1,IS:2}\" class=\"k_ajax\" href=\"javascript:;\">{$new}</a>"; $js = ''; $oldID = 'k_brow_right_' . _path2id($path . $file); $newID = 'k_brow_right_' . _path2id($path . $new); if ($isdir) { //目录 //在原有的项目下面添加一个新的,并在下面中删除掉老的 $js .= "\$('#{$oldID}').after(iii('b1','{$path}','{$new}','--','" . kc_formatdate(kc_f_mtime($path . $new)) . "'));"; } else { $js .= "\$('#{$oldID}').after(iii('" . kc_f_ico($new) . "','{$path}','{$new}','" . kc_f_size(kc_f_filesize($path . $new)) . "','" . kc_formatdate(kc_f_mtime($path . $new)) . "'));"; } $js .= "\$.kc_ready('#{$newID}');"; $js .= "\$('#{$oldID}').remove();"; $cachepath = "system/filemanage/{$path}index"; $king->cache->del($cachepath); //清理缓存 $js .= "\$.kc_close();"; kc_ajax('', '', '', $js); }
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_ajax_hit() { global $king; //在增加hit统计的时候,不要每次都对数据库进行更新,而是累计20次后一次性进行更新。 $kid = kc_get('kid', 2, 1); $modelid = kc_get('modelid', 22, 1); $cachepath = 'portal/hit'; if (!($array = $king->cache->get($cachepath))) { //若读取的是空缓存,则需要设置一个$array['count']默认值,否则下面+1运算的时候出现警告 $array['count'] = 0; } $hittime = kc_cookie("hittime_{$modelid}_{$kid}"); //上次访问时间 if (isset($array[$modelid . '|' . $kid])) { //若有数组,则++ if ($hittime < time() - 86400) { //上次评论时间超过1天则计数并更新Cookies $array[$modelid . '|' . $kid]['count']++; setcookie("hittime_{$modelid}_{$kid}", time(), time() + 86400, '/'); $array['count'] += 1; } $nhit = $array[$modelid . '|' . $kid]['count'] + $array[$modelid . '|' . $kid]['nhit']; } else { $model = $king->portal->infoModel($modelid); if ($res = $king->db->getRows_one("select nhit from %s__{$model['modeltable']} where kid={$kid}")) { $hit = $res['nhit']; } else { return; } setcookie("hittime_{$modelid}_{$kid}", time(), time() + 86400, '/'); //清空缓存后没人访问过的状态直接写Cookies $array[$modelid . '|' . $kid] = array('nhit' => $hit, 'count' => 1); $array['count'] += 1; $nhit = $hit + 1; } //循环更新数据 if ($array['count'] > 5) { //这个值过大的话,SQLite会出错。 foreach ($array as $key => $val) { list($modelid, $kid) = explode('|', $key); //重新获得modelid和kid,和上面无任何关系 if (kc_validate($kid, 2)) { $model = $king->portal->infoModel($modelid); $_array = array('nhit' => "[[nhit+{$val['count']}]]", 'nhitlate' => "[[(nhitlate*nhit+" . time() * $val['count'] . ")/(nhit+{$val['count']})]]"); $king->db->update('%s__' . $model['modeltable'], $_array, "kid={$kid}"); kc_f_delete($king->config('xmlpath', 'portal') . '/portal/' . $modelid . '/' . wordwrap($kid, 1, '/', 1) . '.xml'); //$array[$key]=array('nhit'=>$val['nhit']+$val['count'],'count'=>0); } } // kc_error('cc'); //清空array $king->cache->del($cachepath); } else { $king->cache->put($cachepath, $array); } //kc_error(nl2br(print_r($array,1))); $js = "\$('#k_hit').html({$nhit});"; kc_ajax('', '', '', $js); }
private function tag_select($inner, $attrib) { $table = kc_val($attrib, 'table'); if (!kc_validate($table, '/\\%s_[A-Za-z0-9_]/')) { return False; } //判断table数据类型 $where = isset($attrib['where']) ? ' where ' . $attrib['where'] : ''; $sql = isset($attrib['sql']) ? kc_val($attrib, 'sql') : '*'; $number = isset($attrib['number']) ? $attrib['number'] : 10; if (!kc_validate($number, 2)) { $number = 10; } $skip = isset($attrib['skip']) ? $attrib['skip'] : 0; //跳过skip个后读取 if (!kc_validate($skip, 2)) { $skip = 0; } $orderby = isset($attrib['orderby']) ? ' order by ' . $attrib['orderby'] : ''; $limit = 'limit ' . $skip . ',' . $number; $s = ''; if ($res = $this->db->getRows("select {$sql} from {$table} {$where} {$orderby} {$limit}")) { $tmp = new KC_Template_class(); foreach ($res as $rs) { foreach ($rs as $key => $val) { $tmp->assign($key, $val); } $s .= $tmp->output($inner); } } else { return False; } return $s; }
/** 对king:portal.comment的解析 Code By: CiBill @param @return */ private function tag_comment($inner, $attrib) { global $king; //读取数量 $number = kc_val($attrib, 'number', 30); $number = kc_validate($number, 2) ? $number : 30; //跳过条数 $skip = kc_val($attrib, 'skip', 0); $skip = kc_validate($skip, 2) ? $skip : 0; //查询条件 $whereArray = array(); $modelid = kc_val($attrib, 'modelid'); //modelid if (!kc_validate($modelid, 2)) { //如果没有modelid传入,则通过listid获取modelid $listid = kc_val($attrib, 'listid'); //listid if (kc_validate($listid, 2)) { //listid为数字时,读取单个modelid if ($list = $king->portal->infoList($listid)) { $modelid = $list['modelid']; $whereArray[] = "modelid={$modelid}"; } else { return false; } } elseif (kc_validate($listid, 3)) { $listid = explode(',', $listid); $modelid = array(); foreach ($listid as $val) { if ($list = $king->portal->infoList($val)) { $modelid[] = $list['modelid']; } } if ($modelid) { $modelid = implode(',', $modelid); $whereArray[] = "modelid in ({$modelid})"; } else { return false; } } } $kid = kc_val($attrib, 'kid'); //文章id if (kc_validate($kid, 2)) { $whereArray[] = "kid={$kid}"; } elseif (kc_validate($kid, 3)) { $whereArray[] = "kid in ({$kid})"; } $orderby = isset($attrib['orderby']) ? ' ORDER BY ' . $attrib['orderby'] : ' ORDER BY cid desc'; $where = $whereArray ? 'where ' . implode(' and ', $whereArray) : ''; $limit = 'limit ' . $skip . ',' . $number; $tmp = new KC_Template_class(); /*if($skip==0 && $number==30 && kc_validate($kid,2) && kc_validate($modelid,2)){ $comment=$king->portal->infoComment($modelid,$kid); if(!$comment)return false; }else*/ if (!($comment = $king->db->getRows("select * from %s_comment {$where} {$orderby} {$limit}"))) { return false; } $s = ''; foreach ($comment as $rs) { $tmp->assign('id', $rs['cid']); $tmp->assign('kid', $rs['kid']); $tmp->assign('modelid', $rs['modelid']); $tmp->assign('username', $rs['username']); $content = $rs['kcontent']; if (substr($content, 0, 7) == '[quote]') { $rid = intval(substr($content, 7, 10)); if ($r = $king->db->getRows_One("select * from %s_comment where cid={$rid}")) { $r['kcontent'] = preg_replace("/\\[quote].*\\[\\/quote]/siU", '', $r['kcontent']); $ypost = "Originally posted by <i><b>" . ($r['username'] != '' ? $r['username'] : '******') . "</b></i> at " . kc_formatdate($r['ndate'], 'Y-m-d') . ":<br>"; $include = "<table border=0 width='100%' cellspacing=1 cellpadding=10 bgcolor='#cccccc'><tr><td width='100%' bgcolor='#FFFFFF' style='word-break:break-all'>" . $ypost . $r['kcontent'] . "</td></tr></table>"; $content = str_replace("[quote]" . $rid . "[/quote]", $include, $content); } } $tmp->assign('content', $content); $tmp->assign('ip', long2ip($rs['nip'])); $tmp->assign('date', $rs['ndate']); $s .= $tmp->output($inner); } return $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); }
function synlogin($get, $post) { $uid = $get['uid']; $username = $get['username']; if (!API_SYNLOGIN) { return API_RETURN_FORBIDDEN; } //note 同步登录 API 接口 global $king; if (!kc_validate($uid, 2)) { return API_RETURN_FAILED; } if ($userinfo = $king->db->getRows_one("SELECT userid FROM %s_user WHERE username='******'")) { $userid = $userinfo['userid']; unset($userinfo); $king->user->userLogin($userid, 2592000); } }
/** 列表 - 开始 @param array $_cmd 命令列表 array( $key=>$value, 'delete'=>'删除', '-', 'create'=>'生成', ) @param array $right 右键菜单 array( ); @param array $_js 构造javascript函数function ll() array( $value, 每个值对应的是一个HTML标签:<td>$value</td> ) @param string $_plist 分页HTML代码 @param array $_val 预设的隐藏域 及值 @return string */ public function openList($_cmd = null, $right = array(), $_js = null, $_plist = null, $_ext = array()) { $i = 0; $fly = ''; $s = '<form id="k_form_list" name="k_form_list">' . kc_htm_hidden($_ext) . '<script type="text/javascript">var REQUEST_URL=\'' . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] . '\';'; $s .= 'function kc_button(){var I1=\''; $s .= '<table cellspacing="0" class="k_button"><tr><td><div class="k_submit">'; if (is_array($_cmd)) { $s_but = '<span class="select"><a href="javascript:;" class="k_aselect" >' . addslashes($this->lang->get('system/common/aselect')) . '</a>/'; //onClick="kc_aselect()" $s_but .= '<a href="javascript:;" class="k_rselect">' . addslashes($this->lang->get('system/common/rselect')) . '</a></span>'; $but = ''; $cmd = "<a href=\"javascript:;\" class=\"k_cmd\">" . $this->lang->get('system/common/morecmd') . "</a>"; $fly = '<ul id="k_cmd_Fly" style="display:none;">'; $is = False; foreach ($_cmd as $key => $val) { if (kc_validate($key, 2)) { if ($val == '-') { $is = True; } else { $fly .= '<li class="hr2">' . $val . '</li>'; } } else { $fly .= '<li' . ($is ? ' class="hr1"' : '') . '><a href="javascript:;" class="k_ajax" rel="{CMD:\'' . $key . '\',FORM:\'k_form_list\'}">' . $val . '</a></li>'; $is = 0; if ($key == 'create') { //有create的时候,设置but $but .= '<a href="javascript:;" class="button k_ajax" rel="{CMD:\\\'' . $key . '\\\',FORM:\\\'k_form_list\\\'}">' . addslashes($this->lang->get('system/common/create')) . '</a>'; } if ($key == 'delete' || substr($key, 0, 7) == 'delete_') { //有delete的时候,设置but $but .= '<a href="javascript:;" class="button k_ajax" rel="{CMD:\\\'' . $key . '\\\',FORM:\\\'k_form_list\\\'}">' . addslashes($this->lang->get('system/common/del')) . '</a>'; } } } $fly .= '</ul>'; $s .= $s_but . $but . (count($_cmd) == 1 && isset($but[0]) ? '' : $cmd); } if (is_array($right)) { $fly .= "<div id=\"k_list_right_Fly\" class=\"none\" onClick=\"\$(this).fadeOut(300)\">"; foreach ($right as $key => $val) { if ($val == '-') { $fly .= '<i></i>'; } else { if (is_array($val)) { $ico = kc_val($val, 'ico'); $href = kc_val($val, 'href'); } else { $ico = ''; $href = $val; } if (substr($href, 0, 1) == '{' || substr($href, -1, 1) == '}') { //ajax操作 $fly .= "<a href=\"javascript:;\" class=\"k_ajax\" rel=\"{$href}\">" . kc_icon($ico) . $key . "</a>"; } else { $fly .= "<a href=\"{$href}\">" . kc_icon($ico) . $key . "</a>"; } } } $fly .= "<i></i>"; $fly .= "<a href=\"javascript:;\" onClick=\"\$('k_list_right_Fly').fadeOut(300)\">" . kc_icon('k8') . $this->lang->get('system/common/cancel') . "</a>"; $fly .= "</div>"; } $s .= '</div></td>\''; //</div> if ($_plist != null) { $s .= '+\'<td>' . addslashes($_plist) . '</td>\''; } $s .= '+\'</tr></table>\';return I1;};document.write(kc_button());'; $s .= 'function ll(){var K=ll.arguments;if(K[K.length-1]==1){for(i=0;i<K.length-1;i++){if(K[i]!=\'manage\'){document.write(\'<th class="th\'+i+\'">\'+K[i]+\'</th>\')}else{document.write(\'<th class="th\'+i+\'">' . $this->lang->get('system/common/manage') . '</th>\')}}}else{var II=\'<tr id="tr_\'+K[0]+\'">\'' . NL; if (is_array($_js)) { foreach ($_js as $_value) { $s .= '+\'<td id="td_\'+K[0]+\'_' . ++$i . '">\'+$.kc_nbsp(' . $_value . ')+\'</td>\'' . NL; } } $s .= '+\'</tr>\';if(K[K.length-1]==0){document.write(II)}else{return II}}};' . NL; $s .= 'document.write(\'<table class="k_table_list" cellspacing="0" id="k_table_list">\');' . NL; $this->mList = NL . 'document.write(\'</table>\'+kc_button());'; $this->mList .= '</script></form>' . $fly; //灰调显示按钮 return $s; }
function king_ajax_buy() { global $king; $cart = isset($_COOKIE['KingCMS_Cart']) ? unserialize($_COOKIE['KingCMS_Cart']) : array(); $listid = kc_get('listid', 2); if ($listid) { //当有listid和kid值的时候,更新Cookie $kid = kc_get('kid', 2, 1); if (kc_post('number')) { if (!kc_validate(kc_post('number'), 2)) { $js = "alert('" . $king->lang->get('portal/error/number') . "');\$.kc_ajax('{URL:\\'" . $king->config('inst') . "portal/cart.php\\',CMD:\\'buy\\',IS:1}')"; kc_ajax('', '', '', $js); } } $num = isset($cart[$listid . '-' . $kid]) ? $cart[$listid . '-' . $kid] : 1; if (kc_post('number')) { $num = kc_post('number'); } // $num=kc_post('number') ? kc_post('number') : $cart[$listid.'-'.$kid]; $cart[$listid . '-' . $kid] = $num ? $num : 1; setcookie('KingCMS_Cart', serialize($cart), time() + 86400000, $king->config('inst')); } if (!$cart) { //如果购物车为空,则输出错误提示 kc_ajax($king->lang->get('system/common/error'), '<p class="k_err">' . $king->lang->get('portal/cart/not') . '</p>'); } $s = '<table class="k_table_list" cellspacing="0">'; $s .= '<tr><th class="c">ID</th><th>' . $king->lang->get('portal/list/prodname') . '</th><th class="c">' . $king->lang->get('portal/list/unitprice') . '</th><th>' . $king->lang->get('system/common/number') . '</th><th class="c">' . $king->lang->get('system/common/subtotal') . '</th><th class="c">' . $king->lang->get('system/common/del') . '</th></tr>'; $weight = 0; //总重 $total = 0; //物品费用 $i = 0; foreach ($cart as $key => $number) { list($listid, $kid) = explode('-', $key); $ID = $king->portal->infoID($listid, $kid); $s .= '<tr><td class="c">' . $kid . '</td><td title="' . addslashes($ID['ktitle']) . '">' . kc_substr($ID['ktitle'], 0, 40) . '</td>'; $s .= '<td class="c">' . number_format($ID['nprice'], 2) . '</td>'; $s .= "<td><input id=\"k_orders_{$i}\" type=\"text\" class=\"k_in w50\" size=\"2\" maxlength=\"6\" value=\"{$number}\" onKeydown=\"if(event.keyCode==13){\$.kc_ajax('{URL:\\'" . $king->config('inst') . "portal/cart.php\\',CMD:\\'buy\\',number:\\''+\$(this).val()+'\\',listid:{$listid},kid:{$kid}}');}\"/>"; $s .= "<a href=\"javascript:;\" class=\"k_ajax\" rel=\"{URL:'" . $king->config('inst') . "portal/cart.php',CMD:'buy',number:\$('#k_orders_{$i}').val(),listid:{$listid},kid:{$kid},IS:1}\">" . kc_icon('o7', $king->lang->get('system/common/up')) . "</a></td>"; $s .= '<td class="c">' . number_format($number * $ID['nprice'], 2) . '</td>'; $s .= "<td class=\"c\"><a href=\"javascript:;\" class=\"k_ajax\" rel=\"{URL:'" . $king->config('inst') . "portal/cart.php',CMD:'delete_prod',listid:{$listid},kid:{$kid},IS:1}\">" . kc_icon('j2') . "</a></td></tr>"; $weight += $number * $ID['nweight']; $total += $number * $ID['nprice']; $i++; } $s .= '</table><br/>'; $array = array(); $express = $king->portal->getExpress(); $default = isset($_COOKIE['orders_express_default']) ? $_COOKIE['orders_express_default'] : 1; $_array = array(); foreach ($express as $eid => $rs) { $price = $rs['nsprice'] + $rs['niprice'] * ceil($weight > 500 ? $weight / 500 - 1 : 0); $array[$eid] = htmlspecialchars($rs['kname']) . '(' . $price . '元)'; $_array[$eid] = $price; } $s .= '<script type="text/javascript" charset="UTF-8">' . kc_js2array('K_ORDERS_EXPRESS', $_array) . '</script>'; $s .= '<table class="k_table_list" cellspacing="0">'; $s .= '<tr><th class="w150">' . $king->lang->get('portal/list/total') . '</th><td>' . number_format($total, 2) . '<input type="hidden" id="k_orders_total" value="' . $total . '"/></td></tr>'; if ($weight === 0) { //若重量为0,无需物流 $s .= '<tr><th>' . $king->lang->get('portal/list/selexpress') . '</th><td>' . $king->lang->get('portal/list/notexpress') . kc_htm_hidden(array('eid' => 0)) . '</td></tr>'; $s .= '<tr><th>' . $king->lang->get('portal/list/alltotal') . '</th><td>' . number_format($total, 2) . '</td></tr>'; $js = ''; } else { $s .= '<tr><th>' . $king->lang->get('portal/list/selexpress') . '</th><td>' . kc_htm_select('eid', $array, $default, "onChange=\"\$('#k_orders_alltotal').text(\$.number_format(\$('#k_orders_total').val()*1+K_ORDERS_EXPRESS[\$(this).val()]*1,2));\$.setCookie('orders_express_default',\$(this).val())\"") . '</td></tr>'; $js = '$(\'#k_orders_alltotal\').text($.number_format($(\'#k_orders_total\').val()*1 + K_ORDERS_EXPRESS[$(\'#eid\').val()]*1,2));'; $js .= '$.setCookie(\'orders_express_default\',$(\'#eid\').val())'; $s .= '<tr><th>' . $king->lang->get('portal/list/alltotal') . '</th><td id="k_orders_alltotal"></td></tr>'; } $s .= '</table>'; $s .= '<p>'; $s .= '<a href="javascript:;" class="k_ajax" rel="{URL:\'' . $king->config('inst') . 'portal/cart.php\',CMD:\'buy\',IS:1}">' . kc_icon('o3') . $king->lang->get('portal/cart/refresh') . '</a>'; $s .= '<a href="javascript:;" class="k_ajax" rel="{URL:\'' . $king->config('inst') . 'portal/cart.php\',CMD:\'clear_cookie\',IS:1}">' . kc_icon('p3') . $king->lang->get('portal/cart/clear') . '</a>'; $s .= '<a href="javascript:;" class="k_ajax" rel="{URL:\'' . $king->config('inst') . 'portal/cart.php\',CMD:\'orders\',METHOD:\'GET\',IS:1}">' . kc_icon('q3') . $king->lang->get('portal/cart/checkout') . '</a>'; $s .= '</p>'; $but = kc_htm_a($king->lang->get('portal/cart/checkout'), '{URL:\'' . $king->config('inst') . 'portal/cart.php\',CMD:\'orders\',METHOD:\'GET\',IS:1}'); kc_ajax($king->lang->get('portal/title/mycart'), $s, $but, $js, 600, 350); }
/** 格式化字符串 @param string $s : 字符模板 @paran string $attrib : 字符串属性,应该是size="20"这种类型的,具体做的时候还得进行输出判断,attrib可能的取值如下 width,height : 如果有这两个或一个属性,则对$str进行文件判断,如果是则进行相关图片处理操作 replace : 字符串替换,replace="A|B",A替换为B size : 字符长度设置 code : 字符转换js/html none : 空值替换属性 */ private function str_format($s, $attrib) { if (empty($attrib)) { return $s; } //如果是空值,则直接返回s值 //转换 if (array_key_exists('formatstr', $attrib)) { $code = $attrib['formatstr']; if (isset($code[0])) { switch (strtolower($code)) { case 'javascript': $s = str_replace(array('\'', "\n", chr(13)), array('\\\'', '\\n', ''), $s); break; case 'urlencode': $s = urlencode($s); break; case 'addslashes': $s = addslashes($s); break; case 'md5': $s = md5($s); break; } } } //应用函数 if (array_key_exists('fun', $attrib)) { $fun = $attrib['fun']; $funs = explode(',', $fun); $array = array(1 => $s); foreach ($funs as $fun) { if (function_exists($fun)) { //如果有指定的函数,则应用 $array1 = array_map($fun, $array); } } $s = $array1[1]; } //替换 if (array_key_exists('replace', $attrib)) { $replace = $attrib['replace']; if (is_array($replace)) { foreach ($replace as $key => $val) { $s = str_replace($key, $val, $s); } } /* if(isset($replace{0})){ list($find,$new)=kc_explode('|',$replace,2); $s=str_replace($find,$new,$s); } */ } //长度 if (array_key_exists('size', $attrib)) { $size = $attrib['size']; if ($size) { if (kc_validate($size, 2)) { $s = kc_substr($s, 0, $size); } } } //日期格式化 if (array_key_exists('formatdate', $attrib)) { $format = $attrib['formatdate']; if (kc_validate($s, 2)) { //默认的时间是int类型的 $s = kc_formatdate($s, $format); } elseif (kc_validate($s, 9)) { //日期类型 2008-11-9这种格式 list($yy, $mm, $dd) = explode('-', $s); $s = kc_formatdate(gmmktime(0, 0, 0, $mm, $dd, $yy), $format); //需要转换一下字符 } } //数字格式化 if (array_key_exists('formatnumber', $attrib)) { if (kc_validate($attrib['formatnumber'], 2)) { $s = number_format($s, $attrib['formatnumber']); } } //缩略图 if (array_key_exists('width', $attrib) || array_key_exists('height', $attrib)) { if (array_key_exists('width', $attrib)) { $width = $attrib['width']; } if (array_key_exists('height', $attrib)) { $height = $attrib['height']; } if (($width || $height) && isset($s[0])) { $s = kc_image($s, $attrib); } } //默认填充 if (array_key_exists('none', $attrib)) { $none = $attrib['none']; if (!isset($s[0])) { $s = $none; } } //前面插入 if (array_key_exists('before', $attrib)) { $before = $attrib['before']; if (isset($before[0]) && isset($s[0])) { $s = $before . $s; } } //后面插入,条件是$s不能为空 if (array_key_exists('after', $attrib)) { $after = $attrib['after']; if (isset($after[0]) && isset($s[0])) { $s .= $after; } } return $s; }
function king_ajax_brow_md() { global $king; $king->access('#brow_md'); $path = ''; $info = inc_brow(); extract($info); $isopen = kc_post('isopen', 2, 1); if ($isopen) { $cmd = "\$.kc_ajax('" . addslashes("{{$verbs},CMD:'brow_md',isopen:0,path:'{$path}',IS:1,ID:'brow_top',VAL:'brow_md_name'}") . "')"; $s = "<tr id=\"brow_md\"><th colspan=\"3\">"; $s .= "<p class=\"c\">" . $king->lang->get('system/common/folder') . ":" . kc_htm_input('brow_md_name', '', 200, 200); $s .= " <input onClick=\"{$cmd}\" type=\"button\" value=\"" . $king->lang->get('system/common/new') . "\"/></p>"; $s .= "</th></tr>"; $js = "\$('#brow_top').after('" . addslashes($s) . "');"; $js .= "\$('#a_brow_md').attr('rel','" . addslashes("{{$verbs},CMD:'brow_md',isopen:0,path:'{$path}',IS:1,ID:'brow_top'}") . "');"; $js .= "\$('#brow_md_name').keydown(function(e){\$(e).unbind();if(e.keyCode==13){$cmd}})"; } else { $js = ''; $brow_md_name = kc_post('brow_md_name'); if (isset($brow_md_name[0])) { //如果有值的话,就创建目录 if (kc_validate($brow_md_name, 24)) { //验证ok的话 kc_f_md($path . $brow_md_name); //创建目录 $js .= "\$.kc_ajax({{$verbs},CMD:'brow_right',path:'{$path}{$brow_md_name}/',ID:'browright'});"; //进入到新建的目录里 } else { $js .= "alert('" . addslashes($king->lang->get('system/error/dir')) . "');"; } } $js .= "\$('#brow_md').remove();"; $js .= "\$('#a_brow_md').attr('rel','" . addslashes("{{$verbs},CMD:'brow_md',isopen:1,path:'{$path}',IS:1,ID:'brow_top'}") . "')"; } kc_ajax('', '', '', $js); }
/** 判断路径的函数 @param string $s 路径 @return string */ function kc_FullPath($s) { global $king; return kc_validate($s, 6) || substr($s, 0, 1) == '/' ? $s : $king->config('inst') . $s; }
function king_ajax_config() { global $king; //dbtype $dbtype = kc_post('dbtype'); if (!in_array($dbtype, array('mysql', 'sqlite'))) { kc_error($king->lang->get('system/install/dbtypeerr')); } //licensed $license = kc_post('license'); if ($license != 1) { kc_error($king->lang->get('system/install/licenseerr')); } $host = kc_post('host'); $data = kc_post('data'); $user = kc_post('user'); $pass = kc_post('pass'); $sqlitedata = kc_post('sqlitedata'); //验证 if ($dbtype == 'mysql') { //host if (!kc_validate($host, '/^[A-Za-z0-9\\.\\:\\/]+$/')) { kc_error($king->lang->get('system/install/ckhost')); } //data if (!kc_validate($data, '/^[A-Za-z0-9\\-\\_]+$/')) { kc_error($king->lang->get('system/install/ckdata')); } //user if (!kc_validate($user, '/^[A-Za-z0-9\\-\\_]+$/')) { kc_error($king->lang->get('system/install/ckuser')); } } else { //sqlitedata if (!kc_validate($sqlitedata, '/^[A-Za-z0-9\\-\\_\\.]+$/')) { kc_error($king->lang->get('system/install/ckdata')); } } //pre $pre = kc_post('pre'); if (!kc_validate($pre, '/^[A-Za-z0-9\\_]+$/')) { kc_error($king->lang->get('system/install/ckpre')); } //preadmin $preadmin = kc_post('preadmin'); if (!kc_validate($preadmin, '/^[A-Za-z0-9\\_]+$/')) { kc_error($king->lang->get('system/install/ckpreadmin')); } //adminname $adminname = kc_get('adminname', 1, 1); if (strlen($adminname) < 2 || strlen($adminname) > 12) { kc_error($king->lang->get('system/install/ckadminname')); } //adminpass $adminpass = kc_get('adminpass', 0, 1); if (strlen($adminpass) < 6 || strlen($adminname) > 30) { kc_error($king->lang->get('system/install/ckadminpass')); } //cache $cache = kc_post('cache'); if (!kc_validate($cache, '/^[A-Za-z0-9\\_]+$/')) { kc_error($king->lang->get('system/install/ckcache')); } //inst $inst = kc_post('inst'); //timediff $timediff = kc_get('timediff', 2, 1); //debug $debug = kc_post('debug') == 1 ? 'True' : 'False'; //isdelete $isdelete = kc_post('isdelete') == 1 ? 1 : 0; $s = kc_f_get_contents('config.php'); $s = preg_replace("%(define\\('DB_TYPE',')([A-Za-z]+)('\\))%s", "\${1}{$dbtype}\${3}", $s); $s = preg_replace("%(define\\('DB_PRE',')([A-Za-z0-9\\_]*)('\\))%s", "\${1}{$pre}\${3}", $s); $s = preg_replace("%(define\\('KC_DB_ADMIN',')([A-Za-z0-9\\_]*)('\\))%s", "\${1}{$preadmin}\${3}", $s); //sqlite $s = preg_replace("%(define\\('DB_SQLITE',')([A-Za-z0-9\\-\\_\\.\\/]+)('\\))%s", "\${1}{$sqlitedata}\${3}", $s); //mysql $s = preg_replace("%(define\\('DB_HOST',')([A-Za-z0-9\\.\\:\\/]+)('\\))%s", "\${1}{$host}\${3}", $s); $s = preg_replace("%(define\\('DB_DATA',')([A-Za-z0-9\\-\\_]+)('\\))%s", "\${1}{$data}\${3}", $s); $s = preg_replace("%(define\\('DB_USER',')([A-Za-z0-9\\-\\_]+)('\\))%s", "\${1}{$user}\${3}", $s); $s = preg_replace("%(define\\('DB_PASS',')([^']*)('\\))%s", "\${1}{$pass}\${3}", $s); $s = preg_replace("%(define\\('PATH_CACHE',')([A-Za-z0-9\\_]*)('\\))%s", "\${1}{$cache}\${3}", $s); $s = preg_replace("%(define\\('DEBUG',)(True|False)(\\))%s", "\${1}{$debug}\${3}", $s); if (kc_f_put_contents('config.php', $s)) { //写入成功 $js = "\$.kc_ajax('{CMD:\\'install\\',adminname:\\'{$adminname}\\',adminpass:\\'{$adminpass}\\',timediff:\\'{$timediff}\\',inst:\\'{$inst}\\',isdelete:\\'{$isdelete}\\'}')"; kc_ajax('OK', "<p class=\"k_ok\">" . $king->lang->get('system/install/crtdb') . "</p>", "<a href=\"javascript:;\">" . $king->lang->get('system/common/cancel') . "</a>", $js); } else { kc_error($king->lang->get('system/install/puterror')); } //写config.php,并输出ajax执行程序,进入下一步install }