Drag & Drop Structure — визуальный редактор категорий для Cotonti
Расширение для Cotonti CMF
Версия 2.0.0
Автор: webitproff
Лицензия: BSD
Категория: Администрирование
Совместимость: Cotonti V1
Коротко о плагине
Drag & Drop Structure — это административный плагин для Cotonti, который превращает рутинную работу со структурой сайта в простое и наглядное перетаскивание категорий мышкой.
Если вы когда-нибудь пытались перестроить каталог интернет-магазина, реорганизовать разделы блога или навести порядок в дереве статей через штатный раздел «Структура» Cotonti — вы знаете, насколько это утомительно: десятки текстовых полей, числовые пути, риск ошибиться и сломать иерархию. Плагин полностью убирает эту боль: вы видите перед собой живое дерево своих категорий и просто перетаскиваете их туда, куда нужно.
Один клик мышкой — и раздел «Игровые ноутбуки» переезжает из «Ноутбуков» в новый раздел «Игровое железо». Все вложенные подкатегории автоматически переезжают вместе с ним. Порядок в базе данных пересчитывается мгновенно, кеш сайта сбрасывается, меню и хлебные крошки на публичной части сразу показывают новый результат.
Никакого кода. Никаких числовых путей. Только мышка.
Для кого этот плагин
Плагин создан для администраторов сайтов на Cotonti, которые:
- ведут интернет-магазин и хотят управлять структурой каталога товаров;
- пишут блог или статьи и хотят удобно группировать рубрики;
- развивают форум и хотят переставлять разделы без правки базы;
- управляют портфолио и хотят показывать работы в нужном порядке;
- администрируют любой проект с большим числом категорий и подкатегорий.
Плагин не требует знаний программирования. Если вы умеете перетаскивать иконки на рабочем столе — вы умеете пользоваться этим плагином.
Ключевые возможности
🖱️ Перетаскивание категорий мышкой
Полноценный drag-and-drop интерфейс на базе библиотеки SortableJS. Категории перетаскиваются в любое место дерева: выше, ниже, внутрь другой категории, на верхний уровень. Всё интуитивно и наглядно.
🌳 Полное дерево категорий
В отличие от штатного раздела «Структура» Cotonti, где категории отображаются плоским списком с отступами, плагин показывает настоящее дерево: видно, кто кому родитель, кто ребёнок, кто внук. На каждом уровне — своя визуальная группировка.
🔄 Автоматический пересчёт путей
Внутренние числовые пути категорий (structure_path) пересчитываются автоматически при каждом перемещении. Плагин делает это по строгим правилам Cotonti: корневые категории нумеруются с шагом 10 (010, 020, …), вложенные — с шагом 1 (001, 002, …). Вам не нужно вникать в это — просто перетаскивайте.
📦 Перемещение целыми поддеревьями
Если у категории есть дочерние разделы, а у них — свои дочерние, все они переезжают вместе с родителем. Один раз перетащили — вся ветка в новом месте. Не нужно вручную перетаскивать каждого потомка.
🛠️ Восстановление структуры одной кнопкой
Служебная функция «Нормализовать пути» помогает, если структура по каким-то причинам сломалась (дубликаты путей, «слипшиеся» значения после ошибки импорта или сбоя предыдущей версии плагина). Одна кнопка — и все категории получают гарантированно уникальные чистые пути. Иерархию потом расставите заново перетаскиванием.
⚡ Мгновенное обновление сайта
После каждого перемещения плагин сбрасывает кеш Cotonti. Это значит, что изменения на публичной части (в меню, хлебных крошках, страницах категорий) видны сразу — без ожидания и без ручной очистки кеша.
🔒 Полная интеграция с правами Cotonti
Доступ к плагину контролируется штатной системой прав. По умолчанию страница доступна только администраторам сайта. Вы можете выдать доступ конкретным группам через раздел «Права».
📝 Логирование действий
Каждое перемещение записывается в системный лог Cotonti: кто, когда, в какой области менял структуру. Найти записи можно в разделе «Лог» админ-панели.
🌍 Мультиязычность
Плагин поставляется с русской и английской локализацией. Добавить свой язык — просто: скопируйте языковой файл и переведите значения.
🎯 Работа со всеми областями структуры
Плагин универсален — он работает не только с магазином или блогом, а со всеми расширениями Cotonti, которые поддерживают структуру: page, market, forums, folio, usercategories и любые другие. Один инструмент — единый интерфейс для всех разделов сайта.
Что даёт плагин вам как администратору
| Было (без плагина) | Стало (с плагином) |
|---|---|
Редактирование structure_path вручную в текстовом поле |
Перетаскивание мышкой |
| Риск опечатки в числовом пути и поломки структуры | Автоматический пересчёт — ошибок нет |
| Плоский список с отступами | Настоящее визуальное дерево |
| Ручной пересчёт путей при переносе родителя с потомками | Всё поддерево переезжает одной операцией |
| Нужно думать о кеше | Кеш сбрасывается автоматически |
| Ошибки видны только на публичной части | Ошибка сразу показывается всплывающим окном |
Что плагин НЕ делает — и почему это хорошо
Плагин намеренно узкоспециализирован. Он делает одну задачу — управление порядком и вложенностью категорий — и делает её хорошо. Всё остальное остаётся за штатными инструментами Cotonti:
- Создание новых категорий — через
admin.php?m=structure. - Удаление категорий — через
admin.php?m=structure. - Редактирование названий, описаний, иконок, шаблонов — через
admin.php?m=structure. - Управление правами доступа — через
admin.php?m=rights. - Пересчёт счётчиков элементов — через
admin.php?m=structure&a=resyncall.
Такое разделение — это сознательное архитектурное решение. Плагин не дублирует функциональность ядра и не конфликтует с ним. Он аккуратно дополняет Cotonti там, где штатный интерфейс неудобен.
Плюс для вас: плагин можно безопасно отключить в любой момент — структура сайта и все данные останутся нетронутыми. Он не создаёт собственных таблиц в базе и не изменяет ядро.
Как это выглядит
Страница плагина открывается в админ-панели по адресу admin.php?m=other&p=dragstructure и содержит:
- выпадающий список для выбора области структуры (
market,page,forumsи т.д.); - дерево категорий с ручками для перетаскивания и визуальной иерархией;
- кнопку «Нормализовать пути» для восстановления сломанной структуры;
- информационную панель с сообщениями о результате операций.
Технические характеристики
| Параметр | Значение |
|---|---|
| Тип расширения | Плагин (plug) |
| Версия Cotonti | совместим с 1.0.0+ |
| Версия PHP | 8.4+ (рекомендуется 8.5+) |
| База данных | MySQL 8.4+ |
| Зависимости | Нет обязательных |
| Собственные таблицы БД | Не создаёт |
| Хуки Cotonti | tools (админ-страница), ajax (обработчик) |
| Лицензия | BSD |
| Локализация | Русский, английский |
Файловая структура
plugins/dragstructure/
├── dragstructure.setup.php ← Регистрация плагина
├── dragstructure.tools.php ← Страница админ-инструмента
├── dragstructure.ajax.php ← AJAX-обработчик
├── inc/
│ └── dragstructure.functions.php ← Бизнес-логика плагина
├── tpl/
│ └── dragstructure.tools.tpl ← HTML-шаблон
└── lang/
├── dragstructure.ru.lang.php
└── dragstructure.en.lang.php
Установка
Установка занимает меньше минуты:
- Загрузите файлы плагина в каталог
plugins/dragstructure/вашего сайта. - Откройте
admin.php?m=extensions— в списке появится новый плагин Drag & Drop Structure. - Нажмите «Установить» (активировать).
- Откройте «Инструменты» в левом меню админки — увидите пункт Drag & Drop Structure.
- Готово — можно перетаскивать категории.
Если пункт не появился — проверьте, что у вашей группы есть права на плагин (выдаются в admin.php?m=rights).
Безопасность
Плагин следует всем стандартам безопасности Cotonti:
- CSRF-защита — каждый AJAX-запрос проверяется штатным X-токеном Cotonti.
- Проверка прав — страница и AJAX-обработчик защищены проверкой
cot_auth. - XSS-защита — все данные экранируются при передаче в шаблон.
- SQL-инъекции — все запросы используют prepared statements.
- Транзакции — перемещение выполняется атомарно: либо всё применилось, либо ничего.
Часто задаваемые вопросы
Вопрос: Плагин работает на моей версии Cotonti?
Ответ: Плагин не тестировался на совместимость со всеми версиями Cotonti, которые ниже актуальной 1.0.0.
Вопрос: Сломаются ли URL-адреса страниц после перетаскивания?
Ответ: Нет. Плагин меняет только порядок и вложенность, но не трогает коды категорий (code), от которых зависят адреса. Все ссылки продолжат работать.
Вопрос: Что будет, если я отключу плагин?
Ответ: Ничего страшного. Плагин не имеет собственных таблиц в базе и не изменяет ядро. Структура сайта останется в том виде, в котором вы её оставили. Отключение затрагивает только интерфейс.
Вопрос: Плагин работает с несколькими языками сайта?
Ответ: Да. Плагин поставляется с русской и английской локализацией. При необходимости можно добавить другие языки, скопировав и переведя языковой файл.
Вопрос: Что делать, если структура сломалась?
Ответ: Используйте кнопку «Нормализовать пути» — она перестроит все пути в чистый плоский вид. После этого иерархию можно расставить заново перетаскиванием. Подробнее — в разделе «Порядок сортировки категорий при помощи плагина» ниже.
Вопрос: Можно ли перетаскивать категории, содержащие товары?
Ответ: Да. Перетаскивание родительской категории автоматически переносит всё её поддерево. Сами товары при этом не покидают свою категорию — они остаются привязанными к своему разделу и просто переезжают вместе с ним.
Вопрос: Нужны ли специальные знания или навыки программиста?
Ответ: Нет. Плагин полностью готов к использованию и не требует ни правки файлов, ни настройки кода. Всё делается мышкой в админке.
Поддержка и обновления
- Документация: раздел «Порядок сортировки категорий при помощи плагина» ниже.
- Совместимость: плагин следует стандартам Cotonti 1.0.0 и не использует устаревших вызовов.
- Обновления: при выпуске новой версии Cotonti плагин обновляется в первую очередь.
Если что-то пошло не так — обратитесь к администратору сайта или на официальный форум Cotonti, приложив:
- скриншот страницы плагина;
- текст ошибки (если был);
- запись из системного лога;
- версии Cotonti и PHP.
Итог
Drag & Drop Structure — это небольшой, но исключительно полезный плагин, который превращает работу со структурой сайта из технической рутины в приятное и наглядное действие. Если вы администрируете сайт на Cotonti и у вас больше десяти категорий — этот плагин сэкономит вам часы времени и десятки нервных клеток.
Установите один раз — и больше никогда не возвращайтесь к ручному редактированию числовых путей.
Порядок сортировки категорий при помощи плагина
Простое руководство для администратора интернет-магазина
Для кого этот раздел: для администратора сайта, который управляет каталогом товаров или блогом через Cotonti. Не для программиста. Здесь нет кода — только то, что вы видите на экране, и что нужно сделать мышкой.
Что такое «порядок категорий» и зачем он нужен
Любой интернет-магазин или блог состоит из категорий — разделов, по которым разложены товары или статьи. Например, в магазине электроники есть разделы «Компьютеры», «Ноутбуки», «Смартфоны», а внутри них — подразделы вроде «Игровые ноутбуки», «Ультрабуки», «Рабочие станции».
У каждой категории в Cotonti есть два важных свойства:
- Где она находится — в каком родительском разделе (или в самом верху, на главном уровне).
- В каком порядке она стоит — какая категория показывается первой, какая второй, какая последней.
И то, и другое можно менять вручную через штатный раздел «Структура» в админке — но там это делается через неудобные числа и текстовые поля. Плагин Drag & Drop Structure превращает эту работу в простое перетаскивание мышкой: вы берёте категорию и ставите её туда, куда нужно — как перетаскиваете иконки на рабочем столе.
Зачем вообще менять порядок и вложенность:
- Чтобы важные разделы были наверху — например, «Акции» или «Новинки» первыми в меню.
- Чтобы логично сгруппировать товары — например, «Игровые ноутбуки» поместить внутрь «Ноутбуков», а не держать их в общем списке.
- Чтобы навести порядок после импорта — если категории загрузились вперемешку.
- Чтобы поменять структуру каталога под сезон или новую линейку товаров.
Как открыть страницу плагина
- Зайдите в админку сайта —
ваш-сайт.ru/admin.php. - В левом меню выберите раздел «Инструменты» (или «Other»).
- Найдите пункт «Drag & Drop структура» — это и есть наш плагин.
- Откроется страница с деревом категорий.
Если вы не видите пункт в меню — значит, у вашей учётной записи нет прав на плагин. Обратитесь к суперадминистратору сайта, чтобы он выдал права.
Что вы видите на странице
В верхней части страницы — выпадающий список «Расширение». В нём перечислены все области структуры сайта: page (страницы и статьи), market (интернет-магазин), forums (форумы), folio (портфолио) и т.д.
- Для интернет-магазина выберите
market. - Для блога или статей —
page.
После выбора в списке страница перерисуется и покажет дерево категорий именно этой области.
Что такое дерево категорий:
Каждая категория выглядит как прямоугольная плашка примерно такого вида:
⋮⋮ 001.001.001 gaming-desktops — Gaming Desktops
High-performance gaming PCs.
Что здесь что:
| Элемент | Что это |
|---|---|
⋮⋮ (слева) |
Ручка — за неё нужно тянуть мышкой |
001.001.001 |
Технический номер (путь) — для администратора это просто ориентир, не трогайте его |
gaming-desktops |
Код категории (латиницей) — используется в адресах страниц |
| Gaming Desktops | Название категории — то, что видят посетители |
| Мелкий серый текст снизу | Описание категории |
Категории вложенные показываются с отступом вправо и с вертикальной линией слева — так видно, кто в кого вложен.
В самом низу каждой категории есть пустая серая зона — туда можно перетащить другую категорию, и она станет дочерней.
Основная операция: как перетащить категорию
Всё делается мышкой — никаких кнопок «вверх/вниз» нажимать не нужно.
- Возьмите категорию за ручку. Наведите курсор на иконку
⋮⋮слева от названия. Курсор превратится в «лапку». Зажмите левую кнопку мыши и не отпускайте. - Потяните. Категория «оторвётся» от места и последует за курсором. Она будет показана полупрозрачной — так вы видите, что тащите именно её.
- Наведите на нужное место. Появится серая полоса-подсказка — это место, куда категория встанет, если вы отпустите кнопку сейчас.
- Отпустите кнопку мыши.
Через 1–3 секунды вы увидите, что дерево перерисовалось в новом порядке. Это значит, что изменения уже сохранены на сервере.
Важно: если что-то пошло не так (например, сервер вернул ошибку), вы увидите всплывающее окно с текстом ошибки, а страница перезагрузится. Не пугайтесь — это защита. Просто попробуйте ещё раз.
Пример на реальных категориях магазина
Давайте разберём это на конкретном каталоге интернет-магазина электроники. У нас есть пять корневых разделов:
001 Computers & Components
002 Laptops
003 Smartphones
004 Game Consoles
005 Accessories
И у каждого — свои подразделы. Например, у Laptops:
002.001 Gaming Laptops
002.002 Ultrabooks
002.003 Workstations
А у Gaming Laptops:
002.001.001 High-End Gaming
002.001.002 Mid-Range Gaming
002.001.003 Budget Gaming
Теперь — сценарии.
Сценарий 1. Поменять местами два подраздела
Задача: хотим, чтобы в блоке «Ноутбуки» «Ультрабуки» шли до «Игровых ноутбуков» (потому что ультрабуки покупают чаще).
Было:
Laptops
├── Gaming Laptops
├── Ultrabooks
└── Workstations
Что делаем:
- Находим в дереве
Ultrabooks. - Берём за ручку
⋮⋮и тащим вверх, пока серая полоса не окажется над «Gaming Laptops». - Отпускаем.
Стало:
Laptops
├── Ultrabooks
├── Gaming Laptops
└── Workstations
Порядок поменялся. При этом все три категории остались внутри «Laptops» — вложенность не изменилась. Изменился только порядок вывода.
Что важно знать:
- Коды категорий (
ultrabooks,gaming-laptops) не изменились. - Ссылки на страницы не сломались — все закладки и ссылки из поиска работают.
- В публичной части сайта меню и хлебные крошки сразу покажут новый порядок.
Сценарий 2. Переместить подраздел в другого родителя
Задача: раздел «Игровые ноутбуки» нужно перенести из «Ноутбуков» в новый раздел «Игровое железо» (который вы только что создали в штатном разделе «Структура»).
Было:
Laptops
└── Gaming Laptops
├── High-End Gaming
├── Mid-Range Gaming
└── Budget Gaming
Что делаем:
- Находим
Gaming Laptopsв дереве. - Берём за ручку
⋮⋮. - Тащим вниз, к новой категории
Gaming Hardware— не в неё саму, а внутрь. Когда наведётесь на серую пустую зону под названиемGaming Hardware, появится подсказка «сюда». - Отпускаем.
Стало:
Gaming Hardware
└── Gaming Laptops
├── High-End Gaming
├── Mid-Range Gaming
└── Budget Gaming
Обратите внимание: «High-End Gaming», «Mid-Range Gaming» и «Budget Gaming» переехали вместе с родителем. Плагин автоматически переносит всё поддерево. Вам не нужно вручную тащить каждого из них.
Сценарий 3. Поднять подраздел на верхний уровень
Задача: раздел «Аксессуары» (сейчас он внутри «Компьютеров») вынести в отдельный корневой раздел — потому что за год он разросся и заслуживает собственного пункта в главном меню.
Было:
Computers & Components
├── Desktop Computers
├── Computer Components
├── Peripherals
└── Accessories
├── Computer Accessories
├── Smartphone Accessories
└── Gaming Accessories
Что делаем:
- Находим
Accessories(тот, что внутри «Computers & Components» — не путать с корневым, если такой есть). - Берём за ручку
⋮⋮. - Тащим его вниз, в корневую зону — ниже всех остальных корневых категорий (
Computers,Laptops,Smartphones,Game Consoles). Появится серая полоса между корневыми категориями. - Отпускаем.
Стало:
Computers & Components
├── Desktop Computers
├── Computer Components
└── Peripherals
Laptops
Smartphones
Game Consoles
Accessories ← теперь корневой
├── Computer Accessories
├── Smartphone Accessories
└── Gaming Accessories
Обратите внимание: раздел «Accessories» теперь стоит на одном уровне с «Computers», «Laptops» и другими корневыми разделами. И снова — все его дочерние категории переехали вместе с ним.
Сценарий 4. Переместить смартфоны выше ноутбуков
Задача: хотим, чтобы в главном меню магазина «Смартфоны» были на втором месте, сразу после «Компьютеров». Сейчас они на третьем.
Было:
1. Computers & Components
2. Laptops
3. Smartphones
4. Game Consoles
5. Accessories
Что делаем:
- Находим
Smartphones. - Берём за ручку.
- Тащим вверх, пока серая полоса не окажется между «Laptops» и «Computers» (то есть над Laptops).
- Отпускаем.
Стало:
1. Computers & Components
2. Smartphones
3. Laptops
4. Game Consoles
5. Accessories
Все подразделы смартфонов (Android Phones, iPhones, Rugged Phones и их дети) автоматически сохранили своё положение внутри «Smartphones».
Сценарий 5. Сгруппировать всё игровое в один раздел
Задача: разделы, связанные с играми, сейчас разбросаны: «Game Consoles», «Gaming Laptops» (внутри ноутбуков), «Gaming Keyboards» (внутри аксессуаров). Хотим собрать всё в один корневой раздел «Gaming».
Последовательность действий:
- В штатном разделе «Структура» создаём новый корневой раздел
Gaming. - В плагине берём
Game Consoles(корневой) и тащим внутрь новогоGaming. - Находим
Gaming Laptops(внутри Laptops) и тоже тащим вGaming. - Находим
Gaming Accessories(внутри Accessories) и переносим вGamingже. - Внутри
Gamingрасставляем порядок: Game Consoles → Gaming Laptops → Gaming Accessories.
Что получится:
Gaming
├── Game Consoles
│ ├── Home Consoles
│ ├── Handheld Consoles
│ └── Console Accessories
├── Gaming Laptops
│ ├── High-End Gaming
│ ├── Mid-Range Gaming
│ └── Budget Gaming
└── Gaming Accessories
├── Gaming Keyboards
├── Gaming Mice
├── Gaming Chairs
└── VR Headsets
При этом в исходных разделах («Laptops», «Accessories») этих подкатегорий больше не будет — они переехали целиком.
Что происходит после перетаскивания
Вы отпустили мышку. Что происходит «под капотом»:
- Плагин сохраняет новый порядок в базе данных. Мгновенно, автоматически, без вашего участия.
- Дерево на странице перерисовывается. Если что-то пошло не так — вы увидите ошибку.
- Меню и хлебные крошки на публичной части обновляются. Следующий посетитель увидит уже новый порядок.
- Кеш сайта сбрасывается. Именно поэтому изменения видны сразу, без ожидания.
- В журнал админки добавляется запись. В разделе «Лог» (
admin.php?m=logger) можно увидеть: кто, когда и в какой области менял структуру.
Что НЕ меняется:
- Названия категорий — остаются прежними.
- Описания и иконки — остаются прежними.
- Коды категорий (
code) — остаются прежними, поэтому все URL-адреса страниц сохраняются. Если у вас была ссылкаsite.ru/market/gaming-desktops, она продолжит работать. - Права доступа — остаются прежними.
- Товары — остаются в своих категориях, никуда не переносятся.
Меняется только одно — порядок и вложенность в дереве. Всё остальное плагин не трогает.
Кнопка «Нормализовать пути» — что это и когда ей пользоваться
В верхней части страницы плагина есть красная кнопка «Нормализовать пути». Она делает очень серьёзную вещь: стирает всю вложенность и превращает дерево в плоский список.
Что это значит по-простому: все категории становятся корневыми. Никаких подразделов не остаётся. Внутреннее содержимое (товары, статьи) не удаляется, но структура становится плоской:
Было:
Computers & Components
├── Desktop Computers
│ ├── Gaming Desktops
│ └── Office Desktops
└── Peripherals
├── Keyboards
└── Mice
После «Нормализации»:
Computers & Components
Desktop Computers
Gaming Desktops
Office Desktops
Peripherals
Keyboards
Mice
Всё на одном уровне, порядок — по номерам, по возрастанию.
Когда это нужно
Только в одном случае: когда структура «сломалась». Признаки поломки:
- В дереве появились дубликаты путей — например, две категории с одинаковым номером
001. Плагин в такой ситуации не может корректно работать. - Категории пропали из дерева или отображаются не на своих местах.
- Вы видите ошибку при попытке перетаскивания, и она не уходит.
- Структура была импортирована из другой CMS и содержит мусорные значения путей.
Когда этого делать НЕ нужно
- Просто так — «на всякий случай». Это сотрёт вашу вложенность, которую вы, возможно, выстраивали месяцами.
- Перед важным запуском — не надо.
- Если вам кажется, что «стало как-то не так» — сначала убедитесь, что проблема действительно в структуре, а не в чём-то другом.
Что делать, если всё-таки нажали
Плагин спросит подтверждение — внимательно прочитайте текст в диалоговом окне. Там написано, что иерархия будет потеряна. Если вы не уверены — нажмите «Отмена».
Если подтвердили — в течение 2–3 секунд все категории станут корневыми. Дальше:
- Не паникуйте. Данные не удалены.
- Восстанавливайте вложенность вручную — перетаскиванием. Начните с крупных разделов, потом подразделов, потом внуков.
- Проверьте публичную часть — меню и крошки сразу покажут новое состояние.
Совет: перед нажатием «Нормализовать» сделайте скриншот дерева. Это займёт 10 секунд, но если что-то пойдёт не так — у вас будет шпаргалка, как было.
Частые ошибки и как их избежать
Ошибка 1. «Я перетащил, но ничего не произошло»
Причина: скорее всего, вы не зацепились за ручку ⋮⋮, а попытались тянуть за название. Или за ручку, но не зажали кнопку мыши.
Решение: берите строго за ⋮⋮ слева от названия, зажмите и держите, пока тянете.
Ошибка 2. «Я перетащил, а категория пропала»
Причина: вы перетащили её внутрь другой категории, и она теперь не на верхнем уровне, а внутри. Разверните нужный родитель — категория там.
Решение: если хотите вернуть наверх — снова возьмите за ручку и тащите в корневую зону (ниже всех корневых, между ними).
Ошибка 3. «При перетаскивании выскочила ошибка и страница перезагрузилась»
Причина: чаще всего это означает, что пока вы тащили, кто-то другой (или вы во второй вкладке) изменил структуру, и данные на странице устарели.
Решение: страница перезагрузилась — она уже показывает актуальные данные. Просто повторите действие.
Если ошибка повторяется — прочитайте текст. Часто там написано «Cannot move category into its own descendant» — это значит, что вы пытаетесь вложить родителя в собственного ребёнка. Так нельзя — это создало бы бесконечный цикл. Перетащите в другое место.
Ошибка 4. «Категория не хочет перемещаться, её будто что-то держит»
Причина: возможно, вы пытаетесь положить категорию в саму себя или в её собственный дочерний раздел. Плагин это блокирует.
Решение: проверьте, куда именно вы тащите. Если родитель — сама категория или её ребёнок, выберите другое место.
Ошибка 5. «После перетаскивания меню в публичной части не обновилось»
Причина: скорее всего, кеш на стороне браузера или внешнего прокси (Cloudflare, Varnish, nginx).
Решение: обновите страницу с принудительной перезагрузкой — Ctrl + F5 (Windows/Linux) или Cmd + Shift + R (Mac).
Если не помогло — обратитесь к администратору сервера, возможно, нужно сбросить серверный кеш.
Ошибка 6. «Я случайно нажал "Нормализовать", и всё сломалось»
Причина: вы нажали кнопку и подтвердили, что готовы потерять иерархию.
Решение: восстанавливайте вручную. Плагин не ведёт историю и не умеет отменять. Если у вас есть резервная копия базы данных — восстановите только таблицу structure через phpMyAdmin. Это самый быстрый способ.
Совет: уберите кнопку «Нормализовать» из шаблона, если она не нужна — передайте эту задачу администратору, который точно знает, что делает. Технически это одна строка в файле шаблона.
Правила безопасной работы с плагином
Прочитайте эти правила — они сэкономят вам часы.
Правило 1. Делайте изменения по одному.
Не перетаскивайте пять категорий подряд за 10 секунд. Перетащили одну — посмотрите, что получилось, дождитесь перерисовки дерева. Потом следующую.
Правило 2. Не работайте с плагином, если кто-то ещё правит структуру.
Если у вас несколько администраторов — договоритесь, кто работает в какое время. Параллельные перемещения могут дать ошибку.
Правило 3. Не переименовывайте категории в плагине — это не его работа.
Плагин не меняет названия, описания, иконки. Для этого есть штатный раздел «Структура». Не пытайтесь найти в плагине поле «название» — его нет.
Правило 4. Не удаляйте категории в плагине — это не его работа.
Плагин не удаляет категории. Для удаления — штатный раздел «Структура».
Правило 5. Не трогайте категорию system.
Если у вас в дереве есть раздел с кодом system — это служебный раздел Cotonti (там хранятся системные страницы). Перетаскивать его можно, но не нужно: это может сломать служебные ссылки. Оставьте его в покое.
Правило 6. Перед крупной реорганизацией — сделайте бэкап.
Перед тем как перестраивать иерархию каталога из 200+ категорий, попросите хостера или администратора сделать резервную копию базы. Это займёт минуту и спасёт вас, если что-то пойдёт не так.
Правило 7. Не трогайте кнопку «Нормализовать» без необходимости.
Пользуйтесь только если структура сломана. См. раздел выше.
Правило 8. После крупных изменений — проверьте публичную часть.
Пройдите по сайту как посетитель: главное меню, хлебные крошки, страницы категорий. Убедитесь, что всё выглядит так, как вы планировали.
Таблица «что происходит с сайтом» при разных действиях
| Ваше действие | Меню | Хлебные крошки | URL-адреса | Товары/статьи | Права доступа |
|---|---|---|---|---|---|
| Перестановка соседей | меняется порядок | не меняется | не меняются | остаются на месте | не меняются |
| Перемещение в другого родителя | меняется вложенность | меняется путь | не меняются | остаются в той же категории | не меняются |
| Перемещение в корень | категория появляется в главном меню | путь укорачивается | не меняются | остаются | не меняются |
| Перемещение с подкатегориями | всё поддерево переезжает | пути всех потомков меняются | не меняются | остаются | не меняются |
| «Нормализовать» | все разделы становятся корневыми | пути укорачиваются до одного сегмента | не меняются | остаются | не меняются |
Ключевое: адреса страниц и содержимое категорий никогда не страдают. Только внешний порядок и вложенность.
Пошаговый чек-лист для типовой задачи
Допустим, вы хотите перестроить каталог магазина под новогоднюю распродажу: поднять «Аксессуары» и «Игровые товары» наверх, а «Компьютеры» — вниз.
Шаг 1. Подготовка
- [ ] Открыть
admin.php?m=other&p=dragstructure. - [ ] В списке «Расширение» выбрать
market. - [ ] Сделать скриншот текущего дерева (на случай отката).
Шаг 2. Поднять аксессуары
- [ ] Найти
Accessories. - [ ] Перетащить на самый верх дерева.
- [ ] Убедиться, что категория встала над всеми корневыми.
- [ ] Проверить: подразделы аксессуаров переехали вместе с ней.
Шаг 3. Поднять игровое
- [ ] Найти
Game Consoles. - [ ] Перетащить вторым сверху, сразу под
Accessories. - [ ] Если нужно — сгруппировать с игровыми ноутбуками и аксессуарами (как в сценарии 5).
Шаг 4. Опустить компьютеры
- [ ] Найти
Computers & Components. - [ ] Перетащить его вниз, под все остальные корневые.
- [ ] Убедиться, что подразделы (Desktop, Components, Peripherals) переехали с ним.
Шаг 5. Проверка
- [ ] Открыть публичную часть сайта.
- [ ] Проверить главное меню — порядок соответствует плану.
- [ ] Пройти по 2–3 категориям — хлебные крошки работают.
- [ ] Открыть пару товаров — URL не изменились.
- [ ] Если что-то не так — вернуться в плагин и поправить.
Шаг 6. Если результат не устраивает
- [ ] Не паниковать.
- [ ] Перетащить обратно (все действия обратимы, кроме «Нормализации»).
- [ ] Если структура полностью сломана — восстановить из бэкапа.
Что делать, если что-то пошло совсем не так
Ситуация 1. Дерево не отображается.
Проверьте: выбран ли ext в списке. Если список пуст — значит, ни одно расширение не объявило структуру. Обратитесь к администратору: возможно, нужно активировать модуль market или page.
Ситуация 2. Категория висит «в воздухе» — не в родителе, но и не в корне.
Это признак повреждённой структуры. Попробуйте:
- Открыть штатный раздел «Структура» и найти эту категорию.
- Посмотреть её
path— должен быть вида001.002, а не001..002или с другими ошибками. - Если путь битый — нажать «Нормализовать» (да, это единственный случай, когда стоит рискнуть).
- После нормализации расставить иерархию заново.
Ситуация 3. Ничего не помогает.
Обратитесь к разработчику плагина или на форум Cotonti. Приложите:
- скриншот страницы плагина;
- текст ошибки (если был);
- запись из лога ;
- версию Cotonti и PHP.
Итог: краткая шпаргалка
Для тех, кто дочитал до конца — сжатая версия.
- Откуда открыть: админка → «Инструменты» → «Drag & Drop структура».
- Что выбрать: вверху выпадающий список — ваша область (
market,pageи т.д.). - Как перетаскивать: за ручку
⋮⋮→ тянуть → отпустить на серую полосу. - Что меняется: только порядок и вложенность. Ничего больше.
- Что НЕ меняется: URL, названия, содержимое, права.
- Куда тащить: внутрь категории — станет ребёнком; между категориями — сосед; в корневую зону — станет корневой.
- Красная кнопка «Нормализовать» — только для сломанной структуры. Не трогайте без необходимости.
- Правило одно: делайте по одному действию и проверяйте результат.
Удачной сортировки!
Купить Drag & Drop Structure — визуальный редактор категорий для Cotonti по низким ценам. Интернет-магазин предлагает заказать Drag & Drop Structure — визуальный редактор категорий для Cotonti, просмотреть полное описание, детальные характеристики, фото товара и актуальные цены со скидками