Для разработчиков

[Gvozdb/Dumper] PHP библиотека для создания резервных копий сервера

Я тут написал библиотеку для создания резервных копий сервера на моём любимом PHP.
Хочу поделиться с вами!



Что умеет:
* Поддерживает MySQL
* Сжимает в Zip
* Выгружает на Яндекс.Диск

Что выгружает:
* Юзеров, у которых есть конфиг dumper.yaml в корне
* Папки /root/ и /etc/
* Логи
Павел Гвоздь
25 ноября 2018, 10:08
modx.pro
7
711
+7

Формирование JavaScript файлов и кусков кода для дополнений

Всех приветствую. Есть ситуация, с которой сталкиваюсь на каждом сайте, к которому заказчик предъявляет требования по части валидности верстки\кода. Этот пост про ситуацию с кусками java-скриптов, которые подключают в код страниц дополнения modx. Например, AjaxForm, MinifyX и MiniShop2 подтягивает в код страницы блоки javascript которые открываются тегами:
<script type="text/javascript">
И этот тег не проходит валидатор validator.w3.org
Валидатор выдает такое предупреждение:
The type attribute is unnecessary for JavaScript resources.
Чтобы исправить эту ситуацию — нужно убрать из тега атрибут type=«text/javascript».

Господа разработчики, постарайтесь обновить свои дополнения, чтобы сделать код сайтов на modx более валидным.

Заранее благодарен!

UPD.: Решение проблемы здесь bazstudio.com/blog/320-make-valid-the-auto-js-files-in-modx
Wassi Wassinen
24 ноября 2018, 18:58
modx.pro
5
1 161
+5

[MODX CRM] Нужен ли сообществу подобный компонент?

Друзья, предлагаю обсудить необходимость компонента, реализующего функционал CRM на базе MODX

Часто, работая с RetailCRM, я все больше задумываюсь что мне пригодились бы многие вещи оттуда, внутри родного MODX при работе с eCommerce. Посудите сами, насколько полезно было бы заранее узнать о пользователе:
  • Как часто, с каких устройств пользователь посещает наш сайт
  • Что он делает на сайте, какие товары просматривает, какие кладет в корзину, какие в итоге покупает (классическая воронка продаж)
  • Откуда к нам пришел (utm-метки, реферальные хвосты, сайты-источники, поисковые запросы и т.п.)
  • География, Сферы интересов, Возраст, Пол (пока не знаю как, но думаю эти данные можно вытянуть из аналитических сервисов)
Расскажу несколько подробнее, что я предлагаю сообществу на обсуждение и оценку.
Николай Савин
13 ноября 2018, 16:09
modx.pro
1
1 344
+13

Отправка Email о регистрации при оформлении заказа в miniShop2

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

Как отправить пользователю письмо, с первоначальными регистрационными данными (логин, пароль)?

Стандартный комплект методов нашего любимого интернет-магазина такого не предусматривает. А значит руки в плечи и пишем плагин.
Николай Савин
16 октября 2018, 12:30
modx.pro
27
2 212
+16

Хитрый вирус, проверьте свои сайты

Пишу в вопросы, т.к. не хватает рейтинга.

Уже писал насчёт этого вируса.

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

Николай
18 сентября 2018, 14:47
modx.pro
2 404
-3

Принудительное задание шаблона документу в момент создания

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


Кудашев Сергей
13 сентября 2018, 14:49
modx.pro
5
1 374
+5

Ускоряем массовое обновление ресурсов в 3 раза

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


Так, например, я столкнулся с куском кода в ядре, который увеличивает время выгрузки большого кол-ва товаров в ~3 раза, выполняя одно и то же ресурсоёмкое действие каждый раз, когда скрипт запускает обновление ресурса через процессор modResourceUpdateProcessor.

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

Я говорю вот об этой строчке кода. Давайте попробуем разобраться, что же с ней не так!
Павел Гвоздь
11 сентября 2018, 14:29
modx.pro
27
1 145
+19

Решение проблемы Код: 200 OK {«success»:false}

В общем, сам решил проблему с ошибкой Код: 200 OK {«success»:false} (ага, я знаю, что это не ошибка, это же фича MODx)

Сообщение с «ошибкой» появлялось при клике по любому из ресурсов (Страница или Tickets), нажимал «ОК» и продолжал работу…
Связанное с этим же:
Были скрыты от просмотра Шаблоны и Дополнительные поля, некоторые из шаблонов/полей не мог отредактировать даже из адресной строки, при редактировании вместо названия шаблона показывался только номер.

На modx.pro тут и тут — оставлял посты с проблемой, которую так и не решил, т.е. практически три месяца сидел как на пороховой бочке.

Являюсь единственным пользователем-администратором личного блога на MODx, поэтому есть абсолютно все разрешения.
Игорь
11 июля 2018, 18:37
modx.pro
2
924
+7

Самые необходимые пакеты

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

  • Хсотинг 4000
  • Яндекс касса mspYaCassa -500
  • Доп опции msOptionsPrice2 — 990
  • фильтрация и поиск mSearch2 — 2000
  • Быстрый просмотр QuickView — 600
  • Региональные цены msGLPrice — 1000
  • Покупка в один клик msOneClick — 1000
  • Связанные товары msAddLinked — 500
  • Купоны, скидки msDiscount -1500
  • Пункты выдачи msPointsIssue — 1500
  • Личный кабинет Office — 2000
  • Импорт экспорт msImportExport — 2000
  • Связь с CRM Битрикс modBitrixCRM — 2000
  • Итого:19590
Кстати, не плохо бы было пустить в продажу «Пакетное предложение», ну и со скидочкой. Ведь почти любой нормальны магазин включает эти компоненты. Плюс минус.
Сейчас конечно шикарная распродажа идет. Нужно будет достать заначку и накупить впрок))
Леонид
27 июня 2018, 21:09
modx.pro
1
3 025
+2

Защита дополнений в деталях



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

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

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

Прежде чем продолжить, стоит ознакомиться с специальным методом сборки пакетов – «Сборка transport-пакета без установки MODX». Инструкция написана в далеком 2015 году, однако описанный метод работает до сих пор. Отличие в том, что подход не требует установки MODX для сборки пакета, т.е. сборку запустить можно откуда угодно, имея только исходники пакета и xPDO.

Детали внутри.

Иван Климчук
30 апреля 2018, 22:41
modx.pro
19
8 360
+15