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

kudesia
22 апреля 2021, 22:27
0
Может компонент отправлять файл на почту заказчику?
Семён Кудрявцев
22 апреля 2021, 22:03
0
Автору респект за классные идеи и очень крутые компоненты.
Есть вопрос — поизучал компонент, наткнулся на пару моментов, про которые хотелось бы спросить
1)Светится абсолютный путь на сервере, по мне это не очень «секьюрно» раскрывать файловую структуру выше корня сайта.

2)Иногда последняя вкладка формирования файла — выгрузка и параметры, падает с ошибками

То есть файл она формирует, но отредактировать его уже не получается, там просто пусто и ошибка в консоли на скрипт.
Буду благодарен если автор прокомментирует эти моменты.
Sergey
22 апреля 2021, 21:54
0
Спасибо, работает ))

Еще не подскажете пожалуйста как получить и отправить доп. значения из заказа минишоп. Поля созданы как тут https://modx.pro/solutions/10040
Николай Савин
22 апреля 2021, 21:04
+1
В вашем случае size из заказа нужно вытаскивать примерно так
$options = $product->get('options');
$size = $options['size'];
Sergey
22 апреля 2021, 20:06
0
Добрый вечер! Нужна помощь.

Как получить значение (https://prnt.sc/11vqy4a) size из заказа в формате:Размер: AirPods 1/2

Пробовал {$product['size']}, {$product->size}, $product->Product->get('size')} ничего не работает (

<?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');
$profile = $msOrder->getOne('UserProfile');
$properties = $msOrder->get('properties');

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

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} грн.
--------------------------------------
{$pay}
{$deli}
--------------------------------------
Данные доставки:

Имя: {$contacts->receiver}
Телефон: {$contacts->phone}
--------------------------------------
Товары:

{$products}
--------------------------------------
Email: {$profile->email}";



$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);
}
Виноградов Тимур
22 апреля 2021, 17:19
0
Черт возьми, заработало!
Большое спасибо!
Проблема была тут:
&docid=`[[+id]]`
А у меня в чанке было:
&docid=`[[*id]]`
Роман
22 апреля 2021, 17:07
0
Вот так попробуйте:
[[!getImageList?
  &tvname=`photos`
  &tpl=`photo-chunk`
  &limit=`20`        
  &docid=`[[+id]]`
]]
Сортировка кстати, вот так правильно.
&sortby=`[{"MIGX_id":"ASC"}]`
И &includeTVs=`photos` по-моему не нужно, так как вы его подтягиваете в getImageList запросе.
[[pdoResources
пока не кэшируйте:
[[!pdoResources
Илья Уткин
22 апреля 2021, 17:06
0
Вы как разработчик сайта лучше знаете, как пользователи будут искать друг друга. Вы можете, например, использовать сниппет pdoUsers для вывода списка всех пользователей. Тогда в чанке-шаблоне указываете просто {'remessages_page' | config | url}/id{$id}. Если у вас на сайте у каждого пользователя есть личная страница, то на ней вы так же выводите ссылку [[~[[++remessages_page]]]]/id[[+user_id]]. Я не экстрасенс, я же не знаю, какая специфика у вашего сайта.
perfkirill
22 апреля 2021, 16:28
0
также пробую делать так, тоже не выходит, в чем я не прав?

$array_ids = $modx->getChildIds($parents,6);


$criteria = $modx->newQuery('msProduct');
$criteria->sortby('menuindex', 'ASC');

$criteria->innerJoin('msProductOption', 'msProductOption', 'msProduct.id=msProductOption.product_id');
$criteria->innerJoin('msProductOption', 'msProductOption2', 'msProduct.id=msProductOption2.product_id');
$criteria->select(['msProduct.id', 'msProduct.parent']);

$criteria->where(array(
    'id:IN' => $array_ids,
    'published' => 1,
    'class_key' => 'msProduct',

    array('msProductOption.key' => "tolschina_paneli_mm", 'msProductOption.value:IN'=> array("1","1.1")),
    array('msProductOption2.key' => "ploschad_rabochaya_poleznaya_kvm", 'msProductOption2.value'=> array("0.84"))
));


$resources = $modx->getCollection('msProduct',$criteria); 
echo count($resources);
Aleksandr Huz
22 апреля 2021, 15:02
+1
Вы можете бесплатно установить пакет на modhost.pro и посмотреть админку
Валерий
22 апреля 2021, 14:44
0
Спасибо за выбор!) Можно посмотреть админку?
Денис Мижеревич
22 апреля 2021, 12:45
0
Посмотрел. Вижу, что есть чаты, с кем уже была переписка. Но мой вопрос заключается в том, видно ли тех, с кем не было переписки еще, или как их искать?
Указано, чтобы написать, нужно перейти по адресу [[~[[++remessages_page]]]]/id25
Но id же нужно еще как-то узнать. Поэтому я и спрашиваю, как пользователю найти другого пользователя? Продумано в плагине это?
Дмитрий Мансуров
22 апреля 2021, 12:33
0
<?php
if ($modx->event->name == 'mSyncOnProductOffers') {
    //$modx->log(1, 'mSyncOnProductOffers $xml ' . print_r($xml,1));
    $resource->setTVValue('edizm',(string)$xml->БазоваяЕдиница->attributes()->НаименованиеПолное);
    $resource->save();
}
Передача единиц измерения в ТВ поле в плагине для компонента mSync
Денис Мижеревич
22 апреля 2021, 12:14
0
Чтобы написать вам в техподдержку, как я понял, нужно сперва купить ваш плагин. А прежде чем его купить, нам нужно понять, подойдет ли по функционалу.
Денис Мижеревич
22 апреля 2021, 10:53
0
А пользователи видят других пользователей, это отображается каким-то списком всех пользователей сайта? Или как пользователю найти других пользователей для создания переписки?