function king_def() { global $king; $fields = array('notify_type', 'notify_id', 'notify_time', 'trade_no', 'out_trade_no', 'subject', 'body', 'price', 'discount', 'quantity', 'total_fee', 'payment_type', 'use_coupon', 'coupon_discount', 'is_total_fee_adjust', 'trade_status', 'refund_status', 'logistics_status', 'logistics_type', 'logistics_fee', 'logistics_payment', 'receive_name', 'receive_address', 'receive_zip', 'receive_phone', 'receive_mobile', 'seller_email', 'seller_id', 'buyer_id', 'buyer_email', 'gmt_create', 'gmt_payment', 'gmt_send_goods', 'gmt_refund', 'gmt_close', 'gmt_logistics_modify'); natsort($fields); $array = array(); foreach ($fields as $val) { if (isset($_POST[$val])) { //首先这些值需要先存在 $array[] = $val . '=' . $_POST[$val]; } } if (is_array($array)) { //万一不是数组就得输出错误提示 $sign = md5(implode('&', $array) . $king->config('alipaykey', 'portal')); if ($sign != kc_post('sign')) { exit('fail'); } } else { exit('fail'); } /* 这里开始写数据更新过程 */ switch (kc_post('trade_status')) { case 'WAIT_BUYER_PAY': $trade_status = 1; break; case 'WAIT_SELLER_SEND_GOODS': $trade_status = 3; break; case 'WAIT_BUYER_CONFIRM_GOODS': $trade_status = 4; break; case 'TRADE_FINISHED': $trade_status = 5; break; case 'TRADE_CLOSED': $trade_status = 10; break; case 'modify.tradeBase.totalFee': $trade_status = 11; break; } if (isset(kc_post('refund_status'))) { switch (kc_post('refund_status')) { case 'WAIT_SELLER_AGREE': $trade_status = 8; break; case 'REFUND_SUCCESS': $trade_status = 9; break; case 'REFUND_CLOSED': $trade_status = 10; break; } } $array = array('nstatus' => $trade_status, 'tid' => kc_post('trade_no'), 'buyer_id' => kc_post('buyer_email'), 'seller' => kc_post('seller_email'), 'paymethod' => 'alipay'); $ono = kc_get('out_trade_no', 2, 1); $king->db->update('%s_orders', $array, "ono='{$ono}'"); exit('success'); }
function king_def() { global $king; $kid = kc_get('kid', 2, 1); $listid = kc_get('listid', 2, 1); $modelid = kc_get('modelid', 2, 1); $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; } $king->Load('portal'); $model = $king->portal->infoModel($modelid); $id = $king->portal->infoID($listid, $kid); $tmp = new KC_Template_class($model['ktemplatecomment'], $king->config('templatepath') . '/inside/comment/' . strtolower($model['modeltable']) . '.htm'); $tmp->assign('title', $id['ktitle'] . ' ' . $king->lang->get('portal/common/comment')); $tmp->assign('pid', $pid); $tmp->assign('rn', $rn); $tmp->assign('modelid', $modelid); //传递模型id $tmp->assign('listid', $listid); //传递列表id $tmp->assign('kid', $kid); //传递文章id $tmp->assign('comment', $id['ncomment']); //评论统计 echo $tmp->output(); }
function king_view() { global $king; $king->access('portal_comment'); $cid = kc_get('cid', 2); $sql = "cid,kcontent,username,nip,ndate"; if (empty($cid)) { kc_error($king->lang->get('system/error/param')); } else { if (!($rs = $king->db->getRows_one("select {$sql} from %s_comment where cid={$cid}"))) { kc_error($king->lang->get('system/error/notrecord')); } foreach ($rs as &$r) { $r = htmlspecialchars($r); } $rs['kcontent'] = nl2br($rs['kcontent']); $s = $king->openForm($king->lang->get('portal/title/comment'), '', 'comment_view'); $s .= $king->htmForm($king->lang->get('portal/label/author'), $rs['username']); $s .= $king->htmForm($king->lang->get('portal/label/content'), $rs['kcontent']); $s .= $king->htmForm($king->lang->get('portal/label/date'), kc_formatdate($rs['ndate'])); $but = '<input type="button" onclick="javascript:history.back(-1)" value="' . $king->lang->get('system/common/back') . '[B]" class="big" accesskey="b"/>'; $s .= $king->htmForm(null, $but); $s .= $king->closeForm('none'); } list($left, $right) = inc_menu(); $king->skin->output($king->lang->get('portal/title/comment'), $left, $right, $s); }
function king_def() { global $king; header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 过去的时间 header("Content-type: image/png"); $salt = kc_get('salt', 1, 1); $width = $king->config('verifywidth'); //图片长度 $height = $king->config('verifyheight'); //图片高度 $size = $king->config('verifysize'); //文字大小 $num = $king->config('verifynum'); //文字数量 $content = $king->config('verifycontent'); //随机字符 $array_content = explode('|', $content); $array_content = array_diff($array_content, array(null)); $array_font = kc_f_getdir('system/verify_font', 'ttf|ttc'); $str = ''; $img = imageCreate($width, $height); //创建一个空白图像 imageFilledRectangle($img, 0, 0, $width, $height, imagecolorallocate($img, 255, 255, 255)); //写字 for ($i = 0; $i < $num; $i++) { $code = $array_content[array_rand($array_content)]; $str .= $code; //验证码字符 $color = imageColorAllocate($img, rand(0, 128), rand(0, 128), rand(0, 128)); $font = 'verify_font/' . $array_font[array_rand($array_font)]; //随机读取一个字体 $left = rand(round($size * 0.2), round($size * 0.4)) + $i * $size; imagettftext($img, rand(round($size * 0.7), $size), rand(-20, 20), $left, rand(round($size * 1.2), $size * 1.4), $color, $font, $code); } //画星号 $max = $width * $height / 400; for ($i = 0; $i < $max; $i++) { imagestring($img, 15, rand(0, $width), rand(0, $height), '*', rand(192, 250)); } //画点 $max = $width * $height / 40; for ($i = 0; $i < $max; $i++) { imageSetPixel($img, rand(0, $width), rand(0, $height), rand(1, 200)); } //画线 $max = $width * $height / 800; for ($i = 0; $i < $max; $i++) { imageline($img, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), rand(0, 255)); } //写验证码到verify中 $verify = new KC_Verify_class(); $verify->Put($salt, $str); imagePng($img); imageDestroy($img); $verify->Clear(); }
/** 编辑 */ function king_ajax_edt() { global $king; $king->access('portal_express_edt'); $eid = kc_get('eid', 2); $sql = "kname,nsprice,niprice,kremark,kaddress"; $array_sql = explode(',', $sql); if ($GLOBALS['ismethod'] || empty($eid)) { $data = $_POST; if (!$GLOBALS['ismethod']) { $data['kaddress'] = 'http://'; } } else { if (!($data = $king->db->getRows_one("select {$sql} from %s_express where eid={$eid}"))) { kc_error($king->lang->get('system/error/notre')); } } $data = kc_data($array_sql, $data); //kname $array = array(array('kname', 0, 1, 50)); $s = $king->htmForm($king->lang->get('portal/express/name'), kc_htm_input('kname', $data['kname'], 50, 200), $array); //nsprice $array = array(array('nsprice', 0, 1, 5), array('nsprice', 2)); $s .= $king->htmForm($king->lang->get('portal/express/sprice'), kc_htm_input('nsprice', $data['nsprice'], 5, 50), $array); //nsprice $array = array(array('niprice', 0, 1, 5), array('niprice', 2)); $s .= $king->htmForm($king->lang->get('portal/express/iprice'), kc_htm_input('niprice', $data['niprice'], 5, 50), $array); //kaddress $array = array(array('kaddress', 0, 1, 255), array('kaddress', 6)); $s .= $king->htmForm($king->lang->get('portal/express/address'), kc_htm_input('kaddress', $data['kaddress'], 255, 400), $array); //kremark $array = array(array('kremark', 0, 0, 3000)); $s .= $king->htmForm($king->lang->get('portal/common/remark'), '<textarea name="kremark" id="kremark" rows="6" cols="100" class="k_in w400">' . htmlspecialchars($data['kremark']) . '</textarea>', $array); if ($GLOBALS['ischeck']) { $array = array(); foreach ($array_sql as $val) { $array[$val] = $data[$val]; } if (empty($eid)) { //insert $king->db->insert('%s_express', $array); } else { $king->db->update('%s_express', $array, "eid={$eid}"); } $js = 'setTimeout("parent.location=\'manage.express.php\'",1000)'; kc_ajax('', '', '', $js); } $but = kc_htm_a($king->lang->get('system/common/save'), "{CMD:'edt',eid:'{$eid}',IS:1}"); kc_ajax($king->lang->get('portal/title/expressedt'), $s, $but, '', 440, 350 + $GLOBALS['check_num'] * 15); }
function king_def() { global $king; $array = array('version', 'cmdno', 'retcode', 'status', 'seller', 'total_fee', 'trade_price', 'transport_fee', 'buyer_id', 'chnid', 'cft_tid', 'mch_vno', 'attach'); $buffer = ''; foreach ($array as $val) { if (isset($_GET[$val])) { $buffer .= $val . '=' . $_GET[$val] . '&'; //$ret[$val]=$val.'='.$_GET[]; } } $md5_sign = strtoupper(md5($buffer . 'key=' . $king->config('tenpaykey', 'portal'))); if ($md5_sign = $_GET['sign']) { $oid = kc_get('attach', 2, 1); //attach来传递oid参数 $tmp = new KC_Template_class($king->config('templateorders'), $king->config('templatepath') . '/inside/user/orders_show.htm'); $tmp->assign('oid', $oid); $tmp->assign('title', $king->lang->get('portal/title/buyok')); echo $tmp->output(); } else { kc_error($king->lang->get('portal/error/payment')); } }
function king_view() { global $king; $king->access('feedback'); $kid = kc_get('kid', 2); $sql = "kid,ktitle,kname,kemail,kqq,kphone,kcontent,ndate"; if (!($res = $king->db->getRows("select {$sql} from %s_feedback where kid={$kid}"))) { $res = array(); } if (empty($kid)) { kc_error($king->lang->get('system/error/param')); } else { if (!($rs = $king->db->getRows_one("select {$sql} from %s_feedback where kid={$kid} order by norder asc"))) { kc_error($king->lang->get('system/error/notrecord')); } foreach ($rs as &$r) { $r = htmlspecialchars($r); } $rs['kcontent'] = nl2br($rs['kcontent']); $s = $king->openForm($king->lang->get('feedback/name'), '', 'feedback_edt'); $s .= $king->htmForm($king->lang->get('feedback/label/title'), $rs['ktitle']); $s .= $king->htmForm($king->lang->get('feedback/label/name'), $rs['kname']); $s .= $king->htmForm($king->lang->get('feedback/label/email'), '<a href="mailto:' . $rs['kemail'] . '" title="' . $king->lang->get('feedback/list/sendmail') . $rs['kname'] . '">' . $rs['kemail'] . '</a>'); $s .= $king->htmForm($king->lang->get('feedback/label/qq'), $rs['kqq']); $s .= $king->htmForm($king->lang->get('feedback/label/phone'), $rs['kphone']); $s .= $king->htmForm($king->lang->get('feedback/label/content'), $rs['kcontent']); $s .= $king->htmForm($king->lang->get('feedback/label/date'), kc_formatdate($rs['ndate'])); $but = '<input type="button" onclick="javascript:history.back(-1)" value="' . $king->lang->get('system/common/back') . '[B]" class="big" accesskey="b"/>'; $s .= $king->htmForm(null, $but); $s .= $king->closeForm('none'); } //设置为已读状态 $king->db->update('%s_feedback', array('nread' => 1), 'kid=' . $kid); list($left, $right) = inc_menu(); $king->skin->output($king->lang->get('feedback/title/center'), $left, $right, $s); }
function king_def() { global $king; $array = array('version', 'cmdno', 'retcode', 'status', 'seller', 'total_fee', 'trade_price', 'transport_fee', 'buyer_id', 'chnid', 'cft_tid', 'mch_vno', 'attach'); $buffer = ''; foreach ($array as $val) { if (isset($_GET[$val])) { $buffer .= $val . '=' . $_GET[$val] . '&'; //$ret[$val]=$val.'='.$_GET[]; } } $md5_sign = strtoupper(md5($buffer . 'key=' . $king->config('tenpaykey', 'portal'))); if ($md5_sign = $_GET['sign']) { //更新 $oid = kc_get('attach', 2, 1); //attach来传递oid参数 $array = array('nstatus' => kc_get('status', 2, 1), 'tid' => $_GET['cft_tid'], 'buyer_id' => $_GET['buyer_id'], 'seller' => $_GET['seller'], 'paymethod' => 'tenpay'); $king->db->update('%s_orders', $array, "oid={$oid}"); echo "<meta name=\"TENCENT_ONLINE_PAYMENT\" content=\"China TENCENT\">"; echo $king->lang->get('portal/orders/status/s' . $_GET['status']); } else { kc_error('fail 签名错误!'); } }
/** 上传付款凭证 */ function king_bank() { global $king; $oid = kc_get('oid', 2, 1); if (!($rs = $king->db->getRows_one("select ono,kname,nnumber,ntotal,kfeedback,eid,nexpress,userid,nstatus from %s_orders where oid={$oid}"))) { kc_error($king->lang->get('system/error/param')); } if ($rs['userid'] > 0) { $king->Load('user'); $king->user->access(); //如果有记录用户,则做登录验证 if ($king->user->userid != $rs['userid']) { $king->portal->error($king->lang->get('system/common/error'), $king->lang->get('portal/error/cart')); } } if ((int) $rs['nstatus'] !== 2) { $king->portal->error($king->lang->get('system/common/error'), $king->lang->get('portal/error/status')); } $s = '<table class="k_table_list" cellspacing="0">'; $s .= '<caption>' . $king->lang->get('portal/cart/prodinfo') . '</caption>'; $s .= '<tr><th class="w150">' . $king->lang->get('portal/cart/youorders') . '</th><td><strong class="red">' . $rs['ono'] . '</strong></td>'; $s .= '<th>' . $king->lang->get('portal/cart/prodname') . '</th><td>' . $rs['kname'] . '</td></tr>'; $s .= '<tr><th>' . $king->lang->get('portal/cart/total') . '</th><td>' . $rs['nnumber'] . '件</td>'; $s .= '<th>' . $king->lang->get('portal/cart/alltotal') . '</th><td>' . number_format($rs['ntotal'], 2) . '</td></tr>'; $s .= '</table>'; if ($_FILES) { $ext = strtolower(kc_f_ext($_FILES['bankfile']['name'])); kc_f_md($king->config('uppath') . "/orders"); if (!in_array($ext, array('jpg', 'jpeg'))) { $s .= '<p class="k_error">' . $king->lang->get('portal/error/ext') . '</p>'; //提示文件类型不正确 $s .= '<p><a href="cart.php?action=bank&oid=' . $oid . '">' . $king->lang->get('portal/cart/reup') . '</a></p>'; } elseif (move_uploaded_file($_FILES['bankfile']['tmp_name'], ROOT . $king->config('uppath') . "/orders/{$oid}.jpg")) { $s .= '<p>' . $king->lang->get('portal/cart/upok') . '</p>'; $array = array('paymethod' => 'bank'); $king->db->update('%s_orders', $array, "oid={$oid}"); } else { $s .= '<p class="k_error">' . $king->lang->get('portal/error/upbank') . '</p>'; } } else { $s .= $king->openForm('cart.php?action=bank', null, 1); $s .= '<p>' . $king->lang->get('portal/cart/bankmemo') . '</p>'; $s .= '<p>' . $king->lang->get('portal/cart/bankmemo1') . '</p>'; $s .= $king->htmForm($king->lang->get('portal/cart/upbank'), "<input type=\"file\" name=\"bankfile\" class=\"k_in w400\" />"); $hide = array('oid' => $oid, 'MAX_FILE_SIZE' => 204800); $s .= kc_htm_hidden($hide); $s .= $king->closeForm($king->lang->get('system/common/upfile')); } $tmp = new KC_Template_class($king->config('templateorders', 'portal')); $tmp->assign('oid', $oid); $tmp->assign('title', $king->lang->get('portal/cart/upbank')); $tmp->assign('nav', $king->lang->get('portal/cart/upbank')); $tmp->assign('type', 'edit'); $tmp->assign('inside', $s); echo $tmp->output(); }
function king_orders_show() { global $king; $user = $king->user->access(); $oid = kc_get('oid', 2, 1); //attach来传递oid参数 //kc_error($king->config('templateorders')); $tmp = new KC_Template_class($king->config('templateorders', 'portal'), $king->config('templatepath') . '/inside/user/orders_show.htm'); $tmp->assign('oid', $oid); $tmp->assign('userid', $king->user->userid); $tmp->assign('nav', $king->lang->get('portal/title/ordersshow')); $tmp->assign('title', $king->lang->get('portal/title/ordersshow')); echo $tmp->output(); }
/** 分页评论信息 @param int listid 列表id @param int kid 文章id @return array */ public function infoComment($modelid = null, $kid = null) { global $king; if (!$modelid) { $modelid = kc_get('modelid', 2, 1); } //必须的 if ($modelid == 0) { return; } if (!$kid) { $kid = intval(kc_get('kid', 2, 1)); } //必须的 $cachepath = 'portal/comment/' . $modelid . '/' . $kid; $where = 'kid=' . $kid; $array = $king->cache->get($cachepath); //缓存中的commentInfo if (!$array) { $array = array(); //kc_error($listid); if ($comment = $king->db->getRows_one("select * from %s_comment where {$where} and modelid={$modelid} order by cid desc;")) { foreach ($comment as $key => $val) { if (!kc_validate($key, 2)) { $array[$key] = $val; } } } else { kc_error($king->lang->get('system/error/param') . kc_clew(__FILE__, __LINE__, $king->lang->get('portal/msg/listname')) . "<p>LISTID: {$listid}</p>select * from %s_comment where {$where};"); } $model = $this->infoModel($modelid); //模板属性 $array['ktemplatecomment'] = $model['ktemplatecomment']; //评论模板 $array['ncommentnumber'] = $model['ncommentnumber']; //评论分页条数 if (!$array['ncommentnumber']) { $array['ncommentnumber'] = 30; } $array['modeltable'] = $model['modeltable']; //表名 if (!($id = $king->db->getRows_one("select ktitle,ncomment from %s__{$array['modeltable']} where {$where};"))) { return False; } $array['ktitle'] = $id['ktitle']; //文章标题 $resCount = $king->db->getRows_one("select count(*) AS ncount from %s_comment where {$where} and modelid={$modelid} and isshow=1;"); //显示的评论内容 $resCountAll = $king->db->getRows_one("select count(*) AS ncount from %s_comment where {$where} and modelid={$modelid};"); //所有的评论内容 $array['ncount'] = $resCount['ncount']; if ($id['ncomment'] != $resCount['ncount']) { //当前评论数量和实际的数字不同的时候,更新结构缓存 //更新文章的评论计数 $king->db->update('%s__' . $array['modeltable'], array('ncomment', $array['ncount']), '$where'); } $array['ncountall'] = $resCountAll['ncount']; $array['pcount'] = $array['ncount'] == 0 ? 1 : ceil($array['ncount'] / $array['ncommentnumber']); //列表,共pcount页,前台的 //直接在这个评论列表信息获取函数里转换的话,无需再次进行转换 $array_htmlspecialchars = array('ktitle', 'kcontent', 'username'); //需要转换为htmlspecialchars的字段 foreach ($array_htmlspecialchars as $key => $val) { $array[$val] = htmlspecialchars($array[$val]); } $king->cache->put($cachepath, $array); } return $array; }
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 uploadfile($inputname) { global $king; $king->access('#brow_upfile'); $immediate = kc_get('immediate'); $attachdir = $king->config('uppath'); //上传文件保存路径,结尾不要带/ $dirtype = 1; //1:按天存入目录 2:按月存入目录 3:按扩展名存目录 建议使用按天存 $maxattachsize = 20971520; //最大上传大小,默认是20M $upext = 'txt,rar,zip,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid,doc,docx,xls,xlsx,pdf'; //上传扩展名 $msgtype = 2; //返回上传参数的格式:1,只返回url,2,返回参数数组 $err = ""; $msg = ""; $upfile = $_FILES[$inputname]; if (!empty($upfile['error'])) { switch ($upfile['error']) { case '1': $err = '文件大小超过了php.ini定义的upload_max_filesize值'; break; case '2': $err = '文件大小超过了HTML定义的MAX_FILE_SIZE值'; break; case '3': $err = '文件上传不完全'; break; case '4': $err = '无文件上传'; break; case '6': $err = '缺少临时文件夹'; break; case '7': $err = '写文件失败'; break; case '8': $err = '上传被其它扩展中断'; break; case '999': default: $err = '无有效错误代码'; } } elseif (empty($upfile['tmp_name']) || $upfile['tmp_name'] == 'none') { $err = '无文件上传'; } else { $temppath = $upfile['tmp_name']; $fileinfo = pathinfo($upfile['name']); $extension = $fileinfo['extension']; if (preg_match('/' . str_replace(',', '|', $upext) . '/i', $extension)) { $filesize = filesize($temppath); if ($filesize > $maxattachsize) { $err = '文件大小超过' . $maxattachsize . '字节'; } else { switch ($dirtype) { case 1: $attach_subdir = date('Y/m/d'); break; case 2: $attach_subdir = date('Y/m'); break; case 3: $attach_subdir = $extension; break; } switch (strtolower($extension)) { case 'txt': $typepath = 'file'; break; case 'rar': $typepath = 'file'; break; case 'zip': $typepath = 'file'; break; case 'pdf': $typepath = 'file'; break; case 'xls': $typepath = 'file'; break; case 'xlsx': $typepath = 'file'; break; case 'doc': $typepath = 'file'; break; case 'docx': $typepath = 'file'; break; case 'jpg': $typepath = 'image'; break; case 'jpeg': $typepath = 'image'; break; case 'gif': $typepath = 'image'; break; case 'png': $typepath = 'image'; break; case 'swf': $typepath = 'flash'; break; case 'wmv': $typepath = 'movie'; break; case 'avi': $typepath = 'movie'; break; case 'wma': $typepath = 'movie'; break; case 'mp3': $typepath = 'movie'; break; case 'mid': $typepath = 'movie'; break; } $attach_dir = $attachdir . '/' . $typepath . '/' . $attach_subdir; kc_f_md($attach_dir); /* if(!is_dir($attach_dir)) { @mkdir($attach_dir, 0777); @fclose(fopen($attach_dir.'/index.htm', 'w')); } */ PHP_VERSION < '4.2.0' && mt_srand((double) microtime() * 1000000); $filename = date("YmdHis") . mt_rand(1000, 9999) . '.' . $extension; $target = $attach_dir . '/' . $filename; move_uploaded_file($upfile['tmp_name'], ROOT . $target); if ($immediate == '1') { $target = '!' . $target; } if ($msgtype == 1) { $msg = $target; } else { //写入上传文件记录到数据库 $array = array('kpath' => $target, 'ndate' => time(), 'adminid' => $king->admin['adminid'], 'ntype' => $extension); $kid = $king->db->insert('%s_upfile', $array); $msg = array('url' => $king->config('inst') . $target, 'localname' => $upfile['name'], 'id' => $kid); //id参数固定不变,仅供演示,实际项目中可以是数据库ID } } } else { $err = '上传文件扩展名必需为:' . $upext; } @unlink($temppath); } return array('err' => $err, 'msg' => $msg); }
private function attribBack($m) { $attributes = $m[4]; $attrib = $this->attrib2array($attributes); $s = ''; switch (strtolower($m[2])) { case 'king': $s = kc_val($this->tempArray, $m[3]); //值 if (false !== ($ret = $this->sysinfo($m[3]))) { return $ret; } /* if(in_array($m[3],array('root','version','cms'))){ global $king; switch($m[3]){ case 'root':$s=$king->config('inst');break; case 'version':$s=$king->devname;break; case 'cms':$s="<span>Powerd by <a href=\"http://www.kingcms.com/\" title=\"KingCMS\" target=\"_blank\">KingCMS</a> ".$king->devname ."</span>";break; } return $s; } */ break; case 'get': $s = kc_get($m[3], 0); break; case 'post': $s = kc_post($m[3], 0); break; } return $this->str_format($s, $attrib); }
/** 上移下移数据 @param string $_table 数据表名 @param int $id 索引ID的值 @param string $_where 条件 @param int $_order 排序,1为倒序,0为正序 @param string $_kidname 索引ID的字段名称 @param string $_norder 决定排序的字段名称 */ public function updown($_table, $id, $_where = null, $_order = 1, $_kidname = 'kid', $_norder = 'norder') { $_back = $_SERVER['HTTP_REFERER']; $_array1 = array('kid' => 0, 'norder' => 0); $_array2 = array('kid' => 0, 'norder' => 0); //@param int $_num 偏移量 $_num = kc_get('NUMBER', 2, 1); //@param string $_act [up|down]上移或下移 $_act = kc_post('UPDOWN') == 'up' ? 'up' : 'down'; if ($_order) { $_act == 'down' ? $order = 'desc' : ($order = 'asc'); } else { $_act == 'up' ? $order = 'desc' : ($order = 'asc'); } if ($_where != null) { $_where = ' where ' . $_where; } $_sql = "select {$_kidname},{$_norder} from {$_table} {$_where} order by {$_norder} {$order}"; $this->query($_sql); $this->getRows_number(); if ($_num == 0) { $_num = $this->Rows; } $_table = sprintf($_table, DB_PREFIX); for ($i = 0; $i < $this->Rows; $i++) { if (!mysql_data_seek($this->mQuery, $i)) { kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); } $res = mysql_fetch_array($this->mQuery); if ($id == $res[$_kidname]) { $_array1['kid'] = $res[$_kidname]; $_array2['kid'] = $res[$_norder]; for ($j = 1; $j <= $_num; $j++) { if ($i + $j < $this->Rows) { if (!mysql_data_seek($this->mQuery, $i + $j)) { kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); } $res = mysql_fetch_array($this->mQuery); $_array1['norder'] = $res[$_kidname]; $_array2['norder'] = $res[$_norder]; mysql_query("update {$_table} set {$_norder}={$_array2['norder']} where {$_kidname}={$_array1['kid']} limit 1;", $this->link); mysql_query("update {$_table} set {$_norder}={$_array2['kid']} where {$_kidname}={$_array1['norder']} limit 1;", $this->link); $_array2['kid'] = $_array2['norder']; } } kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); } } kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); }
/** 搜索结果显示页 ########## 搜索结果和所属网站做绑定,根据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_edt() { global $king; $king->access('block_edt'); $kid = kc_get('kid', 2); $sql = "kid,kname,kcontent,ntype,bid"; if (!($res = $king->db->getRows("select {$sql} from %s_block where kid={$kid}"))) { $res = array(); } $array_type = array(1 => $king->lang->get('block/common/list'), 2 => $king->lang->get('block/common/model'), 3 => $king->lang->get('block/common/site')); if (empty($kid)) { //add $s = $king->openForm('', $king->lang->get('block/th/add'), 'block_add'); $s .= $king->htmForm($king->lang->get('block/label/name'), kc_htm_input('kname', '', 100, 400)); $s .= $king->htmForm($king->lang->get('block/label/content'), kc_htm_textarea('kcontent')); $s .= $king->htmForm(null, kc_htm_button($king->lang->get('system/common/add'), "\$.kc_ajax({CMD:'edt',FORM:'block_add'});", 1)); $s .= $king->closeForm('none'); } else { //edit if (!($rs = $king->db->getRows_one("select {$sql} from %s_block where kid={$kid} order by norder asc"))) { kc_error($king->lang->get('system/error/notrecord')); } $s = $king->openForm('', $king->lang->get('block/th/default'), 'block_edt'); $but = " <input type=\"button\" value=\"" . $king->lang->get('system/common/up') . "\" onClick=\"\$.kc_ajax({CMD:'edt',kid:{$kid},FORM:'block_edt'});\" />"; $s .= $king->htmForm($king->lang->get('block/label/name'), kc_htm_input('kname', $rs['kname'], 100, 400) . $but); $s .= $king->htmForm($king->lang->get('block/label/content'), kc_htm_textarea('kcontent', $rs['kcontent'])); $s .= $king->closeForm('none'); if (!($res = $king->db->getRows("select {$sql} from %s_block where kid1={$kid} order by norder desc"))) { $res = array(); } foreach ($res as $i => $rs) { $s .= $king->openForm('', '', 'block_bind_' . $i); $b = kc_htm_select('ntype', $array_type, $rs['ntype']); $b .= " <span><label>" . $king->lang->get('block/label/bid') . "</label></span>"; $b .= kc_htm_input('bid', $rs['bid'], 10, 50); $b .= " <input type=\"button\" value=\"" . $king->lang->get('system/common/up') . "\" onClick=\"\$.kc_ajax({CMD:'bind_edt',kid:{$rs['kid']},kid1:{$kid},FORM:'block_bind_{$i}'});\" />"; $s .= $king->htmForm($king->lang->get('block/label/bind'), $b); $s .= $king->htmForm($king->lang->get('block/label/content'), kc_htm_textarea('kcontent', $rs['kcontent'])); $s .= $king->closeForm('none'); } //添加 $s .= $king->openForm('', $king->lang->get('block/th/bindadd'), 'block_bind_edt'); $b = kc_htm_select('ntype', $array_type, 1); $b .= " <span><label>" . $king->lang->get('block/label/bid') . "</label></span>"; $b .= kc_htm_input('bid', '', 10, 50); $b .= kc_help('block/help/bind'); $s .= $king->htmForm($king->lang->get('block/label/bind'), $b); $s .= $king->htmForm($king->lang->get('block/label/content'), kc_htm_textarea('kcontent')); $s .= $king->htmForm(null, kc_htm_button($king->lang->get('system/common/add'), "\$.kc_ajax({CMD:'bind_edt',FORM:'block_bind_edt',kid1:{$kid}});", 1)); $s .= $king->closeForm('none'); } list($left, $right) = inc_menu(); $king->skin->output($king->lang->get('block/title/center'), $left, $right, $s); }
function king_edt() { global $king; $king->load('user'); //初始化zf $listid = kc_get('listid', 2, 1); //$info['listid']; $info = $king->portal->infoList($listid); $model = $king->portal->infoModel($info['modelid']); $kid = kc_get('kid', 2); $kid1 = kc_get('kid1', 2); $isuser = $kid1 ? 'isuser2' : 'isuser1'; //次页:首页 $array_field = array_keys($model['field'][$isuser]); $sql_field = implode(',', $array_field); //[tablemodel]字段调用 //读取管理员列表 $editors = $king->portal->getListEditor($listid); if (!is_array($editors)) { $editors = array(); } //用户权限及登录验证 if ($info['gidpublish'] == -1) { $user = array('userid' => 0, 'username' => '[' . $king->lang->get('user/name/guest') . ']'); } else { $user = $king->user->access(); if (!in_array($king->user->userid, $editors) && $info['gidpublish']) { //非栏目编辑 并 限制组会员 ;栏目编辑员则跳过此验证 $king->user->access($info['gidpublish']); } } //发帖验证,检查是否为不允许发布 //0不允许发布|1直接发布|2验证后发布 if (!in_array($user['userid'], $editors)) { //栏目编辑员无需验证 if ((int) $info['ispublish' . ($kid1 ? 2 : 1)] === 0) { $king->portal->error($king->lang->get('portal/title/stop'), $king->lang->get('portal/error/stop')); } } //当kid有值的时候(编辑),进行所有权验证 if ($kid) { $user = empty($user) ? $king->user->access() : $user; //如果$user为null则进行登录验证,目的是要获得userid $id = $king->portal->infoID($listid, $kid); if (in_array($king->user->userid, $editors) || (int) $id['userid'] === (int) $king->user->userid) { if (!in_array($king->user->userid, $editors)) { //如果不是栏目管理员,则进行有效期验证 if (time() - $model['nlocktime'] * 3600 > $id['ndate'] && (int) $model['nlocktime'] !== 0) { //如果超过可允许编辑时间期限 并 可编辑时间不能为0,则提示错误 $king->portal->error($king->lang->get('portal/title/stop'), $king->lang->get('portal/error/timeout')); } } } else { $king->portal->error($king->lang->get('portal/title/stop'), $king->lang->get('portal/error/noaccess')); } } $fields = explode(',', $sql_field); 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; } //从URL中获取初始值 foreach ($fields as $val) { if (isset($_GET[$val])) { $data[$val] = $_GET[$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($fields, $data); $data['kid'] = $kid; if (!($res = $king->db->getRows("select * from %s_field where modelid={$info['modelid']} and {$isuser}=1 and kid1=0 order by norder,kid;"))) { //全部调用 $res = array(); } $s = $king->openForm('index.php?action=edt'); $s .= kc_htm_hidden(array('listid' => $listid, 'kid' => $kid, 'kid1' => $kid1)); //这个隐藏域不要放在下面 foreach ($res as $rs) { $s .= $king->portal->formdecode($rs, $data, $info, 0, $kid1 ? 2 : 1); } $s .= $king->closeForm($king->lang->get('system/common/publish')); //数据处理 if ($GLOBALS['ischeck']) { $_array = array(); //设置为空数组 //收集字段的值 foreach ($array_field as $val) { if (substr($val, 0, 1) == 'n') { $_array[$val] = $data[$val] ? 1 : 0; } else { if (is_array($data[$val])) { $_array[$val] = implode(',', $data[$val]); } else { $_array[$val] = $data[$val]; } } } //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']); /** 检查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};/', '', $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 . ' limit 1'); } //添加&更新数据 if ($kid) { //update $king->db->update('%s__' . $model['modeltable'], $_array, 'kid=' . $kid); $_nlog = 7; } else { $_array['ndate'] = time(); $_array['norder'] = $king->db->neworder('%s__' . $model['modeltable']); $_array['userid'] = $user['userid']; $_array['nshow'] = $info['ispublish' . ($kid1 ? 2 : 1)]; $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 (isset($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); } } } //跳转,当留言反馈类型的时候,这个跳转需要改动 echo "<script type=\"text/javascript\">parent.location='" . $king->portal->pathPage($info, $id['kid'], $id['kpath']) . "'</script>"; } $tmp = new KC_Template_class($model['ktemplatepublish']); $tmp->assign('inside', $s); $tmp->assign('listid', $listid); $tmp->assign('title', $info['klistname']); $tmp->assign('type', 'edit'); echo $tmp->output(); // list($left,$right)=king_inc_list(); // $king->skin->output($king->lang->get('portal/title/content'.($kid?'edt':'add')),$left,$right,$s); }
function king_ajax_updown() { global $king; $king->access('dbquery_updown'); $kid = kc_get('kid', 2, 1); $king->db->updown('%s_dbquery', $kid); }
/** 编辑详细信息 */ function king_edt() { global $king; $king->access('portal_orders_edt'); $oid = kc_get('oid', 2, 1); $sql = "kname,nstatus,realname,useraddress,userpost,usertel,usermail,ntotal,nexpress,kremark"; if ($GLOBALS['ismethod']) { $data = $_POST; } else { if (!($data = $king->db->getRows_one("select {$sql},ono,userid,kcontent from %s_orders where oid={$oid}"))) { kc_error($king->lang->get('system/error/notre')); } } $s = $king->openForm('manage.orders.php?action=edt', $king->lang->get('portal/orders/odinfo')); //ono $s .= $king->htmForm($king->lang->get('portal/orders/no'), kc_htm_input('ono', $data['ono'], 16, 150, 'readonly="true"')); //kname $array = array(array('kname', 0, 1, 30)); $s .= $king->htmForm($king->lang->get('portal/orders/name'), kc_htm_input('kname', $data['kname'], 30, 300), $array); //nstatus $array_statu = array(); for ($i = 1; $i <= 11; $i++) { $array_statu[$i] = $king->lang->get("portal/orders/status/s{$i}"); } $array = array(array('nstatus', 2)); $s .= $king->htmForm($king->lang->get('portal/orders/statu'), kc_htm_select('nstatus', $array_statu, $data['nstatus']), $array); //ntotal $array = array(array('ntotal', 3)); $s .= $king->htmForm($king->lang->get('portal/orders/total'), kc_htm_input('ntotal', $data['ntotal'], 14, 100) . $king->lang->get('portal/common/y'), $array); //nexpress $array = array(array('nexpress', 3)); $s .= $king->htmForm($king->lang->get('portal/orders/express'), kc_htm_input('nexpress', $data['nexpress'], 14, 100) . $king->lang->get('portal/common/y'), $array); //nalltotal $s .= $king->htmForm($king->lang->get('portal/list/alltotal'), '<span>' . number_format($data['ntotal'] + $data['nexpress'], 2) . $king->lang->get('portal/common/y') . '</span>'); $s .= $king->splitForm(); $contents = unserialize($data['kcontent']); $list = "<table class=\"k_side\">"; foreach ($contents as $key => $num) { list($listid, $kid) = explode('-', $key); $info = $king->portal->infoList($listid); $id = $king->portal->infoID($listid, $kid); $kpath = $king->portal->pathPage($info, $id['kid'], $id['kpath']); $list .= "<tr><td><a target=\"_blank\" href=\"manage.content.php?action=edt&listid={$listid}&kid={$kid}\">" . kc_icon('e5', $king->lang->get('system/common/edit')) . "</a>"; $list .= "<a target=\"_blank\" href=\"{$kpath}\">{$id['ktitle']}</a></td>"; $list .= "<td>" . kc_icon('q1') . number_format($id['nprice'], 2) . " x {$num}</tr>"; } $list .= "</table>"; $s .= $king->htmForm($king->lang->get('portal/orders/value'), $list); $s .= $king->splitForm($king->lang->get('portal/orders/userinfo')); $king->Load('user'); $user = $king->user->infoUser($data['userid']); $s .= $king->htmForm($king->lang->get('portal/user/name'), $user['username']); //realname $array = array(array('realname', 0, 1, 30)); $s .= $king->htmForm($king->lang->get('portal/orders/realname'), kc_htm_input('realname', $data['realname'], 30, 100), $array); //useraddress $array = array(array('useraddress', 0, 1, 30)); $s .= $king->htmForm($king->lang->get('portal/orders/address'), '<textarea name="useraddress" id="useraddress" rows="4" cols="100" class="k_in w400">' . htmlspecialchars($data['useraddress']) . '</textarea>', $array); //userpost $array = array(array('userpost', 0, 6, 6)); $s .= $king->htmForm($king->lang->get('portal/orders/post'), kc_htm_input('userpost', $data['userpost'], 6, 100), $array); //usertel $array = array(array('usertel', 0, 1, 30)); $s .= $king->htmForm($king->lang->get('portal/orders/tel'), kc_htm_input('usertel', $data['usertel'], 30, 200), $array); //usermail $array = array(array('usermail', 0, 5, 32), array('usermail', 5)); $s .= $king->htmForm($king->lang->get('portal/orders/mail'), kc_htm_input('usermail', $data['usermail'], 32, 200), $array); $s .= $king->splitForm($king->lang->get('portal/common/remark')); //kremark $array = array(array('kremark', 0, 0, 3000)); $s .= $king->htmForm($king->lang->get('portal/common/remark'), '<textarea name="kremark" id="kremark" rows="8" cols="100" class="k_in w400">' . htmlspecialchars($data['kremark']) . '</textarea>', $array); //隐藏域 $s .= kc_htm_hidden(array('oid' => $oid, 'userid' => $data['userid'], 'ono' => $data['ono'], 'kcontent' => $data['kcontent'])); $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { $array_sql = explode(',', $sql); $array = array(); foreach ($array_sql as $val) { $array[$val] = $data[$val]; } $king->db->update('%s_orders', $array, "oid={$oid}"); kc_goto($king->lang->get('system/goto/saveok'), "manage.orders.php?action=edt&oid={$oid}"); } $left = array('' => array('href' => 'manage.orders.php', 'ico' => 'q5', 'title' => $king->lang->get('portal/title/ordersdef')), 'paid' => array('href' => 'manage.orders.php?action=paid', 'ico' => 'q6', 'title' => $king->lang->get('portal/title/orderspaid')), 'all' => array('href' => 'manage.orders.php?action=all', 'ico' => 'q4', 'title' => $king->lang->get('portal/title/ordersall')), 'edt' => array('href' => 'manage.orders.php?action=edt&oid=' . $oid, 'ico' => 'e7', 'title' => $king->lang->get('system/common/edit'))); $right = array(array('href' => 'manage.php', 'title' => $king->lang->get('portal/title/list'), 'ico' => 'a1')); $king->skin->output($king->lang->get('portal/title/orders'), $left, $right, $s); }
function king_lnkedt() { global $king; $king->access('#lnk'); $kid = kc_get('kid', 2); $adminid = kc_get('adminid', 2) ? kc_get('adminid', 2, 1) : $king->admin['adminid']; //当提交过来的adminid和当前管理员id不同的时候,验证管理员的级别 if ($adminid != $king->admin['adminid']) { $king->access('admin'); } $sql = 'kname,ktitle,kpath,adminid,kimage,isblank,konclick,isflo'; if ($GLOBALS['ismethod'] || $kid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['kimage'] = 'lnk.gif'; $data['adminid'] = $adminid; } } else { if (!($data = $king->db->getRows_one("select {$sql} from %s_lnk where kid={$kid} limit 1;"))) { kc_error($king->lang->get('system/error/param') . '<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__); } } $fields = explode(',', $sql); $data = kc_data($fields, $data); $s = $king->openForm('manage.php?action=lnkedt'); //kname $_array = array(array('kname', 0, 1, 20)); $s .= $king->htmForm($king->lang->get('system/lnk/kname') . ' (1-20)', '<input class="k_in w200" type="text" name="kname" value="' . htmlspecialchars($data['kname']) . '" maxlength="20" />', $_array); //ktitle $_array = array(array('ktitle', 0, 0, 100)); $s .= $king->htmForm($king->lang->get('system/lnk/ktitle') . ' (0-100)', '<input class="k_in w400" type="text" name="ktitle" value="' . htmlspecialchars($data['ktitle']) . '" maxlength="100" />', $_array); //kpath $_array = array(array('kpath', 0, 1, 100)); $s .= $king->htmForm($king->lang->get('system/lnk/kpath') . ' (1-100)', '<input class="k_in w400" type="text" name="kpath" value="' . htmlspecialchars($data['kpath']) . '" maxlength="100" />', $_array); //konclick $_array = array(array('konclick', 0, 0, 255)); $s .= $king->htmForm($king->lang->get('system/lnk/konclick') . ' (0-255)', '<input class="k_in w400" type="text" name="konclick" value="' . htmlspecialchars($data['konclick']) . '" maxlength="255" />', $_array); //isblank&isflo $array_blank = array(1 => $king->lang->get('system/lnk/blank')); $array_flo = array(1 => $king->lang->get('system/lnk/flo')); $s .= $king->htmForm($king->lang->get('system/lnk/attrib'), kc_htm_checkbox('isblank', $array_blank, $data['isblank']) . kc_htm_checkbox('isflo', $array_flo, $data['isflo'])); //kimage $_array = array(array('kimage', 0, 1, 100)); $array = kc_f_getdir('system/images/lnk', 'gif|png|jpg'); $image = '<div id="lnksel"><p>'; $i = 1; foreach ($array as $val) { $image .= '<a href="javascript:;" onclick="$(\'#kimage\').val(\'' . $val . '\');lnksel();"><img src="images/lnk/' . $val . '"/></a>'; if ($i++ == 6) { $image .= '</p><p>'; $i = 1; } } $image .= '</p></div>'; $s .= $king->htmForm($king->lang->get('system/lnk/image'), '<table class="k_side" cellspacing="0"><tr><td><img src="images/lnk/' . htmlspecialchars($data['kimage']) . '" id="klnkimage"/></td><td>' . $image . '</td></tr></table>', $_array, null, kc_help('system/help/lnkimg')); $s .= kc_htm_hidden(array('adminid' => $data['adminid'], 'kimage' => htmlspecialchars($data['kimage']), 'kid' => $kid)); $s .= '<script>function lnksel(){var kimage=$(\'#kimage\').val();$(\'#klnkimage\').attr(\'src\',\'images/lnk/\'+kimage);}</script>'; $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { // $sql='kname,ktitle,kpath,adminid,kimage,isblank,konclick,isflo'; $array = array(); foreach ($fields as $val) { $array[$val] = $data[$val]; } $_array = array('isblank', 'isflo'); foreach ($_array as $val) { $array[$val] = $data[$val] ? 1 : 0; } if ($kid) { //update $king->db->update('%s_lnk', $array, "kid={$kid}"); $nlog = 7; } else { //insert $array['norder'] = $king->db->neworder('%s_lnk', "adminid={$data['adminid']}"); $nlog = 5; $king->db->insert('%s_lnk', $array); } $king->cache->del('system/lnk/' . $data['adminid']); $king->cache->del('system/lnk/flo_' . $data['adminid']); //写log $king->log($nlog, $data['kname']); kc_goto($king->lang->get('system/goto/is'), 'manage.php?action=lnkedt&adminid=' . $data['adminid'], 'manage.php?action=lnk&adminid=' . $data['adminid']); } $king->skin->output($king->lang->get('system/title/lnk'), king_inc_lnk_left(), '', $s); }
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_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 }
require ROOT . 'system/lib/kc_cache_class.php'; require ROOT . 'system/lib/kc_skin_class.php'; /* ------>>> 全局变量 <<<---------------------------- */ $action = isset($_GET['action']) ? $_GET['action'] : ''; $ismethod = False; //是否POST提交 $ischeck = True; //是否通过表单验证 $check_num = 0; //出现验证错误次数 /* ------>>> 定义常量 <<<---------------------------- */ define('KC_MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); define('NL', chr(13) . chr(10)); define('PAGE_CHARSET', 'UTF-8'); define('DB_PREFIX', DB_DATA . '.' . DB_PRE); define('CMD', kc_get('CMD', 4)); /* ------>>> 开始执行页面 <<<------------------------ */ kc_pageLoad(); $king = new KingCMS_class(); if (!empty($isupdate)) { //检测是否Beta版更新为正式版 $_array = array('kmsg' => $king->lang->get('system/install/update'), 'adminname' => 'CiBill', 'ndate' => time(), 'issys' => 1, 'klink' => ''); $king->db->insert('%s_message', $_array); $cachepath = 'system/message'; $king->cache->rd($cachepath); $_array = array('admineditor' => 'xheditor'); $_where = 'admineditor=\'nicedit\''; $king->db->update('%s_admin', $_array, $_where); } DEBUG && set_error_handler('kc_error_handler'); $king->pageEngine();
/** tagmenu的管理 */ public function tagmenu() { global $king; $cachepath = 'skin/tagmenu/' . $king->admin['adminid']; $number = kc_get('number', 2); $title = kc_post('title'); $url = kc_post('url'); if (!$number) { $number = 7; } $pid = kc_get('pid', 2); if (!$pid) { $pid = 1; } if (!($array = $king->cache->get($cachepath))) { $array = array(); } if (isset($title[0])) { //如果有title,则是要删除对应的键值 $array = array_diff_key($array, array($title => '')); $king->cache->put($cachepath, $array); } $count = count($array); //删除menu后,可能出现pid大于总页数的情况,则做如下判断 if ($pid - 1 >= $count / $number) { $pid--; } $array_new = array_chunk($array, $number, True); if (!($array_new1 = $array_new[$pid - 1])) { $array_new1 = array(); } $s = ''; if ($pid > 1) { $s .= '<a class="k_ajax" rel="{URL:\'../system/manage.php\',CMD:\'tagmenu\',ID:\'k_tagmenu\',number:' . $number . ',pid:' . ($pid - 1) . ',url:\'' . urlencode($url) . '\'}">' . kc_icon('c9') . '</a>'; } foreach ($array_new1 as $key => $val) { $val == $url ? $s .= '<span class="red"><a href="' . $val . '">' . htmlspecialchars($key) . '</a>' : ($s .= '<span><a href="' . $val . '">' . htmlspecialchars($key) . '</a>'); $s .= "<img src=\"../system/images/white.gif\" class=\"k_ajax k8 os\" rel=\"{URL:'../system/manage.php',ID:'k_tagmenu',CMD:'tagmenu',number:{$number},url:" . urlencode($url) . ",pid:{$pid},title:\\'" . urlencode($key) . "\\'}\"/></span>"; } if ($count / $number > $pid) { $s .= '<a class="k_ajax" rel="{URL:\'../system/manage.php\',ID:\'k_tagmenu\',CMD:\'tagmenu\',number:' . $number . ',pid:' . ($pid + 1) . ',url:\'' . urlencode($url) . '\'}">' . kc_icon('d9') . '</a>'; } kc_ajax('', $s); }
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_edt() { global $king; $king->access("portal_list_edt"); $array_static = array(3 => $king->lang->get('portal/static/t3'), 0 => $king->lang->get('portal/static/t0'), 1 => $king->lang->get('portal/static/t1'), 2 => $king->lang->get('portal/static/t2')); $listid = kc_get('listid', 2); $modelid = kc_get('modelid', 22); $modeltables = $king->portal->getModelTables(); $line = $king->config('pidline'); $_sql = 'modelid,listid1,siteid,klistname,ktitle,kkeywords,kdescription,kimage,isblank,iscontent,kcontent,klistpath,ktemplatelist1,ktemplatelist2,kpathmode,ktemplatepage1,ktemplatepage2,ispublish1,ispublish2,klanguage,ismenu1,ismenu2,ismenu3,ismenu4,ismenu5,ismap,nlistnumber,npagenumber,nlist,npage,gid,gidpublish'; if ($GLOBALS['ismethod'] || $listid == '') { //POST过程或新添加的过程 $data = $_POST; if (!$GLOBALS['ismethod']) { //初始化新添加的数据 $data['klanguage'] = $_COOKIE['language']; $data['siteid'] = 0; $data['ismap'] = 1; $data['ismenu1'] = 1; $data['ismenu2'] = 1; $data['listid1'] = 0; $newlistid = $king->db->neworder('%s_list', null, 'listid'); $data['gid'] = -1; $data['nlist'] = 1; $data['npage'] = 0; $tpath = $king->config('templatepath'); $tdefa = $king->config('templatedefault'); switch ($modelid) { case 0: $data['klistpath'] = "list{$line}{$newlistid}" . $king->config('rewriteend'); $data['iscontent'] = 1; $data['ismenu3'] = 1; //默认模板 $ktemplatelist1 = $tpath . '/' . $tdefa; $data['ktemplatelist1'] = is_file(ROOT . $ktemplatelist1) ? $ktemplatelist1 : ''; $ktemplatelist2 = $tpath . '/inside/onepage/' . $tdefa; $data['ktemplatelist2'] = is_file(ROOT . $ktemplatelist2) ? $ktemplatelist2 : ''; break; case -1: $data['klistpath'] = 'http://'; break; default: $data['kpathmode'] = "page{$line}{$newlistid}{$line}ID" . $king->config('rewriteend'); $data['klistpath'] = "list{$line}{$newlistid}{$line}PID" . $king->config('rewriteend'); $model = $king->portal->infoModel($modelid); $data['ispublish1'] = $model['ispublish1']; $data['ispublish2'] = $model['ispublish2']; $data['npagenumber'] = $model['npagenumber']; $data['nlistnumber'] = $model['nlistnumber']; //默认模板 $ktemplatelist1 = $tpath . '/' . $tdefa; $data['ktemplatelist1'] = is_file(ROOT . $ktemplatelist1) ? $ktemplatelist1 : ''; $data['ktemplatepage1'] = is_file(ROOT . $ktemplatelist1) ? $ktemplatelist1 : ''; $ktemplatelist2 = $tpath . '/inside/' . $model['modeltable'] . '[list]/' . $tdefa; $data['ktemplatelist2'] = is_file(ROOT . $ktemplatelist2) ? $ktemplatelist2 : ''; $ktemplatepage2 = $tpath . '/inside/' . $model['modeltable'] . '[page]/' . $tdefa; $data['ktemplatepage2'] = is_file(ROOT . $ktemplatepage2) ? $ktemplatepage2 : ''; } } } else { //编辑数据,从数据库读出 if (!($data = $king->db->getRows_one('select ' . $_sql . ' from %s_list where listid=' . $listid . ' limit 1;'))) { kc_error($king->lang->get('system/error/param') . '<br/>File:' . basename(__FILE__) . ';Line:' . __LINE__ . '<br/>' . $_sql); } if (isset($modelid[0])) { //当有URL形式指定的modelid的时候,比较一下,如果modelid值不同,则重新设置默认值 if ($modelid != $data['modelid']) { if (!isset($data['klanguage'][0])) { $data['klanguage'] = $_COOKIE['language']; } switch ($modelid) { case 0: //单页 $data['klistpath'] = "onepage/list{$line}{$listid}" . $king->config('rewriteend'); break; case -1: //超链 $data['klistpath'] = 'http://'; break; default: $data['klistpath'] = "list{$line}{$listid}{$line}PID" . $king->config('rewriteend'); if (!isset($data['kpathmode'][0])) { $data['kpathmode'] = "page{$line}{$listid}{$line}ID" . $king->config('rewriteend'); } } } } else { $modelid = $data['modelid']; } } $fields = explode(',', $_sql); $data = kc_data($fields, $data); //这个必须要放在下面,不然无法正常获取modelid值 $modeltable = isset($modeltables[$modelid]) ? $modeltables[$modelid] : ''; $s = $king->openForm('manage.php?action=edt', $king->lang->get('portal/caption/basic')); ////modelid 选择模型 if (!($res = $king->db->getRows("select modelid,modelname from %s_model"))) { $res = array(); } $_array_select = array(0 => $king->lang->get('portal/label/onepage'), -1 => $king->lang->get('portal/label/hyperlink')); foreach ($res as $rs) { $_array_select += array($rs['modelid'] => $rs['modelname']); } if ($listid) { //如果是编辑列表,则不让修改栏目类型 if (in_array($modelid, array(0, -1))) { //超链和单页允许修改类型 $s .= $king->htmForm($king->lang->get('portal/label/model'), kc_htm_select('modelid', $_array_select, $modelid, ' onChange="jumpmenu(this);"'), null, 'modelid'); } else { $s .= kc_htm_hidden(array('listid' => $listid)); $s .= $king->htmForm($king->lang->get('portal/label/model'), '<select><option>' . $_array_select[$modelid] . '</option></select>', null, 'modelid'); } } else { $s .= $king->htmForm($king->lang->get('portal/label/model'), kc_htm_select('modelid', $_array_select, $modelid, ' onChange="jumpmenu(this);"'), null, 'modelid', kc_help('portal/help/model', 320, 120)); } $s .= '<script type="text/javascript">'; $s .= 'function jumpmenu(obj){eval("parent.location=\'manage.php?action=edt&listid=' . $listid . '&modelid="+obj.options[obj.selectedIndex].value+"\'");}'; $s .= '</script>'; //listid1 $s .= $king->htmForm($king->lang->get('portal/label/listid1'), $king->portal->LinkAge('listid1', $data['listid1'], 0, $listid), null, 'Listid1'); //siteid if (!($res = $king->db->getRows("select siteid,sitename from %s_site;"))) { kc_error($king->lang->get('system/error/notre')); } $_array_select = array(); foreach ($res as $rs) { $_array_select += array($rs['siteid'] => htmlspecialchars($rs['sitename'])); } if ($modelid != -1) { if ($king->acc('portal_site_edt')) { $manage = '<a class="k_ajax" rel="{CMD:\'site\',is:1,METHOD:\'GET\'}">' . kc_icon('f7', $king->lang->get('portal/common/addsite')) . '</a>'; } $s .= $king->htmForm($king->lang->get('portal/label/siteid'), kc_htm_select('siteid', $_array_select, $data['siteid']) . $manage, null, 'Siteid', kc_help('portal/help/site', 320, 150)); } else { $s .= kc_htm_hidden(array('siteid' => $res[0]['siteid'])); } $s .= "<script>function addsite(siteid,sitename){var site=document.getElementsByName('siteid');var opt=document.createElement('option');opt.innerHTML=sitename;opt.value=siteid;opt.selected='selected';site[0].appendChild(opt);};</script>"; //klistname $_array = array(array('klistname', 0, 1, 100)); $s .= $king->htmForm($king->lang->get('portal/label/listname') . ' (1-100)', '<input class="k_in w300" type="text" name="klistname" value="' . htmlspecialchars($data['klistname']) . '" maxlength="100" />', $_array, 'ListName'); //ktitle $_array = array(array('ktitle', 0, 1, 100)); $s .= $king->htmForm($king->lang->get('portal/label/listtitle') . ' (1-100, ' . $king->lang->get('portal/label/listtitle1') . ')', '<input class="k_in w300" type="text" name="ktitle" value="' . htmlspecialchars($data['ktitle']) . '" maxlength="100" />', $_array, 'ListTitle'); //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, 'Keywords'); //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, 'Description'); //kimage if ($data['kimage']) { $_array = array(array('kimage', 0, 0, 255), array('kimage', 7)); } $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, 'Image'); //klanguage $s .= $king->htmForm($king->lang->get('system/common/language'), kc_htm_select('klanguage', kc_htm_selectlang(), $data['klanguage']), null, 'Language'); //gid if ($modelid > 0) { $king->Load('user'); $array_group = $king->user->getGroup(); $array_group[-1] = $king->lang->get('user/group/open'); $s .= $king->htmForm($king->lang->get('user/label/access'), kc_htm_select('gid', $array_group, $data['gid']), null, 'gid', kc_help('user/help/access')); } $s .= $king->splitForm($king->lang->get('portal/caption/list')); switch ($modelid) { case 0: //单页 //nlist $s .= $king->htmForm($king->lang->get('portal/label/onetype'), kc_htm_select('nlist', $array_static, $data['nlist'])); //klistpath $_array = array(array('klistpath', 0, 0, 255), array('klistpath', 15)); //判断(编辑/添加)状态 if ($listid) { //edt if (isset($data['klistpath'][0])) { array_push($_array, array('klistpath', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select listid from %s_list where klistpath='" . $king->db->escape($data['klistpath']) . "' and listid<>{$listid} and modelid<>1;"))); } else { //如果是空值,则比较同一siteid下面是否有两个 array_push($_array, array('klistpath', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select listid from %s_list where klistpath='' and siteid=" . $king->db->escape($data['siteid']) . " and modelid=0 and listid<>{$listid};"))); } } else { //add if (isset($data['klistpath'][0])) { array_push($_array, array('klistpath', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select listid from %s_list where klistpath='" . $king->db->escape($data['klistpath']) . "' and modelid<>1;"))); } else { array_push($_array, array('klistpath', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select listid from %s_list where klistpath='' and siteid=" . $king->db->escape($data['siteid']) . " and modelid=0;"))); } } if (in_array($modelid, array(0))) { //单页 $s .= $king->htmForm($king->lang->get('portal/label/path') . ' (0-255)', '<input class="k_in w400" type="text" name="klistpath" value="' . htmlspecialchars($data['klistpath']) . '" maxlength="255" />', $_array, 'Path', kc_help('portal/help/path', 320, 120)); //ktemplatelist1 if ($modelid == 0) { $_array = array(array('ktemplatelist1', 0, 5, 255), array('ktemplatelist1', 15)); } else { $_array = array(); } $s .= $king->htmForm($king->lang->get('portal/label/template1') . ' (5-255)', '<input class="k_in w400" type="text" id="ktemplatelist1" name="ktemplatelist1" value="' . htmlspecialchars($data['ktemplatelist1']) . '" maxlength="255" />' . kc_f_brow('ktemplatelist1', $king->config('templatepath'), 2), $_array, null, kc_help('portal/help/template', 455, 455)); //ktemplatelist2 $_array = array(array('ktemplatelist2', 0, 0, 255), array('ktemplatelist2', 15)); $s .= $king->htmForm($king->lang->get('portal/label/template2') . ' (0-255)', '<input class="k_in w400" type="text" id="ktemplatelist2" name="ktemplatelist2" value="' . htmlspecialchars($data['ktemplatelist2']) . '" maxlength="255" />' . kc_f_brow('ktemplatelist2', $king->config('templatepath') . '/inside/onepage', 2), $_array); } break; case -1: //超链 //klistpath + islink $_array = array(array('klistpath', 0, 1, 255)); $data['isblank'] == 1 ? $checked = ' checked="checked"' : ($checked = ''); $s .= $king->htmForm($king->lang->get('portal/label/linkpath') . ' (1-255)', '<input class="k_in w500" type="text" name="klistpath" value="' . htmlspecialchars($data['klistpath']) . '" maxlength="255" /><br/><span><input type="checkbox" name="isblank" id="isblank" value="1" ' . $checked . '/><label for="isblank">' . $king->lang->get('portal/label/isblank') . '</label></span>', $_array, 'ListPath'); break; default: //nlist if ($data['gid'] == -1) { $_array = array(); } else { $_array = array(array('nlist', 12, $king->lang->get('user/check/access'), $data['nlist'] == 0)); } $array_static_list = $array_static; $array_static_list[4] = $king->lang->get('portal/static/t4'); $s .= $king->htmForm($king->lang->get('portal/label/nlist'), kc_htm_select('nlist', $array_static_list, $data['nlist']), $_array); //klistpath $_array = array(array('klistpath', 0, 1, 255), array('klistpath', 15)); $s .= $king->htmForm($king->lang->get('portal/label/listpath') . ' (1-255)', '<input class="k_in w400" type="text" name="klistpath" value="' . htmlspecialchars($data['klistpath']) . '" maxlength="255" />', $_array, 'ListPath', kc_help('portal/help/listpath')); //ktemplatelist1 $_array = array(array('ktemplatelist1', 0, 5, 255), array('ktemplatelist1', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatelist1') . ' (5-255)', '<input class="k_in w400" type="text" name="ktemplatelist1" id="ktemplatelist1" value="' . htmlspecialchars($data['ktemplatelist1']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatelist1', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455)); //ktemplatelist2 $_array = array(array('ktemplatelist2', 0, 0, 255), array('ktemplatelist2', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatelist2') . ' (0-255)', '<input class="k_in w400" type="text" name="ktemplatelist2" id="ktemplatelist2" value="' . htmlspecialchars($data['ktemplatelist2']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatelist2', $king->config('templatepath') . '/inside/' . $modeltable . '[list]', 2)); //nlistnumber $_array = array(array('nlistnumber', 2), array('nlistnumber', 16, $king->lang->get('portal/error/listnumber'), 1, 100)); $s .= $king->htmForm($king->lang->get('portal/label/listnumber') . ' (≤100)', '<input class="k_in w50" type="text" name="nlistnumber" id="nlistnumber" value="' . htmlspecialchars($data['nlistnumber']) . '" maxlength="3" />', $_array); $s .= $king->splitForm($king->lang->get('portal/caption/page')); //npage if ($data['gid'] == -1) { $_array = array(); } else { $_array = array(array('npage', 12, $king->lang->get('user/check/access'), $data['npage'] == 0)); } $s .= $king->htmForm($king->lang->get('portal/label/npage'), kc_htm_select('npage', $array_static, $data['npage']), $_array); //kpathmode $_array = array(array('kpathmode', 0, 1, 100), array('kpathmode', 15)); $s .= $king->htmForm($king->lang->get('portal/label/pathmode') . ' (1-100)', '<input class="k_in w400" type="text" name="kpathmode" value="' . htmlspecialchars($data['kpathmode']) . '" maxlength="100" />', $_array, null, kc_help('portal/help/kpathmode', 300, 350)); //ktemplatepage1 $_array = array(array('ktemplatepage1', 0, 5, 255), array('ktemplatepage1', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatepage1') . ' (5-255)', '<input class="k_in w400" type="text" name="ktemplatepage1" id="ktemplatepage1" value="' . htmlspecialchars($data['ktemplatepage1']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatepage1', $king->config('templatepath'), 2) . kc_help('portal/help/template', 455, 455)); //ktemplatepage2 $_array = array(array('ktemplatepage2', 0, 0, 255), array('ktemplatepage2', 15)); $s .= $king->htmForm($king->lang->get('portal/label/templatepage2') . ' (0-255)', '<input class="k_in w400" type="text" name="ktemplatepage2" id="ktemplatepage2" value="' . htmlspecialchars($data['ktemplatepage2']) . '" maxlength="255" />', $_array, null, kc_f_brow('ktemplatepage2', $king->config('templatepath') . '/inside/' . $modeltable . '[page]', 2)); //npagenumber $_array = array(array('npagenumber', 2), array('npagenumber', 16, $king->lang->get('portal/error/listnumber'), 1, 100)); $s .= $king->htmForm($king->lang->get('portal/label/pagenumber') . ' (≤100)', '<input class="k_in w50" type="text" name="npagenumber" id="npagenumber" value="' . htmlspecialchars($data['npagenumber']) . '" maxlength="3" />', $_array, null, kc_help('portal/help/pagenumber', 300, 160)); } if ($modelid > 0) { $s .= $king->splitForm($king->lang->get('portal/caption/access')); //gidpublish $_array = array(array('gidpublish', 0, 1, 6), array('gidpublish', 22)); $s .= $king->htmForm($king->lang->get('user/label/publish'), kc_htm_select('gidpublish', $array_group, $data['gidpublish']), $_array, 'gidpublish'); //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/publish1'), 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/publish2'), kc_htm_radio('ispublish2', $_array_radio, $data['ispublish2'])); } $s .= $king->splitForm($king->lang->get('portal/caption/other')); if ($modelid != -1) { //iscontent $data['iscontent'] == 1 ? $checked = ' checked="checked"' : ($checked = ''); $_checkbox = '<span><input type="checkbox" id="iscontent" name="iscontent" value="1" onclick="javascript:seiscontent()" ' . $checked . '/><label for="iscontent">' . $king->lang->get('portal/label/havecontent') . '</label><var><i onClick="window.clipboardData.setData(\'Text\',\'{king:content/}\');">{king:content/}</i></var></span>'; // $s.=$king->htmForm($_checkbox.$king->lang->get('system/common/content'),null,array(),'Content'); //kcontent if ($data['iscontent'] == 1) { $_array = array(array('kcontent', 0), array('kcontent', 21)); } else { $_array = array(); } $s .= $king->htmForm($king->lang->get('system/common/content'), $_checkbox . '<div id="iscontent1">' . kc_htm_editor('kcontent', $data['kcontent']) . '</div>', $_array); $s .= "<script>"; $s .= "function seiscontent(){var obj=\$('#iscontent');if(obj.attr('checked')==true){\$('#iscontent1').show();}else{\$('#iscontent1').hide()}};seiscontent();"; $s .= "</script>"; } //菜单设置 $_menu = '<span>'; for ($i = 1; $i <= 5; ++$i) { $data['ismenu' . $i] == 1 ? $checked = ' checked="checked"' : ($checked = ''); if ($i >= 3) { $_menu .= '<br/><a href="manage.php?action=menu' . $i . '" target="_blank">' . kc_icon('e7', $king->lang->get('portal/common/edtmenu')) . '</a>'; } $_menu .= '<input type="checkbox" name="ismenu' . $i . '" id="ismenu' . $i . '" value="1"' . $checked . '/><label for="ismenu' . $i . '">' . $king->lang->get('portal/label/menu' . $i) . '</label> '; } $_menu .= '</span>'; $_menu .= ''; $s .= $king->htmForm($king->lang->get('portal/label/setmenu'), $_menu); //地图显示设置 $data['ismap'] == 1 ? $checked = ' checked="checked"' : ($checked = ''); $s .= $king->htmForm($king->lang->get('portal/label/map'), '<span><input type="checkbox" name="ismap" id="ismap" value="1"' . $checked . '/><label for="ismap">' . $king->lang->get('portal/label/maps') . '</label></span>'); $s .= kc_htm_hidden(array('modelid' => $modelid, 'listid' => $listid)); $s .= $king->closeForm('save'); if ($GLOBALS['ischeck']) { $_array_sql = array('isblank', 'iscontent', 'ismap'); foreach ($_array_sql as $_value) { $data[$_value] = $data[$_value] ? 1 : 0; } for ($i = 1; $i <= 5; $i++) { $data['ismenu' . $i] = $data['ismenu' . $i] ? 1 : 0; } $_array = array('modelid' => $modelid ? $modelid : 0, 'listid1' => $data['listid1'], 'klistname' => $data['klistname'], 'ktitle' => $data['ktitle'], 'kkeywords' => $data['kkeywords'], 'kdescription' => $data['kdescription'], 'kimage' => $data['kimage'], 'ismenu1' => $data['ismenu1'], 'ismenu2' => $data['ismenu2'], 'ismenu3' => $data['ismenu3'], 'ismenu4' => $data['ismenu4'], 'ismenu5' => $data['ismenu5'], 'ismap' => $data['ismap'], 'siteid' => $data['siteid'], 'klanguage' => $data['klanguage'], 'klistpath' => $data['klistpath'], 'gid' => !empty($data['gid']) ? $data['gid'] : -1, 'gidpublish' => isset($data['gidpublish']) ? intval($data['gidpublish']) : -1); switch ($modelid) { case 0: //单页 $_array += array('ktemplatelist1' => $data['ktemplatelist1'], 'ktemplatelist2' => $data['ktemplatelist2'], 'iscontent' => $data['iscontent'], 'kcontent' => $data['kcontent'], 'nlist' => $data['nlist']); break; case -1: //超链 $_array['isblank'] = $data['isblank']; break; default: //自定义模型 $_array += array('iscontent' => $data['iscontent'], 'kcontent' => $data['kcontent'], 'nlistnumber' => $data['nlistnumber'], 'npagenumber' => $data['npagenumber'], 'klistpath' => $data['klistpath'], 'ktemplatelist1' => $data['ktemplatelist1'], 'ktemplatelist2' => $data['ktemplatelist2'], 'kpathmode' => $data['kpathmode'], 'ktemplatepage1' => $data['ktemplatepage1'], 'ktemplatepage2' => $data['ktemplatepage2'], 'ispublish1' => $data['ispublish1'], 'ispublish2' => $data['ispublish2'], 'nlist' => $data['nlist'], 'npage' => $data['npage']); } if ($listid) { //update // kc_error('<pre>'.print_r($_array,1)); $king->db->update('%s_list', $_array, 'listid=' . $listid); $nlog = 7; //更新列表信息 $king->portal->lastUpdated($listid); } else { $neworder = $king->db->neworder('%s_list'); $_array += array('norder' => $neworder, 'norder3' => $neworder, 'norder4' => $neworder, 'norder5' => $neworder); $listid = $king->db->insert('%s_list', $_array); // kc_error('<pre>'.print_r($_array,1)); $nlog = 5; } //删除缓存 $king->cache->del('portal/list/' . $listid); $king->cache->rd('portal/site'); if ($data['listid1']) { $king->cache->del('portal/list/' . $data['listid1']); } //单页的时候调用生成列表,列表的时候,加入到增量更新里 /**/ if ($modelid == 0) { $king->portal->createList($listid); } /**/ //写log $king->log($nlog, 'ListName:' . $data['klistname']); kc_goto($king->lang->get('system/goto/is'), 'manage.php?action=edt', 'manage.php'); } list($left, $right) = king_inc_list(); $king->skin->output($king->lang->get('portal/title/list' . ($listid ? 'edt' : 'add')), $left, $right, $s); }
/** 上移下移数据 @param string $_table 数据表名 @param int $id 索引ID的值 @param string $_where 条件 @param int $_order 排序,1为倒序,0为正序 @param string $_kidname 索引ID的字段名称 @param string $_norder 决定排序的字段名称 这个函数可以进一步优化,当置顶或垫底的时候,直接获取最大值+1或最小值-1的方法来更新 这样做就不用遍历很多数据,也可以避免数据过多的时候,超时的问题。 */ public function updown($_table, $id, $_where = null, $_order = 1, $_kidname = 'kid', $_norder = 'norder') { $_back = $_SERVER['HTTP_REFERER']; $_array1 = array('kid' => 0, 'norder' => 0); $_array2 = array('kid' => 0, 'norder' => 0); //@param int $_num 偏移量 $_num = kc_get('NUMBER', 2, 1); //@param string $_act [up|down]上移或下移 $_act = kc_post('UPDOWN') == 'up' ? 'up' : 'down'; if ($_order) { $_act == 'down' ? $order = 'desc' : ($order = 'asc'); } else { $_act == 'up' ? $order = 'desc' : ($order = 'asc'); } if ($_where != null) { $_where = ' where ' . $_where; } $sql = "select {$_kidname},{$_norder} from {$_table} {$_where} order by {$_norder} {$order}"; $this->query($sql); $this->getRows_number(); if ($_num == 0) { $_num = $this->Rows; } $_table = sprintf($_table, DB_PRE); $array = is_object($this->mQuery) ? $this->mQuery->fetchAll() : $array(); $count = count($array); for ($i = 0; $i < $count; $i++) { if ($id == $array[$i][$_kidname]) { $_array1['kid'] = $array[$i][$_kidname]; $_array2['kid'] = $array[$i][$_norder]; for ($j = 1; $j <= $_num; $j++) { if ($i + $j < $count) { $_array1['norder'] = $array[$i + $j][$_kidname]; $_array2['norder'] = $array[$i + $j][$_norder]; $this->link->query("update {$_table} set {$_norder}={$_array2['norder']} where {$_kidname}={$_array1['kid']}"); $this->link->query("update {$_table} set {$_norder}={$_array2['kid']} where {$_kidname}={$_array1['norder']}"); $_array2['kid'] = $_array2['norder']; } } kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); } } kc_ajax('', '', 0, 'parent.location=\'' . $_back . '\''); }
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); }