Изменить порядок изображений в веб-галерее - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть веб-галерея (сделанная с laravel), и я хотел бы добавить возможность изменить порядок изображений ... Теперь я подумал о нескольких подходах, но для каждого подхода я нахожу, что должен быть лучший способ Делать это.

галерея не использует javascript, поэтому изменения были внесены, ее необходимо добавить и перезагрузить, чтобы отразить изменения

Основные трудности:

  • как хранить заказ в базе данных? дополнительный столбец Integer?
  • как добавить картинку "между" двумя другими?
  • как обработать ее на уровне внешнего интерфейса?

Пока что лучший у меня были следующие идеи:

  • столбец с целыми числами, порядок за пунктом в этом столбце. Внешний интерфейс: кнопка перемещения вверх и вниз.

    • проблемы этого решения: ему нужно refre sh после каждого отдельного движения. он должен идентифицировать предыдущее / следующее изображение и поменять местами номер с этим. Чтобы переместить один пи c из конца галереи на вершину, потребуется навсегда.
  • столбец с целыми числами, автоматически заполняется с шагом 100, упорядочив по этот столбец + время загрузки в случае одинаковых чисел. Внешний интерфейс: текстовое поле, в котором пользователь может указать целые числа для каждого изображения и кнопку отправки.

    • Проблемы этого решения: выглядит не очень профессионально. решает все проблемы предыдущего решения
  • аналогично предыдущему решению, но с двойными значениями для возможности вставки изображений без ограничений.

Все они не кажутся реальными. Любое предположение о том, как сделать это правильно, приветствуется. спасибо

1 Ответ

1 голос
/ 24 апреля 2020

Я сделал такую ​​сортировку в списке продуктов OpenCart (пользовательский дизайн бэкенда)

Порядок сортировки был дополнительным столбцом order INT(11) в базе данных

У нас было 3 поля ввода: up / down / custom

Где custom был выпадающий список всех индексов от 1 до max-items.

Все входы одинаковы:

Возьмите новое значение order и сдвиньте все элементы, кроме себя. Сдвиг вверх или вниз зависит от того, перемещаете ли вы элемент вперед или назад от текущей позиции

UPDATE order FROM products SET order = :newOrder WHERE id = :currentItemId

if ($newOrder > $oldOrder)
    UPDATE order FROM products SET order + 1 WHERE order >= :newOrder AND id != :currentItemId
else
    UPDATE order FROM products SET order - 1 WHERE order <= :newOrder AND id != :currentItemId

При вставке выполняется то же обновление, только первый запрос становится INSERT INTO


Чтобы избавиться от безобразного обновления sh страницы при каждом действии, мы выполняем Ajax запросов и пересортируем DOM с jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...