rabin %!s(int64=3) %!d(string=hai) anos
pai
achega
c0f908e520
Modificáronse 1 ficheiros con 13 adicións e 5 borrados
  1. 13 5
      src/Database.php

+ 13 - 5
src/Database.php

@@ -220,6 +220,10 @@ class Database
         if ($page_type) {
             $param .= '&page_type=' . $page_type . '';
         }
+        $where_id = Dever::input('where_id');
+        if ($where_id) {
+            $param .= '&where_id=' . $where_id . '';
+        }
         $menu_id = Dever::input('menu_id');
         if ($menu_id && !strstr($param, 'menu_id')) {
             $param .= '&menu_id=' . $menu_id . '';
@@ -1622,7 +1626,7 @@ class Database
                         $url = $this->url('update', $top['value']);
                     }
                 } else {
-                    $url = $this->url('update', 1);
+                    $url = $this->url('update', Dever::input('where_id', 1));
                 }
 
                 return Dever::location($url);
@@ -3685,7 +3689,7 @@ class Database
         Dever::out('yes');
     }
 
-    private function struct_data($struct, $data, $old = array())
+    public function struct_data($struct, $data, $old = array())
     {
         $log = $tlog = array();
         foreach ($struct as $i => $j) {
@@ -3710,8 +3714,8 @@ class Database
 
             $list = (isset($j['list']) && is_string($j['list']) && $j['list'] != 'table');
             $update = true;
-            if ($old) {
-                $update = (isset($j['update']) && is_string($j['update']) && $j['update'] != 'linkage');
+            if ($old && isset($j['update'])) {
+                $update = (is_string($j['update']) && $j['update'] != 'linkage');
             }
 
             if (isset($data['where_' . $i]) && $data['where_' . $i]) {
@@ -3721,7 +3725,11 @@ class Database
             } elseif (isset($data['add_' . $i]) && $data['add_' . $i]) {
                 $log[$j['name']] = $data['add_' . $i];
             } elseif (isset($data[$i]) && $data[$i]) {
-                $log[$j['name']] = $list ? $this->value($j['list'], $data) : $data[$i];
+                if ($i == 'id') {
+                    $log[$j['name']] = $data[$i];
+                } else {
+                    $log[$j['name']] = $list ? $this->value($j['list'], $data) : $data[$i];
+                }
             }
 
             if (isset($log[$j['name']])) {