|
@@ -32,27 +32,44 @@ class yingClassAction extends ActionNot{
|
|
|
|
|
|
public function defaultAction()
|
|
|
{
|
|
|
+ // 检查用户权限
|
|
|
$ybarr = $this->option->authercheck();
|
|
|
+ // 如果返回的是字符串,说明存在权限问题,直接返回错误信息
|
|
|
if(is_string($ybarr))return $ybarr;
|
|
|
+
|
|
|
+ // 获取授权密钥和其他相关信息
|
|
|
$authkey = $ybarr['authkey'];
|
|
|
$num = $this->get('num');
|
|
|
$mnum = $this->get('mnum'); //模块编号
|
|
|
+
|
|
|
+ // 将授权密钥传递给视图
|
|
|
$this->assign('xhauthkey', getconfig('authkey', $authkey));
|
|
|
+
|
|
|
+ // 如果指定了模块编号,则显示对应模块并返回
|
|
|
if(!isempt($mnum)){
|
|
|
$this->showmodenum($mnum);
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
+ // 获取应用信息
|
|
|
$reim = m('reim');
|
|
|
$arr = $reim->getagent(0, "and `num`='$num'");
|
|
|
+
|
|
|
+ // 如果应用不存在,输出错误信息并退出
|
|
|
if(!$arr)exit('应用['.$num.']不存在');
|
|
|
+
|
|
|
$rs = $arr[0];
|
|
|
+
|
|
|
+ // 设置页面标题
|
|
|
$this->title = $rs['name'];
|
|
|
+
|
|
|
+ // 构建应用页面和脚本的 URL
|
|
|
$yyurl = ''.P.'/we/ying/yingyong/'.$num.'.html';
|
|
|
if(!file_exists($yyurl))$yyurl='';
|
|
|
$yyurljs = ''.P.'/we/ying/yingyong/'.$num.'.js';
|
|
|
if(!file_exists($yyurljs))$yyurljs='';
|
|
|
-
|
|
|
|
|
|
+ // 检查是否为常用应用
|
|
|
$rs['iscy'] = $this->iscy($num);
|
|
|
$this->assign('arr', $rs);
|
|
|
$this->assign('num', $num);
|
|
@@ -62,9 +79,12 @@ class yingClassAction extends ActionNot{
|
|
|
$this->assign('yyurljs', $yyurljs);
|
|
|
$this->assign('searchmsg', '输入关键词搜索');
|
|
|
$this->assign('typename', '');
|
|
|
+
|
|
|
+ // 设置当前用户在应用上的权限
|
|
|
$gid = $rs['id'];
|
|
|
$reim->setallyd('agent', $this->adminid, $gid);
|
|
|
|
|
|
+ // 包含应用类文件并初始化
|
|
|
$clasne = 'ying_'.$num.'Class';
|
|
|
$classpath = ''.P.'/we/ying/yingyong/'.$clasne.'.php';
|
|
|
if(file_exists($classpath)){
|
|
@@ -72,6 +92,8 @@ class yingClassAction extends ActionNot{
|
|
|
$yingobj = new $clasne();
|
|
|
$yingobj->initYing($this);
|
|
|
}
|
|
|
+
|
|
|
+ // 记录打开应用的日志
|
|
|
if(getconfig('useropt')=='1')m('log')->addlog('打开应用', '应用['.$num.'.'.$this->title.']');
|
|
|
}
|
|
|
|
|
@@ -79,31 +101,46 @@ class yingClassAction extends ActionNot{
|
|
|
private function showmodenum($mnum)
|
|
|
{
|
|
|
$typename = '';
|
|
|
+ // 初始化流程对象
|
|
|
$flow = m('flow')->initflow($mnum);
|
|
|
+ // 获取模块信息
|
|
|
$mrs = $flow->moders;
|
|
|
-
|
|
|
+
|
|
|
+ // 检查模块状态,如果已停用则退出
|
|
|
if($mrs['status']=='0')exit('模块['.$mnum.','.$mrs['name'].']已停用');
|
|
|
+
|
|
|
+ // 获取流程的搜索数据
|
|
|
$souarr = $flow->flowwesearchdata(0);
|
|
|
$searchmsg = arrvalue($souarr, 'searchmsg','输入关键词搜索');
|
|
|
$typename = arrvalue($souarr, 'typename');
|
|
|
-
|
|
|
+
|
|
|
+ // 设置页面标题
|
|
|
$this->title = $mrs['name'];
|
|
|
+ // 获取参数值
|
|
|
$pnum = $this->get('pnum');
|
|
|
+ // 初始化菜单数组
|
|
|
$menu = array();
|
|
|
+ // 获取模块条件
|
|
|
$atypearr = m('where')->getmywhere($mrs['id'], $this->adminid, $pnum);
|
|
|
+ // 如果条件不存在,退出并提示用户创建条件
|
|
|
if(!$atypearr)exit('请到【流程模块→流程模块条件】建条件,分组编号要为空');
|
|
|
+ // 根据模块属性判断是否添加抄送和经我处理的菜单项
|
|
|
if(isempt($pnum)){
|
|
|
if($mrs['iscs']>0)$atypearr[] = array('id' => 0,'num' => 'chaos','name' => '抄送给我');
|
|
|
if($mrs['isflow']>0)$atypearr[] = array('id' => 0,'num' => 'mychuli','name' => '经我处理');
|
|
|
}
|
|
|
+
|
|
|
+ // 判断是否允许新增记录,并添加相应的菜单项
|
|
|
$isadd = m('view')->isadd($mrs['id'], $this->adminid);
|
|
|
if($isadd)$atypearr[] = array('id' => 0,'num' => 'add','type' => 1,'name' => '+新增');
|
|
|
+ // 构建主菜单
|
|
|
foreach($atypearr as $k1=>$rs1){
|
|
|
$uar = array('type' => 0,'name' => $rs1['name'],'url' => $rs1['num'].'|'.$mnum.'','num' => '','submenu'=> array());
|
|
|
if(arrvalue($rs1,'type')==1){$uar['type']=1;$uar['url']='add_'.$mnum.'';}
|
|
|
$menu[] = $uar;
|
|
|
if($k1>1)break;
|
|
|
}
|
|
|
+ // 如果菜单项数量大于3,则添加"更多"子菜单
|
|
|
if(count($atypearr)>3){
|
|
|
$submenu = array();
|
|
|
foreach($atypearr as $k1=>$rs1){
|
|
@@ -117,13 +154,15 @@ class yingClassAction extends ActionNot{
|
|
|
'submenu' => $submenu,
|
|
|
);
|
|
|
}
|
|
|
+ // 如果菜单为空,则添加默认菜单项
|
|
|
if(!$menu)$menu[] = array(
|
|
|
'name' => $mrs['name'],
|
|
|
'url' => 'my|'.$mnum.'',
|
|
|
'num' => '',
|
|
|
'submenu' => array(),
|
|
|
);
|
|
|
-
|
|
|
+
|
|
|
+ // 构建返回数组
|
|
|
$arr = array(
|
|
|
'face' => '',
|
|
|
'leixing'=>$mnum,
|
|
@@ -131,13 +170,16 @@ class yingClassAction extends ActionNot{
|
|
|
'num' => 'base',
|
|
|
'name' => $mrs['name'],
|
|
|
);
|
|
|
+ // 初始化其他变量
|
|
|
$yyurl = '';
|
|
|
$yyurljs = '';
|
|
|
+ // 分配变量到视图
|
|
|
$this->assign('searchmsg', $searchmsg);
|
|
|
$this->assign('yyurl', $yyurl);
|
|
|
$this->assign('arr', $arr);
|
|
|
$this->assign('yyurljs', $yyurljs);
|
|
|
$this->assign('typename', $typename);
|
|
|
+ // 如果用户操作日志开启,记录打开模块应用的日志
|
|
|
if(getconfig('useropt')=='1')m('log')->addlog('打开模块应用', '模块['.$mnum.'.'.$this->title.']');
|
|
|
}
|
|
|
|
|
@@ -145,8 +187,11 @@ class yingClassAction extends ActionNot{
|
|
|
|
|
|
private function iscy($num)
|
|
|
{
|
|
|
+ // 获取当前用户的应用展示 ID
|
|
|
$myyyid= $this->option->getval('yinghomeshow_'.$this->adminid.'');
|
|
|
+ // 默认设置为非常用应用
|
|
|
$iscy = 0;
|
|
|
+ // 如果当前用户的应用展示 ID 不为空,并且包含指定的应用编号,则将其标记为常用应用
|
|
|
if(!isempt($myyyid) && contain(','.$myyyid.',',','.$num.','))$iscy=1;
|
|
|
return $iscy;
|
|
|
}
|