分享一个destoon7.0会员模块+产品供应模块发布接口,希望对大家有帮助!
<?php
@set_time_limit(0);
define(‘DT_ADMIN‘, true);
define(‘DT_MEMBER‘, true);
require ‘common.inc.php‘;
require DT_ROOT.‘/admin/global.func.php‘;
require DT_ROOT.‘/include/post.func.php‘;
require_once DT_ROOT.‘/include/cache.func.php‘;
require_once DT_ROOT.‘/include/module.func.php‘;
require DT_ROOT.‘/module/member/member.class.php‘;
require DT_ROOT.‘/module/sell/sell.class.php‘;
require DT_ROOT . ‘/include/remote.class.php‘;
/****************配置信息华丽的分割线***************/
$config = array
(
‘注册邮件后缀‘ => ‘qq.com|||126.com|||163.com‘, //多个用|||分割
‘注册用户名‘ => ‘a_123456|||b_123456|||c_123456|||d_123456|||e_123456|||f_123456|||g_123456‘,
//发布用户名,把想充当发布的用户名放到这里,用|||分割,用户名不需要在系统已经存在,如果没有会自动注册
//跟系统格式相同不可有中文字符,用户名应为小写字母(a-z)、数字(0-9)、下划线(_)、中划线(-)组合
‘用户密码‘ => ‘‘, //新注册用户的密码
‘用户密码参数‘ => ‘jksdjfs‘, //用户密码参数,建议随意修改
‘分隔符‘ => ‘|||‘, //采集器标签循环的分隔符
);
/****************配置信息华丽的分割线***************/
/**
* 验证接口密码
*/
$pw = ‘123456‘;//默认接口密码,此接口放在服务器上时,为了你的服务器安全请及时修改此密码参数
if(strcmp($_GET[‘pw‘] , $pw)){
exit(‘接口密码错误!‘);
}
/**
* 获取行业分类列表
*/
if(isset($_GET[‘getList‘])){
echo category_select(‘list‘, ‘请选择行业分类‘, 0, 5);
exit;
}
//die;
/**
* 企业用户注册
*/
$do = new member;
$user = explode($config[‘分隔符‘], $config[‘注册用户名‘]);
$username = !empty($_POST[‘username‘]) ? $_POST[‘username‘] : ‘‘;
if(empty($username)){
$username = $user[rand(0,count($user)-1)].substr(md5(time()),1,6);
}
if($do->username_exists($username)){
echo(‘该用户名已经存在!‘);
}else {
if(!$do->is_username($username)){
exit(‘用户名不合法!‘);
}
$md5 = md5($username.$config[‘用户密码参数‘]);
if(!empty($config[‘用户密码‘])){
$password = $config[‘用户密码‘];
}else{
$password = substr($md5, 20);
}
if(empty($config[‘注册邮件后缀‘])){
$mail_ext = ‘@126.com‘;
}else{
$mail_arr = explode(‘|||‘, $config[‘注册邮件后缀‘]);
$mail_ext = ‘@‘.$mail_arr[rand(0 , count($mail_arr)-1)];
}
$email = !empty($_POST[‘email‘]) ? $_POST[‘email‘] : ‘‘;
if(empty($email)) {
$email = substr($md5, 0, 6) . $mail_ext;
}
if (!$do->is_email($email)) {
exit(‘邮箱不合法!‘);
}
if ($do->email_exists($email)) {
exit(‘该邮箱已被注册‘);
}
$company = !empty($_POST[‘company‘]) ? $_POST[‘company‘] : ‘‘;
if(empty($company)) {
$company = ‘合肥信息技术有限公司‘.substr(md5(time()),0,6);
}
if (empty($company)) {
exit(‘公司名不可为空!‘);
}
if (!$do->is_company($company)) exit(‘公司名不合法!‘);
if ($do->company_exists($company)) exit(‘公司名已经存在,请更换!‘);
$session = new dsession();
$_SESSION[‘regemail‘] = md5(md5($email . DT_KEY . $DT_IP));
$member = array();
$_POST[‘regid‘] = 6;
$data = $_POST;
$member[‘mobile‘] = isset($data[‘mobile‘]) ? $data[‘mobile‘] : ‘‘;
$member[‘qq‘] = isset($data[‘qq‘]) ? $data[‘qq‘] : ‘‘;
$member[‘groupid‘] = $data[‘regid‘];
$member[‘passport‘] = $member[‘username‘] = $username;
$member[‘email‘] = $email;
$member[‘password‘] = $member[‘cpassword‘] = $password;
$member[‘edittime‘] = $DT_TIME;
$member[‘inviter‘] = $username;
$member[‘truename‘] = !empty($data[‘truename‘]) ? $data[‘truename‘] : $username;
$member[‘gender‘] = !empty($data[‘gender‘]) ? (strcmp($data[‘gender‘],‘男‘) ? 0: 1 ) : 1;
$member[‘areaid‘] = 1;
$member[‘company‘] = $company;
$member[‘type‘] = !empty($data[‘type‘]) ? $data[‘type‘] : ‘企业单位‘;
$member[‘catid‘] = ‘,3,‘;
$member[‘business‘] = !empty($data[‘business‘]) ? $data[‘business‘] : ‘制造业‘;
$member[‘business‘] = ‘人民币‘;
$member[‘regyear‘] = !empty($data[‘regyear‘]) ? $data[‘regyear‘] : ‘2010‘;
$member[‘address‘] = !empty($data[‘address‘]) ? $data[‘address‘] : ‘公司地址为空‘;
$member[‘telephone‘] = !empty($data[‘telephone‘]) ? $data[‘telephone‘] : ‘0551-62864156-606‘;
$member[‘introduce‘] = !empty($data[‘introduce‘]) ? $data[‘introduce‘] : ‘我公司经过多年的发展,逐渐在本行业发展成为领头企业‘;
$MFD = cache_read(‘fields-member.php‘);
$CFD = cache_read(‘fields-company.php‘);
isset($post_fields) or $post_fields = array();
if ($MFD || $CFD) require DT_ROOT . ‘/include/fields.func.php‘;
if ($MFD) fields_check($post_fields, $MFD);
if ($CFD) fields_check($post_fields, $CFD);
$MOD[‘introduce_length‘] = 0;
$uid = $do->add($member);
if ($uid) {
echo ‘企业用户注册成功!‘;
} else {
exit(‘企业用户注册失败!‘);
}
}
/***企业用户注册完毕*/
/**
* 行业分类处理
*/
//echo category_select(‘category[parentid]‘, ‘请选择行业分类‘, 0, 5);
if(!empty($_POST[‘cid‘])){
$pid = $_POST[‘cid‘];
}
if(!empty($_POST[‘catname‘])) {
$do = new category(5,0);
$table = $DT_PRE . ‘category‘;
$cat_arr = $_POST[‘catname‘];
$catArr = explode(‘|||‘, $cat_arr);
$pid = 0;
foreach($catArr as $catname) {
if (!$catname) exit(‘分类名不能为空‘);
isset($catname) or $catname = ‘‘;
if (!$catname || strpos($catname, "\n") !== false) exit(‘‘);
if (strtoupper(DT_CHARSET) != ‘UTF-8‘) $catname = convert($catname, ‘UTF-8‘, DT_CHARSET);
$catdir = $do->get_letter($catname, false);
if ($do->get_catdir($catdir)) {
$catgory = array();
$catgory[‘catname‘] = $catname;
$catgory[‘catdir‘] = $catdir;
$catgory[‘letter‘] = substr($catdir, 0, 1);
$catgory[‘parentid‘] = $pid;
$pid = categoryAdd($catgory, $table);
echo $catname.‘此行业分类添加成功!‘;
} else {
$arr = catList();
foreach($arr as $key){
if(strcmp($key[‘catname‘],$catname) == 0){
$pid = $key[‘catid‘];
break;
}
}
echo ‘已存在此行业分类!‘;
continue;
}
}
}
/**
* 行业分类处理完毕
*/
/**
* 图片上传处理
*/
if(!empty($_POST[‘remotePic‘])) {
$remotePic = explode(‘|||‘, $_POST[‘remotePic‘]);
$num = count($remotePic);
$remoteUrl = array();
if ($num > 0) {
$i = 0;
for ($i; $i < $num; $i++) {
$remote = isset($remotePic[$i]) ? trim($remotePic[$i]) : ‘‘;
$uploaddir = ‘file/upload/‘ . timetodate($DT_TIME, $DT[‘uploaddir‘]) . ‘/‘;
$from = ‘album‘;
is_dir(DT_ROOT . ‘/‘ . $uploaddir) or dir_create(DT_ROOT . ‘/‘ . $uploaddir);
if ($remote && strlen($remote) > 17 && strpos($remote, ‘://‘) !== false) {
$do = new remote($remote, $uploaddir);
if ($do->save()) {
$session = new dsession();
$limit = intval($MG[‘uploadlimit‘]);
$total = isset($_SESSION[‘uploads‘]) ? count($_SESSION[‘uploads‘]) : 0;
if ($limit && $total > $limit - 1) {
file_del(DT_ROOT . ‘/‘ . $do->saveto);
$errmsg = ‘Error(5)‘ . lang(‘message->upload_limit‘, array($limit));
if ($swfupload) exit(convert($errmsg, DT_CHARSET, ‘utf-8‘));
dalert($errmsg, ‘‘, $errjs);
}
$img_info = @getimagesize(DT_ROOT . ‘/‘ . $do->saveto);
if (in_array($do->ext, array(‘jpg‘, ‘jpeg‘, ‘gif‘, ‘png‘, ‘bmp‘, ‘swf‘))) {
$upload_bad = 0;
if ($img_info) {
$upload_mime = array(‘jpg‘ => ‘image/jpeg‘, ‘jpeg‘ => ‘image/jpeg‘, ‘gif‘ => ‘image/gif‘, ‘png‘ => ‘image/png‘, ‘bmp‘ => ‘image/bmp‘, ‘swf‘ => ‘application/x-shockwave-flash‘);
if ($img_info[‘mime‘] != $upload_mime[$do->ext]) $upload_bad = 1;
} else {
$upload_bad = 1;
}
if ($upload_bad) {
file_del(DT_ROOT . ‘/‘ . $do->saveto);
$errmsg = ‘Error(6)‘ . lang(‘message->upload_bad‘);
if ($swfupload) exit(convert($errmsg, DT_CHARSET, ‘utf-8‘));
dalert($errmsg, ‘‘, $errjs);
}
}
if (in_array($do->ext, array(‘jpg‘, ‘jpeg‘)) && $img_info[‘channels‘] == 4) {
file_del(DT_ROOT . ‘/‘ . $do->saveto);
$errmsg = ‘Error(7)‘ . lang(‘message->upload_cmyk‘);
if ($swfupload) exit(convert($errmsg, DT_CHARSET, ‘utf-8‘));
dalert($errmsg, ‘‘, $errjs);
}
$img_w = $img_h = 0;
if ($do->image) {
require DT_ROOT . ‘/include/image.class.php‘;
if ($do->ext == ‘gif‘ && in_array($from, array(‘thumb‘, ‘album‘, ‘photo‘))) {
if (!function_exists(‘imagegif‘) || !function_exists(‘imagecreatefromgif‘)) {
file_del(DT_ROOT . ‘/‘ . $do->saveto);
$errmsg = ‘Error(8)‘ . lang(‘message->upload_jpg‘);
if ($swfupload) exit(convert($errmsg, DT_CHARSET, ‘utf-8‘));
dalert($errmsg, ‘‘, $errjs);
}
}
if ($DT[‘bmp_jpg‘] && $do->ext == ‘bmp‘) {
require DT_ROOT . ‘/include/bmp.func.php‘;
$bmp_src = DT_ROOT . ‘/‘ . $do->saveto;
$bmp = imagecreatefrombmp($bmp_src);
if ($bmp) {
$do->saveto = str_replace(‘.bmp‘, ‘.jpg‘, $do->saveto);
$do->ext = ‘jpg‘;
imagejpeg($bmp, DT_ROOT . ‘/‘ . $do->saveto);
file_del($bmp_src);
if (DT_CHMOD) @chmod(DT_ROOT . ‘/‘ . $do->saveto, DT_CHMOD);
}
}
$img_w = $img_info[0];
$img_h = $img_info[1];
if ($DT[‘max_image‘] && in_array($from, array(‘editor‘, ‘album‘, ‘photo‘))) {
if ($img_w > $DT[‘max_image‘]) {
$img_h = intval($DT[‘max_image‘] * $img_h / $img_w);
$img_w = $DT[‘max_image‘];
$image = new image(DT_ROOT . ‘/‘ . $do->saveto);
$image->thumb($img_w, $img_h);
}
}
if ($from == ‘thumb‘) {
if ($width && $height) {
$image = new image(DT_ROOT . ‘/‘ . $do->saveto);
$image->thumb($width, $height, $DT[‘thumb_title‘]);
$img_w = $width;
$img_h = $height;
$do->file_size = filesize(DT_ROOT . ‘/‘ . $do->saveto);
}
} else if ($from == ‘album‘ || $from == ‘photo‘) {
$saveto = $do->saveto;
$do->saveto = $do->saveto . ‘.thumb.‘ . $do->ext;
file_copy(DT_ROOT . ‘/‘ . $saveto, DT_ROOT . ‘/‘ . $do->saveto);
$middle = $saveto . ‘.middle.‘ . $do->ext;
file_copy(DT_ROOT . ‘/‘ . $saveto, DT_ROOT . ‘/‘ . $middle);
if ($DT[‘water_type‘] == 2) {
$image = new image(DT_ROOT . ‘/‘ . $saveto);
$image->waterimage();
} else if ($DT[‘water_type‘] == 1) {
$image = new image(DT_ROOT . ‘/‘ . $saveto);
$image->watertext();
}
if ($DT[‘water_type‘] && $DT[‘water_com‘] && $_groupid > 5) {
$image = new image(DT_ROOT . ‘/‘ . $saveto);
$image->text = $_company;
$image->pos = 5;
$image->watertext();
}
if ($from == ‘photo‘) $DT[‘thumb_album‘] = 0;
$image = new image(DT_ROOT . ‘/‘ . $do->saveto);
$image->thumb($width, $height, $DT[‘thumb_album‘]);
$image = new image(DT_ROOT . ‘/‘ . $middle);
$image->thumb($DT[‘middle_w‘], $DT[‘middle_h‘], $DT[‘thumb_album‘]);
if ($DT[‘water_middle‘] && $DT[‘water_type‘]) {
if ($DT[‘water_type‘] == 2) {
$image = new image(DT_ROOT . ‘/‘ . $middle);
$image->waterimage();
} else if ($DT[‘water_type‘] == 1) {
$image = new image(DT_ROOT . ‘/‘ . $middle);
$image->watertext();
}
}
} else if ($from == ‘editor‘) {
if ($_groupid == 1 && !isset($watermark)) $DT[‘water_type‘] = 0;
if ($DT[‘water_type‘]) {
$image = new image(DT_ROOT . ‘/‘ . $do->saveto);
if ($DT[‘water_type‘] == 2) {
$image->waterimage();
} else if ($DT[‘water_type‘] == 1) {
$image->watertext();
}
}
}
}
$remoteUrl[$i] = linkurl($do->saveto);
echo ‘图片处理成功!‘;
}
}
}
}
}
//print_r($remoteUrl);
//die;
/**图片处理结束*****/
/**
* 发布供应信息处理
*/
$do = new sell(5);
$post[‘catid‘] = $pid;
$post[‘typeid‘] = !empty($_POST[‘typeid‘]) ? $_POST[‘typeid‘] : 0;
$post[‘level‘] = 1;
$post[‘title‘] = !empty($_POST[‘title‘]) ? $_POST[‘title‘] : ‘供应测试标题‘;
$post[‘brand‘] = !empty($_POST[‘brand‘]) ? $_POST[‘brand‘] : ‘‘;
$post[‘content‘] = !empty($_POST[‘content‘]) ? $_POST[‘content‘] : ‘‘;
$post[‘thumb‘] = isset($remoteUrl[0]) ? $remoteUrl[0] : ‘‘;
$post[‘thumb1‘] = isset($remoteUrl[1]) ? $remoteUrl[1] : ‘‘;
$post[‘thumb2‘] = isset($remoteUrl[2]) ? $remoteUrl[2] : ‘‘;
$post[‘totime‘] = ‘‘;//过期时间
$post[‘n1‘] = !empty($_POST[‘n1‘]) ? $_POST[‘n1‘] : ‘‘;
$post[‘v1‘] = !empty($_POST[‘n1‘]) && !empty($_POST[‘v1‘]) ? $_POST[‘v1‘] : ‘‘;
$post[‘n2‘] = !empty($_POST[‘n2‘]) ? $_POST[‘n2‘] : ‘‘;
$post[‘v2‘] = !empty($_POST[‘n2‘]) && !empty($_POST[‘v2‘]) ? $_POST[‘v2‘] : ‘‘;
$post[‘n3‘] = !empty($_POST[‘n3‘]) ? $_POST[‘n3‘] : ‘‘;
$post[‘v3‘] = !empty($_POST[‘n3‘]) && !empty($_POST[‘v3‘]) ? $_POST[‘v3‘] : ‘‘;
$post[‘username‘] = $username;
$post[‘elite‘] = !empty($_POST[‘elite‘]) ? $_POST[‘elite‘] : 1;
$post[‘fee‘] = !empty($_POST[‘fee‘]) ? (is_numeric($_POST[‘fee‘])? $_POST[‘fee‘] :0) : 0;
$post[‘unit‘] = !empty($_POST[‘unit‘]) ? $_POST[‘unit‘] : ‘‘;
if(!empty($_POST[‘unit‘])){
$post[‘price‘] = !empty($_POST[‘price‘]) ? $_POST[‘price‘] : ‘‘;
$post[‘minamount‘] = !empty($_POST[‘minamount‘]) ? $_POST[‘minamount‘] : ‘‘;
$post[‘amount‘] = !empty($_POST[‘amount‘]) ? $_POST[‘amount‘] : ‘‘;
$post[‘days‘] = !empty($_POST[‘days‘]) ? $_POST[‘days‘] : ‘‘;
}
$post[‘status‘] = 3;
$post[‘addtime‘] = date(‘Y-m-d H:i:s‘,time());
if($do->pass($post)) {
$do->table = $DT_PRE . ‘sell_5‘;
$do->moduleid = 5;
$do->table_search = $DT_PRE . ‘sell_search_5‘;
$MOD[‘split‘] = 1;
$do->add($post);
$update = ‘‘;
$update .= "hits=‘2‘";
$linkurl = ‘show.php?itemid=‘."$do->itemid";
$update .= ",linkurl=‘$linkurl‘";
$do->db->query("UPDATE {$do->table} SET ".$update." WHERE itemid=$do->itemid");
if($do->itemid){
exit(‘供应信息发布成功!‘);
}else{
exit(‘供应信息发布失败1!‘);
}
} else {
exit(‘供应信息发布失败!‘);
}
/**
* Class category
*/
class category {
var $moduleid;
var $catid;
var $category = array();
var $db;
var $table;
function category($moduleid = 1, $catid = 0) {
global $db, $DT_PRE, $CATEGORY;
$this->moduleid = $moduleid;
$this->catid = $catid;
if(!isset($CATEGORY)) $CATEGORY = cache_read(‘category-‘.$this->moduleid.‘.php‘);
$this->category = $CATEGORY;
$this->table = $DT_PRE.‘category‘;
$this->db = &$db;
}
function add($category) {
$category[‘moduleid‘] = 5;
$category[‘letter‘] = preg_match("/^[a-z]{1}+$/i", $category[‘letter‘]) ? strtolower($category[‘letter‘]) : ‘‘;
$category[‘group_list‘] = ‘3,5,6,7‘;
$category[‘group_show‘] = ‘3,5,6,7‘;
$category[‘group_add‘] = ‘3,5,6,7‘;
$sqlk = $sqlv = ‘‘;
foreach($category as $k=>$v) {
$sqlk .= ‘,‘.$k; $sqlv .= ",‘$v‘";
}
$sqlk = substr($sqlk, 1);
$sqlv = substr($sqlv, 1);
$this->db->query("INSERT INTO {$this->table} ($sqlk) VALUES ($sqlv)");
$this->catid = $this->db->insert_id();
if($category[‘parentid‘]) {
$category[‘catid‘] = $this->catid;
$this->category[$this->catid] = $category;
$arrparentid = $this->get_arrparentid($this->catid, $this->category);
} else {
$arrparentid = 0;
}
$catdir = $category[‘catdir‘] ? $category[‘catdir‘] : $this->catid;
$this->db->query("UPDATE {$this->table} SET listorder=$this->catid,catdir=‘$catdir‘,arrparentid=‘$arrparentid‘ WHERE catid=$this->catid");
return $this->catid;
}
function edit($category) {
$category[‘letter‘] = preg_match("/^[a-z]{1}+$/i", $category[‘letter‘]) ? strtolower($category[‘letter‘]) : ‘‘;
if($category[‘parentid‘]) {
$category[‘catid‘] = $this->catid;
$this->category[$this->catid] = $category;
$category[‘arrparentid‘] = $this->get_arrparentid($this->catid, $this->category);
} else {
$category[‘arrparentid‘] = 0;
}
foreach(array(‘group_list‘, ‘group_show‘, ‘group_add‘) as $v) {
$category[$v] = isset($category[$v]) ? implode(‘,‘, $category[$v]) : ‘‘;
}
$category[‘linkurl‘] = ‘‘;
$sql = ‘‘;
foreach($category as $k=>$v) {
$sql .= ",$k=‘$v‘";
}
$sql = substr($sql, 1);
$this->db->query("UPDATE {$this->table} SET $sql WHERE catid=$this->catid");
return true;
}
function delete($catids) {
if(is_array($catids)) {
foreach($catids as $catid) {
if(isset($this->category[$catid])) $this->delete($catid);
}
} else {
$catid = $catids;
if(isset($this->category[$catid])) {
$this->db->query("DELETE FROM {$this->table} WHERE catid=$catid");
$arrchildid = $this->category[$catid][‘arrchildid‘] ? $this->category[$catid][‘arrchildid‘] : $catid;
$this->db->query("DELETE FROM {$this->table} WHERE catid IN ($arrchildid)");
if($this->moduleid > 4) $this->db->query("UPDATE ".get_table($this->moduleid)." SET status=0 WHERE catid IN (".$arrchildid.")");
}
}
return true;
}
function update($category) {
if(!is_array($category)) return false;
foreach($category as $k=>$v) {
if(!$v[‘catname‘]) continue;
$v[‘parentid‘] = intval($v[‘parentid‘]);
if($k == $v[‘parentid‘]) continue;
if($v[‘parentid‘] > 0 && !isset($this->category[$v[‘parentid‘]])) continue;
$v[‘listorder‘] = intval($v[‘listorder‘]);
$v[‘level‘] = intval($v[‘level‘]);
$v[‘letter‘] = preg_match("/^[a-z0-9]{1}+$/i", $v[‘letter‘]) ? strtolower($v[‘letter‘]) : ‘‘;
$v[‘catdir‘] = $this->get_catdir($v[‘catdir‘], $k);
if(!$v[‘catdir‘]) $v[‘catdir‘] = $k;
$this->db->query("UPDATE {$this->table} SET catname=‘$v[catname]‘,parentid=‘$v[parentid]‘,listorder=‘$v[listorder]‘,style=‘$v[style]‘,level=‘$v[level]‘,letter=‘$v[letter]‘,catdir=‘$v[catdir]‘ WHERE catid=$k ");
}
return true;
}
function repair() {
$query = $this->db->query("SELECT * FROM {$this->table} WHERE moduleid=‘$this->moduleid‘ ORDER BY listorder,catid");
$CATEGORY = array();
while($r = $this->db->fetch_array($query)) {
$CATEGORY[$r[‘catid‘]] = $r;
}
$childs = array();
foreach($CATEGORY as $catid => $category) {
$CATEGORY[$catid][‘arrparentid‘] = $arrparentid = $this->get_arrparentid($catid, $CATEGORY);
$CATEGORY[$catid][‘catdir‘] = $catdir = preg_match("/^[0-9a-z_\-\/]+$/i", $category[‘catdir‘]) ? $category[‘catdir‘] : $catid;
$sql = "catdir=‘$catdir‘,arrparentid=‘$arrparentid‘";
if(!$category[‘linkurl‘]) {
$CATEGORY[$catid][‘linkurl‘] = listurl($category);
$sql .= ",linkurl=‘$category[linkurl]‘";
}
$this->db->query("UPDATE {$this->table} SET $sql WHERE catid=$catid");
if($arrparentid) {
$arr = explode(‘,‘, $arrparentid);
foreach($arr as $a) {
if($a == 0) continue;
isset($childs[$a]) or $childs[$a] = ‘‘;
$childs[$a] .= ‘,‘.$catid;
}
}
}
foreach($CATEGORY as $catid => $category) {
if(isset($childs[$catid])) {
$CATEGORY[$catid][‘arrchildid‘] = $arrchildid = $catid.$childs[$catid];
$CATEGORY[$catid][‘child‘] = 1;
$this->db->query("UPDATE {$this->table} SET arrchildid=‘$arrchildid‘,child=1 WHERE catid=‘$catid‘");
} else {
$CATEGORY[$catid][‘arrchildid‘] = $catid;
$CATEGORY[$catid][‘child‘] = 0;
$this->db->query("UPDATE {$this->table} SET arrchildid=‘$catid‘,child=0 WHERE catid=‘$catid‘");
}
}
$this->cache($CATEGORY);
return true;
}
function get_arrparentid($catid, $CATEGORY) {
if($CATEGORY[$catid][‘parentid‘] && $CATEGORY[$catid][‘parentid‘] != $catid) {
$parents = array();
$cid = $catid;
while($catid) {
if($CATEGORY[$cid][‘parentid‘]) {
$parents[] = $cid = $CATEGORY[$cid][‘parentid‘];
} else {
break;
}
}
$parents[] = 0;
return implode(‘,‘, array_reverse($parents));
} else {
return ‘0‘;
}
}
function get_arrchildid($catid, $CATEGORY) {
$arrchildid = ‘‘;
foreach($CATEGORY as $category) {
if(strpos(‘,‘.$category[‘arrparentid‘].‘,‘, ‘,‘.$catid.‘,‘) !== false) $arrchildid .= ‘,‘.$category[‘catid‘];
}
return $arrchildid ? $catid.$arrchildid : $catid;
}
function get_catdir($catdir, $catid = 0) {
if(preg_match("/^[0-9a-z_\-\/]+$/i", $catdir)) {
$condition = "catdir=‘$catdir‘ AND moduleid=‘$this->moduleid‘";
if($catid) $condition .= " AND catid!=$catid";
$r = $this->db->get_one("SELECT catid FROM {$this->table} WHERE $condition");
if($r) {
return ‘‘;
} else {
return $catdir;
}
} else {
return ‘‘;
}
}
function get_letter($catname, $letter = true) {
return $letter ? strtolower(substr(gb2py($catname), 0, 1)) : str_replace(‘ ‘, ‘‘, gb2py($catname));
}
function cache($data = array()) {
cache_category($this->moduleid, $data);
}
}
function categoryAdd($category = array(),$table){
require ‘common.inc.php‘;
global $db;
$CATEGORY = cache_read(‘category-5.php‘);
$do = new category(5,0);
if(!$category[‘catname‘]) msg(‘分类名不能为空‘);
$category[‘catname‘] = trim($category[‘catname‘]);
$childs = ‘‘;
$catids = array();
if(strpos($category[‘catname‘], "\n") === false) {
$category[‘catdir‘] = $do->get_catdir($category[‘catdir‘]);
$do->add($category);
$childs .= ‘,‘.$do->catid;
$catids[] = $do->catid;
} else {
$catnames = explode("\n", $category[‘catname‘]);
foreach($catnames as $catname) {
$catname = trim($catname);
if(!$catname) continue;
$category[‘catname‘] = $catname;
$category[‘catdir‘] = ‘‘;
$category[‘letter‘] = ‘‘;
$category[‘seo_title‘] = ‘‘;
$category[‘seo_keywords‘] = ‘‘;
$category[‘seo_description‘] = ‘‘;
$do->add($category);
$childs .= ‘,‘.$do->catid;
$catids[] = $do->catid;
}
}
if($category[‘parentid‘]) {
$parents = array();
$cid = $category[‘parentid‘];
$parents[] = $cid;
while(1) {
if($CATEGORY[$cid][‘parentid‘]) {
$parents[] = $cid = $CATEGORY[$cid][‘parentid‘];
} else {
break;
}
}
foreach($parents as $catid) {
$arrchildid = $CATEGORY[$catid][‘child‘] ? $CATEGORY[$catid][‘arrchildid‘].$childs : $catid.$childs;
$db->query("UPDATE {$table} SET child=1,arrchildid=‘$arrchildid‘ WHERE catid=$catid");
}
}
foreach($catids as $catid) {
$CATEGORY[$catid] = $db->get_one("SELECT * FROM {$table} WHERE catid=$catid");
update_category($CATEGORY[$catid]);
}
return $do->catid;
}
function catList(){
global $db;
$condition ="moduleid=5";
$result = $db->query("SELECT catid,catname,parentid FROM {$db->pre}category WHERE $condition ORDER BY listorder,catid ASC");
$arr = array();
$i = 0;
while($c = $db->fetch_array($result)) {
$arr[$i++] = $c;
}
return $arr;
}
原文:https://www.cnblogs.com/68xi/p/12233498.html