Drag & Drop Structure — визуальный редактор категорий для Cotonti

Плагин для Cotonti CMF — визуальный редактор иерархии категорий с поддержкой drag & drop и автоматическим пересчётом числовых путей, автоматическая нумерация

Статус: Опубликован

10

Параметры и значения товара в фильтрах

Категория расширения
  • Администрирование и управление;
  • Меню, дизайн и внешний вид;
  • Навигация и структура сайта;
  • Утилиты и инструменты
Доступность
Бесплатно

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

Установка

Установка занимает меньше минуты:

  1. Загрузите файлы плагина в каталог plugins/dragstructure/ вашего сайта.
  2. Откройте admin.php?m=extensions — в списке появится новый плагин Drag & Drop Structure.
  3. Нажмите «Установить» (активировать).
  4. Откройте «Инструменты» в левом меню админки — увидите пункт Drag & Drop Structure.
  5. Готово — можно перетаскивать категории.

Если пункт не появился — проверьте, что у вашей группы есть права на плагин (выдаются в 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 есть два важных свойства:

  1. Где она находится — в каком родительском разделе (или в самом верху, на главном уровне).
  2. В каком порядке она стоит — какая категория показывается первой, какая второй, какая последней.

И то, и другое можно менять вручную через штатный раздел «Структура» в админке — но там это делается через неудобные числа и текстовые поля. Плагин Drag & Drop Structure превращает эту работу в простое перетаскивание мышкой: вы берёте категорию и ставите её туда, куда нужно — как перетаскиваете иконки на рабочем столе.

Зачем вообще менять порядок и вложенность:

  • Чтобы важные разделы были наверху — например, «Акции» или «Новинки» первыми в меню.
  • Чтобы логично сгруппировать товары — например, «Игровые ноутбуки» поместить внутрь «Ноутбуков», а не держать их в общем списке.
  • Чтобы навести порядок после импорта — если категории загрузились вперемешку.
  • Чтобы поменять структуру каталога под сезон или новую линейку товаров.

Как открыть страницу плагина

  1. Зайдите в админку сайта — ваш-сайт.ru/admin.php.
  2. В левом меню выберите раздел «Инструменты» (или «Other»).
  3. Найдите пункт «Drag & Drop структура» — это и есть наш плагин.
  4. Откроется страница с деревом категорий.

Если вы не видите пункт в меню — значит, у вашей учётной записи нет прав на плагин. Обратитесь к суперадминистратору сайта, чтобы он выдал права.


Что вы видите на странице

В верхней части страницы — выпадающий список «Расширение». В нём перечислены все области структуры сайта: 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. Возьмите категорию за ручку. Наведите курсор на иконку ⋮⋮ слева от названия. Курсор превратится в «лапку». Зажмите левую кнопку мыши и не отпускайте.
  2. Потяните. Категория «оторвётся» от места и последует за курсором. Она будет показана полупрозрачной — так вы видите, что тащите именно её.
  3. Наведите на нужное место. Появится серая полоса-подсказка — это место, куда категория встанет, если вы отпустите кнопку сейчас.
  4. Отпустите кнопку мыши.

Через 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

Что делаем:

  1. Находим в дереве Ultrabooks.
  2. Берём за ручку ⋮⋮ и тащим вверх, пока серая полоса не окажется над «Gaming Laptops».
  3. Отпускаем.

Стало:

Laptops
├── Ultrabooks
├── Gaming Laptops
└── Workstations

Порядок поменялся. При этом все три категории остались внутри «Laptops» — вложенность не изменилась. Изменился только порядок вывода.

Что важно знать:

  • Коды категорий (ultrabooks, gaming-laptops) не изменились.
  • Ссылки на страницы не сломались — все закладки и ссылки из поиска работают.
  • В публичной части сайта меню и хлебные крошки сразу покажут новый порядок.

Сценарий 2. Переместить подраздел в другого родителя

Задача: раздел «Игровые ноутбуки» нужно перенести из «Ноутбуков» в новый раздел «Игровое железо» (который вы только что создали в штатном разделе «Структура»).

Было:

Laptops
└── Gaming Laptops
    ├── High-End Gaming
    ├── Mid-Range Gaming
    └── Budget Gaming

Что делаем:

  1. Находим Gaming Laptops в дереве.
  2. Берём за ручку ⋮⋮.
  3. Тащим вниз, к новой категории Gaming Hardware — не в неё саму, а внутрь. Когда наведётесь на серую пустую зону под названием Gaming Hardware, появится подсказка «сюда».
  4. Отпускаем.

Стало:

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

Что делаем:

  1. Находим Accessories (тот, что внутри «Computers & Components» — не путать с корневым, если такой есть).
  2. Берём за ручку ⋮⋮.
  3. Тащим его вниз, в корневую зону — ниже всех остальных корневых категорий (Computers, Laptops, Smartphones, Game Consoles). Появится серая полоса между корневыми категориями.
  4. Отпускаем.

Стало:

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

Что делаем:

  1. Находим Smartphones.
  2. Берём за ручку.
  3. Тащим вверх, пока серая полоса не окажется между «Laptops» и «Computers» (то есть над Laptops).
  4. Отпускаем.

Стало:

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».

Последовательность действий:

  1. В штатном разделе «Структура» создаём новый корневой раздел Gaming.
  2. В плагине берём Game Consoles (корневой) и тащим внутрь нового Gaming.
  3. Находим Gaming Laptops (внутри Laptops) и тоже тащим в Gaming.
  4. Находим Gaming Accessories (внутри Accessories) и переносим в Gaming же.
  5. Внутри 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») этих подкатегорий больше не будет — они переехали целиком.


Что происходит после перетаскивания

Вы отпустили мышку. Что происходит «под капотом»:

  1. Плагин сохраняет новый порядок в базе данных. Мгновенно, автоматически, без вашего участия.
  2. Дерево на странице перерисовывается. Если что-то пошло не так — вы увидите ошибку.
  3. Меню и хлебные крошки на публичной части обновляются. Следующий посетитель увидит уже новый порядок.
  4. Кеш сайта сбрасывается. Именно поэтому изменения видны сразу, без ожидания.
  5. В журнал админки добавляется запись. В разделе «Лог» (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 секунд все категории станут корневыми. Дальше:

  1. Не паникуйте. Данные не удалены.
  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. Категория висит «в воздухе» — не в родителе, но и не в корне.

Это признак повреждённой структуры. Попробуйте:

  1. Открыть штатный раздел «Структура» и найти эту категорию.
  2. Посмотреть её path — должен быть вида 001.002, а не 001..002 или с другими ошибками.
  3. Если путь битый — нажать «Нормализовать» (да, это единственный случай, когда стоит рискнуть).
  4. После нормализации расставить иерархию заново.

Ситуация 3. Ничего не помогает.

Обратитесь к разработчику плагина или на форум Cotonti. Приложите:

  • скриншот страницы плагина;
  • текст ошибки (если был);
  • запись из лога ;
  • версию Cotonti и PHP.

Итог: краткая шпаргалка

Для тех, кто дочитал до конца — сжатая версия.

  1. Откуда открыть: админка → «Инструменты» → «Drag & Drop структура».
  2. Что выбрать: вверху выпадающий список — ваша область (market, page и т.д.).
  3. Как перетаскивать: за ручку ⋮⋮ → тянуть → отпустить на серую полосу.
  4. Что меняется: только порядок и вложенность. Ничего больше.
  5. Что НЕ меняется: URL, названия, содержимое, права.
  6. Куда тащить: внутрь категории — станет ребёнком; между категориями — сосед; в корневую зону — станет корневой.
  7. Красная кнопка «Нормализовать» — только для сломанной структуры. Не трогайте без необходимости.
  8. Правило одно: делайте по одному действию и проверяйте результат.

Удачной сортировки!

Купить Drag & Drop Structure — визуальный редактор категорий для Cotonti по низким ценам. Интернет-магазин предлагает заказать Drag & Drop Structure — визуальный редактор категорий для Cotonti, просмотреть полное описание, детальные характеристики, фото товара и актуальные цены со скидками
С этим товаром, люди часто заказывают: Установка, интеграция и адаптация плагинов под Cotonti CMF.


Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
23 минут чтения
Владелец: Carbonate Sodium

You may have been looking for this for a long time.:

Модуль Market PRO v.5+ для Cotonti CMF.

webitproff
Продавец товара: webitproff
Витрина продавца

Оффлайн

Последняя авторизация: 20.10.2026 01:59

Обо мне кратко
Поддержка и разработка веб-проектов на CMF Cotonti: приватные мессенджеры через сайт, открытые и закрытые небольшие социальные сети, торговые площадки и маркетплейсы, портал биржи фриланса и услуг, каталоги товаров оптовых поставщиков, дропшиппинг-платформы, интернет-магазины и многое другое.
Смотреть разработки и скачать
Публичное портфолио моих работ и разработок
Телеграм для сообщений
@webitproff
Телеграм-канал
@s/aBuyFILE
Публичный профиль
  • Дата размещения 22.10.2026 07:54
  • Обновлено 22.10.2026 08:07

Обсуждение товара в Telegram

Витрина Market PRO

CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.