Files
xinhu/webmain/index/indexAction.php
2024-10-18 15:27:40 +08:00

327 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
class indexClassAction extends Action{
public $homestylebool = false;
private $menuwhere,$addmenu;
public function defaultAction()
{
if(strlen(getconfig('randkey'))!=26)exit('配置文件randkey不正确请重新设置为'.$this->jm->getRandkey().'');
$notuserids = getconfig('notuserids');
$this->pannouser();
$homestyle = getconfig('homestyle');
if($homestyle>=1 && !$this->homestylebool){
$temshot = $this->getsession('homestyle');
if(!$temshot){
$urlt = '?a=home';
if($homestyle==2)$urlt = '?a=new';
$this->rock->location($urlt);
return;
}
}
$afrom = $this->get('afrom');
$this->tpltype = 'html';
$my = $this->db->getone('[Q]admin', "`id`='$this->adminid' and `status`=1",'`face`,`id`,`name`,`ranking`,`deptname`,`deptallname`,`type`,`style`,`user`');
if(!$my)return '登录用户不存在了,<a href="?m=login&a=exit">重新登录</a>';
$allmenuid = m('sjoin')->getuserext($this->adminid, $my['type']);
m('dept')->online(1);
$mewhere = '';
$isadmin = 1;
$myext = $allmenuid;
if($myext != '-1'){
$isadmin = 0;
$mewhere = ' and `id` in('.str_replace(array('[',']'), array('',''), $myext).')';
}
if($this->adminid!=1)$mewhere.=' and `type`=0';
$this->rock->savesession(array(
'adminallmenuid' => $allmenuid,
'isadmin' => $isadmin,
'homestyle' => 'rock',
'adminuser' => $my['user']
));
$this->smartydata['adminuser'] = $my['user'];
$this->smartydata['topmenu'] = m('menu')->getall("`pid`=0 and `status`=1 $mewhere order by `sort`");
$homeurl = $this->jm->base64decode($this->get('homeurl'));
$homename = $this->jm->base64decode($this->get('homename'));
$menuid = (int)$this->jm->base64decode($this->get('menuid'));
$showkey = $this->jm->base64encode($this->jm->getkeyshow());
if($menuid<1)$menuid = '';
if($homeurl=='')$showkey = '';
if(!isempt($homeurl) && isempt($menuid))return '无权限打开['.$homename.']的页面1';
if(!isempt($menuid) && $isadmin==0){
if(!contain($myext,'['.$menuid.']'))return '无权限打开['.$homename.']的页面2';
}
$this->smartydata['showkey'] = $showkey;
$this->smartydata['homeurl'] = $homeurl;
$this->smartydata['homename'] = $homename;
$this->smartydata['admintype'] = $isadmin;
$this->smartydata['my'] = $my;
$this->smartydata['afrom'] = $afrom;
$this->smartydata['tanwidth'] = $this->option->getval('tanwidth', '900x800');
$this->smartydata['face'] = $this->rock->repempt($my['face'], 'images/noface.png');
if(!isempt($homename))$this->title = $homename;
//样式主题处理
$strs = explode(',', ',cerulean,cosmo,cyborg,darkly,flatly,journal,lumen,paper,readable,sandstone,simplex,slate,spacelab,superhero,united,xinhu,yeti');
$zys = count($strs)-1;
$style= (int)$this->rock->repempt($my['style'], '0');//默认样式
$styys= 'inverse';
$this->smartydata['style'] = $style;
if($style==0)$style = (int)getconfig('defstype','1');//默认的主题皮肤
if($style>$zys){
$styys= 'default';
$style= $style-$zys;
}
$stylecs1 = 'mode/bootstrap3.3/css/bootstrap';
$stylecss = ''.$stylecs1.'_'.$strs[$style].'.css';
if(!file_exists($stylecss))$stylecss= ''.$stylecs1.'_cerulean.css';
$this->smartydata['stylecss'] = $stylecss;
$this->smartydata['styledev'] = $styys;
//读取单位
$this->smartydata['logo'] = 'images/xh829.png';
$this->smartydata['icon'] = 'favicon.ico';
$companyinfo = false;
if(COMPANYNUM)$companyinfo = m('company')->getone(1);
if(ISMORECOM)$companyinfo = m('admin')->getcompanyinfo($this->adminid, 1);
if($companyinfo){
$this->title = $companyinfo['name'];
if(!isempt($companyinfo['oaname']))$this->title = $companyinfo['oaname'];
if(!isempt($companyinfo['logo'])){
$this->smartydata['logo'] = $companyinfo['logo'];
$this->smartydata['icon'] = $this->smartydata['logo'];
}
}
}
public function oldAction()
{
$this->defaultAction();
}
public function newAction()
{
$this->homestylebool = true;
$this->defaultAction();
$stylecss = 'mode/bootstrap3.3/css/bootstrap4_default.css';
$stylecss = 'mode/bootstrap3.3/css/bootstrap3_xinhuoa.css';
if(!file_exists('webmain/index/tpl_index_new.html')){
$this->displayfile = 'webmain/index/tpl_index.html';
}else{
$_ysts = $this->smartydata['stylecss'];
if(contain($_ysts,'xinhu') || contain($_ysts,'cerulean'))$this->smartydata['stylecss'] = $stylecss;
}
}
public function homeAction()
{
$this->homestylebool = true;
$this->defaultAction();
$homewidth = getconfig('homewidth');
if(!$homewidth)$homewidth='1300px';
$this->smartydata['homewidth']= $homewidth;
$this->smartydata['beijing'] = $this->option->getval('beijing_'.$this->adminid.'','images/beijing/bj0.jpg');
if(!file_exists('webmain/index/tpl_index_home.html'))$this->displayfile = 'webmain/index/tpl_index.html';
}
public function testnetAction()
{
$curl = c('curl');
$url = 'https://www.baidu.com/';
$cont = $curl->getcurl($url);
if(contain($cont,'http')){
echo '可以访问地址:'.$url.'<br>';
}else{
echo '无法访问地址:'.$url.'<br>';
}
$url = 'http://www.rockoa.com/';
$cont = $curl->getcurl($url);
if(contain($cont,'http')){
echo '可以访问地址:'.$url.'<br>';
}else{
echo '无法访问地址:'.$url.'<br>';
}
return '测试完成';
}
public function phpinfoAction()
{
$this->display = false;
phpinfo();
}
private function menuwheres()
{
$this->menuwhere = '';
$myext = $this->getsession('adminallmenuid');
if(isempt($myext))$myext = '0';
if($myext != '-1'){
$this->menuwhere = ' and `id` in('.str_replace(array('[',']'), array('',''), $myext).')';
}
if($this->adminid!=1)$this->menuwhere.=' and `type`=0';//非admin只能看普通菜单
}
/**
* 搜索菜单
*/
public function getmenusouAjax()
{
$key = $this->post('key');
$this->menuwheres();
$this->addmenu = m('menu')->getall("`status`=1 $this->menuwhere and `name` like '%$key%' and ifnull(`url`,'')<>'' order by `pid`,`sort` limit 10",'`id`,`num`,`url`,`icons`,`name`,`pid`');
$arr = $this->getmenu(0, 1);
$this->returnjson($arr);
}
/**
* 获取菜单
*/
public function getmenuAjax()
{
$pid = $this->get('pid');
$loadci = (int)$this->get('loadci');
$this->menuwheres();
$this->addmenu = m('menu')->getall("`status`=1 $this->menuwhere order by `sort`,`id`",'`id`,`num`,`url`,`icons`,`name`,`pid`');
$barr = array(
'menuarr' => $this->getmenu($pid,0)
);
if($loadci==1)$barr['menutopid'] = $this->menutopid();
return $barr;
}
private function getmenu($pid, $lx=0)
{
$menu = $this->addmenu;
$rows = array();
foreach($menu as $k=>$rs){
if($lx == 0 && $pid != $rs['pid'])continue;
$num = $rs['num'];
$rs['bh'] = $num;
$sid = $rs['id'];
$icons = $rs['icons'];
if(isempt($num))$num = 'num'.$sid;
if(isempt($icons))$icons = 'bookmark-empty';
$rs['icons'] = $icons;
$rs['num'] = $num;
if($lx == 0){
$children = $this->getmenu($sid);
$rs['children'] = $children;
$rs['stotal'] = count($children);
}else{
$rs['stotal'] = 0;
}
$rs['name'] = lang($rs['name'],'menu');
$rows[] = $rs;
}
return $rows;
}
private function menutopid()
{
$pnuma = array();
$gpar = array();
foreach($this->addmenu as $k=>$rs)if($rs['pid']>0)$pnuma[$rs['id']]=$rs['pid'];
foreach($this->addmenu as $k=>$rs){
if($rs['pid']>0 && !isempt($rs['num'])){
$pid = $rs['pid'];
if(isset($pnuma[$pid])){
$pid=$pnuma[$pid];
if(isset($pnuma[$pid]))$pid=$pnuma[$pid];
}
$gpar[$rs['num']]=$pid;
}
}
return $gpar;
}
public function downAction()
{
$this->display = false;
$id = (int)$this->jm->gettoken('id');
m('file')->show($id);
}
/**
* 单页显示
*/
public function showAction()
{
$url = $this->get('url');
if($url=='')exit('无效请求');
$this->defaultAction();
}
/**
* 获取模版文件
*/
public function getshtmlAction()
{
$this->pannouser();
$surl = $this->jm->base64decode($this->get('surl'));
$num = $this->get('num');
$menuname = $this->jm->base64decode($this->get('menuname'));
$urlpms = $this->jm->base64decode($this->get('urlpms'));
if(isempt($surl))exit('not found');
$file = ''.P.'/'.$surl.'.php';
if(!file_exists($file))$file = ''.P.'/'.$surl.'.shtml';
if(!file_exists($file))exit('404 not found '.$surl.'');
$params = array();
if($urlpms)$params = json_decode('{'.str_replace('\'','"', $urlpms).'}', true);
$this->assign('pageparams', $params);
if(contain($surl,'home/index/rock_index'))$this->showhomeitems();//首页的显示
$this->displayfile = $file;
//记录打开菜单日志
if($num!='home' && getconfig('useropt')=='1')
m('log')->addlog('打开菜单', '菜单['.$num.'.'.$menuname.']');
}
//显示桌面项目
private function showhomeitems()
{
$rows = m('homeitems')->getmyshow();
if(!$rows)$rows = json_decode('[{"num":"kjrk","row":"0","name":"快捷入口","sort":"0"},{"num":"gong","row":"0","name":"通知公告","sort":"1"},{"num":"kqdk","row":"0","name":"考勤打卡","sort":"2"},{"num":"gwwx","row":"0","receid":"u1","recename":"管理员","name":"微信办公","sort":"10"},{"num":"apply","row":"1","name":"我的申请","sort":"0"},{"num":"meet","row":"1","name":"今日会议","sort":"2"},{"num":"syslog","receid":"u1","recename":"管理员","row":"1","name":"系统日志","sort":"3"},{"num":"about","row":"1","receid":"u1","recename":"管理员","name":"关于信呼","sort":"10"}]', true);
$homeitems = $homearrs = array();
foreach($rows as $k=>$rs)$homearrs[] = $rs['num'];
foreach($rows as $k=>$rs){
$bh = $rs['num'];
if($bh != 'kjrko'){
if(in_array('kjrko',$homearrs) && $bh == 'kjrk'){
}else{
$homeitems[$rs['row']][] = array(
'num' => $bh,
'name'=> $rs['name']
);
}
}
}
$this->assign('homeitems', $homeitems);
$this->assign('homearrs', $homearrs);
}
//开发时快速打开文件
public function openfileAjax()
{
$file = $this->rock->jm->base64decode($this->get('file'));
$str = ''.ROOT_PATH.'/'.$file.'';
$bo = c('socket')->udpsend($str,'cmd');
if(is_string($bo))return $bo;
return 'ok';
}
public function testAjax()
{
//header("HTTP/1.1 500 Not Found");
echo $this->get('abc');
}
public function getxings($str)
{
if(!isempt($str))$str = substr($str,0,5).'*****'.substr($str,-5);
return $str;
}
}