Ilya Gureshidze

Ilya Gureshidze

С нами с 29 декабря 2017; Место в рейтинге пользователей: #506

Добавить поле на редактирование к ресурсу [Решено]

Ребята привет!
Добавил в таблицу modx_site_content два поля, в которых хочу хранить идентификаторы из 1С (36 символов).
Хочу научить modx работать с ними как с обычными полями формы документа и никак не могу понять, как это нормально сделать. Расширял классы пользователей, их профилей, заказов minishop2 — все видит и все работает как надо, но как только пытаюсь добавить в field и fieldMeta эти поля аналогичным образом для modResource — сайт вообще перестает видеть ресурс и при клике для открытия формы на редактирования говорит, что ресурс не найден.
Как правильно поступить в таком случае?
Ilya Gureshidze
21 августа 2019, 18:04
modx.pro
1 174
0

Очередь запросов к бд

Ребята, привет!
Подскажите, пожалуйста, как сделать очередь запросов при таком ТЗ
С целью снижения нагрузки на сервер и распараллеливания процессов применяются очереди заданий, реализованные с помощью:
1. mysql — те очереди, данные из которых нельзя потерять в случае зависания/перезагрузки сервера
2. redis – все прочие очереди заданий.
Задание из очереди выполняется не раньше, чем указанное в нём время выполнения. При постановке в очередь время выполнения заданий может быть следующим:
1. Выполнить немедленно
2. Выполнить по очереди после всех заданий
3. Выполнить в указанное время
Ilya Gureshidze
31 июля 2019, 18:10
modx.pro
485
0

Событие на сохранение объекта migx db

Всем привет!
Сделал отдельный раздел в админке (туториал jonybang.blogspot.com/2015/09/migx-db-modx.html), где пользователь может создавать список объектов с определенным набором полей, почти как у ресурса. есть поле alias, которое хранит как раз буквенный код объекта, по которому потом строится ссылка на этот объект. Вот только сейчас его приходится заполнять вручную.

Хочу сделать автоматическую транслитерацию при сохранении нового объекта или обновлении существующего в MIGX db.

Кто-то сталкивался с подобным? что для этого нужно сделать? По сути мне достаточно сделать как-то обработчик на событие обновления или создание нового объекта кастомного класса
Ilya Gureshidze
19 июня 2019, 16:51
modx.pro
1
861
0

Отложенная оплата заказа

Ребята. привет!
Подскажите, пожалуйста, можно ли сделать следующим образом: Клиент создал ms2 заказ с выбранным методом оплаты с условным названием (Допустим «Оплата онлайн»), но его не редиректит на страницу оплаты, а просто подтверждается выполнение заказа (как при самовывозе по умолчанию). Затем, спустя какое-то время ему менеджер говорит, что заказ проверен и утвержден, оплатите. Он заходит на страницу, где можно указать номер заказа, сумму и ряд доп.полей для разных нужд.

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

Иными словами, есть ли какой-то метод/процессор, который я могу вызвать, получив в коде объект заказа, чтобы после того, как форма с номером заказа и суммой отправилась — клиента редиректнуло на страницу оплаты сбера?
Ilya Gureshidze
10 июня 2019, 14:49
modx.pro
655
0

Сайт-словарь MIGX,Localizator

Доброе утро!
Собираюсь делать сайт-словарь для медицинской компании. Мультиязычный (Русский, Английский, Казахский).
Есть язык интерфейса, а есть язык поиска.
Реализовал мультиязычность на Localizator. Основной язык — русский. Англ и каз. — /en/ и /kk/ соответственно.
Собираюсь создать Словарь как tv поле внутреннего ресурса Словарь (его не видит пользователь) через migx.
Соответственно, поиск, пагинация и фильтр будет по этой «базе» слов. То есть для ввода слова в этот список нужно будет для каждого из языков указать соответствующие поля (название, описание, источник информации, примеры использования и внутренние ссылки на другие объекты этого списка(типа синонимы)).
Насколько идея реализовывать на migx вообще здравая на ваш взгляд и будет ли лучше использовать migxdb или вообще другой подход? Как лучше будет создавать базу слов? чтобы поиск по ним был адекватным по времени и удобству? Есть ли у кого примеры чего-то подобного?
Ilya Gureshidze
25 апреля 2019, 11:42
modx.pro
1 140
0

Изменить имя товара при помещении в корзину.

Ребята, привет!
Подскажите, пожалуйста. как можно поменять название товара при помещении в корзину?
На msOnBeforeAddToCart меняю цену и еще ряд параметров. А как с pagetitle быть? Я так понимаю, что товары в корзине хранятся только по id и имя тянется из соответствующего ресурса?
Ilya Gureshidze
04 февраля 2019, 17:24
modx.pro
799
+1

Принудительное разлогинивание пользователя после смены пароля

Всем привет!
Использую Office для ЛК. Хочу после того, как пользователь сменил пароль — принудительно его разлогинивать на всех устройствах.Насколько мне известно, по умолчанию, office позволяет пользователю перемещаться и совершать действия после смены пароля до следующего входа.
Буду благодарен за любой совет и подсказку. Пока думаю о процессоре $modx->runProcessor('/security/logout') и где его вызывать
Ilya Gureshidze
11 декабря 2018, 16:46
modx.pro
1 378
0

Оплата заполненной формы как товара minishop2

Всем привет!
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
&hooks=`pdf,makeOrder,email`
Код makeOrder:
<?php
$pdf_link = $hook->getValue('pdf_link'); 
// инициализируем miniShop2
$scriptProperties = array(
  'json_response' => true,
  'max_count' => 1000,
  'allow_deleted' => false,
  'allow_unpublished' => false
);

$miniShop2 = $modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);

// опции товара, если они необходимы
$option = array();
/*$option = array(
  "option1" => "value1",
  "option2" => "value2",
);*/
// инициализируем miniShop2 в текущем контексте
$miniShop2->initialize($modx->context->key, $scriptProperties);
// чистим корзину
$miniShop2->cart->clean();
// добавляем товар в корзину
$arr = json_decode($miniShop2->cart->add($_REQUEST["id"],1,$option), true);

// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));

// формируем заказ
$miniShop2->order->add('receiver', 'Иван Иванов');
$miniShop2->order->add('email', 'ilyagureshidze90@mail.ru');
$miniShop2->order->add('phone', '89616999999');
$miniShop2->order->add('comment', $pdf_link);
$miniShop2->order->add('payment', 3); // Робокасса по умолчанию
$miniShop2->order->add( 'delivery', 1);
$orderfeed = $miniShop2->order->submit();

$arr = json_decode($orderfeed,true);

// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));

if($arr['success']==true&&$arr["data"]["msorder"]){
    $url = $modx->makeUrl(21);
    //$output["location"] = $url.'?msorder='.$arr["data"]["msorder"];
    $modx->sendRedirect($url.'?msorder='.$arr["data"]["msorder"]);
}
return true;
Заказ формируется и приходит уведомление о новом заказе со ссылкой, на сгенеренный файл, который является результатом заполнения формы и собственно тем, что я и хочу продавать. Помимо этого там есть стандартная строка о том, что «Если вы прервали процесс оплаты перейдите по ссылке ссылка_на_платежный_сервис»
Оплата будет через Робокассу или Яндекс.Кассу.

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

Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит
Ilya Gureshidze
01 октября 2018, 14:52
modx.pro
898
0

Программно выбрать элементы фильтра mfilter2

Ilya Gureshidze
20 августа 2018, 02:39
modx.pro
1 022
0

msearch2 для заказов minishop2

Всем привет!
Ребята, можно ли как-то использовать msearch2 (mfilter2) для организации поиска по списку сделанных пользователем заказов, например, указав диапазон дат и выбрав статусы (Все, новые или завершенные)?
Или нужно только писать свой сниппет, который будет смотреть данные из POST и искать заказы с заданными параметрами?
Ilya Gureshidze
24 июля 2018, 18:27
modx.pro
808
0