Переезд с miniShop2 на Vesp /

Рекурсивное дерево категорий

Сегодня будет интересно - мы напишем рекурсивное дерево категорий, которое позволит нам:

  • создавать новые категории
  • редактировать имеющиеся
  • удалять категории
  • сортировать перетаскиванием
  • сворачивать и разворачивать
  • передавать выбранную категорию наружу другим компонентам

Мы создадим полнофункциональное дерево по типу админки MODX, только своими руками.

Читать далее
Переезд с miniShop2 на Vesp /

Импортируем товары

Для импорта товаров нам понадобится обновить модель и добавить к ней новые связи: с переводами, другими товарами и категориями.

Никаких сложностей не предвидится, всё по образу и подобию предыдущих моделей.

Затем опять обновим админку для вывода товаров. Сегодня будет не особо интересно, но увы, сделать это надо.

Читать далее
Переезд с miniShop2 на Vesp /

Импортируем категории товаров

Сегодня мы доработаем модель категорий товаров, импортируем старые из miniShop2 и обновим админку.

Новые категории хранят свои текстовые колонки в отдельной таблице, так что нам нужно будет создать модель и для неё, а потом написать всякие вспомогательные методы в админке для удобного использования переводов.

Помимо этого, категории еще могут иметь картинку, но тут мы просто используем компонент upload-file, который написали вчера для юзеров.

Читать далее
Переезд с miniShop2 на Vesp /

Импортируем пользователей

Сегодня мы обновим нашу модель пользователя, чтобы отражать изменения таблицы. Добавим всякие методы для сброса, активации и реализуем проверку паролей старых юзеров из MODX.

Проверять это всё будем путём импорта пользователей из тестовой БД, которую я получил путём обфускации данных рабочей базы.

Затем обновим админку для отображения новых данных, а вишенкой на торте будет загрузка аватарок.

Читать далее
Переезд с miniShop2 на Vesp /

Новая структура таблиц магазина

Мы стартуем с момента окончания прошлого курса, поэтому я предлагаю вам скачать архив с кодом после его завершения.

Внутри есть директория docker, там нужно запустить docker-compose и можно работать. Более подробно про работу с Docker можно прочитать в отдельной заметке, там много комментариев с решением типичных вопросов.

Если же у вас остались данные от первого курса, то предлагаю обнулить вашу базу и пересоздать всё заново. Для этого можно или откатить все миграции, или просто вручную грохнуть БД. Проще всего удалить docker/db и перезапустить контейнер, он создаст новую базу.

Также я еще обновил php и node зависимости, и внёс вот это в core/phinx.php:

    'templates' => [
        'style' => 'up_down',
    ],

Теперь новые миграции сразу содержат методы up() и down(), вместо change().

Читать далее
Переезд с miniShop2 на Vesp /

Начинаем новый курс

Как и обещал, начинаем новый платный курс по переезду с miniShop2 на Vesp.

В нём мы разберём мой опыт по переносу работающего швейцарского магазина по продаже табачных изделий. У нас такие магазины, вроде бы, продавать ничего не могут по закону, но для примера без разницы.

Основываться мы будем на базе из прошлогоднего курса по Vesp. То есть, я буду рассчитывать на то, что вы его прочитали и поняли.

В будущих заметках мы:

  • создадим модели и таблицы товаров
  • перенесём в них товары из miniShop2 со всеми нужными свойствами
  • перенесём изображения товаров
  • перенесём пользователей с сохранением паролей
  • адреса пользователей, заказы, оплаты и т.д.
  • доработаем админку для управления всем этим богатством

Картинки для привлечения внимания:

Читать далее
Личный блог /

Текущие новости

Привет, читатели! Снова большой перерыв между заметками, почти 2 месяца, так что надо рассказать, чем был занят.

В июне я отработал последний месяц в голландской компании Sterc, в которой трудился с декабря. Устраивался работать с перспективными проектами на базе Vue и Laravel, с надеждой протащить под это дело Vesp, но в итоге всё время работал с MODX.

Проекты у Sterc крупные, разрабатываются командами из нескольких человек, через Git. Есть куча самописных закрытых библиотек и наработок, в это всё пришлось въезжать и по ходу дела не переставал мучать вопрос - а зачем здесь вообще MODX, если, например, для запуска разных задач в очередях рядом устанавливается Laravel Horizon?

В общем, работы с MODX я не выдержал и, несмотря на хорошую зарплату, уволился.

Последние 4 месяца я работал 40 часов в неделю в Sterc и 10 часов в Pixmill - то есть 200 часов в месяц, вместо обычных 160. Казалось бы, небольшая разница, а на самом деле это 5 рабочих недель в месяц, вместо 4х и времени восстановиться совсем нет.

Только за эти ударные 4 месяца я заработал около 2 млн рублей и закрыл долг в банке за покупку дома.

Читать далее
Новости сайта /

Курс по Vesp доступен бесплатно

Прошёл уже год с момента старта последнего, на данный момент, курса по Vesp.

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

Минутка занимательной статистики:

  • в курсе 24 заметки
  • всего курс купили 32 раза
  • на сумму 105 тысяч рублей

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

Читать далее
Работа на Vesp /

Отправка писем

Внезапный дополнительный выпуск в уже оконченном курсе!

Поступил вопрос - а как отправлять письма? Для этого я использую PHPMailer, Fenom и Emogrifier.

Fenom будет готовить шаблоны писем, Emogrifier встраивать стили непосредственно в элементы (чтобы всё правильно читалось в почтовых клиентах), а PHPMailer будет отправлять.

Добавляем новые зависимости в проект:

composer require phpmailer/phpmailer fenom/fenom pelago/emogrifier
Читать далее
Проекты /

Обновил Webstartpage.ru

В последнее время много работы, никак не связанной с Vesp, зато очень хорошо оплачиваемой.

Чтобы не потерять навыки, решил поиграться с Nuxt 3 в свободное время на реальной задаче - переписал весь фронтенд своей домашней странички webstartpage.ru.

Это мой самый первый проект, живой до сих пор. Там можно авторизоваться через соцсети и хранить свои ссылки. Понятно дело, что в 2023 году такие странички не особо востребованы, потому что они уже встроены в браузер - но я привык к своей. Она была сделана и на MODX Evolutuion, и на Revolution (2 раза), потом на Vesp с Nuxt 2, а теперь вот и на Nuxt 3.

Получается, что этот сайт у меня всегда на острие прогресса!

Что изменилось в этот раз:

  • Vue 2 -> Vue 3
  • Nuxt 2 -> Nuxt 3
  • Vuex -> Pinia
  • Bootstrap 4 -> Bootstrap 5

Бэкенд на PHP остался без изменений.

Читать далее
Новости сайта /

Обновление уведомлений

Выдалась свободная минутка (точнее, часик) и я организовал-таки нормальные уведомления о комментариях на почту.

Если кто не в курсе, то раньше было вот так:

Чтобы понять о чём речь, нужно было обязательно пройти на сайт и почитать - что не очень удобно, если там только "спасибо за ответ!".

А теперь уведомления выглядят вот так:

Сразу ясно - надо ли заходить на сайт для ответа, или можно просто удалить письмо. Подобные уведомления не являются чем-то новым, я уже делал такое на modx.pro, но здесь решил улучшить пару моментов.

Читать далее
Новости сайта /

Загрузка видеофайлов

Знаете, что, друзья?

Что-то надоело мне загружать в заметки GIFки, как-будто на дворе не 2023 год и не безлимитный интернет!

Так что с этого момента можно грузить и видео тех форматов, которые нативно понимают браузеры: mp4, quicktime и webm (у Safari с ним проблемы).

Вот как это работает:

Читать далее
bezumkin
Василий Наумкин
15.09.2023 08:27
Никакой разницы, только в количестве строк. Не знаю, почему я так написал - не задумывался -)
bezumkin
Василий Наумкин
14.09.2023 23:59
Очень рад, что тебе понравилось!
NightRider
12.09.2023 12:37
Понял. Спасибо за подробный ответ!
Сергей Лелеко
10.09.2023 06:23
Понял! да , сталкивался с этой проблемкой
Дмитрий П.
07.09.2023 11:19
ну да, что-то на этот момент я не обратил внимание) видимо дублирование в девтулсах происходит из-за...
NightRider
29.08.2023 10:30
Просто так совпало что у меня пока что есть свободное время на изучение. Остальные скорее всего побо...
bezumkin
Василий Наумкин
28.08.2023 01:02
Абсоюлютно верно, у меня даже IDE подсвечивает ошибку - не знаю, как пропустил. Поменял на $me->g...
bezumkin
Василий Наумкин
25.08.2023 10:24
Очень рад!
inetlover
Александр Наумов
24.08.2023 10:49
Спасибо!!
bezumkin
Василий Наумкин
21.08.2023 12:37
Сорян, что-то я уже второй раз затупил с этим дампом. Держи правильный ms2.sql.zip (2.79 Mb), в заме...