Наш первый курс по создаю компонентов для MODX подходит к концу — осталось всего одно занятие.
Мне, в принципе, понравилось. От читателей жалоб тоже не видно, значит можно продолжать.
Вопрос, нужны ли еще курсы, и если да — то какие?
У меня пока только одна идея — переделать minishop2.com с нуля. Могу описать весь процесс натягивания шаблона, вызов типовых сниппетов, настройки поиска, фильтров и оплаты и т.д.
Вопрос задаю заранее, чтобы распланировать свой график на январь.
Мы плавно подходим к окончанию разработки компонента и проведения уроков. Сегодня не будет ничего нового просто делаем самостоятельную подписку и отписку пользователя.
Для этого нужно будет добавить новое поле code в объект sxSubscriber (для ссылки "отписаться от рассылки"), прописать в классе sxNewsletter новые методы для проверки почты и подписки\отписки и добавить обработку этих действий в сниппет Sendex.
В общем, ничего интересного, обычное программирование на PHP.
На прошлых занятиях мы закончили написание административного интерфейса нашего компонента и теперь переходим на фронтенд.
Нам нужено организовать возможно самостоятельной работы авторизованным пользователям с подписками. Определяем минимальный функционал:
Вывод формы подписки на определенную рассылку — её мы укажем по id
Если юзер уже подписан — тогда показываем форму отписки
При том и другом действие происходит отправка писем с кодом, для подтверждения
При переходе по коду, его ловит плагин и выполняет что нужно
Для сниппета мы будем использовать pdoTools. Во-первых, это быстро и удобно, а во вторых велика вероятность, что он уже установлен на сайте. Если же нет — нужно предусмотреть и автоматическую установку, при инсталляции пакета.
На третий день поездки во Франкфурт мы пошли на работу пригласившей стороны. Этой самой стороне, по имени Ирина, нужно было срочно забацать фотосесию дорогих украшений.
Не то, чтобы они были из брилиантов, просто ручная работа и какие-то непростые кристаллы. Я в этом плохо понимаю, но зато смог ознакомиться с бытом небольшой немецкой фотостудии, которая принадлежит нашим русским друзьям.
Давно чесались руки сделать что-то по настоящему полезное на сайте. Например, раздел с утилитами, которые можно было бы использовать каждый день.
И вот встречайте — новый раздел Утилиты, в котором уже есть проверка JSON строк.
В отличии от своего идейного вдохновителя, здесь строки парсятся не javascript, а настоящим json_decode(), и строку можно указывать сразу в параметре ?json=, например вот так.
Сама форма работает через AjaxForm, можно использовать Ctrl+Enter для отправки.
Если вам понравилась идея — пишите чего бы еще подобного сделать, чтобы не сильно сложно, но полезно.
Ездили мы на неделю, с 25го ноября по 1е декабря. Собственно, и первую в жизни визу нам выдали на эти числа. Хочешь — не хочешь, а первого числа нужно свалить из страны.
Утром воскресенья, с тяжелым сердцем, мы запаковали чемоданы и поехали в аэропорт Франкфурта. Руки были постоянно заняты, поэтому фотографий мало.
На этом уроке мы закрепляем работу с ExtJS. Здесь не будет ничего нового, мы рисуем очередную таблицу и задаём для неё процессоры.
Логика работы такая:
У нас есть рассылка
К ней прикреплены подписчики
Нужно взять рассылку, сгенерировать письмо и поставить в очередь
Один подписчик — одно письмо для каждой рассылки
После создания письма его можно удалить или отправить
В итоге у меня получилась вот такая таблица:
На второй день отпуска мы поехали в столицу земли Гессен — город Висбаден.
Населения там в 2 раза меньше, пешеходных зон еще больше, а архитектура старее и интересней. Ну а ехать от Франкфурта всего 40 минут по автобану.
Наверное, я никого не удивлю, если скажу, что в Германии отличные дороги? Родина Mercedess, BMW, Porche и Audi просто не может иметь плохих дорог!
Да и с климатом тут, конечно, попроще. Перепадов от -35 до + 35, как у нас в Сибири — не бывает.
25го числа, мы с женой поехали таки в заслуженный отпуск на неделю.
Так как, за границей ни разу не были, решили что нужно ехать туда, где друзья. Ну, чтобы встретили, погуляли и отправили обратно. Потому что ездить во всякие там Египты и ОАЭ страшновато (я там никого не знаю!) да и незачем, пожалуй.
Хороший друг живет во Франкфурте-на-Майне, туда и полетели.
На прошлом занятии мы сделали таблицу подписок и окно создания.
Теперь нам нужно добавить окно изменения подписки, и сложность здесь в управлении подписчиками — нам нужно окно с вкладками.
На первой те же поля, что и при создании, а на второй — добавление и удаление пользователей.
Для работы с пользователями, нужно написать свои процессоры: выборка, поиск и добавление\удаление к подписке.
Вариант с использованием properties.
Используется в плейсхолдере например так
<img src="[[+properties.first_img_src.0]]" >
Плагин нужно выставить для события OnBeforeDocFormSave
В принципе, всё необходимое для написания приличного дополнения к MODX я уже рассказал.
Мы знаем структуру компонента, умеем собирать его в пакет, управляем контроллерами и меняем интерфейс. Даже немного научились работать с GitHub. Дело за малым — собственно написать функционал.
Этот урок очень объёмный, здесь много листингов кода, с пояснениями. Если что-то непонятно — не нужно переживать и расстраиваться, просто помните, что всегда можно посмотреть исходный код уже готовых дополнений и самого MODX — там есть примеры на все случаи жизни.
Итак, сегодня нам нужно улучшить в админке таблицу и всплывающее окно для создния подписки. Вот, что у нас получится в итоге