Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Деревья Nested Sets - перенос элементов

9.9K
08 сентября 2007 года
Данила
38 / / 25.10.2006
Работаю с деревьями. Пишу систему категорий. Возникла проблема - перемещение порядка узлов. Поделитесь пожалуйста куском кода (php) который поднимает категорию (вместе со всеми вложенными элементами) вверх или опускает вниз (имеется ввиду не уровень вложенности, а порядок). То есть, допустим:

 
Код:
Категория1
+Страница1
+Страница2
+Страница3
++Пункт страницы3
++Пункт2 страницы3
++Пункт3 страницы3


Нужно "+Страница3" со всеми вложеными объектами перенести выше:

 
Код:
Категория1
+Страница1
+Страница3
++Пункт страницы3
++Пункт2 страницы3
++Пункт3 страницы3
+Страница2


Причем, предполагается вероятность того что "+Страница1" и "+Страница2" тоже будут иметь вложенные элементы. Что приходится учитывать. Есть много класов для работы с деревьями, но перенос вверх-вниз есть увы не везде. Мне такие не попались(.
12
08 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Поиск рулит, учись пользоваться им.
http://webscript.ru/stories/04/09/01/8197045
7.8K
08 сентября 2007 года
Tingo
201 / / 17.05.2007
Я предполагаю что ты юзаеш файлы?
Тогда, алгоритм собственно простой(в твоем случае):

1. берем текущий индекс (с "+");
2. ищем индекс следующей страницы (до "+");
3. от индекса текущего, до следующей страницы сохраняем в переменныую Хъ, и затираем.
4. ищем индекс предидущей страницы (с "+");
5. вставлем туда данные из переменной Хъ.


Это в принципе общая картина, которая в разных случаях показывется(и реализуется) по разному.

Тинго.
9.9K
08 сентября 2007 года
Данила
38 / / 25.10.2006
Я использую БД. http://webscript.ru/stories/04/09/01/8197045 - читал. Но если честно не просек логику. Там описывается несколько другой тип перемещения.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог