Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przenoszenie gałęzi w drzewku IP Tree
Forum PHP.pl > Forum > PHP
Whisller
Witam,
Ostatnio wziołem się za klase drzewek, wybrałem do tego celu IP Tree. I wszystko było dobrze dopóki nie zaczołem pisać metody do przenoszenia gałęzi :/ I było wielkie myslenie, i klawiaturze po klawiszach się dostało winksmiley.jpg I tak nic nie wymyśliłem :/
Będę wdzięczny jeśli ktoś mógłby mnie naprowadzić jak rozwiązać ten problem.
Z Góry dziękuje.
splatch
Znajdujesz fragment, który jest do wymiany - dla przykładu - drzewo czysto abstrakcyjne. Przykłady...

Kod
1 = root
1.1 = pgsql
1.1.1 = linux
1.2 = oracle
1.2.1 = solaris
1.2.2 = bsd
1.2.2.1 = free bsd
1.2.2.2 = open bsd
1.2.3 = mac os


Teraz przenosisz "mac os" wyżej - o jeden poziom:
Kod
...
1.2.2.1 = free bsd
1.2.2.2 = open bsd
1.3 = mac os


Zatem, zbędny był element 2. wynikający z przeniesienia 1 poziom wyżej

Teraz przenosimy bsd wyżej
Kod
...
1.2 = oracle
1.2.1 = solaris
1.2.2 = mac os
1.3 = bsd
1.3.1 = free bsd
1.3.2 = open bsd

Trzeba zamienić 2.2. na 3., czyli przeniesienie o 2 poziomy wyżej (z oracle do roota) i zmienić elementy, które są niżej (w tym przypadku 1.2.2 = mac os zamiast 1.2.3.

Teraz przeniesienie w dół
Kod
1 = root
1.1 = pgsql
1.2 = oracle
1.2.1 = solaris
1.2.2 = bsd
1.2.3 = mac os
1.2.4 = linux


Zmiana dotyczyła tylko elementu linux, konieczne była zamiana z 1.1.1 na 1.2.4, czyli wypadł element 1.1.

Ogólnie ilość wymienianych fragmentów ściśle zależy od ilości zmienianych poziomów. Każdy poziom wyżej lub niżej to jeden fragment w ścierzce.

Rzecz, o których powinieneś pamiętać - przy przenoszeniu elementów mających dzieci musisz zmieniać ten sam fragment ścieżki co dla rodzica.

Mam nadzieję, że pomogłem chociaż trochę...
Whisller
W teori to bardzo ładnie wygląda ale praktyka....no ale o tym już rozmawialiśmy smile.gif
Więc może ktoś będzie łaskawy i podzieli się informacją jak to zrobić, bo mi już głowa wysiada :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.