Как установить порядок в подузлах древовидной структуры

StackOverflow https://stackoverflow.com/questions/47163

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть древовидное представление страниц в приложении CMS.Я понимаю, как сохранить дерево в базе данных.Однако у меня нет хорошего способа:

А) Изменить порядок подстраниц на определенной родительской странице.
Б) Предоставить реализацию пользовательского интерфейса, позволяющую пользователю изменять порядок.

Какие-либо предложения?

Это было полезно?

Решение

Изменение самого порядка потребует от вас сохранения определенного порядка вместе с каждой страницей в базе данных.Просто текущее максимальное/минимальное значение +/- 1, вероятно, будет хорошей отправной точкой.Как только вы установили этот порядок, переупорядочение становится случаем замены двух значений или изменения значения одной страницы между двумя другими (я думаю, вы могли бы использовать числа с плавающей запятой, но вам может потребоваться изменить нумерацию, если вы разделите их слишком много) раз).

В любом случае, как только вы это получите, вам понадобится пользовательский интерфейс.Я видел очень простой подход «замените это на то, что выше/ниже», который может быть простой веб-ссылкой или вызовом AJAX.Вы также можете представить пользователю все значения страниц и попросить его перенумеровать их по своему усмотрению.Если вы хотите пофантазировать, перетаскивание JavaScript может быть хорошим подходом.я использовал ExtJS и Mootools в качестве рамок в этой области.Если вам не нужны все виджеты Extjs, я бы сказал, что в будущем откажитесь от них и посмотрите на что-нибудь вроде Mootools. Демонстрация динамической сортировки.

Другие советы

А) У меня есть похожее приложение CMS, и я сохраняю порядковый номер на странице для определенного дерева и сортирую по этому значению - поскольку многие мои страницы появляются на совершенно разных сайтах, мне приходится поддерживать порядковый номер для страницы/дерева. комбинация.

Б) Мне тоже хотелось бы сделать это получше.В настоящее время они нажимают на узел в древовидном представлении и на экране главной страницы могут перемещать страницу.Я пробовал перетаскивать с помощью Java-скриптов и других решений, но мои пользователи никогда не могли работать с ними, не держась за руки.Мне будет интересен ответ на этот вопрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top