rabin 5 лет назад
Родитель
Сommit
bf131dfdd8
2 измененных файлов с 28 добавлено и 0 удалено
  1. 4 0
      database/menu.php
  2. 24 0
      src/Menu.php

+ 4 - 0
database/menu.php

@@ -61,6 +61,10 @@ return array
 	'lang' => '管理菜单设置',
 	'order' => 2,
 	//'check' => 'key',
+	'end' => array
+	(
+		'update' => 'manage/menu.updateKey',
+	),
 	# 数据结构
 	'struct' => array
 	(

+ 24 - 0
src/Menu.php

@@ -43,6 +43,30 @@ class Menu
 
     }
 
+    public function updateKey($id, $name, $data)
+    {
+        $key = Dever::param('key', $data);
+        $menu = Dever::param('menu_id', $data);
+        if (!$key || $key == 'null' || strstr($key, 'menu_')) {
+            Dever::config('base')->hook = true;
+            $prefix = '';
+            if ($menu > 0) {
+                $info = Dever::db('manage/menu')->one($menu);
+                if ($info) {
+                    if (!$info['key']) {
+                        $info['key'] = $info_update['key'] = 'menu_' . $info['id'];
+                        $info_update['where_id'] = $info['id'];
+                        Dever::db('manage/menu')->update($info_update);
+                    }
+                    $prefix .= $info['key'] . '.';
+                }
+            }
+            $update['key'] = $prefix . 'menu_' . $id;
+            $update['where_id'] = $id;
+            Dever::db('manage/menu')->update($update);
+        }
+    }
+
     public function test_api()
     {
         $data = Dever::db('manage/menu-in', array('where_id' => '2,1'));