Личный блог /

Еще курсы?

Наш первый курс по создаю компонентов для MODX подходит к концу — осталось всего одно занятие.

Мне, в принципе, понравилось. От читателей жалоб тоже не видно, значит можно продолжать.

Вопрос, нужны ли еще курсы, и если да — то какие?

У меня пока только одна идея — переделать minishop2.com с нуля. Могу описать весь процесс натягивания шаблона, вызов типовых сниппетов, настройки поиска, фильтров и оплаты и т.д.

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

Читать далее
Создание компонентов MODX /

Самостоятельная подписка и отписка пользователя

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

Для этого нужно будет добавить новое поле code в объект sxSubscriber (для ссылки "отписаться от рассылки"), прописать в классе sxNewsletter новые методы для проверки почты и подписки\отписки и добавить обработку этих действий в сниппет Sendex.

В общем, ничего интересного, обычное программирование на PHP.

Читать далее
Создание компонентов MODX /

Сниппет Sendex и формы подписки\\отписки

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

Нам нужено организовать возможно самостоятельной работы авторизованным пользователям с подписками. Определяем минимальный функционал:

  1. Вывод формы подписки на определенную рассылку — её мы укажем по id

  2. Если юзер уже подписан — тогда показываем форму отписки

  3. При том и другом действие происходит отправка писем с кодом, для подтверждения

  4. При переходе по коду, его ловит плагин и выполняет что нужно

Для сниппета мы будем использовать pdoTools. Во-первых, это быстро и удобно, а во вторых велика вероятность, что он уже установлен на сайте. Если же нет — нужно предусмотреть и автоматическую установку, при инсталляции пакета.

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

Германия: фотостудия Iris Noir

На третий день поездки во Франкфурт мы пошли на работу пригласившей стороны. Этой самой стороне, по имени Ирина, нужно было срочно забацать фотосесию дорогих украшений.

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

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

Новый раздел на сайте - "Утилиты"

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

И вот встречайте — новый раздел Утилиты, в котором уже есть проверка JSON строк.

В отличии от своего идейного вдохновителя, здесь строки парсятся не javascript, а настоящим json_decode(), и строку можно указывать сразу в параметре ?json=, например вот так.

Сама форма работает через AjaxForm, можно использовать Ctrl+Enter для отправки.

Если вам понравилась идея — пишите чего бы еще подобного сделать, чтобы не сильно сложно, но полезно.

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

Германия: Дорога домой

Ездили мы на неделю, с 25го ноября по 1е декабря. Собственно, и первую в жизни визу нам выдали на эти числа. Хочешь — не хочешь, а первого числа нужно свалить из страны.

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

Читать далее
Создание компонентов MODX /

Пишем интерфейс: таблица очереди писем

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

Логика работы такая:

  1. У нас есть рассылка

  2. К ней прикреплены подписчики

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

  4. Один подписчик — одно письмо для каждой рассылки

  5. После создания письма его можно удалить или отправить

В итоге у меня получилась вот такая таблица:

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

Германия: Поездка в Висбаден

На второй день отпуска мы поехали в столицу земли Гессен — город Висбаден.

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

Наверное, я никого не удивлю, если скажу, что в Германии отличные дороги? Родина Mercedess, BMW, Porche и Audi просто не может иметь плохих дорог!

Да и с климатом тут, конечно, попроще. Перепадов от -35 до + 35, как у нас в Сибири — не бывает.

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

Германия: день первый - Франкфурт

25го числа, мы с женой поехали таки в заслуженный отпуск на неделю.

Так как, за границей ни разу не были, решили что нужно ехать туда, где друзья. Ну, чтобы встретили, погуляли и отправили обратно. Потому что ездить во всякие там Египты и ОАЭ страшновато (я там никого не знаю!) да и незачем, пожалуй.

Хороший друг живет во Франкфурте-на-Майне, туда и полетели.

Читать далее
Создание компонентов MODX /

Пишем интерфейс: окно редактирования подписки

На прошлом занятии мы сделали таблицу подписок и окно создания.

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

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

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

Читать далее
Тонкости и трюки /

Выбор первых картинок из контента

Вариант с использованием properties.

Используется в плейсхолдере например так

<img   src="[[+properties.first_img_src.0]]" >

Плагин нужно выставить для события OnBeforeDocFormSave

Читать далее
Создание компонентов MODX /

Пишем интерфейс: таблица подписок и окошко создания

В принципе, всё необходимое для написания приличного дополнения к MODX я уже рассказал.

Мы знаем структуру компонента, умеем собирать его в пакет, управляем контроллерами и меняем интерфейс. Даже немного научились работать с GitHub. Дело за малым — собственно написать функционал.

Этот урок очень объёмный, здесь много листингов кода, с пояснениями. Если что-то непонятно — не нужно переживать и расстраиваться, просто помните, что всегда можно посмотреть исходный код уже готовых дополнений и самого MODX — там есть примеры на все случаи жизни.

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

Читать далее
bezumkin
Василий Наумкин
09.04.2024 01:45
Ошибка 500 Это не похоже на ошибку Nginx, это скорее всего ошибка PHP - надо смотреть его логи. Во...
futuris
Futuris
04.04.2024 05:56
Я просто немного запутался. Когда в абзаце &quot;Vesp/Core&quot; ты пишешь про &quot;новый trait Fil...
bezumkin
Василий Наумкин
20.03.2024 18:21
Volledig!
Андрей
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 для бэкенда. Их можно обновлять, но э...