www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/include/archive.fun.php

    <?php
!defined('M_COM') && exit('No Permission');
function arc_allow(&$item,$pname){
	global $curuser,$catalogs,$cotypes;
	if(!in_array($pname,array('aread','issue','comment','answer','purchase','download'))) return false;
	if($curuser->infos['mid'] && $curuser->infos['mid'] == $item['mid']) return true;
	$pmids = array();
	$item['permission'] && ($pmids[] = $item['permission']);
	(($catalog = read_cache('catalog',$item['caid'],'',$item['sid'])) && $catalog['permission']) && ($pmids[] = $catalog['permission']);
	foreach($cotypes as $coid => $cotype){
		if(!empty($item["cotype$coid"])){
			(($coclass = read_cache('coclass',$coid,$item["cotype$coid"])) && $coclass['permission']) && $pmids[] = $coclass['permission'];
		}
	}
	return $curuser->pmbypmids($pname,$pmids);
}
function calshipingfee($orderfee,$shid,$weight=0){
	global $shipings;
	$shipingfee = 0;
	if(empty($shipings[$shid])) return $shipingfee;
	extract($shipings[$shid]);
	if(!empty($freetop) && $orderfee < $freetop) return $shipingfee;
	$shipingfee = $basefee;
	$shipingfee += empty($plus1mode) ? $plus1 : $orderfee * $plus1 / 100;
	$shipingfee += empty($plus2mode) ? $plus2 : $orderfee * $plus2 / 100;
	if($base2 && $weight > $base2){
		$shipingfee += ceil(($weight - $base2) / $unit2) * $price2;
		$weight = $base2;
	}
	if($base1 && $weight > $base1){
		$shipingfee += ceil(($weight - $base1) / $unit1) * $price1;
	}
	return intval($shipingfee);
}
function arc_parse(&$item){//一个文档解析时需要分析的相关内容
	global $catalogs,$cotypes,$channels,$altypes,$subsites;
	$item['arcurl'] = view_arcurl($item);
	$item['sitename'] = empty($item['sid']) ? lang('msite') : $subsites[$item['sid']]['sitename'];
	$item['siteurl'] = view_siteurl($item['sid']);
	$item['catalog'] = $catalogs[$item['caid']]['title'];
	$item['channel'] = $channels[$item['chid']]['cname'];
	$item['altype'] = $item['atid'] ? $altypes[$item['atid']]['cname'] : '';
	foreach($cotypes as $k => $cotype){
		$item['cotype'.$k.'title'] = '';
		if($item["cotype$k"]){
			$coclasses = read_cache('coclasses',$k);
			$item['cotype'.$k.'title'] = $coclasses[$item["cotype$k"]]['title'];
		}
	}
	fetch_txt($item);
	arr_tag2atm($item);
}
function arc_htmldir(&$item){//只是取得文档在根目录下的路径,aaa/sss/
	global $archtmlmode,$cnhtmldir,$subsites;
	$catalogs = read_cache('catalogs','','',$item['sid']);
	$topid = cn_topid($item['caid'],$catalogs);
	$arc_dir = ($item['sid'] ? $subsites[$item['sid']]['dirname'] : $cnhtmldir).'/'.$catalogs[$topid]['dirname'].'/'.date($archtmlmode == 'month' ? 'Ym' : 'Ymd',$item['createdate']).'/';
	unset($catalogs);
	return $arc_dir;
}
function arc_blank($aid,$arcfile,$force=0){//$arcfile完全服务器路径
	if($force || !is_file($arcfile)) str2file(blank_content("archive.php?aid=$aid"),$arcfile);
}

function fetch_txt(&$item){
	$fields = read_cache('fields',$item['chid']);
	foreach($fields as $k => $v){
		if(!empty($v['istxt']) && isset($item[$k])) $item[$k] = readfromtxt($item[$k]);
	}
}
function cn_discount(&$item,$dcmode = 1){
	global $catalogs,$cotypes;
	if(empty($item['aid']) || !$dcmode) return 0;
	$dcarr = array();
	if(!empty($item['caid'])){
		$catalog = read_cache('catalog',$item['caid'],'',$item['sid']);
		!empty($catalog['discount']) && $dcarr[] = $catalog['discount'];
	}
	foreach($cotypes as $coid => $cotype){
		if(!empty($item["cotype$coid"])){
			$coclass = read_cache('coclass',$coid,$item["cotype$coid"]);
			!empty($coclass['discount']) && $dcarr[] = $coclass['discount'];
		}
	}
	$discount = caldiscount($dcarr,$dcmode);
	return $discount;
}
function caldiscount($dcarr=array(),$dcmode=1){
	$discount = 0;
	if(!$dcmode || empty($dcarr)) return $discount;
	foreach($dcarr as $v){
		if($dcmode == 1){
			$discount = max($discount,$v / 100);
		}else{
			$discount = 1 - (1 - $discount) * (1 - $v / 100);
		}
	}
	return round($discount * 100,2);
}

?>