Модуль Drag & Drop билдера предметов для DLE 14.0
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 по установке.
Расширить функциональность доп. полей 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 по установке.