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

1 плагин - 3 лайвхака

Всем привет, порой работа менеджеров в админке modx — сущий ад. Сегодня поступил заказ с просьбой решить несколько проблем.

Проблема №1:
В tinyMCE все изображения которые вставляются имеют атрибуты width и height, и не имеют нужных классов

Проблема №2:
При загрузки файлов в каталог, где уже есть такое имя, файлы переписывают друг друга, необходимо было сделать добавление префикса для файлов с одинаковым именем

Проблема №3:
Иногда менеджеры грузят неприлично большие изображения, что непосредственно влияет и на скорость загрузки страницы и на общий размер файлов

Что делает плагин:
  1. Транслитерация файлов при загрузке, добавление префикса если файл дублируется
  2. Уменьшает загружаемое изображение до 1200px по ширине
  3. Из поля content достает все img, вырезает у них атрибуты width и height, вместо них подставляет класс img-thumbnail
Под катом — код с комментариями.
Pavel Zarubin
26 ноября 2018, 17:42
modx.pro
38
4 090
+19

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

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



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

Что выгружает:
* Юзеров, у которых есть конфиг dumper.yaml в корне
* Папки /root/ и /etc/
* Логи
Павел Гвоздь
25 ноября 2018, 10:08
modx.pro
8
1 507
+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
6
3 722
+5

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

Являюсь единственным пользователем-администратором личного блога на MODx, поэтому есть абсолютно все разрешения.
Игорь
11 июля 2018, 18:37
modx.pro
2
1 721
+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
2
4 196
+2