Иван Бочкарев

Иван Бочкарев

С нами с 11 июня 2013; Место в рейтинге пользователей: #11

[FetchIt] - Форма с валидацией номера телефона и выбором страны

Привет форум!

Решил раскрыть такой кейс, как форма с полем ввода номера телефона, ведь с такой задачей разработчик сталкивается частенько. Она далеко непростая и имеет подводные камни. Так давайте же нырнём и первое, что нужно сделать — это разбить её на подзадачи.

  • Валидация: Тут пока всё понятно, нам по хорошему нужно валидировать номер телефона.
  • Форматирование: А с этим пунктом веселее, т.к. пользователи могут писать номер телефона в разных форматах: 8 *** *** ** **, +7 ***-***-**-** +7 (***) *******, 8 (***) *** **-** и еще 100500 вариантов.
  • Разные страны: А теперь всё серьезнее, дело в том, что разные страны это разное форматирование и соответственно разная валидация.
Вы скажете — это очень просто, человечество бороздит космос, электрифицировало города и сёла, придумало интернет и в частности Viber. И вы будете правы, хотя, если бы все люди были похожи на меня, то мы остались бы в первобытном обществе с палками и камнями… но с Viber-ом😀.

Баха Волков
03 марта 2023, 13:10
modx.pro
6
2 795
+18

[FetchIt] - Полноценная замена AjaxForm без зависимостей

Представляю вашему вниманию новый бесплатный компонент MODX Revolution для обработки и отправки форм, который пришёл на замену AjaxForm. И давайте начнём сразу с преимуществ и различий:


Баха Волков
02 марта 2023, 14:02
modx.pro
7
2 258
+26

ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile).

Привет, друзья!
Представляю компонент, который предназначен для добавления новых полей в ресурсе и профиле пользователя. Работает в MODx 2 / 3.
Aleksandr Huz
01 февраля 2022, 18:52
modx.pro
7
3 841
+26

Локальная разработка в Docker

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

Главное, что нам понадобится — это Docker.
Скачать его можно по этой ссылке: https://www.docker.com/get-started.

Илья Уткин
10 октября 2021, 13:06
modx.pro
4
6 070
+19

Отдаем модные форматы картинок в webp и avif напрямую через nginx и apache в обход разметки



Всем привет!
Я тут работал над одним проектом, в котором очень много контентной и интерфейсной графики, десятки тысяч изображений и, конечно, возник вопрос оптимизации сайта, чтобы удовлетворить требования поисковых систем.
Энтузиазма добавили, появившиеся относительно недавно у гугла, так называемые Core Web Vitals.
Кто не в курсе это пачка технических показателей качества сайта, которые скоро будут включены в алгоритм ранжирования и все тормознутые сайты из-за них, типа, покатятся вниз.
Ну в общем, встала задача оптимизировать картинки, а также сделать так, чтобы не пришлось переписывать кучу html кода, чтобы эти картинки туда вставить.
Семён Кудрявцев
26 апреля 2021, 23:44
modx.pro
20
5 632
+21

[Расширяем miniShop2] Быстрая смена статуса заказа через контекстное меню


Заказчика запарило для смены статуса лазать в полное редактирование заказа, попросил сделать что-то быстрое и простое. На скриншоте выше конечный результат. Чтобы получить такой же, файлы из этого репозитория закиньте себе в папку /assets/ и создайте плагин, который описан в конце статьи. Однако, я настоятельно рекомендую почитать статью, чтобы понимать принцип расширения всего этого дела.
Павел Гвоздь
12 января 2021, 20:54
modx.pro
16
1 479
+25

Работаем на MacOS с Valet Plus

Привет, друзья!

Многие знают, что я всегда был против локальной разработки, и предпочитал использовать виртуальную машину с настоящим GNU/Linux, где всё работает точно так же, как и на хостинге. Никаких XAMPP, WAMP и прочих Denwer.

Но недавно меня познакомили с Valet Plus, и как-то очень уж он мне понравился. Внимание, Valet работает только на MacOS, поэтому дальше стоит читать исключительно обладателям этой ОС.

Итак, Valet Plus, это улучшенная версия обычного Laravel Valet, которым я ни разу не пользовался. Смысл в том, что вам на компьютер устанавливаются PHP, Nginx, DnsMasq и MySQL, а потом постоянно работают в фоне. И когда вы добавляете новый сайт, он просто сразу начинает работать по адресу типа new-project.test. Не нужно править /etc/hosts и колдовать с настройками Nginx, всё работает само.

И самое важное, что работает точно так же, как и на хостинге, потому что MacOS — это Unix-совместимая система, очень похожая на GNU/Linux и FreeBSD, которые крутят 99% всех shared-хостингов. И вы устанавливаете нормальные версии сервисов для неё, а не какие-то специально приготовленные.
Василий Наумкин
28 мая 2020, 07:10
modx.pro
6
4 799
+21

[MODX/Laravel] DevDocker - удобная разработка под Linux

Всем приветики, в общем ни для кого не секрет что докер — это шикарная магическая штука и где то там его активно используют но не в modx конечно, где код до сих пор пишут в браузере. В общем 4 года я был в поиске оптимального решения как правильно и удобно вести разработку проектов (раньше на MODX, сейчас на фреймворках) и в итоге могу точно заявить, что я нашел идеальное решение! Под катом я расскажу все что я пробовал за 4 года и минусы каждого решения, ну а не терпеливые могут просто посмотреть видео сборки, которая решает их все или перейти сразу к гитхабу:

Видео

GitHub

Pavel Zarubin
21 апреля 2020, 02:12
modx.pro
7
1 933
+27

Генерация файла sitemap.xml для мультиязычного сайта

Многие из нас делают мультиязычные сайты на контекстах. Контексты в MODx — вообще очень крутая штука, наверное, одна из самых крутых. На текущем большом мультиязычном проекте, SEO оптимизатор скинул мне статью в гугле и сказал, что нужно оптимизировать сайт под неё. Вопрос по теме задавали аж два года назад и ответов не последовало. Но народ вроде дал мотивацию тратить время на статью…
iWatchYouFromAfar
03 марта 2020, 22:28
modx.pro
15
4 354
+19

Шпаргалка на все случаи жизни

Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Михаил
07 февраля 2020, 21:42
modx.pro
70
2 139
+35