Внимание! Это платный раздел.
Чтобы читать заметки из этого раздела, вам необходимо единоразово оплатить 2 500 ₽, и вы получите доступ ко всем заметкам и комментариям.
Сегодня будет интересно - мы напишем рекурсивное дерево категорий, которое позволит нам:
Мы создадим полнофункциональное дерево по типу админки MODX, только своими руками.
Для импорта товаров нам понадобится обновить модель и добавить к ней новые связи: с переводами, другими товарами и категориями.
Никаких сложностей не предвидится, всё по образу и подобию предыдущих моделей.
Затем опять обновим админку для вывода товаров. Сегодня будет не особо интересно, но увы, сделать это надо.
Сегодня мы доработаем модель категорий товаров, импортируем старые из miniShop2 и обновим админку.
Новые категории хранят свои текстовые колонки в отдельной таблице, так что нам нужно будет создать модель и для неё, а потом написать всякие вспомогательные методы в админке для удобного использования переводов.
Помимо этого, категории еще могут иметь картинку, но тут мы просто используем компонент upload-file
, который написали вчера для юзеров.
Сегодня мы обновим нашу модель пользователя, чтобы отражать изменения таблицы. Добавим всякие методы для сброса, активации и реализуем проверку паролей старых юзеров из MODX.
Проверять это всё будем путём импорта пользователей из тестовой БД, которую я получил путём обфускации данных рабочей базы.
Затем обновим админку для отображения новых данных, а вишенкой на торте будет загрузка аватарок.
Мы стартуем с момента окончания прошлого курса, поэтому я предлагаю вам скачать архив с кодом после его завершения.
Внутри есть директория docker
, там нужно запустить docker-compose
и можно работать. Более подробно про работу с Docker можно прочитать в отдельной заметке, там много комментариев с решением типичных вопросов.
Если же у вас остались данные от первого курса, то предлагаю обнулить вашу базу и пересоздать всё заново. Для этого можно или откатить все миграции, или просто вручную грохнуть БД. Проще всего удалить docker/db
и перезапустить контейнер, он создаст новую базу.
Также я еще обновил php и node зависимости, и внёс вот это в core/phinx.php
:
'templates' => [
'style' => 'up_down',
],
Теперь новые миграции сразу содержат методы up()
и down()
, вместо change()
.
Как и обещал, начинаем новый платный курс по переезду с miniShop2 на Vesp.
В нём мы разберём мой опыт по переносу работающего швейцарского магазина по продаже табачных изделий. У нас такие магазины, вроде бы, продавать ничего не могут по закону, но для примера без разницы.
Основываться мы будем на базе из прошлогоднего курса по Vesp. То есть, я буду рассчитывать на то, что вы его прочитали и поняли.
В будущих заметках мы:
Картинки для привлечения внимания: