1)
{
EcmsDefMoreport($ecms_config['sets']['selfmoreportid']);
}
//--------------- 数据库 ---------------
function db_connect(){
global $ecms_config;
$dblink=do_dbconnect($ecms_config['db']['dbserver'],$ecms_config['db']['dbport'],$ecms_config['db']['dbusername'],$ecms_config['db']['dbpassword'],$ecms_config['db']['dbname']);
return $dblink;
}
function return_dblink($query){
$dblink=$GLOBALS['link'];
return $dblink;
}
//设置编码
function DoSetDbChar($dbchar){
global $link;
if($dbchar&&$dbchar!='auto')
{
do_DoSetDbChar($dbchar,$link);
}
}
function db_close(){
global $link;
do_dbclose($link);
}
//--------------- 公共 ---------------
//设置COOKIE
function esetcookie($var,$val,$life=0,$ecms=0){
global $ecms_config;
//secure属性
$cksecure=$ecms_config['cks']['cksecure'];
if(!empty($cksecure))
{
$secure=0;
if($cksecure==2)//开启
{
$secure=1;
}
elseif($cksecure==3)//后台开启
{
if(defined('EmpireCMSAdmin'))
{
$secure=1;
}
}
elseif($cksecure==4)//前台开启
{
if(!defined('EmpireCMSAdmin'))
{
$secure=1;
}
}
else
{}
}
else
{
$secure=eCheckUseHttps();
}
//httponly属性
$ckhttponly=$ecms_config['cks']['ckhttponly'];
$httponly=0;
if(!empty($ckhttponly))
{
if($ckhttponly==1)//开启
{
$httponly=1;
}
elseif($ckhttponly==2)//后台开启
{
if(defined('EmpireCMSAdmin'))
{
$httponly=1;
}
}
elseif($ckhttponly==3)//前台开启
{
if(!defined('EmpireCMSAdmin'))
{
$httponly=1;
}
}
else
{}
}
//设置
$varpre=empty($ecms)?$ecms_config['cks']['ckvarpre']:$ecms_config['cks']['ckadminvarpre'];
$ckpath=$ecms_config['cks']['ckpath'];
if(PHP_VERSION<'5.2.0')
{
if($httponly)
{
$ckpath.='; HttpOnly';
}
return setcookie($varpre.$var,$val,$life,$ckpath,$ecms_config['cks']['ckdomain'],$secure);
}
else
{
return setcookie($varpre.$var,$val,$life,$ckpath,$ecms_config['cks']['ckdomain'],$secure,$httponly);
}
}
//返回cookie
function getcvar($var,$ecms=0){
global $ecms_config;
$tvar=empty($ecms)?$ecms_config['cks']['ckvarpre'].$var:$ecms_config['cks']['ckadminvarpre'].$var;
return $_COOKIE[$tvar];
}
//错误提示
function printerror($error="",$gotourl="",$ecms=0,$noautourl=0,$novar=0){
global $empire,$editor,$public_r,$ecms_config;
if($editor==1){$a="../";}
elseif($editor==2){$a="../../";}
elseif($editor==3){$a="../../../";}
else{$a="";}
if($ecms==1||$ecms==9)
{
$a=ECMS_PATH.'e/data/';
}
if(strstr($gotourl,"(")||empty($gotourl))
{
if(strstr($gotourl,"(-2"))
{
$gotourl_js="history.go(-2)";
$gotourl="javascript:history.go(-2)";
}
else
{
$gotourl_js="history.go(-1)";
$gotourl="javascript:history.go(-1)";
}
}
else
{$gotourl_js="self.location.href='$gotourl';";}
if(empty($error))
{$error="DbError";}
if($ecms==9)//前台弹出对话框
{
@include $a.LoadLang("pub/q_message.php");
$error=empty($novar)?$qmessage_r[$error]:$error;
echo"";
db_close();
$empire=null;
exit();
}
elseif($ecms==8)//后台弹出对话框
{
@include $a.LoadLang("pub/message.php");
$error=empty($novar)?$message_r[$error]:$error;
echo"";
db_close();
$empire=null;
exit();
}
elseif($ecms==7)//前台弹出对话框并关闭窗口
{
@include $a.LoadLang("pub/q_message.php");
$error=empty($novar)?$qmessage_r[$error]:$error;
echo"";
db_close();
$empire=null;
exit();
}
elseif($ecms==6)//后台弹出对话框并关闭窗口
{
@include $a.LoadLang("pub/message.php");
$error=empty($novar)?$message_r[$error]:$error;
echo"";
db_close();
$empire=null;
exit();
}
elseif($ecms==0)
{
@include $a.LoadLang("pub/message.php");
$error=empty($novar)?$message_r[$error]:$error;
@include($a."message.php");
}
else
{
@include $a.LoadLang("pub/q_message.php");
$error=empty($novar)?$qmessage_r[$error]:$error;
@include($a."../message/index.php");
}
db_close();
$empire=null;
exit();
}
//错误提示2:直接文字
function printerror2($error='',$gotourl='',$ecms=0,$noautourl=0){
global $empire,$public_r;
if(strstr($gotourl,"(")||empty($gotourl))
{
if(strstr($gotourl,"(-2"))
{
$gotourl_js="history.go(-2)";
$gotourl="javascript:history.go(-2)";
}
else
{
$gotourl_js="history.go(-1)";
$gotourl="javascript:history.go(-1)";
}
}
else
{$gotourl_js="self.location.href='$gotourl';";}
if($ecms==9)//弹出对话框
{
echo"";
}
elseif($ecms==7)//弹出对话框并关闭窗口
{
echo"";
}
else
{
@include(ECMS_PATH.'e/message/index.php');
}
db_close();
exit();
}
//ajax错误提示
function ajax_printerror($result='',$ajaxarea='ajaxarea',$error='',$ecms=0,$novar=0){
global $empire,$editor,$public_r,$ecms_config;
if($editor==1){$a="../";}
elseif($editor==2){$a="../../";}
elseif($editor==3){$a="../../../";}
else{$a="";}
if($ecms==1)
{
$a=ECMS_PATH.'e/data/';
}
if($ecms==0)
{
@include $a.LoadLang("pub/message.php");
$error=empty($novar)?$message_r[$error]:$error;
}
else
{
@include $a.LoadLang("pub/q_message.php");
$error=empty($novar)?$qmessage_r[$error]:$error;
}
if(empty($ajaxarea))
{
$ajaxarea='ajaxarea';
}
$ajaxarea=ehtmlspecialchars($ajaxarea,ENT_QUOTES);
$string=$result.'|'.$ajaxarea.'|'.$error;
echo $string;
db_close();
$empire=null;
exit();
}
//直接转向
function printerrortourl($gotourl='',$error='',$sec=0){
global $empire,$editor,$public_r,$ecms_config;
echo''.$error;
db_close();
$empire=null;
exit();
}
//编码转换
function DoIconvVal($code,$targetcode,$str,$inc=0){
global $editor;
if($editor==1){$a="../";}
elseif($editor==2){$a="../../";}
elseif($editor==3){$a="../../../";}
else{$a="";}
if($inc)
{
@include_once(ECMS_PATH."e/class/doiconv.php");
}
$iconv=new Chinese($a);
$str=$iconv->Convert($code,$targetcode,$str);
return $str;
}
//初始化访问端
function EcmsDefMoreport($pid){
global $public_r,$ecms_config,$emoreport_r;
if(empty($public_r['ckhavemoreport']))
{
exit();
}
$pid=(int)$pid;
if($pid<=1||!$emoreport_r[$pid]['pid'])
{
exit();
}
if($emoreport_r[$pid]['isclose'])
{
echo'This visit port is close!';
exit();
}
//关闭后台
if(defined('EmpireCMSAdmin')&&$emoreport_r[$pid]['openadmin'])
{
if($emoreport_r[$pid]['openadmin']==1)
{
if(defined('EmpireCMSAPage'))
{
//echo'Admin close!';
exit();
}
}
else
{
//echo'Admin close!';
exit();
}
}
$ecms_config['sets']['deftempid']=$emoreport_r[$pid]['tempgid'];
$ecms_config['sets']['pagemustdt']=$emoreport_r[$pid]['mustdt'];
$ecms_config['sets']['mainportpath']=$emoreport_r[1]['ppath'];
if($emoreport_r[$pid]['closeadd'])
{
$public_r['addnews_ok']=$emoreport_r[$pid]['closeadd'];
}
}
//重置为主访问端模板组ID
function Moreport_ResetMainTempGid(){
global $ecms_config,$public_r,$emoreport_r;
$pid=(int)$ecms_config['sets']['selfmoreportid'];
if($pid<=1||!$emoreport_r[$pid]['pid'])
{
return '';
}
$ecms_config['sets']['deftempid']=$public_r['deftempid']?$public_r['deftempid']:1;
}
//转向访问端目录
function Moreport_eSetSelfPath($pid,$ecms=0){
global $empire,$dbtbpre,$public_r,$ecms_config;
$pid=(int)$pid;
$defpr=array();
$defpr['ppath']='';
if($pid<=1)
{
$pid=1;
}
$pr=$empire->fetch1("select * from {$dbtbpre}enewsmoreport where pid='$pid'");
if(!$pr['ppath']||!file_exists($pr['ppath'].'e/config/config.php'))
{
return $defpr;
}
define('ECMS_SELFPATH',$pr['ppath']);
$ecms_config['sets']['deftempid']=$pr['tempgid'];
//缓存模板
if($ecms==1)
{
$tr=$empire->fetch1("select downsofttemp,onlinemovietemp,listpagetemp from ".GetTemptb("enewspubtemp")." limit 1");
$public_r['downsofttemp']=addslashes(stripSlashes($tr['downsofttemp']));
$public_r['onlinemovietemp']=addslashes(stripSlashes($tr['onlinemovietemp']));
$public_r['listpagetemp']=addslashes(stripSlashes($tr['listpagetemp']));
}
return $pr;
}
//autodo
function eAutodo_AddDo($dotype,$classid,$id,$tid,$userid,$pid,$fname='',$ckdoall=1){
return '';
}
//返回是否强制动态页
function Moreport_ReturnMustDt(){
global $ecms_config;
return $ecms_config['sets']['pagemustdt'];
}
//返回是否强制动态页(加状态)
function Moreport_ReturnMustDtAnd(){
global $ecms_config;
if(defined('ECMS_SELFPATH')&&$ecms_config['sets']['pagemustdt'])
{
return 1;
}
else
{
return 0;
}
}
//返回强制动态页状态
function Moreport_ReturnDtStatus($dt){
global $ecms_config;
if($ecms_config['sets']['pagemustdt'])
{
return 1;
}
else
{
return $dt;
}
}
//返回内容页地址(访问端)
function Moreport_ReturnTitleUrl($classid,$id){
$rewriter=eReturnRewriteInfoUrl($classid,$id,1);
$titleurl=$rewriter['pageurl'];
return $titleurl;
}
//返回栏目页地址(访问端)
function Moreport_ReturnClassUrl($classid){
global $public_r,$class_r;
if($class_r[$classid]['wburl'])
{
$classurl=$class_r[$classid]['wburl'];
}
else
{
$rewriter=eReturnRewriteClassUrl($classid,1);
$classurl=$rewriter['pageurl'];
}
return $classurl;
}
//返回标题分类页地址(访问端)
function Moreport_ReturnInfoTypeUrl($typeid){
$rewriter=eReturnRewriteTitleTypeUrl($typeid,1);
$url=$rewriter['pageurl'];
return $url;
}
//返回首页地址(访问端)
function Moreport_ReturnIndexUrl(){
global $public_r;
$file=$public_r['newsurl'].'index.php';
return $file;
}
//根据编号返回模板表名
function eTnoGetTempTbname($no){
if($no==1)//标签模板
{
$temptb='enewsbqtemp';
}
elseif($no==2)//JS模板
{
$temptb='enewsjstemp';
}
elseif($no==3)//列表模板
{
$temptb='enewslisttemp';
}
elseif($no==4)//内容模板
{
$temptb='enewsnewstemp';
}
elseif($no==5)//公共模板
{
$temptb='enewspubtemp';
}
elseif($no==6)//搜索模板
{
$temptb='enewssearchtemp';
}
elseif($no==7)//模板变量
{
$temptb='enewstempvar';
}
elseif($no==8)//投票模板
{
$temptb='enewsvotetemp';
}
elseif($no==9)//封面模板
{
$temptb='enewsclasstemp';
}
elseif($no==10)//评论模板
{
$temptb='enewspltemp';
}
elseif($no==11)//打印模板
{
$temptb='enewsprinttemp';
}
elseif($no==12)//自定义页面模板
{
$temptb='enewspagetemp';
}
else
{
$temptb='';
}
return $temptb;
}
//模板表转换
function GetTemptb($temptb){
global $public_r,$ecms_config,$dbtbpre;
if(!empty($ecms_config['sets']['deftempid']))
{
$tempid=$ecms_config['sets']['deftempid'];
}
else
{
$tempid=$public_r['deftempid'];
}
if(!empty($tempid)&&$tempid!=1)
{
$en="_".$tempid;
}
return $dbtbpre.$temptb.$en;
}
//返回操作模板表
function GetDoTemptb($temptb,$gid){
global $dbtbpre;
if(!empty($gid)&&$gid!=1)
{
$en="_".$gid;
}
return $dbtbpre.$temptb.$en;
}
//返回当前使用模板组ID
function GetDoTempGid(){
global $ecms_config,$public_r;
if($ecms_config['sets']['deftempid'])
{
$gid=$ecms_config['sets']['deftempid'];
}
elseif($public_r['deftempid'])
{
$gid=$public_r['deftempid'];
}
else
{
$gid=1;
}
return $gid;
}
//导入语言包
function LoadLang($file){
global $ecms_config;
return "../data/language/".$ecms_config['sets']['elang']."/".$file;
}
//取得IP
function egetip(){
global $ecms_config;
if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown'))
{
$ip=getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown'))
{
$ip=getenv('REMOTE_ADDR');
}
elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown'))
{
$ip=$_SERVER['REMOTE_ADDR'];
}
if($ecms_config['sets']['getiptype']>0)
{
$ip=egetipadd();
}
$ip=RepPostVar(preg_replace("/^([\d\.]+).*/","\\1",$ip));
return $ip;
}
//取得IP附加
function egetipadd(){
global $ecms_config;
if($ecms_config['sets']['getiptype']==2)
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
elseif($ecms_config['sets']['getiptype']==3)
{
$ip=getenv('HTTP_CLIENT_IP');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
return $ip;
}
//取得端口
function egetipport(){
$ipport=(int)$_SERVER['REMOTE_PORT'];
return $ipport;
}
//检查地址
function ecms_eCheckNotUrl($str){
if(stristr($str,'/')||stristr($str,':')||stristr($str,"\\")||stristr($str,'&')||stristr($str,'?')||stristr($str,'#')||stristr($str,'@')||stristr($str,'"')||stristr($str,"'")||stristr($str,'%'))
{
exit();
}
return $str;
}
//返回来源地址
function EcmsGetReturnUrl(){
global $public_r;
$from=$_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:$public_r['newsurl'];
return RepPostStrUrl($from);
}
//checkdomain
function eToCheckThisDomain($url){
$domain=eReturnDomain();
if(!stristr($url,$domain))
{
exit();
}
if(eCheckHaveReStr($url,'://'))
{
exit();
}
}
//checkotherurl
function eCheckOtherViewUrl($url,$havevar=0,$ecms=0){
//fromurl
if($ecms==1)
{
$fromurl=$_SERVER['HTTP_REFERER'];
if(!$fromurl)
{
exit();
}
eToCheckThisDomain($fromurl);
}
if(!$url)
{
exit();
}
$url=RepPostStrUrl($url);
if(!$havevar)
{
if(stristr($url,'?')||stristr($url,'&')||stristr($url,'#'))
{
exit();
}
}
//url
if(stristr($url,'://'))
{
eToCheckThisDomain($url);
}
else
{
if(stristr($str,':')||stristr($str,"\\")||stristr($str,'"')||stristr($str,"'"))
{
exit();
}
}
}
//checkrestr
function eCheckHaveReStr($str,$exp){
$r=explode($exp,$str);
if(count($r)>2)
{
return 1;
}
return 0;
}
//checkurl
function eToCheckIsUrl($url){
$r=explode('://',$url);
return eCheckStrType(2,$r[0],0);
}
//checkurl2
function eToCheckIsUrl2($url){
if(substr($url,0,4)=='http')
{
return 1;
}
return 0;
}
//checkstrtype
function eCheckStrType($type,$str,$doing=0){
$ret=0;
if($type==1)//数字
{
if(preg_match('/^[0-9]+$/',$str))
{
$ret=1;
}
}
elseif($type==2)//字母
{
if(preg_match('/^[A-Za-z]+$/',$str))
{
$ret=1;
}
}
elseif($type==3)//字母+数字
{
if(preg_match('/^[A-Za-z0-9]+$/',$str))
{
$ret=1;
}
}
elseif($type==4)//字母+数字+下划线
{
if(preg_match('/^[A-Za-z0-9_]+$/',$str))
{
$ret=1;
}
}
elseif($type==5)//字母+数字+下划线+点
{
if(preg_match('/^[A-Za-z0-9\-\._]+$/',$str))
{
$ret=1;
}
}
else
{
$ret=0;
}
if($doing)
{
if($ret<1)
{
exit();
}
}
return $ret;
}
//返回地址
function DoingReturnUrl($url,$from=''){
if(empty($from))
{
return RepPostStrUrl($url);
}
elseif($from==9)
{
$from=$_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:$url;
}
return RepPostStrUrl($from);
}
//htmlspecialchars处理
function ehtmlspecialchars($val,$flags=ENT_COMPAT){
global $ecms_config;
if(PHP_VERSION>='5.4.0')
{
if($ecms_config['sets']['pagechar']=='utf-8')
{
$char='UTF-8';
}
else
{
$char='ISO-8859-1';
}
$val=htmlspecialchars($val,$flags,$char);
}
else
{
$val=htmlspecialchars($val,$flags);
}
return $val;
}
//addslashes处理
function eaddslashes($val,$ckmq=1){
if($ckmq==1&&MAGIC_QUOTES_GPC)
{
return $val;
}
$val=addslashes($val);
return $val;
}
//addslashes处理
function eaddslashes2($val,$ckmq=1){
if($ckmq==1&&MAGIC_QUOTES_GPC)
{
return addslashes($val);
}
$val=addslashes(addslashes($val));
return $val;
}
//stripSlashes处理
function estripSlashes($val,$ckmq=1){
if($ckmq==1&&!MAGIC_QUOTES_GPC)
{
return $val;
}
$val=stripSlashes($val);
return $val;
}
//stripSlashes处理
function estripSlashes2($val,$ckmq=1){
if($ckmq==1&&!MAGIC_QUOTES_GPC)
{
return stripSlashes($val);
}
$val=stripSlashes(stripSlashes($val));
return $val;
}
//变量正数型处理
function RepPIntvar($val){
$val=intval($val);
if($val<0)
{
$val=0;
}
return $val;
}
//参数处理函数
function RepPostVar($val){
if($val!=addslashes($val))
{
exit();
}
CkPostStrChar($val);
$val=str_replace("%","",$val);
$val=str_replace(" ","",$val);
$val=str_replace("`","",$val);
$val=str_replace("\t","",$val);
$val=str_replace("%20","",$val);
$val=str_replace("%27","",$val);
$val=str_replace("*","",$val);
$val=str_replace("'","",$val);
$val=str_replace("\"","",$val);
$val=str_replace("/","",$val);
$val=str_replace(";","",$val);
$val=str_replace("#","",$val);
$val=str_replace("--","",$val);
$val=RepPostStr($val,1);
$val=addslashes($val);
//FireWall
FWClearGetText($val);
return $val;
}
//参数处理函数2
function RepPostVar2($val){
if($val!=addslashes($val))
{
exit();
}
CkPostStrChar($val);
$val=str_replace("%","",$val);
$val=str_replace("`","",$val);
$val=str_replace("\t","",$val);
$val=str_replace("%20","",$val);
$val=str_replace("%27","",$val);
$val=str_replace("*","",$val);
$val=str_replace("'","",$val);
$val=str_replace("\"","",$val);
$val=str_replace("/","",$val);
$val=str_replace(";","",$val);
$val=str_replace("#","",$val);
$val=str_replace("--","",$val);
$val=RepPostStr($val,1);
$val=addslashes($val);
//FireWall
FWClearGetText($val);
return $val;
}
//参数处理函数3
function RepPostVar3($val){
if($val!=addslashes($val))
{
exit();
}
CkPostStrChar($val);
$val=str_replace("%","",$val);
$val=str_replace("`","",$val);
$val=str_replace("\t","",$val);
$val=str_replace("%20","",$val);
$val=str_replace("%27","",$val);
$val=str_replace("*","",$val);
$val=str_replace("'","",$val);
$val=str_replace("\"","",$val);
//$val=str_replace("/","",$val);
$val=str_replace(";","",$val);
$val=str_replace("#","",$val);
$val=str_replace("--","",$val);
$val=RepPostStr($val,1);
$val=addslashes($val);
//FireWall
FWClearGetText($val);
return $val;
}
//验证编码字符
function CkPostStrCharYh($val){
if($val!=addslashes($val))
{
exit();
}
return $val;
}
//处理提交字符
function RepPostStr($val,$ecms=0,$phck=0){
if($phck==1)
{
CkPostStrCharYh($val);
}
$val=ehtmlspecialchars($val,ENT_QUOTES);
if($ecms==0)
{
CkPostStrChar($val);
$val=AddAddsData($val);
//FireWall
FWClearGetText($val);
}
return $val;
}
//处理提交字符2
function RepPostStr2($val,$phck=0){
if($phck==1)
{
CkPostStrCharYh($val);
}
CkPostStrChar($val);
$val=AddAddsData($val);
//FireWall
FWClearGetText($val);
return $val;
}
//处理地址
function RepPostStrUrl($val,$phck=0){
$val=str_replace('&','&',RepPostStr($val,1,$phck));
return $val;
}
//保存数据处理
function dgdb_tosave($val,$phck=0){
$val=RepPostStr($val,0,$phck);
$val=addslashes($val);
return $val;
}
//保存数据处理(url)
function dgdb_tosaveurl($val,$phck=0){
$val=RepPostStr($val,0,$phck);
$val=str_replace('&','&',$val);
$val=addslashes($val);
return $val;
}
//数据显示
function dgdb_toshow($val){
$val=stripSlashes($val);
return $val;
}
//处理显示字符
function eDoRepShowStr($val,$isurl=0){
$val=ehtmlspecialchars($val,ENT_QUOTES);
if($isurl==1)
{
$val=str_replace('&','&',$val);
}
return $val;
}
//处理普通字符
function eDoRepPostComStr($val,$isurl=0){
$val=ehtmlspecialchars($val,ENT_QUOTES);
if($isurl==1)
{
$val=str_replace('&','&',$val);
}
return $val;
}
//处理提交字符
function hRepPostStr($val,$ecms=0,$phck=0){
if($phck==1)
{
CkPostStrCharYh($val);
}
if($ecms==1)
{
$val=ehtmlspecialchars($val,ENT_QUOTES);
}
CkPostStrChar($val);
$val=AddAddsData($val);
return $val;
}
//处理提交字符2
function hRepPostStr2($val,$phck=0){
if($phck==1)
{
CkPostStrCharYh($val);
}
CkPostStrChar($val);
$val=AddAddsData($val);
return $val;
}
//处理编码字符
function CkPostStrChar($val){
if(substr($val,-1)=="\\")
{
exit();
}
}
//返回转义
function egetzy($n='2'){
if($n=='rn')
{
$str="\r\n";
}
elseif($n=='n')
{
$str="\n";
}
elseif($n=='r')
{
$str="\r";
}
elseif($n=='t')
{
$str="\t";
}
elseif($n=='syh')
{
$str="\\\"";
}
elseif($n=='dyh')
{
$str="\'";
}
else
{
for($i=0;$i<$n;$i++)
{
$str.="\\";
}
}
return $str;
}
//验证字符是否空
function CheckValEmpty($val){
return strlen($val)==0?1:0;
}
//返回ID列表
function eReturnInids($ids){
if(empty($ids))
{
return 0;
}
$dh='';
$retids='';
$r=explode(',',$ids);
$count=count($r);
for($i=0;$i<$count;$i++)
{
$id=(int)$r[$i];
if(!$id)
{
continue;
}
$retids.=$dh.$id;
$dh=',';
}
if(empty($retids))
{
return 0;
}
return $retids;
}
//数组返回ID列表
function eArrayReturnInids($r){
$count=count($r);
if(!$count)
{
return 0;
}
$dh='';
$retids='';
for($i=0;$i<$count;$i++)
{
$id=(int)$r[$i];
if(!$id)
{
continue;
}
$retids.=$dh.$id;
$dh=',';
}
if(empty($retids))
{
return 0;
}
return $retids;
}
//返回父栏目ID列表
function eReturnInFcids($featherclass){
if(!$featherclass||$featherclass=='|')
{
return 0;
}
$cids='';
$cdh='';
$fcr=explode('|',$featherclass);
$fcount=count($fcr);
for($fi=1;$fi<$fcount-1;$fi++)
{
$fcr[$fi]=(int)$fcr[$fi];
if(!$fcr[$fi])
{
continue;
}
$cids.=$cdh.$fcr[$fi];
$cdh=',';
}
if(empty($cids))
{
return 0;
}
return $cids;
}
//返回组列表
function eReturnSetGroups($groupid,$isnum=1){
$count=count($groupid);
if($count==0)
{
return '';
}
$ids=',';
for($i=0;$i<$count;$i++)
{
if($isnum==1)
{
$groupid[$i]=(int)$groupid[$i];
}
$ids.=$groupid[$i].',';
}
return $ids;
}
//取得表里的模型ID
function eGetTableModids($tid,$tbname){
global $empire,$dbtbpre;
$mids='';
$where=$tid?"tid='$tid'":"tbname='$tbname'";
$sql=$empire->query("select mid from {$dbtbpre}enewsmod where ".$where);
while($r=$empire->fetch($sql))
{
$mids.=$dh.$r['mid'];
$dh=',';
}
if(empty($mids))
{
$mids=0;
}
return $mids;
}
//替换模板变量字符
function RepTempvarPostStr($val){
$val=str_replace('[!--','[!---',$val);
return $val;
}
//替换模板变量字符
function RepTempvarPostStrT($val,$ispagef=0){
if($ispagef==1)
{
$val=str_replace('[!--empirenews.page--]','[!!!-empirecms.page-!!]',$val);
}
$val=str_replace('[!--','[!--',$val);
if($ispagef==1)
{
$val=str_replace('[!!!-empirecms.page-!!]','[!--empirenews.page--]',$val);
}
return $val;
}
//取得文件扩展名
function GetFiletype($filename){
$filer=explode(".",$filename);
$count=count($filer)-1;
return strtolower(".".RepGetFiletype($filer[$count]));
}
function RepGetFiletype($filetype){
$filetype=str_replace('|','_',$filetype);
$filetype=str_replace(',','_',$filetype);
$filetype=str_replace('.','_',$filetype);
return $filetype;
}
//取得文件名
function GetFilename($filename){
if(strstr($filename,"\\"))
{
$exp="\\";
}
else
{
$exp='/';
}
$filer=explode($exp,$filename);
$count=count($filer)-1;
return $filer[$count];
}
//返回目录函数
function eReturnCPath($path,$ypath=''){
if(strstr($path,'..')||strstr($path,"\\")||strstr($path,'%')||strstr($path,':'))
{
return $ypath;
}
return $path;
}
//验证文件名格式函数
function eReturnCkCFile($path){
if(strstr($path,'..')||strstr($path,"\\")||strstr($path,'/')||strstr($path,'%')||strstr($path,':'))
{
return 0;
}
return 1;
}
//字符截取函数
function sub($string,$start=0,$length,$mode=false,$dot='',$rephtml=0){
global $ecms_config;
$strlen=strlen($string);
if($strlen<=$length)
{
return $string;
}
if($rephtml==0)
{
$string = str_replace(array(' ','&','"','<','>','''), array(' ','&','"','<','>',"'"), $string);
}
$strcut = '';
if(strtolower($ecms_config['sets']['pagechar']) == 'utf-8') {
$n = $tn = $noc = 0;
while($n < $strlen) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) {
break;
}
}
if($noc > $length) {
$n -= $tn;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
}
if($rephtml==0)
{
$strcut = str_replace(array('&','"','<','>',"'"), array('&','"','<','>','''), $strcut);
}
return $strcut.$dot;
}
//截取字数
function esub($string,$length,$dot='',$rephtml=0){
return sub($string,0,$length,false,$dot,$rephtml);
}
//取得随机数
function make_password($pw_length){
$low_ascii_bound=48;
$upper_ascii_bound=122;
$notuse=array(58,59,60,61,62,63,64,91,92,93,94,95,96);
while($i<$pw_length)
{
if(PHP_VERSION<'4.2.0')
{
mt_srand((double)microtime()*1000000);
}
mt_srand();
$randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);
if(!in_array($randnum,$notuse))
{
$password1=$password1.chr($randnum);
$i++;
}
}
return $password1;
}
//取得随机数(数字)
function no_make_password($pw_length){
$low_ascii_bound=48;
$upper_ascii_bound=57;
$notuse=array(58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108,111);
while($i<$pw_length)
{
if(PHP_VERSION<'4.2.0')
{
mt_srand((double)microtime()*1000000);
}
mt_srand();
$randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);
if(!in_array($randnum,$notuse))
{
$password1=$password1.chr($randnum);
$i++;
}
}
return $password1;
}
//取得随机数(字母)
function abc_make_password($pw_length){
$low_ascii_bound=65;
$upper_ascii_bound=122;
$notuse=array(91,92,93,94,95,96);
while($i<$pw_length)
{
if(PHP_VERSION<'4.2.0')
{
mt_srand((double)microtime()*1000000);
}
mt_srand();
$randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);
if(!in_array($randnum,$notuse))
{
$password1=$password1.chr($randnum);
$i++;
}
}
return $password1;
}
//programno
function EcmsGetProgramNo(){
$r=explode(' ',microtime());
$pno=$r[1].$r[0];
return $pno;
}
//随机数字
function EcmsRandInt($min=0,$max=0,$ecms=0){
mt_srand();
if($max)
{
$rnd=mt_rand($min,$max);
}
else
{
$rnd=mt_rand();
}
return $rnd;
}
//颜色转RGB
function ToReturnRGB($rgb){
$rgb=str_replace('#','',ehtmlspecialchars($rgb));
return array(
base_convert(substr($rgb,0,2),16,10),
base_convert(substr($rgb,2,2),16,10),
base_convert(substr($rgb,4,2),16,10)
);
}
//验证页码是否有效
function eCheckListPageNo($page,$line,$totalnum){
$page=(int)$page;
$line=(int)$line;
$totalnum=(int)$totalnum;
if(!$page)
{
return '';
}
if(!$line)
{
return '';
}
$totalpage=ceil($totalnum/$line);
if($page>=$totalpage)
{
printerror('ErrorUrl','history.go(-1)',1);
}
}
//前台分页
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
$num=(int)$num;
$line=(int)$line;
$page_line=(int)$page_line;
$start=(int)$start;
$page=(int)$page;
if($num<=$line)
{
return '';
}
$search=RepPostStr($search,1);
$url=eReturnSelfPage(0).'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
$firststr='
'.$fun_r['startpage'].'';
//上一页
if($page<>0)
{
//$toppage=''.$fun_r['startpage'].'';
$pagepr=$page-1;
$prepage=''.$fun_r['pripage'].'';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage=''.$fun_r['nextpage'].'';
$lastpage=''.$fun_r['lastpage'].'';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1="";
$is_2="";
}
else
{
$is_1='';
$is_2="";
}
$pagenum=$i+1;
$returnstr.="".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
//---------- 伪静态 ----------
//返回内容伪静态
function eReturnRewriteInfoUrl($classid,$id,$ecms=0){
global $public_r;
if(empty($public_r['rewriteinfo']))
{
$r['pageurl']=$public_r['newsurl']."e/action/ShowInfo.php?classid=$classid&id=$id";
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--classid--]','[!--id--]','[!--page--]'),array($classid,$id,0),$public_r['rewriteinfo']);
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--classid--]','[!--id--]'),array($classid,$id),$public_r['rewriteinfo']);
}
$r['rewrite']=1;
}
return $r;
}
//返回栏目列表伪静态
function eReturnRewriteClassUrl($classid,$ecms=0){
global $public_r;
if(empty($public_r['rewriteclass']))
{
$r['pageurl']=$public_r['newsurl']."e/action/ListInfo/?classid=$classid";
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--classid--]','[!--page--]'),array($classid,0),$public_r['rewriteclass']);
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace('[!--classid--]',$classid,$public_r['rewriteclass']);
}
$r['rewrite']=1;
}
return $r;
}
//返回标题分类列表伪静态
function eReturnRewriteTitleTypeUrl($ttid,$ecms=0){
global $public_r;
if(empty($public_r['rewriteinfotype']))
{
$r['pageurl']=$public_r['newsurl']."e/action/InfoType/?ttid=$ttid";
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--ttid--]','[!--page--]'),array($ttid,0),$public_r['rewriteinfotype']);
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace('[!--ttid--]',$ttid,$public_r['rewriteinfotype']);
}
$r['rewrite']=1;
}
return $r;
}
//返回TAGS列表伪静态
function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){
global $public_r;
$tagname=urlencode($tagname);
if(empty($public_r['rewritetags']))
{
$r['pageurl']=$public_r['newsurl']."e/tags/?tagname=".$tagname;
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagname,0),$public_r['rewritetags']);
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace('[!--tagname--]',$tagname,$public_r['rewritetags']);
}
$r['rewrite']=1;
}
return $r;
}
//返回评论列表伪静态
function eReturnRewritePlUrl($classid,$id,$doaction='doinfo',$myorder=0,$tempid=0,$ecms=0){
global $public_r;
if(empty($public_r['rewritepl']))
{
if($doaction=='dozt')
{
$r['pageurl']=$public_r['plurl']."?doaction=dozt&classid=$classid".($myorder?'&myorder='.$myorder:'').($tempid?'&tempid='.$tempid:'');
}
else
{
$r['pageurl']=$public_r['plurl']."?classid=$classid&id=$id".($myorder?'&myorder='.$myorder:'').($tempid?'&tempid='.$tempid:'');
}
$r['rewrite']=0;
}
else
{
if($ecms==1)
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--doaction--]','[!--classid--]','[!--id--]','[!--page--]','[!--myorder--]','[!--tempid--]'),array($doaction,$classid,$id,0,$myorder,$tempid),$public_r['rewritepl']);
}
else
{
$r['pageurl']=$public_r['newsurl'].str_replace(array('[!--doaction--]','[!--classid--]','[!--id--]','[!--myorder--]','[!--tempid--]'),array($doaction,$classid,$id,$myorder,$tempid),$public_r['rewritepl']);
}
$r['rewrite']=1;
}
return $r;
}
//伪静态链接地址中转
function eReturnRewriteLink($type,$classid,$id){
if($type=='infopage')//信息页
{
$url=eReturnRewriteInfoUrl($classid,$id);
}
elseif($type=='ttpage')//标题分类页
{
$url=eReturnRewriteTitleTypeUrl($classid);
}
elseif($type=='tagspage')//Tags列表页
{
$url=eReturnRewriteTagsUrl($classid,$id);
}
else//栏目页
{
$url=eReturnRewriteClassUrl($classid);
}
return $url;
}
//伪静态替换分页号
function eReturnRewritePageLink($r,$page){
//动静
$truepage=$page+1;
if($r['repagenum']&&$truepage<=$r['repagenum'])
{
//文件名
if(empty($r['dofile']))
{
$r['dofile']='index';
}
$url=$r['dolink'].$r['dofile'].($truepage==1?'':'_'.$truepage).$r['dotype'];
return $url;
}
if($r['rewrite']==1)
{
$url=str_replace('[!--page--]',$page,$r['pageurl']);
}
else
{
$url=$r['pageurl'].'&page='.$page;
}
return $url;
}
//伪静态替换分页号(静态)
function eReturnRewritePageLink2($r,$page){
if($r['rewrite']==1)
{
$url=str_replace('[!--page--]',$page-1,$r['pageurl']);
}
else
{
$url=$r['pageurl'].'&page='.($page-1);
}
return $url;
}
//前台分页(伪静态)
function InfoUsePage($num,$line,$page_line,$start,$page,$search,$add){
global $fun_r;
$num=(int)$num;
$line=(int)$line;
$page_line=(int)$page_line;
$start=(int)$start;
$page=(int)$page;
if($num<=$line)
{
return '';
}
$search=RepPostStr($search,1);
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
$firststr=' '.$num.' ';
//上一页
if($page<>0)
{
$toppage=''.$fun_r['startpage'].' ';
$pagepr=$page-1;
$prepage=''.$fun_r['pripage'].'';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage=' '.$fun_r['nextpage'].'';
$lastpage=' '.$fun_r['lastpage'].'';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1="";
$is_2="";
}
else
{
$is_1='';
$is_2="";
}
$pagenum=$i+1;
$returnstr.=" ".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
//时间转换函数
function to_time($datetime){
if(strlen($datetime)==10)
{
$datetime.=" 00:00:00";
}
$r=explode(" ",$datetime);
$t=explode("-",$r[0]);
$k=explode(":",$r[1]);
$dbtime=@mktime($k[0],$k[1],$k[2],$t[1],$t[2],$t[0]);
return intval($dbtime);
}
//时期转日期
function date_time($time,$format="Y-m-d H:i:s"){
$threadtime=date($format,$time);
return $threadtime;
}
//格式化日期
function format_datetime($newstime,$format){
if($newstime=="0000-00-00 00:00:00")
{return $newstime;}
$time=is_numeric($newstime)?$newstime:to_time($newstime);
$newdate=date_time($time,$format);
return $newdate;
}
//时间转换函数
function to_date($date){
$date.=" 00:00:00";
$r=explode(" ",$date);
$t=explode("-",$r[0]);
$k=explode(":",$r[1]);
$dbtime=@mktime($k[0],$k[1],$k[2],$t[1],$t[2],$t[0]);
return intval($dbtime);
}
//选择时间
function ToChangeTime($time,$day){
$truetime=$time-$day*24*3600;
$date=date_time($truetime,"Y-m-d");
return $date;
}
//删除文件
function DelFiletext($filename){
@unlink($filename);
}
//取得文件内容
function ReadFiletext($filepath){
$filepath=trim($filepath);
$ishttp=0;
if(strstr($filepath,'://'))
{
if(!eToCheckIsUrl2($filepath))
{
return '';
}
$ishttp=1;
}
$htmlfp=@fopen($filepath,"r");
//远程
if($ishttp==1)
{
while($data=@fread($htmlfp,500000))
{
$string.=$data;
}
}
//本地
else
{
$string=@fread($htmlfp,@filesize($filepath));
}
@fclose($htmlfp);
return $string;
}
//写文件
function WriteFiletext($filepath,$string){
global $public_r;
$string=stripSlashes($string);
$fp=@fopen($filepath,"w");
@fputs($fp,$string);
@fclose($fp);
if(empty($public_r[filechmod]))
{
@chmod($filepath,0777);
}
}
//写文件
function WriteFiletext_n($filepath,$string){
global $public_r;
$fp=@fopen($filepath,"w");
@fputs($fp,$string);
@fclose($fp);
if(empty($public_r[filechmod]))
{
@chmod($filepath,0777);
}
}
//标题属性后
function DoTitleFont($titlefont,$title){
if(empty($titlefont))
{
return $title;
}
$r=explode(',',$titlefont);
if(!empty($r[0]))
{
$title="".$title."";
}
if(empty($r[1]))
{return $title;}
//粗体
if(strstr($r[1],"b"))
{$title="".$title."";}
//斜体
if(strstr($r[1],"i"))
{$title="".$title."";}
//删除线
if(strstr($r[1],"s"))
{$title="".$title."";}
return $title;
}
//返回头条级别名称权限
function ReturnFirsttitleNameCkLevel($r,$groupid,$classid){
if(defined('EmpireCMSAdmin'))
{
if($r['groupid'])
{
if(!strstr($r['groupid'],','.$groupid.','))
{
return 0;
}
}
}
if($classid)
{
if($r['showcid'])
{
if(!strstr($r['showcid'],','.$classid.','))
{
return 0;
}
}
if($r['hiddencid'])
{
if(strstr($r['hiddencid'],','.$classid.','))
{
return 0;
}
}
}
else
{
if($r['showall']==1)
{
return 0;
}
}
return 1;
}
//返回头条级别名称
function ReturnFirsttitleNameList($firsttitle,$isgood){
global $empire,$dbtbpre,$lur,$classid,$class_r;
$classid=(int)$classid;
if($classid&&!$class_r[$classid]['islast'])
{
$classid=0;
}
$groupid=(int)$lur['groupid'];
$first_r=array();//头条
$ftn='';
$good_r=array();//推荐
$gn='';
$sql=$empire->query("select tname,ttype,levelid,groupid,showall,showcid,hiddencid from {$dbtbpre}enewsgoodtype order by myorder desc,levelid");
while($r=$empire->fetch($sql))
{
if($r['ttype']==1)//头条
{
$first_r[$r['levelid']]=$r['tname'];
$selected='';
if($r['levelid']==$firsttitle)
{
$selected=' selected';
}
if(ReturnFirsttitleNameCkLevel($r,$groupid,$classid))
{
$ftn.='';
}
}
else//推荐
{
$good_r[$r['levelid']]=$r['tname'];
$selected='';
if($r['levelid']==$isgood)
{
$selected=' selected';
}
if(ReturnFirsttitleNameCkLevel($r,$groupid,$classid))
{
$gn.='';
}
}
}
$ret_r['ftname']=$ftn;
$ret_r['ftr']=$first_r;
$ret_r['igname']=$gn;
$ret_r['igr']=$good_r;
return $ret_r;
}
//替换全角逗号
function DoReplaceQjDh($text){
return str_replace(',',',',$text);
}
//半角转全角
function eDoBjToQj($text){
$text=str_replace(array('&','"','\'','<','>'),array('&','”','’','<','>'),$text);
return $text;
}
//给信息字段转全角
function eDoInfoTbfToQj($tbname,$f,$fval,$qjf){
global $public_r;
if(empty($qjf))
{
return $fval;
}
if(!stristr('|'.$qjf.'|','|'.$tbname.'.'.$f.'|'))
{
return $fval;
}
$fval=eDoBjToQj($fval);
return $fval;
}
//建立目录函数
function DoMkdir($path){
global $public_r;
//不存在则建立
if(!file_exists($path))
{
//安全模式
if($public_r[phpmode])
{
$pr[0]=$path;
FtpMkdir($ftpid,$pr,0777);
$mk=1;
}
else
{
$mk=@mkdir($path,0777);
@chmod($path,0777);
}
if(empty($mk))
{
echo Ecms_eReturnShowMkdir($path);
printerror("CreatePathFail","history.go(-1)");
}
}
return true;
}
//建立上级目录
function DoFileMkDir($file){
$path=dirname($file.'empirecms.txt');
DoMkdir($path);
}
//设置上传文件权限
function DoChmodFile($file){
global $public_r;
if($public_r['filechmod']!=1)
{
@chmod($file,0777);
}
}
//替换斜扛
function DoRepFileXg($file){
$file=str_replace("\\","/",$file);
return $file;
}
//返回栏目链接字符串
function ReturnClassLink($classid){
global $class_r,$public_r,$fun_r;
if(empty($class_r[$classid][featherclass]))
{$class_r[$classid][featherclass]="|";}
$r=explode("|",$class_r[$classid][featherclass].$classid."|");
$string="".$fun_r['index']."";
for($i=1;$i".$class_r[$r[$i]][classname]."";
}
return $string;
}
//返回专题链接字符串
function ReturnZtLink($ztid){
global $class_zr,$public_r,$fun_r;
$string="".$fun_r['index']."";
//无绑定域名
if(empty($class_zr[$ztid][zturl]))
{$url=$public_r[newsurl].$class_zr[$ztid][ztpath]."/";}
else
{$url=$class_zr[$ztid][zturl];}
$string.=" ".$public_r[navfh]." ".$class_zr[$ztid][ztname]."";
return $string;
}
//返回标题分类链接字符串
function ReturnInfoTypeLink($typeid){
global $class_tr,$public_r,$fun_r;
$string="".$fun_r['index']."";
//moreport
if(Moreport_ReturnMustDt())
{
$class_tr[$typeid]['listdt']=1;
}
if($class_tr[$typeid]['listdt'])
{
$rewriter=eReturnRewriteTitleTypeUrl($typeid,1);
$url=$rewriter['pageurl'];
}
else
{
$url=$public_r[newsurl].$class_tr[$typeid][tpath]."/";
}
$string.=" ".$public_r[navfh]." ".$class_tr[$typeid][tname]."";
return $string;
}
//返回单页链接字符串
function ReturnUserPLink($title,$titleurl){
global $public_r,$fun_r;
$string=''.$fun_r['index'].' '.$public_r[navfh].' '.$title;
return $string;
}
//返回标题链接(静态)
function sys_ReturnBqTitleLink($r){
global $public_r;
if(empty($r['isurl']))
{
//moreport
if(Moreport_ReturnMustDt())
{
return Moreport_ReturnTitleUrl($r['classid'],$r['id']);
}
return $r['titleurl'];
}
else
{
if($public_r['opentitleurl'])
{
$titleurl=$r['titleurl'];
}
else
{
$titleurl=$public_r['newsurl'].'e/public/jump/?classid='.$r['classid'].'&id='.$r['id'];
}
return $titleurl;
}
}
//返回标题链接(动态)
function sys_ReturnBqTitleLinkDt($r){
global $public_r,$class_r;
if(empty($r['isurl']))
{
if($class_r[$r[classid]][showdt]==1)//动态生成
{
$titleurl=$public_r[newsurl]."e/action/ShowInfo/?classid=$r[classid]&id=$r[id]";
return $titleurl;
}
elseif($class_r[$r[classid]][showdt]==2)
{
$rewriter=eReturnRewriteInfoUrl($r['classid'],$r['id'],1);
$titleurl=$rewriter['pageurl'];
return $titleurl;
}
if($class_r[$r[classid]][filename]==3)
{
$filename=ReturnInfoSPath($r[filename]);
}
else
{
$filetype=$r[groupid]?'.php':$class_r[$r[classid]][filetype];
$filename=$r[filename].$filetype;
}
$iclasspath=ReturnSaveInfoPath($r[classid],$r[id]);
$newspath=empty($r[newspath])?'':$r[newspath]."/";
if($class_r[$r[classid]][classurl]&&$class_r[$r[classid]][ipath]=='')//域名
{
$titleurl=$class_r[$r[classid]][classurl]."/".$newspath.$filename;
}
else
{
$titleurl=$public_r[newsurl].$iclasspath.$newspath.$filename;
}
}
else
{
$titleurl=$r['titleurl'];
}
return addslashes($titleurl);
}
//中转取得信息地址
function GotoGetTitleUrl($classid,$id,$newspath,$filename,$groupid,$isurl,$titleurl){
$r['classid']=$classid;
$r['id']=$id;
$r['newspath']=$newspath;
$r['filename']=$filename;
$r['groupid']=$groupid;
$r['isurl']=$isurl;
$r['titleurl']=$titleurl;
$infourl=sys_ReturnBqTitleLinkDt($r);
return $infourl;
}
//返回标题链接(触发)
function sys_ReturnBqAutoTitleLink($r){
global $public_r,$class_r;
if(empty($r['isurl']))
{
if($class_r[$r[classid]][showdt]==2)
{
$rewriter=eReturnRewriteInfoUrl($r['classid'],$r['id'],1);
$titleurl=$rewriter['pageurl'];
return $titleurl;
}
if($class_r[$r[classid]][filename]==3)
{
$filename=ReturnInfoSPath($r[filename]);
}
else
{
$filetype=$r[groupid]?'.php':$class_r[$r[classid]][filetype];
$filename=$r[filename].$filetype;
}
$iclasspath=ReturnSaveInfoPath($r[classid],$r[id]);
$newspath=empty($r[newspath])?'':$r[newspath]."/";
if($class_r[$r[classid]][classurl]&&$class_r[$r[classid]][ipath]=='')//域名
{
$titleurl=$class_r[$r[classid]][classurl]."/".$newspath.$filename;
}
else
{
$titleurl=$public_r[newsurl].$iclasspath.$newspath.$filename;
}
}
else
{
if($public_r['opentitleurl'])
{
$titleurl=$r['titleurl'];
}
else
{
$titleurl=$public_r['newsurl']."e/public/jump/?classid=".$r['classid']."&id=".$r['id'];
}
}
return $titleurl;
}
//返回内容页地址前缀
function ReturnInfoPageQz($r){
global $public_r,$class_r;
$ret_r['titleurl']='';
$ret_r['filetype']='';
$ret_r['nametype']=0;
//动态页面
if($class_r[$r[classid]][showdt]==2)
{
$rewriter=eReturnRewriteInfoUrl($r['classid'],$r['id'],0);
$ret_r['pageurl']=$rewriter['pageurl'];
$ret_r['rewrite']=$rewriter['rewrite'];
$ret_r['titleurl']=$rewriter['pageurl'];
$ret_r['filetype']='';
$ret_r['nametype']=1;
return $ret_r;
}
//静态页面
$ret_r['filetype']=$r[groupid]?'.php':$class_r[$r[classid]][filetype];
$filename=$r[filename];
$iclasspath=ReturnSaveInfoPath($r[classid],$r[id]);
$newspath=empty($r[newspath])?'':$r[newspath]."/";
if($class_r[$r[classid]][classurl]&&$class_r[$r[classid]][ipath]=='')//域名
{
$ret_r['titleurl']=$class_r[$r[classid]][classurl]."/".$newspath.$filename;
}
else
{
$ret_r['titleurl']=$public_r[newsurl].$iclasspath.$newspath.$filename;
}
return $ret_r;
}
//返回栏目链接
function sys_ReturnBqClassname($r,$have_class=0){
global $public_r,$class_r;
if($have_class)
{
//moreport
if(Moreport_ReturnMustDt())
{
$class_r[$r[classid]][listdt]=1;
}
//外部栏目
if($class_r[$r[classid]][wburl])
{
$classurl=$class_r[$r[classid]][wburl];
}
//动态列表
elseif($class_r[$r[classid]][listdt])
{
$rewriter=eReturnRewriteClassUrl($r['classid'],1);
$classurl=$rewriter['pageurl'];
}
elseif($class_r[$r[classid]][classurl])
{
$classurl=$class_r[$r[classid]][classurl];
}
else
{
$classurl=$public_r[newsurl].$class_r[$r[classid]][classpath]."/";
}
if(empty($class_r[$r[classid]][bname]))
{$classname=$class_r[$r[classid]][classname];}
else
{$classname=$class_r[$r[classid]][bname];}
$myadd="[".$classname."]";
//只返回链接
if($have_class==9)
{$myadd=$classurl;}
}
else
{$myadd="";}
return $myadd;
}
//返回专题链接
function sys_ReturnBqZtname($r){
global $public_r,$class_zr;
if($class_zr[$r[ztid]][zturl])
{
$zturl=$class_zr[$r[ztid]][zturl];
}
else
{
$zturl=$public_r[newsurl].$class_zr[$r[ztid]][ztpath]."/";
}
return $zturl;
}
//返回标题分类链接
function sys_ReturnBqInfoTypeUrl($typeid){
global $public_r,$class_tr;
//moreport
if(Moreport_ReturnMustDt())
{
$class_tr[$typeid]['listdt']=1;
}
if($class_tr[$typeid]['listdt'])
{
$rewriter=eReturnRewriteTitleTypeUrl($typeid,1);
$url=$rewriter['pageurl'];
}
else
{
$url=$public_r['newsurl'].$class_tr[$typeid]['tpath']."/";
}
return $url;
}
//文件大小格式转换
function ChTheFilesize($size){
if($size>=1024*1024)//MB
{
$filesize=number_format($size/(1024*1024),2,'.','')." MB";
}
elseif($size>=1024)//KB
{
$filesize=number_format($size/1024,2,'.','')." KB";
}
else
{
$filesize=$size." Bytes";
}
return $filesize;
}
//取得表记录
function eGetTableRowNum($tbname){
global $empire,$dbtbpre;
$total_r=$empire->fetch1("SHOW TABLE STATUS LIKE '".$tbname."';");
return $total_r['Rows'];
}
//更新栏目信息数
function AddClassInfos($classid,$addallstr,$addstr,$checked=1){
global $empire,$dbtbpre;
$updatestr='';
$dh='';
if($addallstr)
{
$updatestr.='allinfos=allinfos'.$addallstr;
$dh=',';
}
if($addstr)
{
if($checked)
{
$updatestr.=$dh.'infos=infos'.$addstr;
}
}
if(empty($updatestr))
{
return '';
}
$empire->query("update {$dbtbpre}enewsclass set ".$updatestr." where classid='$classid' limit 1");
}
//返回栏目信息数
function ReturnClassInfoNum($cr,$ecms=0){
global $empire,$dbtbpre,$class_r;
if($cr['islast'])
{
$num=$ecms==0?$cr['infos']:$cr['allinfos'];
}
else
{
$f=$ecms==0?'infos':'allinfos';
$num=$empire->gettotal("select sum(".$f.") as total from {$dbtbpre}enewsclass where ".ReturnClass($class_r[$cr[classid]][sonclass]));
$num=(int)$num;
}
return $num;
}
//重置栏目信息数
function ResetClassInfos($classid){
global $empire,$dbtbpre,$class_r;
$infos=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid]['tbname']." where classid='$classid'");
$checkinfos=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid]['tbname']."_check where classid='$classid'");
$allinfos=$infos+$checkinfos;
$empire->query("update {$dbtbpre}enewsclass set allinfos='$allinfos',infos='$infos' where classid='$classid' limit 1");
}
//单信息评论数
function UpdateSingleInfoPlnum($classid,$id,$checked=1){
global $empire,$dbtbpre,$class_r;
$tbname=$class_r[$classid]['tbname'];
if(empty($tbname))
{
return '';
}
$infotb=ReturnInfoMainTbname($tbname,$checked);
$r=$empire->fetch1("select id,restb,plnum from ".$infotb." where id='$id' limit 1");
if(empty($r['restb']))
{
return '';
}
$pubid=ReturnInfoPubid($classid,$id);
$plnum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewspl_".$r['restb']." where pubid='$pubid' limit 1");
if($plnum==$r['plnum'])
{
return '';
}
$empire->query("update ".$infotb." set plnum='$plnum' where id='$id' limit 1");
}
//信息数统计加1
function DoUpdateAddDataNum($type='info',$stb,$addnum=1){
global $empire,$dbtbpre;
if($type=='info')//信息
{
$lasttimef='lasttimeinfo';
$lastnumf='lastnuminfo';
$lastnumtbf='lastnuminfotb';
$todaytimef='todaytimeinfo';
$todaynumf='todaynuminfo';
$yesterdaynumf='yesterdaynuminfo';
$sqladdf=',todaytimeinfo,todaytimepl,todaynuminfo,todaynumpl';
}
elseif($type=='pl')//评论
{
$lasttimef='lasttimepl';
$lastnumf='lastnumpl';
$lastnumtbf='lastnumpltb';
$todaytimef='todaytimepl';
$todaynumf='todaynumpl';
$yesterdaynumf='yesterdaynumpl';
$sqladdf=',todaytimepl,todaytimeinfo,todaynuminfo,todaynumpl';
}
else
{
return '';
}
$sqladdupdate='';
$time=time();
$pur=$empire->fetch1("select ".$lasttimef.",".$lastnumtbf.$sqladdf." from {$dbtbpre}enewspublic_up limit 1");
if($stb)
{
if(empty($pur[$lastnumtbf]))
{
$pur[$lastnumtbf]='|';
}
if(strstr($pur[$lastnumtbf],'|'.$stb.','))
{
$numr=explode('|'.$stb.',',$pur[$lastnumtbf]);
$numrt=explode('|',$numr[1]);
$newnum=$numrt[0]+$addnum;
$tbnums=str_replace('|'.$stb.','.$numrt[0].'|','|'.$stb.','.$newnum.'|',$pur[$lastnumtbf]);
}
else
{
$tbnums=$pur[$lastnumtbf].$stb.','.$addnum.'|';
}
$sqladdupdate.=",".$lastnumtbf."='".$tbnums."'";
}
//今日统计
if($sqladdf)
{
$todaydate=date('Y-m-d');
if($todaydate<>date('Y-m-d',$pur['todaytimeinfo'])||$todaydate<>date('Y-m-d',$pur['todaytimepl']))
{
if($type=='info')
{
$todaynuminfo=$addnum;
$todaynumpl=0;
}
else
{
$todaynuminfo=0;
$todaynumpl=$addnum;
}
$yesterdaynuminfo=$pur['todaynuminfo'];
$yesterdaynumpl=$pur['todaynumpl'];
if($todaydate<>date('Y-m-d',$pur['todaytimeinfo']+24*3600))
{
$yesterdaynuminfo=0;
}
if($todaydate<>date('Y-m-d',$pur['todaytimepl']+24*3600))
{
$yesterdaynumpl=0;
}
$sqladdupdate.=",todaytimeinfo='$time',todaytimepl='$time',todaynuminfo='$todaynuminfo',todaynumpl='$todaynumpl',yesterdaynuminfo='$yesterdaynuminfo',yesterdaynumpl='$yesterdaynumpl'";
}
else
{
$sqladdupdate.=",".$todaynumf."=".$todaynumf."+".$addnum;
}
}
$empire->query("update {$dbtbpre}enewspublic_up set ".$lastnumf."=".$lastnumf."+".$addnum.$sqladdupdate." limit 1");
}
//重置信息数统计
function DoResetAddDataNum($type='info'){
global $empire,$dbtbpre;
if($type=='info')//信息
{
$lasttimef='lasttimeinfo';
$lastnumf='lastnuminfo';
$lastnumtbf='lastnuminfotb';
}
elseif($type=='pl')//评论
{
$lasttimef='lasttimepl';
$lastnumf='lastnumpl';
$lastnumtbf='lastnumpltb';
}
else
{
return '';
}
$time=time();
$empire->query("update {$dbtbpre}enewspublic_up set ".$lasttimef."='$time',".$lastnumf."=0,".$lastnumtbf."='' limit 1");
}
//更新昨日信息数统计
function DoUpdateYesterdayAddDataNum(){
global $empire,$dbtbpre;
$pur=$empire->fetch1("select * from {$dbtbpre}enewspublic_up limit 1");
$todaydate=date('Y-m-d');
if($todaydate==date('Y-m-d',$pur['todaytimeinfo'])&&$todaydate==date('Y-m-d',$pur['todaytimepl']))
{
return '';
}
$yesterdaynuminfo=$pur['todaynuminfo'];
$yesterdaynumpl=$pur['todaynumpl'];
if($todaydate<>date('Y-m-d',$pur['todaytimeinfo']+24*3600))
{
$yesterdaynuminfo=0;
}
if($todaydate<>date('Y-m-d',$pur['todaytimepl']+24*3600))
{
$yesterdaynumpl=0;
}
$time=time();
$empire->query("update {$dbtbpre}enewspublic_up set todaytimeinfo='$time',todaytimepl='$time',todaynuminfo=0,yesterdaynuminfo='$yesterdaynuminfo',todaynumpl=0,yesterdaynumpl='$yesterdaynumpl' limit 1");
}
//返回栏目自定义字段内容
function ReturnClassAddField($classid,$f){
global $empire,$dbtbpre,$navclassid;
if(empty($classid))
{
$classid=$navclassid;
}
$fr=$empire->fetch1("select ".$f." from {$dbtbpre}enewsclassadd where classid='$classid' limit 1");
if(strstr($f,','))
{
return $fr;
}
else
{
return $fr[$f];
}
}
//返回专题自定义字段内容
function ReturnZtAddField($classid,$f){
global $empire,$dbtbpre,$navclassid;
if(empty($classid))
{
$classid=$navclassid;
}
$fr=$empire->fetch1("select ".$f." from {$dbtbpre}enewsztadd where ztid='$classid' limit 1");
if(strstr($f,','))
{
return $fr;
}
else
{
return $fr[$f];
}
}
//返回扩展变量值
function ReturnPublicAddVar($myvar){
global $empire,$dbtbpre;
if(strstr($myvar,','))
{
$myvr=explode(',',$myvar);
$count=count($myvr);
for($i=0;$i<$count;$i++)
{
$v=$myvr[$i];
$vr=$empire->fetch1("select varvalue from {$dbtbpre}enewspubvar where myvar='$v' limit 1");
$ret_vr[$v]=$vr['varvalue'];
}
return $ret_vr;
}
else
{
$vr=$empire->fetch1("select varvalue from {$dbtbpre}enewspubvar where myvar='$myvar' limit 1");
return $vr['varvalue'];
}
}
//返回排序字段
function ReturnDoOrderF($mid,$orderby,$myorder){
global $emod_r;
$orderby=str_replace(',','',$orderby);
$orderf=',newstime,id,onclick,totaldown,plnum';
if(!empty($emod_r[$mid]['orderf']))
{
$orderf.=$emod_r[$mid]['orderf'];
}
else
{
$orderf.=',';
}
if(strstr($orderf,','.$orderby.','))
{
$rr['returnorder']=$orderby;
$rr['returnf']=$orderby;
}
else
{
$rr['returnorder']='newstime';
$rr['returnf']='newstime';
}
if(empty($myorder))
{
$rr['returnorder'].=' desc';
}
return $rr;
}
//返回置顶
function ReturnSetTopSql($ecms){
global $public_r;
if(empty($public_r['settop']))
{
return '';
}
$top='istop desc,';
if($ecms=='list')
{
if($public_r['settop']==1||$public_r['settop']==4||$public_r['settop']==5||$public_r['settop']==6)
{
return $top;
}
}
elseif($ecms=='bq')
{
if($public_r['settop']==2||$public_r['settop']==4||$public_r['settop']==5||$public_r['settop']==7)
{
return $top;
}
}
elseif($ecms=='js')
{
if($public_r['settop']==3||$public_r['settop']==4||$public_r['settop']==6||$public_r['settop']==7)
{
return $top;
}
}
return '';
}
//返回优化方案SQL
function ReturnYhSql($yhid,$yhvar,$ecms=0){
global $eyh_r;
if(empty($yhid))
{
return '';
}
$query='';
if($eyh_r[$yhid][$yhvar])
{
$t=time()-($eyh_r[$yhid][$yhvar]*86400);
$query='newstime>'.$t.(empty($ecms)?'':' and ');
}
return $query;
}
//返回优化+条件SQL
function ReturnYhAndSql($yhadd,$where,$ecms=0){
if($yhadd.$where=='')
{
return '';
}
elseif($yhadd&&$where)
{
return $ecms==1?' where '.$yhadd.$where:' where '.$yhadd.' and '.$where;
}
elseif($yhadd&&!$where)
{
return ' where '.$yhadd;
}
else
{
return $ecms==1?' where '.substr($where,5):' where '.$where;
}
}
//返回列表查询字段
function ReturnSqlListF($mid){
global $emod_r;
if(empty($mid))
{
return '*';
}
$f='id,classid,ttid,onclick,plnum,totaldown,newspath,filename,userid,username,firsttitle,isgood,ispic,istop,isqf,ismember,isurl,truetime,lastdotime,havehtml,groupid,userfen,titlefont,titleurl,stb,fstb,restb,keyboard,eckuid'.substr($emod_r[$mid]['listtempf'],0,-1);
return $f;
}
//返回内容查询字段
function ReturnSqlTextF($mid,$ecms=0){
global $emod_r;
if(empty($mid))
{
return '*';
}
$f=($ecms==0?'id,classid,':'').'ttid,onclick,plnum,totaldown,newspath,filename,userid,username,firsttitle,isgood,ispic,istop,isqf,ismember,isurl,truetime,lastdotime,havehtml,groupid,userfen,titlefont,titleurl,stb,fstb,restb,keyboard,eckuid'.substr($emod_r[$mid]['tbmainf'],0,-1);
return $f;
}
//返回内容副表查询字段
function ReturnSqlFtextF($mid){
global $emod_r;
if(empty($mid))
{
return '*';
}
$f='keyid,dokey,newstempid,closepl,infotags'.substr($emod_r[$mid]['tbdataf'],0,-1);
return $f;
}
//返回信息表
function ReturnInfoTbname($tbname,$checked=1,$stb=1){
global $dbtbpre;
if(empty($checked))//待审核
{
$r['tbname']=$dbtbpre.'ecms_'.$tbname.'_check';
$r['datatbname']=$dbtbpre.'ecms_'.$tbname.'_check_data';
}
else//已审核
{
$r['tbname']=$dbtbpre.'ecms_'.$tbname;
$r['datatbname']=$dbtbpre.'ecms_'.$tbname.'_data_'.$stb;
}
return $r;
}
//返回信息主表
function ReturnInfoMainTbname($tbname,$checked=1){
global $dbtbpre;
return empty($checked)?$dbtbpre.'ecms_'.$tbname.'_check':$dbtbpre.'ecms_'.$tbname;
}
//返回信息副表
function ReturnInfoDataTbname($tbname,$checked=1,$stb=1){
global $dbtbpre;
return empty($checked)?$dbtbpre.'ecms_'.$tbname.'_check_data':$dbtbpre.'ecms_'.$tbname.'_data_'.$stb;
}
//主表信息
function ReturnIndexTableInfo($tbname,$f,$classid,$id){
global $dbtbpre;
$r=$empire->fetch1("select ".$f." from {$dbtbpre}ecms_".$tbname."_index where id='$id' limit 1");
return $r;
}
//返回评论表名
function eReturnRestb($restb){
global $public_r,$dbtbpre;
$restb=(int)$restb;
if(!strstr($public_r['pldatatbs'],','.$restb.','))
{
$restb=$public_r['pldeftb'];
}
return $dbtbpre.'enewspl_'.$restb;
}
//返回附件表名
function eReturnFstb($fstb){
global $public_r,$dbtbpre;
$fstb=(int)$fstb;
if(!strstr($public_r['filedatatbs'],','.$fstb.','))
{
$fstb=$public_r['filedeftb'];
}
return $dbtbpre.'enewsfile_'.$fstb;
}
//返回公共表索引ID
function ReturnInfoPubid($classid,$id,$tid=0){
global $class_r;
$classid=(int)$classid;
$id=(int)$id;
if(empty($tid))
{
$tid=$class_r[$classid]['tid'];
}
$tid=(int)$tid;
$pubid='1'.ReturnAllInt($tid,5).ReturnAllInt($id,10);
return $pubid;
}
//是否内部表
function InfoIsInTable($tbname){
global $etable_r;
return $etable_r[$tbname]['intb']==1?true:false;
}
//检验字段是否存在
function eCheckTbHaveField($tid,$tbname,$f){
global $empire,$dbtbpre;
$where=$tid?"tid='$tid' and ":"tbname='$tbname' and ";
if(strstr($f,','))
{
$fr=explode(',',$f);
$where.="f='".$fr[0]."' or f='".$fr[1]."'";
}
else
{
$where.="f='$f'";
}
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where ".$where." limit 1");
return $num;
}
//验证模板是否开启动态使用
function DtTempIsClose($tempid,$type='listtemp'){
global $public_r;
if($type=='listtemp')//列表模板
{
if($public_r['closelisttemp']&&strstr(','.$public_r['closelisttemp'].',',','.$tempid.','))
{
echo'ListTempID='.$tempid.' is close.';
exit();
}
}
}
//补零
function ReturnAllInt($val,$num){
$len=strlen($val);
$zeronum=$num-$len;
if($zeronum==1)
{
$val='0'.$val;
}
elseif($zeronum==2)
{
$val='00'.$val;
}
elseif($zeronum==3)
{
$val='000'.$val;
}
elseif($zeronum==4)
{
$val='0000'.$val;
}
elseif($zeronum==5)
{
$val='00000'.$val;
}
elseif($zeronum==6)
{
$val='000000'.$val;
}
elseif($zeronum==7)
{
$val='0000000'.$val;
}
elseif($zeronum==8)
{
$val='00000000'.$val;
}
elseif($zeronum==9)
{
$val='000000000'.$val;
}
elseif($zeronum==10)
{
$val='0000000000'.$val;
}
return $val;
}
//返回替换列表
function ReturnReplaceListF($mid){
global $emod_r;
$r['mid']=$mid;
$r['fr']=explode(',',$emod_r[$mid]['listtempf']);
$r['fcount']=count($r['fr'])-1;
return $r;
}
//返回替换内容
function ReturnReplaceTextF($mid){
global $emod_r;
$r['mid']=$mid;
$r['fr']=explode(',',$emod_r[$mid]['tempf']);
$r['fcount']=count($r['fr'])-1;
return $r;
}
//替换列表模板/标签模板/搜索模板
function ReplaceListVars($no,$listtemp,$subnews,$subtitle,$formatdate,$url,$haveclass=0,$r,$field,$docode=0){
global $empire,$public_r,$class_r,$class_zr,$fun_r,$dbtbpre,$emod_r,$class_tr,$level_r,$navclassid,$etable_r;
if($haveclass)
{
$add=sys_ReturnBqClassname($r,$haveclass);
}
if(empty($r[oldtitle]))
{
$r[oldtitle]=$r[title];
}
if($docode==1)
{
$listtemp=stripSlashes($listtemp);
eval($listtemp);
}
$ylisttemp=$listtemp;
$mid=$field['mid'];
$fr=$field['fr'];
$fcount=$field['fcount'];
for($i=1;$i<$fcount;$i++)
{
$f=$fr[$i];
$value=$r[$f];
$spf=0;
if($f=='title')//标题
{
if(!empty($subtitle))//截取字符
{
$value=sub($value,0,$subtitle,false);
}
$value=DoTitleFont($r[titlefont],$value);
$spf=1;
}
elseif($f=='newstime')//时间
{
//$value=date($formatdate,$value);
$value=format_datetime($value,$formatdate);
$spf=1;
}
elseif($f=='titlepic')//标题图片
{
if(empty($value))
{
$value=$public_r[newsurl].'e/data/images/notimg.gif';
}
$spf=1;
}
elseif(strstr($emod_r[$mid]['smalltextf'],','.$f.','))//简介
{
if(!empty($subnews))//截取字符
{
$value=sub($value,0,$subnews,false);
}
}
elseif($f=='befrom')//信息来源
{
$spf=1;
}
elseif($f=='writer')//作者
{
$spf=1;
}
if($spf==0&&!strstr($emod_r[$mid]['editorf'],','.$f.','))
{
if(strstr($emod_r[$mid]['tobrf'],','.$f.','))//加br
{
$value=nl2br($value);
}
if(!strstr($emod_r[$mid]['dohtmlf'],','.$f.','))//去除html
{
$value=RepFieldtextNbsp(ehtmlspecialchars($value));
}
}
$listtemp=str_replace('[!--'.$f.'--]',$value,$listtemp);
}
$titleurl=sys_ReturnBqTitleLink($r);//链接
$listtemp=str_replace('[!--id--]',$r[id],$listtemp);
$listtemp=str_replace('[!--classid--]',$r[classid],$listtemp);
$listtemp=str_replace('[!--class.name--]',$add,$listtemp);
$listtemp=str_replace('[!--ttid--]',$r[ttid],$listtemp);
$listtemp=str_replace('[!--tt.name--]',$class_tr[$r[ttid]][tname],$listtemp);
$listtemp=str_replace('[!--tt.url--]',sys_ReturnBqInfoTypeUrl($r['ttid']),$listtemp);
$listtemp=str_replace('[!--userfen--]',$r[userfen],$listtemp);
$listtemp=str_replace('[!--titleurl--]',$titleurl,$listtemp);
$listtemp=str_replace('[!--no.num--]',$no,$listtemp);
$listtemp=str_replace('[!--plnum--]',$r[plnum],$listtemp);
$listtemp=str_replace('[!--userid--]',$r[userid],$listtemp);
$listtemp=str_replace('[!--username--]',$r[username],$listtemp);
$listtemp=str_replace('[!--onclick--]',$r[onclick],$listtemp);
$listtemp=str_replace('[!--oldtitle--]',$r[oldtitle],$listtemp);
$listtemp=str_replace('[!--totaldown--]',$r[totaldown],$listtemp);
//栏目链接
if(strstr($ylisttemp,'[!--this.classlink--]'))
{
$thisclasslink=sys_ReturnBqClassname($r,9);
$listtemp=str_replace('[!--this.classlink--]',$thisclasslink,$listtemp);
}
$thisclassname=$class_r[$r[classid]][bname]?$class_r[$r[classid]][bname]:$class_r[$r[classid]][classname];
$listtemp=str_replace('[!--this.classname--]',$thisclassname,$listtemp);
return $listtemp;
}
//加上防复制字符
function AddNotCopyRndStr($text){
global $public_r;
if($public_r['opencopytext'])
{
$rnd=make_password(3).$public_r['sitename'];
$text=str_replace("
","".$rnd."
",$text);
$text=str_replace("","".$rnd."",$text);
}
return $text;
}
//替换信息来源
function ReplaceBefrom($befrom){
global $empire,$dbtbpre;
if(empty($befrom))
{return $befrom;}
$befrom=addslashes($befrom);
$r=$empire->fetch1("select befromid,sitename,siteurl from {$dbtbpre}enewsbefrom where sitename='$befrom' limit 1");
if(empty($r[befromid]))
{return $befrom;}
$return_befrom="".$r[sitename]."";
return $return_befrom;
}
//替换作者
function ReplaceWriter($writer){
global $empire,$dbtbpre;
if(empty($writer))
{return $writer;}
$writer=addslashes($writer);
$r=$empire->fetch1("select wid,writer,email from {$dbtbpre}enewswriter where writer='$writer' limit 1");
if(empty($r[wid])||empty($r[email]))
{
return $writer;
}
$return_writer="".$r[writer]."";
return $return_writer;
}
//备份下载记录
function BakDown($classid,$id,$pathid,$userid,$username,$title,$cardfen,$online=0){
global $empire,$dbtbpre;
$truetime=time();
$id=(int)$id;
$pathid=(int)$pathid;
$userid=(int)$userid;
$cardfen=(int)$cardfen;
$classid=(int)$classid;
$username=RepPostVar($username);
$title=RepPostStr($title);
$online=addslashes(RepPostStr($online));
$sql=$empire->query("insert into {$dbtbpre}enewsdownrecord(id,pathid,userid,username,title,cardfen,truetime,classid,online) values($id,$pathid,$userid,'$username','".addslashes($title)."',$cardfen,$truetime,$classid,'$online');");
}
//备份充值记录
function BakBuy($userid,$username,$buyname,$userfen,$money,$userdate,$type=0){
global $empire,$dbtbpre;
$buytime=date("y-m-d H:i:s");
$buyname=addslashes(RepPostStr($buyname));
$userid=(int)$userid;
$username=RepPostVar($username);
$userfen=addslashes(RepPostStr($userfen));
$money=addslashes(RepPostStr($money));
$userdate=addslashes(RepPostStr($userdate));
$type=addslashes(RepPostStr($type));
$empire->query("insert into {$dbtbpre}enewsbuybak(userid,username,card_no,cardfen,money,buytime,userdate,type) values('$userid','$username','$buyname','$userfen','$money','$buytime','$userdate','$type');");
}
//发送短消息
function eSendMsg($title,$msgtext,$to_username,$from_userid,$from_username,$isadmin,$issys,$ecms=0){
global $empire,$dbtbpre;
$tbname=$ecms==1?$dbtbpre.'enewshmsg':$dbtbpre.'enewsqmsg';
$to_username=RepPostVar($to_username);
$from_userid=(int)$from_userid;
$from_username=RepPostVar($from_username);
$isadmin=(int)$isadmin;
$issys=(int)$issys;
$msgtime=date("Y-m-d H:i:s");
$empire->query("insert into ".$tbname."(title,msgtext,haveread,msgtime,to_username,from_userid,from_username,isadmin,issys) values('$title','$msgtext',0,'$msgtime','$to_username','$from_userid','$from_username','$isadmin','$issys');");
//消息状态
$userr=$empire->fetch1("select ".eReturnSelectMemberF('userid,havemsg')." from ".eReturnMemberTable()." where ".egetmf('username')."='$to_username' limit 1");
if(!$userr['havemsg'])
{
$newhavemsg=eReturnSetHavemsg($userr['havemsg'],0);
$empire->query("update ".eReturnMemberTable()." set ".egetmf('havemsg')."='$newhavemsg' where ".egetmf('userid')."='".$userr['userid']."' limit 1");
}
}
//发送通知
function eSendNotice($title,$msgtext,$to_username,$from_userid,$from_username,$ecms=0){
global $empire,$dbtbpre;
$tbname=$ecms==1?$dbtbpre.'enewshnotice':$dbtbpre.'enewsnotice';
$to_username=RepPostVar($to_username);
$from_userid=(int)$from_userid;
$from_username=RepPostVar($from_username);
$msgtime=date("Y-m-d H:i:s");
$empire->query("insert into ".$tbname."(title,msgtext,haveread,msgtime,to_username,from_userid,from_username) values('".$title."','".$msgtext."',0,'$msgtime','$to_username','$from_userid','$from_username');");
}
//截取简介
function SubSmalltextVal($value,$len){
if(empty($len))
{
return '';
}
$value=str_replace(array("\r\n","
","
"," ","[!--empirenews.page--]","[/!--empirenews.page--]"),array("","\r\n","\r\n"," ","",""),$value);
$value=strip_tags($value);
if($len)
{
$value=sub($value,0,$len,false);
}
$value=trim($value,"\r\n");
$value=str_replace('“','“',$value);
$value=str_replace('”','”',$value);
$value=str_replace('—','—',$value);
return $value;
}
//全站搜索简介
function SubSchallSmalltext($value,$len){
$value=str_replace(array("\r\n"," ","[!--empirenews.page--]","[/!--empirenews.page--]"),array("","","",""),$value);
$value=strip_tags($value);
if($len)
{
$value=sub($value,0,$len,false);
}
$value=trim($value,"\r\n");
return $value;
}
//加红替换
function DoReplaceFontRed($text,$key){
return str_replace($key,''.$key.'',$text);
}
//返回不生成html的栏目
function ReturnNreInfoWhere(){
global $public_r;
if(empty($public_r['nreinfo'])||$public_r['nreinfo']==',')
{
return '';
}
$cids=substr($public_r['nreinfo'],1,strlen($public_r['nreinfo'])-2);
$where=' and classid not in ('.$cids.')';
return $where;
}
//返回标签不调用栏目
function ReturnNottoBqWhere(){
global $public_r;
if(empty($public_r['nottobq'])||$public_r['nottobq']==',')
{
return '';
}
$cids=substr($public_r['nottobq'],1,strlen($public_r['nottobq'])-2);
$where='classid not in ('.$cids.')';
return $where;
}
//返回文件名及扩展名
function ReturnCFiletype($file){
$r=explode('.',$file);
$count=count($r)-1;
$re['filetype']=strtolower($r[$count]);
$re['filename']=substr($file,0,strlen($file)-strlen($re['filetype'])-1);
return $re;
}
//返回栏目目录
function ReturnSaveClassPath($classid,$f=0){
global $class_r;
$classpath=$class_r[$classid][classpath];
if($f==1){
$classpath.="/index".$class_r[$classid][classtype];
}
return $classpath;
}
//返回专题目录
function ReturnSaveZtPath($classid,$f=0){
global $class_zr;
$classpath=$class_zr[$classid][ztpath];
if($f==1){
$classpath.="/index".$class_zr[$classid][zttype];
}
return $classpath;
}
//返回标题分类目录
function ReturnSaveInfoTypePath($classid,$f=0){
global $class_tr;
$classpath=$class_tr[$classid]['tpath'];
if($f==1){
$classpath.='/index'.$class_tr[$classid]['ttype'];
}
return $classpath;
}
//返回首页文件
function ReturnSaveIndexFile(){
global $public_r;
$file='index'.$public_r[indextype];
return $file;
}
//返回首页地址
function ReturnSiteIndexUrl(){
global $public_r;
if(empty($public_r['indexaddpage']))
{
return $public_r['newsurl'];
}
if($public_r['indexpagedt']||Moreport_ReturnMustDt())//moreport
{
$public_r['indextype']='.php';
}
$file=$public_r['newsurl'].'index'.$public_r['indextype'];
return $file;
}
//返回内容页存放目录
function ReturnSaveInfoPath($classid,$id){
global $class_r;
if($class_r[$classid][ipath]==''){
$path=$class_r[$classid][classpath].'/';
}
else{
$path=$class_r[$classid][ipath]=='/'?'':$class_r[$classid][ipath].'/';
}
return $path;
}
//返回内容页文件名
function GetInfoFilename($classid,$id){
global $empire,$dbtbpre,$public_r,$class_r;
$infor=$empire->fetch1("select isurl,groupid,classid,newspath,filename,id from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where id='$id' limit 1");
if(!$infor['id']||$infor['isurl'])
{
return '';
}
$filetype=$infor['groupid']?'.php':$class_r[$classid]['filetype'];
$iclasspath=ReturnSaveInfoPath($classid,$id);
$doclasspath=eReturnTrueEcmsPath().$iclasspath;//moreport
$newspath='';
if($infor['newspath'])
{
$newspath=$infor['newspath'].'/';
}
$file=$doclasspath.$newspath.$infor['filename'].$filetype;
return $file;
}
//格式化信息目录
function FormatPath($classid,$mynewspath,$enews=0){
global $class_r;
if($enews)
{
$newspath=$mynewspath;
}
else
{
$newspath=date($class_r[$classid][newspath]);
}
if(empty($newspath))
{
return "";
}
$path=eReturnTrueEcmsPath().ReturnSaveInfoPath($classid,$id);
if(file_exists($path.$newspath))
{
return $newspath;
}
$returnpath="";
$r=explode("/",$newspath);
$count=count($r);
for($i=0;$i<$count;$i++){
if($i>0)
{
$returnpath.="/".$r[$i];
}
else
{
$returnpath.=$r[$i];
}
$createpath=$path.$returnpath;
$mk=DoMkdir($createpath);
if(empty($mk))
{
printerror("CreatePathFail","");
}
}
return $returnpath;
}
//返回内容页目录
function ReturnInfoSPath($filename){
return str_replace('/index','',$filename);
}
//返回根目录
function ReturnAbsEcmsPath(){
$ecmspath=str_replace("\\","/",ECMS_PATH);
return $ecmspath;
}
//返回当前根目录
function eReturnTrueEcmsPath(){
if(defined('ECMS_SELFPATH'))
{
return ECMS_SELFPATH;
}
else
{
return ECMS_PATH;
}
}
//返回主端根目录
function eReturnEcmsMainPortPath(){
global $ecms_config;
if($ecms_config['sets']['mainportpath'])
{
return $ecms_config['sets']['mainportpath'];
}
else
{
return ECMS_PATH;
}
}
//------------- 附件 -------------
//返回附件分表
function eReturnFileStb($fstb){
global $public_r;
$fstb=(int)$fstb;
if(!strstr($public_r['filedatatbs'],','.$fstb.','))
{
$fstb=$public_r['filedeftb'];
}
return $fstb;
}
//返回附件表
function eReturnFileTable($modtype,$fstb){
global $dbtbpre;
if($modtype==0)//信息
{
$fstb=eReturnFileStb($fstb);
$table=$dbtbpre.'enewsfile_'.$fstb;
}
elseif($modtype==5)//公共
{
$table=$dbtbpre.'enewsfile_public';
}
elseif($modtype==6)//会员
{
$table=$dbtbpre.'enewsfile_member';
}
else//其他
{
$table=$dbtbpre.'enewsfile_other';
}
return $table;
}
//查询附件表
function eSelectFileTable($modtype,$fstb,$selectf,$where){
global $dbtbpre;
$query="select {$selectf} from ".eReturnFileTable($modtype,$fstb)." where ".$where;
return $query;
}
//写入附件记录
function eInsertFileTable($filename,$filesize,$path,$adduser,$classid,$no,$type,$id,$cjid,$fpath,$pubid,$modtype=0,$fstb=1){
global $empire,$dbtbpre,$public_r;
$filetime=time();
$filesize=(int)$filesize;
$classid=(int)$classid;
$id=(int)$id;
$cjid=(int)$cjid;
$fpath=(int)$fpath;
$type=(int)$type;
$modtype=(int)$modtype;
$filename=addslashes(RepPostStr($filename));
$no=addslashes(RepPostStr($no));
$adduser=RepPostVar($adduser);
$path=addslashes(RepPostStr($path));
$pubid=RepPostVar($pubid);
$fstb=(int)$fstb;
if($modtype==0)//信息
{
$fstb=eReturnFileStb($fstb);
$sql=$empire->query("insert into {$dbtbpre}enewsfile_".$fstb."(pubid,filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,onclick,fpath) values('$pubid','$filename','$filesize','$adduser','$path','$filetime','$classid','$no','$type','$id','$cjid',0,'$fpath');");
}
elseif($modtype==5)//公共
{
$sql=$empire->query("insert into {$dbtbpre}enewsfile_public(filename,filesize,adduser,path,filetime,modtype,no,type,id,cjid,onclick,fpath) values('$filename','$filesize','$adduser','$path','$filetime',0,'$no','$type','$id','$cjid',0,'$fpath');");
}
elseif($modtype==6)//会员
{
$sql=$empire->query("insert into {$dbtbpre}enewsfile_member(filename,filesize,adduser,path,filetime,no,type,id,cjid,onclick,fpath) values('$filename','$filesize','$adduser','$path','$filetime','$no','$type','$id','$cjid',0,'$fpath');");
}
else//其他
{
$sql=$empire->query("insert into {$dbtbpre}enewsfile_other(filename,filesize,adduser,path,filetime,modtype,no,type,id,cjid,onclick,fpath) values('$filename','$filesize','$adduser','$path','$filetime','$modtype','$no','$type','$id','$cjid',0,'$fpath');");
}
return $sql;
}
//更新相应的附件(非信息)
function UpdateTheFileOther($modtype,$id,$checkpass,$tb='other'){
global $empire,$dbtbpre;
if(empty($id)||empty($checkpass))
{
return "";
}
$id=(int)$id;
$checkpass=(int)$checkpass;
$where='';
if($tb=='other')
{
$where=" and modtype='$modtype'";
}
$sql=$empire->query("update {$dbtbpre}enewsfile_{$tb} set id='$id',cjid=0 where cjid='$checkpass'".$where);
}
//修改时更新附件(非信息)
function UpdateTheFileEditOther($modtype,$id,$tb='other'){
global $empire,$dbtbpre;
$where='';
if($tb=='other')
{
$where=" and modtype='$modtype'";
}
$sql=$empire->query("update {$dbtbpre}enewsfile_{$tb} set cjid=0 where id='$id'".$where);
}
//返回filepass
function ReturnTranFilepass(){
$filepass=time();
return $filepass;
}
//返回附件域名地址
function eReturnFileUrl($ecms=0){
global $public_r;
if($ecms==1)
{
return $public_r['fileurl'];
}
$fileurl=$public_r['openfileserver']?$public_r['fs_purl']:$public_r['fileurl'];
return $fileurl;
}
//返回附件目录
function ReturnFileSavePath($classid,$fpath=''){
global $public_r,$class_r;
$fpath=$fpath||strstr(','.$fpath.',',',0,')?$fpath:$public_r['fpath'];
$efileurl=eReturnFileUrl();
if($fpath==1)//p目录
{
$r['filepath']='d/file/p/';
$r['fileurl']=$efileurl.'p/';
}
elseif($fpath==2)//file目录
{
$r['filepath']='d/file/';
$r['fileurl']=$efileurl;
}
else
{
if(empty($classid))
{
$r['filepath']='d/file/p/';
$r['fileurl']=$efileurl.'p/';
}
else
{
$r['filepath']='d/file/'.$class_r[$classid][classpath].'/';
$r['fileurl']=$efileurl.$class_r[$classid][classpath].'/';
}
}
return $r;
}
//格式化附件目录
function FormatFilePath($classid,$mynewspath,$enews=0){
global $public_r;
if($enews)
{
$newspath=$mynewspath;
}
else
{
$newspath=date($public_r['filepath']);
}
if(empty($newspath))
{
return "";
}
$fspath=ReturnFileSavePath($classid);
$path=eReturnEcmsMainPortPath().$fspath['filepath'];//moreport
if(file_exists($path.$newspath))
{
return $newspath;
}
$returnpath="";
$r=explode("/",$newspath);
$count=count($r);
for($i=0;$i<$count;$i++){
if($i>0){
$returnpath.="/".$r[$i];
}
else{
$returnpath.=$r[$i];
}
$createpath=$path.$returnpath;
$mk=DoMkdir($createpath);
if(empty($mk)){
printerror("CreatePathFail","");
}
}
return $returnpath;
}
//返回上传文件名
function ReturnDoTranFilename($file_name,$classid){
$filename=md5(uniqid(microtime()).EcmsRandInt());
return $filename;
}
//上传文件
function DoTranFile($file,$file_name,$file_type,$file_size,$classid,$ecms=0){
global $public_r,$class_r,$doetran,$efileftp_fr;
$classid=(int)$classid;
//文件类型
$r[filetype]=GetFiletype($file_name);
//文件名
$r[insertfile]=ReturnDoTranFilename($file_name,$classid);
$r[filename]=$r[insertfile].$r[filetype];
//日期目录
$r[filepath]=FormatFilePath($classid,$mynewspath,0);
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
//存放目录
$fspath=ReturnFileSavePath($classid);
$r[savepath]=eReturnEcmsMainPortPath().$fspath['filepath'].$filepath;//moreport
//附件地址
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
//缩图文件
$r[name]=$r[savepath]."small".$r[insertfile];
//附件文件
$r[yname]=$r[savepath].$r[filename];
$r[tran]=1;
//验证类型
if(CheckSaveTranFiletype($r[filetype]))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror('TranFail','',$ecms);
}
}
//上传文件
$cp=@move_uploaded_file($file,$r[yname]);
if(empty($cp))
{
if($doetran)
{
$r[tran]=0;
return $r;
}
else
{
printerror('TranFail','',$ecms);
}
}
DoChmodFile($r[yname]);
$r[filesize]=(int)$file_size;
//FileServer
if($public_r['openfileserver'])
{
$efileftp_fr[]=$r['yname'];
}
return $r;
}
//远程保存忽略地址
function CheckNotSaveUrl($url){
global $public_r;
if(empty($public_r['notsaveurl']))
{
return 0;
}
$r=explode("\r\n",$public_r['notsaveurl']);
$count=count($r);
$re=0;
for($i=0;$i<$count;$i++)
{
if(empty($r[$i]))
{continue;}
if(stristr($url,$r[$i]))
{
$re=1;
break;
}
}
return $re;
}
//远程保存
function DoTranUrl($url,$classid){
global $public_r,$class_r,$ecms_config,$efileftp_fr;
$classid=(int)$classid;
//处理地址
$url=trim($url);
$url=str_replace(" ","%20",$url);
$r[tran]=1;
//附件地址
$r[url]=$url;
//文件类型
$r[filetype]=GetFiletype($url);
if(CheckSaveTranFiletype($r[filetype]))
{
$r[tran]=0;
return $r;
}
//是否已上传的文件
$havetr=CheckNotSaveUrl($url);
if($havetr)
{
$r[tran]=0;
return $r;
}
//是否地址
if(!strstr($url,'://'))
{
$r[tran]=0;
return $r;
}
if(!eToCheckIsUrl2($url))
{
$r[tran]=0;
return $r;
}
$string=ReadFiletext($url);
if(empty($string))//读取不了
{
$r[tran]=0;
return $r;
}
//文件名
$r[insertfile]=ReturnDoTranFilename($file_name,$classid);
$r[filename]=$r[insertfile].$r[filetype];
//日期目录
$r[filepath]=FormatFilePath($classid,$mynewspath,0);
$filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
//存放目录
$fspath=ReturnFileSavePath($classid);
$r[savepath]=eReturnEcmsMainPortPath().$fspath['filepath'].$filepath;//moreport
//附件地址
$r[url]=$fspath['fileurl'].$filepath.$r[filename];
//缩图文件
$r[name]=$r[savepath]."small".$r[insertfile];
//附件文件
$r[yname]=$r[savepath].$r[filename];
WriteFiletext_n($r[yname],$string);
$r[filesize]=@filesize($r[yname]);
//返回类型
if(strstr($ecms_config['sets']['tranflashtype'],','.$r[filetype].','))
{
$r[type]=2;
}
elseif(strstr($ecms_config['sets']['tranpicturetype'],','.$r[filetype].','))
{
$r[type]=1;
}
elseif(strstr($ecms_config['sets']['mediaplayertype'],','.$r[filetype].',')||strstr($ecms_config['sets']['realplayertype'],','.$r[filetype].','))//多媒体
{
$r[type]=3;
}
else
{
$r[type]=0;
}
//FileServer
if($public_r['openfileserver'])
{
$efileftp_fr[]=$r['yname'];
}
return $r;
}
//删除附件
function DoDelFile($r){
global $class_r,$public_r,$efileftp_dr;
$path=$r['path']?$r['path'].'/':$r['path'];
$fspath=ReturnFileSavePath($r[classid],$r[fpath]);
$delfile=eReturnEcmsMainPortPath().$fspath['filepath'].$path.$r['filename'];//moreport
DelFiletext($delfile);
//FileServer
if($public_r['openfileserver'])
{
$efileftp_dr[]=$delfile;
}
}
//替换表前缀
function RepSqlTbpre($sql){
global $dbtbpre;
$sql=str_replace('[!db.pre!]',$dbtbpre,$sql);
return $sql;
}
//反替换表前缀
function ReRepSqlTbpre($sql){
global $dbtbpre;
$sql=str_replace($dbtbpre,'***_',$sql);
return $sql;
}
//验证表是否存在
function eCheckTbname($tbname){
global $empire,$dbtbpre;
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewstable where tbname='$tbname' limit 1");
return $num;
}
//时间转换
function ToChangeUseTime($time){
global $fun_r;
$usetime=time()-$time;
if($usetime<60)
{
$tstr=$usetime.$fun_r['TimeSecond'];
}
else
{
$usetime=round($usetime/60);
$tstr=$usetime.$fun_r['TimeMinute'];
}
return $tstr;
}
//返回栏目集合
function ReturnClass($sonclass){
if($sonclass==''||$sonclass=='|'){
return 'classid=0';
}
$where='classid in ('.RepSonclassSql($sonclass).')';
return $where;
}
//替换子栏目子
function RepSonclassSql($sonclass){
if($sonclass==''||$sonclass=='|'){
return 0;
}
$sonclass=substr($sonclass,1,strlen($sonclass)-2);
$sonclass=str_replace('|',',',$sonclass);
return $sonclass;
}
//返回多栏目
function sys_ReturnMoreClass($sonclass,$son=0){
global $class_r;
$r=explode(',',$sonclass);
$count=count($r);
$return_r[0]=intval($r[0]);
$where='';
$or='';
for($i=0;$i<$count;$i++)
{
$r[$i]=intval($r[$i]);
if($son==1)
{
if($class_r[$r[$i]]['tbname']&&!$class_r[$r[$i]]['islast'])
{
$where.=$or."classid in (".RepSonclassSql($class_r[$r[$i]]['sonclass']).")";
}
else
{
$where.=$or."classid='".$r[$i]."'";
}
}
else
{
$where.=$or."classid='".$r[$i]."'";
}
$or=' or ';
}
$return_r[1]=$where;
return $return_r;
}
//返回多专题
function sys_ReturnMoreZt($zt,$ecms=0){
$f=$ecms==1?'ztid':'cid';
$r=explode(',',$zt);
$count=count($r);
$return_r[0]=intval($r[0]);
$ids='';
$dh='';
for($i=0;$i<$count;$i++)
{
$r[$i]=intval($r[$i]);
$ids.=$dh.$r[$i];
$dh=',';
}
$return_r[1]=$f.' in ('.$ids.')';
return $return_r;
}
//返回多标题分类
function sys_ReturnMoreTT($tt){
$r=explode(',',$tt);
$count=count($r);
$return_r[0]=intval($r[0]);
$ids='';
$dh='';
for($i=0;$i<$count;$i++)
{
$r[$i]=intval($r[$i]);
$ids.=$dh.$r[$i];
$dh=',';
}
$return_r[1]='ttid in ('.$ids.')';
return $return_r;
}
//验证是否包含栏目
function CheckHaveInClassid($cr,$checkclass){
global $class_r;
if($cr['islast'])
{
$chclass='|'.$cr['classid'].'|';
}
else
{
$chclass=$cr['sonclass'];
}
$return=0;
$r=explode('|',$chclass);
$count=count($r);
for($i=1;$i<$count-1;$i++)
{
if(strstr($checkclass,'|'.$r[$i].'|'))
{
$return=1;
break;
}
}
return $return;
}
//返回加前缀的下载地址
function ReturnDownQzPath($path,$urlid){
global $empire,$dbtbpre;
$urlid=(int)$urlid;
if(empty($urlid))
{
$re['repath']=$path;
$re['downtype']=0;
}
else
{
$r=$empire->fetch1("select urlid,url,downtype from {$dbtbpre}enewsdownurlqz where urlid='$urlid'");
if($r['urlid'])
{
$re['repath']=$r['url'].$path;
}
else
{
$re['repath']=$path;
}
$re['downtype']=$r['downtype'];
}
return $re;
}
//返回带防盗链的绝对地址
function ReturnDSofturl($downurl,$qz,$path='../../',$isdown=0){
$urlr=ReturnDownQzPath(stripSlashes($downurl),$qz);
$url=$urlr['repath'];
@include_once(ECMS_PATH."e/DownSys/class/enpath.php");//防盗链
if($isdown)
{
$url=DoEnDownpath($url);
}
else
{
$url=DoEnOnlinepath($url);
}
return $url;
}
//验证提交来源
function CheckCanPostUrl(){
global $public_r;
if($public_r['canposturl'])
{
$r=explode("\r\n",$public_r['canposturl']);
$count=count($r);
$b=0;
for($i=0;$i<$count;$i++)
{
if(strstr($_SERVER['HTTP_REFERER'],$r[$i]))
{
$b=1;
break;
}
}
if($b==0)
{
printerror('NotCanPostUrl','',1);
}
}
}
//adminpath
function eGetSelfAdminPath(){
$selfpath=eReturnSelfPage(0);
$selfpath=str_replace("\\","/",$selfpath);
if(strstr($selfpath,'//'))
{
exit();
}
$pr=explode('/e/',$selfpath);
$pr2=explode('/',$pr[1]);
$adminpath=$pr2[0];
if(empty($adminpath))
{
exit();
}
return $adminpath;
}
//特殊来源验证
function hCheckSpFromUrl(){
if(defined('EmpireCMSSpFromUrl'))
{
return '';
}
$spurl=',AddNews.php,ShowInfo.php,ShowWfInfo.php,EditCjNews.php,infoeditor,';
$r=explode(',',$spurl);
$count=count($r);
$fromurl=$_SERVER['HTTP_REFERER'];
for($i=1;$i<$count;$i++)
{
if(empty($r[$i]))
{
continue;
}
if(stristr($fromurl,$r[$i]))
{
printerror("FailHash","history.go(-1)");
}
}
}
//设定特殊来源
function hSetSpFromUrl(){
define('EmpireCMSSpFromUrl',TRUE);
}
//验证来源
function DoSafeCheckFromurl(){
global $ecms_config;
if($ecms_config['esafe']['ckfromurl']==0||defined('EmpireCMSNFPage'))//不启用
{
return '';
}
$fromurl=$_SERVER['HTTP_REFERER'];
if(!$fromurl)
{
return '';
}
$domain=eReturnDomain();
if($ecms_config['esafe']['ckfromurl']==1)//全部启用
{
if(!stristr($fromurl,$domain))
{
echo"";
exit();
}
}
elseif($ecms_config['esafe']['ckfromurl']==2)//后台启用
{
if(defined('EmpireCMSAdmin')&&!stristr($fromurl,$domain.'/'))
{
echo"";
exit();
}
}
elseif($ecms_config['esafe']['ckfromurl']==3)//前台启用
{
if(!defined('EmpireCMSAdmin')&&!stristr($fromurl,$domain))
{
echo"";
exit();
}
}
elseif($ecms_config['esafe']['ckfromurl']==4)//全部启用(严格)
{
if(!stristr($fromurl,$domain))
{
echo"";
exit();
}
if(defined('EmpireCMSAdmin'))
{
$adminpath=eGetSelfAdminPath();
if(!stristr($fromurl,'/e/'.$adminpath.'/'))
{
echo"";
exit();
}
}
}
elseif($ecms_config['esafe']['ckfromurl']==5)//后台启用(严格)
{
if(defined('EmpireCMSAdmin'))
{
if(!stristr($fromurl,$domain.'/'))
{
echo"";
exit();
}
$adminpath=eGetSelfAdminPath();
if(!stristr($fromurl,'/e/'.$adminpath.'/'))
{
echo"";
exit();
}
}
}
elseif($ecms_config['esafe']['ckfromurl']==6)//前台启用(严格)
{
if(!defined('EmpireCMSAdmin')&&!stristr($fromurl,$domain))
{
echo"";
exit();
}
}
}
//验证agent信息
function EcmsCheckUserAgent($ckstr){
if(empty($ckstr))
{
return '';
}
$userinfo=$_SERVER['HTTP_USER_AGENT'];
$cr=explode('||',$ckstr);
$count=count($cr);
for($i=0;$i<$count;$i++)
{
if(empty($cr[$i]))
{
continue;
}
if(!strstr($userinfo,$cr[$i]))
{
//echo'Userinfo Error';
exit();
}
}
}
//验证IP
function eCheckAccessIp($ecms=0){
global $public_r;
$userip=egetip();
if($ecms)//后台
{
//允许IP
if($public_r['hopenip'])
{
$close=1;
foreach(explode("\n",$public_r['hopenip']) as $ctrlip)
{
if(preg_match("/^(".preg_quote(($ctrlip=trim($ctrlip)),'/').")/",$userip))
{
$close=0;
break;
}
}
if($close==1)
{
echo"Ip(".$userip.") be prohibited.";
exit();
}
}
}
else
{
//允许IP
if($public_r['openip'])
{
$close=1;
foreach(explode("\n",$public_r['openip']) as $ctrlip)
{
if(preg_match("/^(".preg_quote(($ctrlip=trim($ctrlip)),'/').")/",$userip))
{
$close=0;
break;
}
}
if($close==1)
{
echo"Ip(".$userip.") be prohibited.";
exit();
}
}
//禁止IP
if($public_r['closeip'])
{
foreach(explode("\n",$public_r['closeip']) as $ctrlip)
{
if(preg_match("/^(".preg_quote(($ctrlip=trim($ctrlip)),'/').")/",$userip))
{
echo"Ip(".$userip.") be prohibited.";
exit();
}
}
}
}
}
//验证提交IP
function eCheckAccessDoIp($doing){
global $public_r,$empire,$dbtbpre;
$pr=$empire->fetch1("select opendoip,closedoip,doiptype from {$dbtbpre}enewspublic limit 1");
if(!strstr($pr['doiptype'],','.$doing.','))
{
return '';
}
$userip=egetip();
//允许IP
if($pr['opendoip'])
{
$close=1;
foreach(explode("\n",$pr['opendoip']) as $ctrlip)
{
if(preg_match("/^(".preg_quote(($ctrlip=trim($ctrlip)),'/').")/",$userip))
{
$close=0;
break;
}
}
if($close==1)
{
printerror('NotCanPostIp','history.go(-1)',1);
}
}
//禁止IP
if($pr['closedoip'])
{
foreach(explode("\n",$pr['closedoip']) as $ctrlip)
{
if(preg_match("/^(".preg_quote(($ctrlip=trim($ctrlip)),'/').")/",$userip))
{
printerror('NotCanPostIp','history.go(-1)',1);
}
}
}
}
//验证是否关闭相关模块
function eCheckCloseMods($mod){
global $public_r;
if(strstr($public_r['closemods'],','.$mod.','))
{
echo $mod.' is close';
exit();
}
}
//验证操作时间
function eCheckTimeCloseDo($ecms){
global $public_r;
if(stristr($public_r['timeclosedo'],','.$ecms.','))
{
$h=date('G');
if(strstr($public_r['timeclose'],','.$h.','))
{
printerror('ThisTimeCloseDo','history.go(-1)',1);
}
}
}
//验证外部登录是否开启
function eCheckCloseMemberConnect(){
global $public_r;
if(!$public_r['memberconnectnum'])
{
printerror('NotOpenMemberConnect','history.go(-1)',1);
}
}
//过滤
function ClearNewsBadCode($text){
$text=preg_replace(array('!