Обрушилось дерево категорий при сортировке

Контент -> Категории, iCMS 2.5.1

#1 21 мая 2016 в 06:40
В режиме "Порядок" видны все категории и подкатегории; тем не менее, новый порядок сортировки не сохраняется, а в самом дереве (список слева) категории (у отдельно взятого вида контента!) не отображаются вообще.

Правильно понимаю, что имеем старую знакомую болячку меню от "однёрки"?
Придётся проходить ручками всё дерево, или обрушения локальны для каждого вида контента?

Или может, появились более эстетичные варианты решения проблемы?
#2 21 мая 2016 в 13:55
Обычное дело. Даже утилита написана под это дело. Главное, ни в коем случае не нажимайте в админке Исправить дерево — работы себе добавите.
#3 21 мая 2016 в 14:09
Это помню по "однёрке", нажимал пару раз zlo

Спасибо!
#4 21 мая 2016 в 14:20
так у вас Первая ветка или Вторая?
Для Двойки немного другая утилита — вот
#5 22 мая 2016 в 16:35
Что сказать… утилита простая и мощная, просто ураган. Спасибо ещё раз!

Другой вопрос, что любая попытка переноса _гарантированно_ приводит к _одинаковому_ сбою: NS_Right L0 _каждый_ раз сбрасывается со 118 (корректное значение) на 2.
Каждый. Вне зависимости от перетаскиваемого пункта.

Суеверно удалил последнюю добавленную подкатегорию с id=65 и NSLeft\Right 5 и 6 соответственно. До неё вроде как всё перетаскивалось. И — не помогло. Не пойму, в чём может быть подвох, но проблема воспроизводима на 100%.

Придётся, видимо, всю сортировку провести вручную через Вашу замечательную утилиту.
#6 22 мая 2016 в 17:39
Небольшой офтоп, но хорошо бы добавить в утилиту:

— cортировку по NSLeft и parent_id (в дополнение к имеющемуся по id, можно по умолчанию, и не отключать и не настраивать):
  1. $sql = "SELECT * FROM {$table} {$where} ORDER BY parent_id,ns_left";
— для режима редактирования учесть то, что title намного длинее NS:
  1. size="', ($key=='title')?40:3, '"
вместо
  1. size="3"
— отвязать адресацию формы от хардкода в имени файла (пользователю проще переименовывать скрипт):
  1. form action="./<?= basename (__FILE__); ?>"
Плюс добавление точки позволит запускать утилиту из любого каталога, не только из корня.

— постепенное затемнение строк от степени вложенности (Level):
  1. .cell0{
  2. width: 5%; border: 1px solid blue; background: #C0E0E0;
  3. }
  4.  
  5. .cell1{
  6. width: 5%; border: 1px solid blue; background: #B0D0D0;
  7. }
  8.  
  9. .cell2{
  10. width: 5%; border: 1px solid blue; background: #A0C0C0;
  11. }
  12.  
  13. .cell3{
  14. width: 5%; border: 1px solid blue; background: #90B0B0;
  15. }
  16.  
  17. .cell4{
  18. width: 5%; border: 1px solid blue; background: #80A0A0;
  19. }
  20.  
  21. ..................
  22.  
  23. echo '<td class="cell', $menu[ns_level],'">';
  24.  
  25.  
#7 22 мая 2016 в 17:46


так у вас Первая ветка или Вторая?
Для Двойки немного другая утилита — вот

Странник
Вчера уже нашёл в Файлах профиля, спасибо) почему-то, когда писал предпредыдущее crazyсообщение, этого ответа не было.

P.S. Да, ветка вторая, версия и компонента указаны в описании темы под её заголовком.
К сожалению, на этом форуме описание отображается только в списке тем, но не при заходе в саму тему.
#8 22 мая 2016 в 19:02

— постепенное затемнение строк от степени вложенности (Level):

NA
Тоже сообразил это сделать, и реализовал в утилите для первой ветки, только несколько иначе. Вот только выложить не успел))) Лишнее доказательство того, что хорошая мысль приходит разным людям одновременно.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.