104 lines
3.3 KiB
PHP
104 lines
3.3 KiB
PHP
<?php
|
||
//基础使用
|
||
class baseClassModel extends Model
|
||
{
|
||
private $usrr = array();
|
||
|
||
/**
|
||
* 获取异步地址
|
||
*/
|
||
public function getasynurl($m, $a,$can=array(), $lx=0)
|
||
{
|
||
if($lx==0)$runurl = getconfig('localurl', URL);
|
||
if($lx==1)$runurl = getconfig('anayurl', URL); //使用异步通信地址
|
||
if($lx==2)$runurl = getconfig('waiurl', URL); //使用外网地址
|
||
if($lx==3)$runurl = '';
|
||
$key = getconfig('asynkey');
|
||
if($key!='')$key = md5(md5($key));
|
||
$uid = $this->adminid;
|
||
if($uid==0)$uid = (int)arrvalue($GLOBALS,'adminid','0');
|
||
if($uid==0)$uid = 1;//必须要有个值
|
||
$runurl .= 'api.php?m='.$m.'&a='.$a.'&adminid='.$uid.'&asynkey='.$key.'';
|
||
if(COMPANYNUM)$runurl.='&dwnum='.COMPANYNUM.'';
|
||
if(is_array($can))foreach($can as $k=>$v)$runurl.='&'.$k.'='.$v.'';
|
||
return $runurl;
|
||
}
|
||
|
||
/**
|
||
* 系统上变量替换
|
||
* $lx = 0 加'',$lx=1不加
|
||
*/
|
||
public function strreplace($str, $uid=0, $lx=0)
|
||
{
|
||
if(isempt($str))return '';
|
||
$date = $this->rock->date;
|
||
$month = date('Y-m');
|
||
$str = str_replace('[date]', $date, $str);
|
||
$str = str_replace('[month]', $month, $str);
|
||
if(!contain($str,'{') || !contain($str,'}'))return $str; //没有{}变量
|
||
|
||
if($uid==0)$uid = $this->adminid;
|
||
$ckey = 'u'.$uid.'';
|
||
if(isset($this->usrr[$ckey])){
|
||
$urs = $this->usrr[$ckey];
|
||
}else{
|
||
$urs = $this->db->getone('`[Q]admin`','`id`='.$uid.'');
|
||
$companyid = arrvalue($urs,'companyid','1');
|
||
if(ISMORECOM){
|
||
$comid = arrvalue($urs, 'comid','0');
|
||
if($comid>'0')$companyid = $comid;
|
||
}
|
||
$comrs = $this->db->getone('`[Q]company`','`id`='.$companyid.'');
|
||
$urs['companyid'] = $companyid;
|
||
$urs['companyname'] = arrvalue($comrs,'name');
|
||
$urs['companynum'] = arrvalue($comrs,'num');
|
||
$this->usrr[$ckey] = $urs;
|
||
}
|
||
if(!$urs)$urs= array();
|
||
$urs['uid'] = $uid;
|
||
$urs['date'] = $date;
|
||
$urs['year'] = date('Y');
|
||
$urs['month'] = $month;
|
||
$urs['time'] = date('H:i:s');
|
||
$urs['now'] = $this->rock->now;
|
||
$urs['admin'] = arrvalue($urs,'name', $this->adminname);
|
||
$urs['adminname'] = $urs['admin'];
|
||
$urs['adminid'] = $uid;
|
||
$urs['deptname'] = arrvalue($urs,'deptname');
|
||
$urs['workdate'] = arrvalue($urs,'workdate');
|
||
$urs['ranking'] = arrvalue($urs,'ranking');
|
||
$urs['ismobile'] = $this->rock->ismobile() ? '1' : '0';
|
||
$barr = $this->rock->matcharr($str);
|
||
foreach($barr as $match){
|
||
$key = $match;
|
||
if(substr($key,0,4)=='urs.')$key = substr($key,4);
|
||
if(isset($urs[$key])){
|
||
$val = $urs[$key];
|
||
if($lx==0)$val = "'$val'";
|
||
$str = str_replace('{'.$match.'}', $val, $str);
|
||
}
|
||
//是否日期加减{date+1},{second-20}
|
||
if(contain($match,'+') || contain($match,'-')){
|
||
$add = 1;
|
||
if(contain($match,'-'))$add=-1;
|
||
$strss1 = explode('-', str_replace('+','-', $match));
|
||
$dats = $strss1[0];
|
||
$jg = (int)$strss1[1] * $add;;
|
||
$cval = 'Y-m-d H:i:s';
|
||
$lxs = 'd';
|
||
if($dats=='date')$cval = 'Y-m-d';
|
||
if($dats=='month'){
|
||
$cval = 'Y-m';
|
||
$lxs = 'm';
|
||
}
|
||
if($dats=='hour')$lxs = 'H';
|
||
if($dats=='minute')$lxs = 'i';
|
||
if($dats=='second')$lxs = 's';
|
||
$val = c('date')->adddate($urs['now'], $lxs, $jg, $cval);
|
||
if($lx==0)$val = "'$val'";
|
||
$str = str_replace('{'.$match.'}', $val, $str);
|
||
}
|
||
}
|
||
return $str;
|
||
}
|
||
} |