Модуль Drag & Drop билдера предметов для DLE 14.0

Job ID: 39385648

Budget: $30 – $250 USD

Цель:
Расширить функциональность доп. полей DLE 14.0, добавив поддержку визуального drag-n-drop билдера предметов. Модуль должен быть совместим с текущей системой xfields и работать в редакторе новостей.

Часть 1. Расширение типа "одна строка"

Задача:
Добавить к полям типа "одна строка" новый чекбокс в админке:

Включить drag-n-drop билдер предметов

Функциональность:
При активации чекбокса поле превращается в drag-n-drop зону с предметами.

Если чекбокс не включён — остаётся обычное текстовое поле.

Значение чекбокса должно сохраняться как параметр editedxfield[28].

При отображении новости/редактировании модуль должен проверять этот параметр и отрисовывать соответствующий интерфейс.

Часть 2. Общая модалка с предметами

Задача:
Создать единое модальное окно, которое:

вызывается один раз для всех drag-н-дроп полей;

работает глобально: любое активное поле может перетаскивать из него предметы;

автоматически синхронизирует ID предметов в input name="xfield[имя]".

Источник предметов:

Все предметы загружаются из категории DLE с ID = 11.

Каждый предмет (новость) содержит:

itemimage (доп. поле, загружаемая иконка предмета);

rune-color (доп. поле, один из значений: red, orange, green, blue).

Фильтрация:
Реализовать фильтры по цвету:

red – адаптивный урон

orange – физический урон

green – защита

blue – магия

Кнопка "Сброс" возвращает все предметы.

Исключения:
Возможность жёстко прописать ID предметов, которые исключаются из отображения (например, массив в коде):

php$excluded_items = [12, 34, 57]; // эти ID не отображаются

Часть 3. Поведение полей
Каждое активное drag-н-дроп поле:

имеет уникальный id и связанную input-переменную (xfield[name]);

сохраняет ID предметов как строку через запятую: 3,5,14;

отображает текущие предметы на основе сохранённых ID;

позволяет:

перетаскивать предметы с сортировкой;

удалять предметы (крестик в углу);

вставлять предметы в точное место между другими (placeholder);

поддерживает несколько полей на странице одновременно например (coreBuild, lateBuild, optionalItems, etc).

Дизайн
Использовать макет из файла dragitems.html (цветовая обводка, кнопка, модалка, фильтры, крестики). (Данный файл в архиве)

Размер иконок — 50x50px.

Ширина модалки: 30%, скрывается через right: -32%, открывается через класс .open.

Технические требования
Полная совместимость с DLE 14.0.

Никаких правок ядра — всё должно быть расширением через xfields и шаблоны.

Работает как при создании, так и при редактировании новости.

JS без jQuery, если возможно (или минимально).

Код — чистый, читаемый, с комментариями.

Возможность использовать в нескольких полях на одной странице.

Что предоставить
Файлы модуля

Инструкцию по модификации xfields.php с новым чекбоксом и логикой сохранения.

README по установке.
Related categories: PHP JavaScript AJAX CMS DataLife Engine