Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.83 KB | None | 0 0
  1.         public function presun($strom,$parent=0,$hloubka=0) {
  2.         /*
  3.           kt[0][id]:1
  4.           kt[1][id]:2
  5.           kt[5][id]:6
  6.           kt[5][children][0][id]:7
  7.           kt[5][children][1][id]:8
  8.           kt[6][id]:15
  9.           kt[16][id]:24
  10.           kt[16][children][0][id]:26
  11.           kt[16][children][0][children][0][id]:27
  12.           kt[16][children][0][children][1][id]:59
  13.           kt[17][id]:28
  14.          */
  15.        
  16.         foreach ($strom as $ord => $id){
  17.             $this->connection->query("UPDATE %n",$this->name,"SET poradi=%i,hloubka=%i,parent=%i",$ord+1,$hloubka,$parent,'WHERE id=%i',$id['id']);
  18.             if(array_key_exists('children', $id)) $this->presun($id['children'],$id['id'],$hloubka+1);
  19.         }
  20.        
  21.         if($hloubka==0 && $parent==0) $this->obnovStrom();
  22.     }
  23.  
  24.  
  25.     private function opravPoradi($parent) {
  26.         $i = 1;
  27.         $sql = $this->connection->query('SELECT * FROM %n', $this->name, 'WHERE parent=%i', $parent, ' ORDER BY poradi ASC');
  28.         foreach ($sql as $data) {
  29.             $this->connection->query('UPDATE %n', $this->name, 'SET poradi=%i', $i, 'WHERE id=%i', $data->id);
  30.             $i++;
  31.         }
  32.     }
  33.  
  34.     private function obnovStrom($hloubka = 0, $rodic = 0) {
  35.         $sql = $this->connection->query('SELECT * FROM %n', $this->name, ' WHERE hloubka=%i', $hloubka, ' AND parent=%i', $rodic, 'ORDER BY poradi ASC');
  36.         foreach ($sql as $data) {
  37.             $this->connection->query('UPDATE %n', $this->name, ' SET lft = %i', $this->index, ' WHERE id = %i', $data->id, ' LIMIT 1');
  38.             $this->index++;
  39.  
  40.             $this->obnovStrom($hloubka + 1, $data->id);
  41.  
  42.             $this->connection->query('UPDATE %n', $this->name, ' SET rgt = %i', $this->index, ' WHERE id = %i', $data->id, ' LIMIT 1');
  43.             $this->index++;
  44.         }
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement