Vladimir
С нами с 25 июня 2021; Место в рейтинге пользователей: #285Как добавить выполнение моего снипета в очередь чтобы не мешать основной работе?
Есть скрипт что отправляет уведомление в ватсап, оно занимает время, хочу поставить его в очередь но не могу понять как, подскажите пожалуйста как это сделать?
Обновился до modx 3.0.3, но не могу грузить файлы, как исправить?
Поставил тип тв, изображение гружу через редактор, пишет ошибку, обновлю файл стоит.
Пытаюсь вывести на сайт, оно не появляется.
Пробовал через FastUploadTv тоже не работает, так же есть ошибки.
Пытаюсь вывести на сайт, оно не появляется.
Пробовал через FastUploadTv тоже не работает, так же есть ошибки.
Could not load class: modPhpThumb from modphpthumb
Problem getting service modphpthumb, instance of class modPhpThumb, from path /var/www/vhosts/www.ww/www.ww/core/model/phpthumb/
Как получить отрендеренный output от ресурса по айди?
Нужно получить полностью отрендеренный ресурс, но допустим через консоль.
Я знаю что можно получить при событии, но как получить просто из-за запроса, допустим через консоль или плагин
Я знаю что можно получить при событии, но как получить просто из-за запроса, допустим через консоль или плагин
modx DebugParser показывает {1 | resource}, но на странице нет, как его исправить?
При заходе и проверке страницы через дэбаг, вижу такую конструкцию
{1 | resource}
Найти не могу, просто не вижу, даже нет такой конструкции.№2 {1 | resource} 52 0,0272337 0,364833
каких-то 52 запроса делает Как создавать опции msync из списка?
Есть простой список с опциями синхронизациями, нужно их все заполнить из него быстро.
Что пытался:
1) Через newObject но он вообще не находит объект опции, схему смотрел класс копировал. Пытался через $xpdo-> а так же $modx
Что пытался:
1) Через newObject но он вообще не находит объект опции, схему смотрел класс копировал. Пытался через $xpdo-> а так же $modx
$newMsPr = $xpdo->newObject('mSyncProductProperty');
$newMsPr->set('source', 'ТЕСТПРИКОЛ');
$newMsPr->set('type', 1);
$newMsPr->set('target', 'testprikol');
$newMsPr->set('active', 1);
$newMsPr->set('default', 0);
$newMsPr->set('is_multiple', 0);
$newMsPr->set('is_primary', 0);
$newMsPr->save();
2) Пытался с эмулировать запрос. Но получал лишь 401 ошибку. Выполнял в косноли<?php
function transliteCyrilic($value){
$converter = array(
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
'е' => 'e', 'ё' => 'e', 'ж' => 'zh', 'з' => 'z', 'и' => 'i',
'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't',
'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch',
'ш' => 'sh', 'щ' => 'sch', 'ь' => '', 'ы' => 'y', 'ъ' => '',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
);
$value = mb_strtolower($value);
$value = strtr($value, $converter);
$value = mb_ereg_replace('[^-0-9a-z]', '_', $value);
$value = mb_ereg_replace('[-]+', '_', $value);
$value = trim($value, '_');
return $value;
}
$chars = array("Объем, л", "Номенклатура");
$translated_arr = array();
$createUrl = 'https://example.com/assets/components/msync/connector.php/';
foreach ($chars as $char) {
$params = array(
'action' => 'mgr/property/create',
'id' => '',
'default' => '',
'source' => $char,
'type' => 1,
'target' => transliteCyrilic($char),
'is_multiple' => 0,
'is_primary' => 0,
'active' => 1
);
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => $createUrl,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($params)
));
$response = curl_exec($myCurl);
echo var_dump($response);
die();
curl_close($myCurl);
}
die();
3) Сделал это всё на питоне, там авторизовывался в адмнке, но так же 401 ошибка.import re
from requests import Session
LOGIN_CONTEXT = "mgr"
RETURN_URL = "/manager/"
USERNAME = "ashdjkashldkfjhasldf"
PASSWORD = "sadkfas;lkdjfh;lasd"
LOGIN_URL = "https://example/manager/"
msync_coonector = 'https://example/assets/components/msync/connector.php/'
def main():
chars = {"Объем, л":"obem__l","Номенклатура":"nomenklatura"}
with Session() as session:
req = session.post(LOGIN_URL, data={"login_context": LOGIN_CONTEXT , 'returnUrl': RETURN_URL, 'username': USERNAME, 'password': PASSWORD, 'login': "1"})
for char_key, char_value in chars.items():
send_params = {
'action': 'mgr/property/create',
'id': '',
'default': '',
'source': char_key,
'type': 1,
'target': char_value,
'is_multiple': 0,
'is_primary': 0,
'active': 1
}
create_property = session.post(msync_coonector, data=send_params, timeout=60)
print(create_property.text)
if __name__ == '__main__':
main()
4) Пытался прям на месте через повторить запрос создания опции через chrome tools, но даже там получил ошибку 401, уверен что это из-за mod http auth Почему я не могу сохранить данные в 2 новых поля при создании заказа?
При создании заказа, в два поля добавляются данные, но получается так что у меня добавляются и сохраняются дданые лишь в последний стоящий в коде, а не в оба. Все данные работают, если всё пробовать в консоли всё великолепно работает.
$msOrder->set('myfield', $fielddata);
$msOrder->set('myfield2', $fielddata2);
$msOrder->save();
Пытался и так$msOrder->set('myfield', $fielddata);
$msOrder->save();
$msOrder->set('myfield2', $fielddata2);
$msOrder->save();
И разделял даже плагины на отдельные куски, то есть в каждом плагине было по 1 сохранению, но всё так же заполняется только последний, хотя данные для обоих. Как вывести в лог списки, json объекты, в место всего получаю либо пустоту либо 1, как исправить?
При попытки вывести в лог получаю просто пустоту, хотя объект есть, ошибок нет.
$modx->log(modX::LOG_LEVEL_ERROR, 'ORG');
$modx->log(modX::LOG_LEVEL_ERROR, $dt['invoiceId']);
$modx->log(modX::LOG_LEVEL_ERROR, $_POST);
$modx->log(modX::LOG_LEVEL_ERROR, print_r($dt));
Пытался через var_dump
через print_r
Никак не получается, что я делаю не так? Как сменить статус заказа при успешной оплате для minishop2?
После оплаты, идёт перенаправление на страницу, в параметрах странице уже есть такие параметры как
Так вот как после завершение удачной оплаты, как дать знать минишопу что заказ оплачен и можно менять статус на «Оплачено» допустим?
Модуль оплаты сделан вручную, существующих для нужной мне системы нет.
В моём модуле есть 2 метода что были переопределены, это метод «Send» и метод «getPaymentLink», мне нужно добавить ещё что-то? или что нужно сделать?
Так же самой системой оплаты на мою ссылку успешной оплаты, приходит ответ, и в ответе есть ключ с типом code
action,msorder,mscode
все они имеют значение что и должны, 1 это после успешной оплаты получит «success» 2й, это номер заказа, 3й это хеш заказа.Так вот как после завершение удачной оплаты, как дать знать минишопу что заказ оплачен и можно менять статус на «Оплачено» допустим?
Модуль оплаты сделан вручную, существующих для нужной мне системы нет.
В моём модуле есть 2 метода что были переопределены, это метод «Send» и метод «getPaymentLink», мне нужно добавить ещё что-то? или что нужно сделать?
Так же самой системой оплаты на мою ссылку успешной оплаты, приходит ответ, и в ответе есть ключ с типом code
Как создать новый метод оплаты для minishop2?
Можете поделиться статьями как добавить свой метод оплаты, суть в оплате такая, получаем объект авторизации передав нужные поля, а так же номер заказа и сумму, и потом передать весь ответ от запроса на фронт, где с помощью js, будет создан объект оплаты, а так же уникальная ссылка, и перенаправит тоже через js. Сам метод оплаты вот epayment.kz/ru/docs/platezhnaya-stranica
Как можно это интегрировать с минишопом?
Сам код вроде есть, но можно ли его отправлять на сам сайт, не будут ли уязвимости.
Пока что код идёт через core, хотя это нигде прикреплено к минишопу, да и получается 403 ошибка, так как пытается подключить к core.
Как можно это интегрировать с минишопом?
Сам код вроде есть, но можно ли его отправлять на сам сайт, не будут ли уязвимости.
Пока что код идёт через core, хотя это нигде прикреплено к минишопу, да и получается 403 ошибка, так как пытается подключить к core.
<?php
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'/index.php';
$params = [
'grant_type' => 'client_credentials',
'scope' => 'webapi usermanagement email_send verification statement statistics payment',
'client_id' => $modx->getOption('epay_client_id'),
'client_secret' => $modx->getOption('epay_client_secret'),
'invoiceID' => $_POST['invoiceId'],
'amount' => $_POST['amount'],
'currency' => 'KZT',
'terminal' => $modx->getOption('epay_terminal_id'),
'postLink' => 'https://'.$_SERVER['HTTP_HOST'].'/core/components/epay/succsess.php',
'failurePostLink' => 'https://'.$_SERVER['HTTP_HOST'].'/core/components/epay/error.php'
];
$debug = $modx->getOption('epay_debug');
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => $debug == 1 ? 'https://testoauth.homebank.kz/epay2/oauth2/token' : 'https://epay-oauth.homebank.kz/oauth2/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($params)
));
$response = curl_exec($myCurl);
curl_close($myCurl);
header('Content-type: application/json');
echo $response;
Как вариант этот код запихнуть в плагин и поставить обработчик и проверку, но это ведь тоже не правильно. Что лучше сделать в данной ситуации? Как получить id заказа, при событии msOnCreateOrder?
Пытался так
Суть задачи, при создании заказа, поставить галочку для заказа, галочка создана для msOrder но для этого нужно получить сам msOrder
$order->get('id');
и $order->get('order_id');
но никак.Суть задачи, при создании заказа, поставить галочку для заказа, галочка создана для msOrder но для этого нужно получить сам msOrder