Ver Fonte

fix #778 修正明星档案-高级搜索未指定Id时无权限的问题

magicblack há 3 anos atrás
pai
commit
a08c76c21e

+ 12 - 8
application/common.php

@@ -2698,18 +2698,22 @@ function mac_label_vod_role($param)
     return $res;
 }
 
-function mac_label_type($param)
+function mac_label_type($param, $type_id_specified)
 {
-    if($GLOBALS['config']['rewrite']['type_id']==1){
+    if ($type_id_specified > 0) {
+        $type_id = $type_id_specified;
+    } else {
+        if($GLOBALS['config']['rewrite']['type_id']==1){
 
-    }
-    else{
-        if($GLOBALS['config']['rewrite']['type_id']==2) {
-            $param['id'] = mac_alphaID($param['id'], true, $GLOBALS['config']['rewrite']['encode_len'],$GLOBALS['config']['rewrite']['encode_key'] );
         }
+        else{
+            if($GLOBALS['config']['rewrite']['type_id']==2) {
+                $param['id'] = mac_alphaID($param['id'], true, $GLOBALS['config']['rewrite']['encode_len'],$GLOBALS['config']['rewrite']['encode_key'] );
+            }
+        }
+        $type_id = $param['id'];
     }
-
-    $type_info = model('Type')->getCacheInfo($param['id']);
+    $type_info = model('Type')->getCacheInfo($type_id);
 
     $GLOBALS['type_id'] =$type_info['type_id'];
     $GLOBALS['type_pid'] = $type_info['type_pid'];

+ 2 - 2
application/common/controller/All.php

@@ -161,12 +161,12 @@ class All extends Controller
         $this->assign('param',$param);
     }
 
-    protected function label_type($view=0)
+    protected function label_type($view=0, $type_id_specified = 0)
     {
         $param = mac_param_url();
         $param = mac_filter_words($param);
         $param = mac_search_len_check($param);
-        $info = mac_label_type($param);
+        $info = mac_label_type($param, $type_id_specified);
         if(!empty($GLOBALS['config']['app']['wall_filter'])){
             $param['wd'] = mac_escape_param($param['wd']);
         }

+ 7 - 1
application/index/controller/Actor.php

@@ -24,7 +24,13 @@ class Actor extends Base
     public function show()
     {
         $this->check_show();
-        $info = $this->label_type();
+        $param = mac_param_url();
+        $type_id_specified = 0;
+        if (empty($param['id'])) {
+            $default_actor_type = model('Type')->where(['type_mid' => 8, 'type_status' => 1])->find();
+            $type_id_specified = isset($default_actor_type->type_id) ? $default_actor_type->type_id : 0;
+        }
+        $info = $this->label_type(0, $type_id_specified);
         return $this->label_fetch( mac_tpl_fetch('actor',$info['type_tpl_list'],'show') );
     }