Всего 125 983 комментария

Евгений
28 ноября 2021, 16:38
0
вроде завелось включение на да проставляется а на нет просто скидывает заполненность, так тоже сойдет :)

осталось двойную сортировку в pdoresources
Junior
28 ноября 2021, 10:10
0
Вот подскажите
Есть у меня к примеру xml
вот кусок

<code>24175</code>
<vendor>(Пигас)</vendor>
<name>Футболка S-L Happiness 24175</name>
вот какие нужно поставить значение к примеру для тега vendor, т.е. это категория товара (minishop2|categories) на сколько я понял.
Но как его записать в «поле источника» что бы оно тянуло верно в minishop2|categories?
Евгений
27 ноября 2021, 23:53
0
может плагин какой то сдлеать чтобы эту проверку делал и снимал публикацию при сохранении например… хмм
SYAN
27 ноября 2021, 01:40
0
все еще актуально, буду признателен
Артур Шевченко
26 ноября 2021, 21:57
0
Судя по вопросу Вам надо в документацию, поскольку и class_key и id это названия полей ресурса. Ну и да выше я написал плагин на событие OnDocFormSave
Николай Савин
26 ноября 2021, 15:44
0
Это некорректно — к объекту заказа через связи привязаны и доставка и оплата и другие связные объекты. Я выше показал как можно обращаться к ним.
Кроме того у вас ошибка еще и в написании — там не строка, а число. И работало у вас вся эта конструкция только потому что нестрогое сравнение. Корректное написание будет такое:
if ($msOrder->delivery === 1) {
Sergey
26 ноября 2021, 10:06
-1
if ($msOrder->delivery == '1') {
    $deli = 'Способ доставки: Самовывоз';
    } else if ($msOrder->delivery == '2') {
        $deli = 'Курьерская доставка Деливери';
    } else {
   $deli = 'Самовывоз из Новой Почты';
}

if ($msOrder->payment == '2') {
    $pay = 'Способ оплаты: Оплата на карту ПриватБанка';
    } else {
   $pay = 'Способ оплаты: Оплата при получении';
}
// Текст сообщения
$message = "
Новый заказ #{$msOrder->num}
на сумму {$msOrder->cost} грн.

Я делал так, id можно посмотреть в настройках доставки и оплаты
Николай Савин
26 ноября 2021, 10:03
0
Попробуйте заменить
{$msOrder->payment}
На
{$msOrder->Payment->name}
Обратите внимание, что Payment теперь с большой буквы.
Та же история с доставкой
{$msOrder->Delivery->name}
Петр
26 ноября 2021, 05:25
0
Добрый день. Подскажите пожалуйста (сам совсем не разбираюсь). Настроил уведомления о заказе в телеграмм. приходит в таком формате:
Новый заказ #2111/95
на сумму 560 р.
Оплата: 1
— 1. Товар (1 шт.)2. Товар (1 шт.)
— Телефон: 000000000000
Улица: xxxxxxxxxx
Дом: xxxxxx
Квартира: xxxxxx
Комментарий:
1. Способ оплаты пишет не как надо (например оплата картой), а id.
2. И как добавить что бы показывал вариант доставки.
Вот так у меня:
<?php
if($modx->event->name != 'msOnCreateOrder') return;

$token = $modx->getOption('mstelegram_token', null, false);
$recipients = explode(',', $modx->getOption('mstelegram_recipients', null, ''));

$contacts = $modx->getObject('msOrderAddress', array('id'=> $msOrder->address));
$_products = $msOrder->getMany('Products');

// Список товаров в заказе
$i = 0;
$products = '';
foreach ($_products as $product) {
    $i++;
    $products .= "{$i}. {$product->name} ({$product->count} шт.)";
}

// Текст сообщения
$message = "
Новый заказ #{$msOrder->num}
на сумму {$msOrder->cost} р.
Оплата: {$msOrder->payment}
-----
{$products}
-----
Телефон: {$contacts->phone}
Улица: {$contacts->street}
Дом: {$contacts->building}
Квартира: {$contacts->room}
Комментарий: {$contacts->comment}";

$message = urlencode($message);
foreach($recipients as $id){
	$id = trim($id);
	if(!$id) continue;
    $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$id}&text={$message}";
    $ch = curl_init();
    curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true));
    $result = curl_exec($ch);
    curl_close($ch);
}
Алексей
25 ноября 2021, 17:57
0
Можно проще:
&sortby=``
или fenom
'sortby' => '',
Giant Dad
25 ноября 2021, 14:33
0
Не, заказчику надо именно красивые редактируемые таблички в админке
Андрей
25 ноября 2021, 12:41
0
Большое спасибо! Никак не въеду что нужно поставить вместо class_key и id?
Сергей Шлоков
25 ноября 2021, 11:23
+6
Была такая мысль в RU чате контрибьютеров MODX. Только обсуждалось более простое решение — отдельный пакет админки. Т.е. никаких форков и отдельных систем. В качестве аналогии могу привести своё решение ZoomX. В анонсах MODX3 озвучивали, что ядро планируется перевести на SlimFramework. За 8 лет осилили только PSR-4 (автозагрузка классов через Composer). Про Slim уже и не вспоминают. А сейчас фреймворки стали очень популярны и являются де-факто стандартами разработки. И для тех, кто хочет использовать данные подходы и стандарты в MODX, есть решение — компонент ZoomX — ставишь и работаешь как в фреймворке. И никакие форки MODX не нужны. Конечно, полноценное фреймворковское ядро было бы лучше. Но боюсь мы его не дождёмся. А с ZoomX есть возможность работать по современному.
Тоже и с админкой. Отдельный пакет сделать вполне по силам. Даже пусть для начала и с ограниченными возможностями.
Дмитрий
25 ноября 2021, 09:59
+1
Ребята правильно говорят, что этого не будет, потому что сделать это некому. Это долго, сложно, и дорого.
И, собственно, это реально одна из причин, почему у MODX какого-то развития за пределами её текущего положения не будет, как и притока новых разработчиков.
Хотите новых технологий — смотрите в сторону October CMS. Там уже и Vue.JS в админку завезли и много других классных плюшек на подходе. А главное — ребята из сообщества и команды ядра за пару лет сделали в десятки раз больше, чем в MODX было сделано за десять лет.

P.S. комрады, не сочтите за хейт или троллинг)
Тодор
25 ноября 2021, 00:08
0
$order = $modx->getObject('msOrder', $orderID);
$prop = $order->Address->get('properties');
Тодор
24 ноября 2021, 23:52
0
1. если указать пустой emailTpl — прийдет от такой емейл:

2. И все таки стандарным хуком email невозможно обработать переменную типа array — так как в field будут передан не масив со значениями, а строка «ArrayArrayArray», надо либо изменить нейми инпутам или сделать свой хук
alexandr.skyrda
24 ноября 2021, 23:44
0
доп поля делал по этой инструкции
в плагине так вытаскивал

$order = $modx->getObject('msOrderAddress', array('id'=> $properties['id']));
$prop = $order->get('properties');
и дальше из массива prop брал поля нужные, по идее правильно, по крайней мере работает)
Артур Шевченко
24 ноября 2021, 23:39
0
Не знаю как ты создавал дополнительные поля, но предположу, что по инструкции из сети, и тогда, скорее всего, данные сохраняются в поле properties в формате json, в этом случае можно из получить так
$extFields = json_decode($order->get('properties'),1); // в результате получишь массив
alexandr.skyrda
24 ноября 2021, 23:33
0
мне надо было вытащить именно доп поля extfld, которые я создавал