Pavel Zarubin

Pavel Zarubin

С нами с 07 сентября 2016; Место в рейтинге пользователей: #17
Отправить деньги

[EmailQueue] - Очередь писем

С сайта бывает требуется отсылать много писем. Но многие хостеры ограничивают число писем что можно сразу отправить. Например на одном хостинге можно отправить только 60 писем в минуту. Чтобы обойти это ограничение нужно организовывать очередь писем и отправлять письма частями по, например, 50 штук. Чтобы не писать такую очередь каждый раз когда отправка многих писем нужна в компоненте, написал отдельный компонент что организует такую очередь.
Александр Туниеков
10 июня 2018, 05:44
modx.pro
7
2 758
+12

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



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

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

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

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

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

Іван Клімчук
30 апреля 2018, 22:41
modx.pro
23
15 460
+15

Хук Formit для обновления сохраненной формы и перемещения прикрепленного файла

Всем привет! Это первая моя статья, поэтому сильно не ругайте!
Столкнулся с задачей, в которой нужно реализовать отправку формы с прикрепленными файлами. При этом форма должна сохраняться в админке.

Для решения задачи были выбраны компоненты: Formit, AjaxForm.
Сразу скажу, что использую Fenom и все шаблоны, чанки, сниппеты и хуки у меня файловые. Благо Formit умеет работать с файловыми хуками.
Максим
20 февраля 2018, 08:39
modx.pro
13
2 814
+9

Женим mFilter2 и Gallery

Выводим картики Gallery, фильтруем с помощью mFilter2.
Будет доступно два фильтра по tag и description



Необходимые компоненты
Устанавливаем необходимые компоненты:
Gallery
mSearch2
Володя
12 февраля 2018, 14:19
modx.pro
17
2 344
+16

[msChart] Графики для miniShop2

msChart добавляет графики на страницу заказов miniShop2. Выглядит всё это дело так:

Доступны: Статус, Оплата, Доставка.
Марат Марабар
24 января 2018, 13:12
modx.pro
4
2 889
+13

Вывод коллекций в коллекциях

Всем привет!

Не так давно встала задача, чтобы в админке ресурс с типом Collections мог выводить дочерние ресурсы с таким же типом Collections. Поискал в сети наткнулся на статью https://modx.pro/help/10929/, где описывалась похожая задача, но решения никто не подсказал.

Мое решение не претендует на совершенство и при обновлении компонента скорее всего слетит, но поставленную задачу решает сполна.

И так решение:
В файле core/components/collections/processors/mgr/resource/getlist.class.php ищем строку 325
'class_key:!=' => 'CollectionContainer',
и комментируем.

Вот такое короткое решение, которое сэкономило кучу времени.

Спасибо за внимание!
Артем
10 января 2018, 16:50
modx.pro
8
2 192
+6

ExtJs и зависимые SuperBoxSelect

Добрый день.
Возник вопрос реализации зависимых мультиселектов.
Подскажите как можно передавать необходимый параметр в `baseParams` при клике на данный элемент.
Имеем некий мультиселект:
Component.combo.MultiSelect = function (config) {
	config = config || {};
	Ext.applyIf(config, {
		xtype: 'superboxselect',
		allowBlank: true,
		...
		store: new Ext.data.JsonStore({
			fields: ['id', 'name'],
			url: Component.config.connector_url,
			baseParams: {
				action: 'mgr/component/processor',
				ids: config.ids // сюда должен подтягиваться список id`шек
					// из предыдущего мультиселекта, но только по клику на данный елемент
			}
		}),
		...
		displayField: 'name',
		valueField: 'id',
	});
	Component.combo.MultiSelect .superclass.constructor.call(this, config);
};
Ext.extend(Component.combo.MultiSelect , Ext.ux.form.SuperBoxSelect);
Ext.reg('component-combo-superselect', Component.combo.MultiSelect );
man
man
14 декабря 2017, 12:55
modx.pro
9
2 382
0

Работа с MODX из IDE без админки

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

Прямо сейчас проходит MODXpo 2017 и я хочу поделиться с вами своим, только что показанным, докладом.
Идея в том, чтобы разрабатывать сайты без логина в админку, прямо из PhpStorm.



Я предлагаю делать это через свой пакет, который установит нужные ресурсы, настройки, шаблоны и вообще что угодно. Это не для разработки дополнений, это для разработки сайтов.
Василий Наумкин
11 ноября 2017, 12:15
modx.pro
71
8 512
+30

Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo

На modx.pro уже есть статья от Володи по генерации PDF.
Ниже хочу предложить альтернативный вариант формирования PDF файла из данных форм FormIt с использованием шаблонизатора Fenom и бесплатного компонента PDFresource
Klike
06 ноября 2017, 10:49
modx.pro
26
5 819
+12

CDEK - плагин для выгрузки заказа и получения трек-номера

На волне публикаций Паши Зарубина (тыц, тыц, тыц) решил выложить прикладное решение, которое моему клиенту немножко автоматизирует жизнь и вполне себе нравится. Началось это с того, что в msCDEK не было выгрузки заказов в личный кабинет CDEK. А закончилось тем, что Паша написал свою ГдеПосылку, которая следит за передвижениями посылки по её ID в системе CDEK в том числе. Мой плагин выполняет две задачи:
1. При установке определенного статуса (названного нами «Выгрузка в CDEK») отправляет в CDEK xml-запрос в соответствии с их документацией, по которому в системе создается накладная
2. Принимает в ответ ID накладной и пишет его в поле track заказа.

Для работы в этом плагина нужны оба дополнения — msCDEK и msGdePosylka, поскольку плагин писан немножко на коленке и второпях и некоторые функции я дергал из компонента msCDEK. При наличии времени и желания вполне можно эти функции вынести в отдельный класс и обойтись без msCDEK.

mngatoff
04 ноября 2017, 02:00
modx.pro
6
2 455
+6