Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function presun($strom,$parent=0,$hloubka=0) {
- /*
- kt[0][id]:1
- kt[1][id]:2
- kt[5][id]:6
- kt[5][children][0][id]:7
- kt[5][children][1][id]:8
- kt[6][id]:15
- kt[16][id]:24
- kt[16][children][0][id]:26
- kt[16][children][0][children][0][id]:27
- kt[16][children][0][children][1][id]:59
- kt[17][id]:28
- */
- foreach ($strom as $ord => $id){
- $this->connection->query("UPDATE %n",$this->name,"SET poradi=%i,hloubka=%i,parent=%i",$ord+1,$hloubka,$parent,'WHERE id=%i',$id['id']);
- if(array_key_exists('children', $id)) $this->presun($id['children'],$id['id'],$hloubka+1);
- }
- if($hloubka==0 && $parent==0) $this->obnovStrom();
- }
- private function opravPoradi($parent) {
- $i = 1;
- $sql = $this->connection->query('SELECT * FROM %n', $this->name, 'WHERE parent=%i', $parent, ' ORDER BY poradi ASC');
- foreach ($sql as $data) {
- $this->connection->query('UPDATE %n', $this->name, 'SET poradi=%i', $i, 'WHERE id=%i', $data->id);
- $i++;
- }
- }
- private function obnovStrom($hloubka = 0, $rodic = 0) {
- $sql = $this->connection->query('SELECT * FROM %n', $this->name, ' WHERE hloubka=%i', $hloubka, ' AND parent=%i', $rodic, 'ORDER BY poradi ASC');
- foreach ($sql as $data) {
- $this->connection->query('UPDATE %n', $this->name, ' SET lft = %i', $this->index, ' WHERE id = %i', $data->id, ' LIMIT 1');
- $this->index++;
- $this->obnovStrom($hloubka + 1, $data->id);
- $this->connection->query('UPDATE %n', $this->name, ' SET rgt = %i', $this->index, ' WHERE id = %i', $data->id, ' LIMIT 1');
- $this->index++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement