Проекты /

Релиз @vesp/nuxt-fontawesome

Пока есть свободное время, решил попробовать себя в качестве разработчика модулей для Nuxt 3.

Понятное дело, что один модуль я уже написал - но это для Vesp, и большой популярности у него не будет. А вот подключение Font Awesome к текущей версии Nuxt всё еще является проблемой.

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

И вот я решил это исправить!

Читать далее
Путешествия /

Поездка в Швейцарию

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

В феврале 2024 слетал в Швейцарию на MODX Snowup #5, который почти ежегодно проводится компанией Pixmill, а я в ней работаю.

Летал, понятное дело, не ради MODX, а чтобы потусить со старыми друзьями.

Идея поехать возникла спонтанно, после получения рассылки от Sterc 15 декабря 2023.

Я отправил эту картинку Fabian Christen из Pixmill и пожаловался, мол, было бы круто там побывать, но это очень дорого и сложно. На моё удивление, он предложил оплатить мне перелёт, нужно было только получить визу.

Читать далее
Проекты /

Vesp 3.0

Совершенно неожиданно вышла новая версия Vesp - 3.0.

Как известно, Vesp состоит из Vue, Eloquent, Slim и Phinx. 3 части названия состовляет PHP бэкенд (пакет vesp/core), оставшаяся 1 часть - это фронтенд на Vue (пакет @vesp/frontend).

В новой версии обновлены они оба, но фронтенду досталось сильно больше из-за перехода на Vue 3.

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

День рождения 41

Продолжаем традицию ежегодных заметок.

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

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

Называется он Орбита и будет self-hosted системой для публикации своего творчества и получения денег от подписчиков. Да-да, как Boosty или Patreon, только свой личный, на собственном сервере.

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

Запуск в продакшн с помощью Docker

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

Любые версии PHP, любые версии Node, локальная отладка отправленных писем и т.д. Подключить можно какие угодно службы, для всяких разных нужд.

Естественно, мне захотелось перенести этот опыт и в боевой режим на сервере, чтобы мои контейнеры так же замечательно работали в продакшене.

Как оказалось, сделать это совсем несложно. Нужен только VPS, куда вы сможете установить Docker.

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

Личный кабинет пользователя

Товары есть, заказы есть, оплата есть... Осталось только вывести пользователю историю его заказов со статусом оплаты.

Заодно можно и отобразить оплату в админке. На этом, полагаю, с основным функционалом мы закончим.

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

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

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

Оплата заказа

Оформление заказа у нас уже есть, пора добавить оплату.

Здесь мы заложим общие правила работы оплаты, причём сразу двумя способами: через редирект, и через вывод QR кода для сканирования.

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

За оплату с редиректом у нас отдувается Yookassa, а за приём платежей через СБП банк Raiffeisen.

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

Оформление заказа

Сегодня пишем оформление заказа, пока без оплаты.

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

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

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

Регистрация с авторизацией и сбросом пароля

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

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

Чем сегодня и займёмся.

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

Хранение корзины в базе данных

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

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

Теперь в localStorage останется только идентификатор, а добавленые товары переедут в базу данных.

Пишем новую миграцию.

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

Фасетные фильтры

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

Когда-то я провёл очень много времени изобретая подобные фильтры для MODX под названием mFilter. Честно говоря, я и не знал, что это именно фасетные фильтры.

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

mFilter очень сильно завязан на MODX, поэтому для Vesp я использую замечательный пакет от российского автора k-samuel/faceted-search.

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

Хлебные крошки и мультикатегории

Сегодня продолжаем работать с выводом товаров на сайте - у нас осталась пара незаконченых дел.

Во-первых, у нас нет вывода товаров, вложенных в дочерние категории. И поддержки товаров, привязанных через ProductCategory тоже нет. Через это, например, большая категория /products/tabak выводится пустой.

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

Надо это исправить.

Читать далее
bezumkin
Василий Наумкин
19.03.2024 03:45
Pinia, как и Vuex нужны для обмена данными между компонентами. Хранлища - реактивные. Если вывод фо...
bezumkin
Василий Наумкин
14.03.2024 13:13
Спасибо!
Андрей
14.03.2024 10:47
Василий! Как всегда очень круто! Моё почтение!
russelgal
russel gal
09.03.2024 17:17
А этот стоило написать хотя бы затем, чтобы получить комментарий от юзера, который ничего не писал ...
inetlover
Александр Наумов
27.01.2024 00:06
Василий, спасибо! Извини, тупанул.
bezumkin
Василий Наумкин
22.01.2024 04:43
Давай-давай!
bezumkin
Василий Наумкин
24.12.2023 11:26
Спасибо!
bezumkin
Василий Наумкин
27.11.2023 02:43
Ура!
bezumkin
Василий Наумкин
25.11.2023 08:30
Vesp тянет 2 зависимости: vesp-frontent для фронта и vesp-core для бэкенда. Их можно обновлять, но э...
bezumkin
Василий Наумкин
22.11.2023 08:09
Отлично, поздравляю!