Алексей Ерохин

Алексей Ерохин

С нами с 23 сентября 2013; Место в рейтинге пользователей: #111
Алексей Ерохин
09 августа 2019, 13:42
+1
Сниппет msGetOrder принимает параметр id — номер заказа, по умолчанию ставит из GET msorder. Можно поменять вызов в шаблоне вашей страницы.
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/snippets/snippet.ms_get_order.php#L16
Алексей Ерохин
17 июня 2019, 04:57
0
Это сниппет вызывается 1 раз после оформления заказа (на странице где в get-параметрах номер заказа)
И вызывается при отправке писем (пользователю и менеджерам).
Как вам уже посоветовали — делайте свой функционал в плагине docs.modx.pro/komponentyi/minishop2/razrabotka/sobyitiya
Алексей Ерохин
06 мая 2019, 19:49
0
Лучше определите эти права для группы пользователей, что будут пользоваться компонентом, если им не нужны конечно эти права
Алексей Ерохин
06 мая 2019, 19:21
0
Файл js лежит здесь manager/assets/modext/widgets/media/modx.browser.js

Чтобы избавить вообще от этой панели — нужно сделать свой xtype, где будет по-другому формироваться window (без этого дерева)

Если избавиться от кнопок: есть вариант с разрешениями, судя по коду там проверяются directory_create file_create file_upload
Алексей Ерохин
05 мая 2019, 18:21
0
Можно закрыть через конфигурацию хоста в nginx
Но скрывать потенциальную проблему — лучший способ.
Алексей Ерохин
05 мая 2019, 16:49
-2
Удаляется файл changelog.txt, чтобы убрать сообщение о том, что безопасность сайта не в порядке
Переименовываются файлы ht.access в корне и в папке /core/, чтобы заработали дружественные URL
Для дружественных URL — htaccess в корне сайта.
В htaccess в папке core закрывает доступ извне, и как раз убирает предупреждение, которое вы убираете удалением файла :facepalm:
Алексей Ерохин
15 марта 2019, 10:46
0
Filters handled only by GD2:
— bvl;wmi;wmt;over;hist;fram;drop;mask;elip;ric;bord;
И большие фото с watermark могут долго обрабатываться, проверьте что достаточно времени
Алексей Ерохин
23 февраля 2019, 07:53
+2
Естественно не работает. Вы вызываете метод get к обычному числу а не объекту

$resources = $modx->getCollection('TicketsSection', array('id:IN'=>$idresources));
    foreach ($resources as $resource) {
        //подписываем пользователя на этот раздел
            $properties = $resource->get('properties');
            $properties['subscribers'][] = $userid;
            $resource->set('properties',$properties);
            $resource->save();
        }
Алексей Ерохин
26 ноября 2018, 18:25
0
Плагин на создание заявки OnDocFormSave
Там и подписываете.
Выбираете тред TicketThread, потом пихаете в него массив id пользователей — автор + испольнитель
$thread->set('subscribers',$subscribers);
$thread->save();
Алексей Ерохин
01 октября 2018, 22:21
+1
Остаток от деления: $a % 3
Алексей Ерохин
30 сентября 2018, 00:54
+1
Да что-то я забыл про это.
Надо так
$name = array_slice(explode('.',$data['name']),0,-1);
$name = implode('.', $name);
$uploaded_file->set('name', $name);
Алексей Ерохин
26 сентября 2018, 15:03
+1
Менять процессор для сохранения name без расширения
title скорее всего оттуда берется (надо чанк вывода смотреть)

Вариант 1.
github.com/bezumkin/Tickets/blob/master/core/components/tickets/processors/web/file/upload.class.php#L125
Добавить строчку
$uploaded_file->set('name', array_slice(explode('.',$data['name']),0,-1));
Вариант 2.
github.com/bezumkin/Tickets/blob/master/core/components/tickets/processors/web/file/upload.class.php#L192
Добавить строчку
$data['properties']['name'] =  array_slice(explode('.',$data['name']),0,-1);
Алексей Ерохин
31 августа 2018, 14:25
+1
А в своем сниппете вы вызываете так?

$modx->getChunk()
Если да, то он не обрабатывает fenom-конструкции.

Нужно подключать pdoTools
if (class_exists('pdoTools') && $pdo = $modx->getService('pdoTools')) {
            return $pdo->getChunk($name, $properties);
        }
Алексей Ерохин
14 августа 2018, 01:13
0
Попробуйте это в лог кинуть
print_r($response->getAllErrors(), 1)
И оптимизируйте скрипт
$collection = $modx->getCollection('msProduct');
Этим кодом вы выбираете все продукты на сайте и тянете за ними все данные, замените хотя бы на getIterator.
Алексей Ерохин
14 августа 2018, 00:55
+2
1. Создать системную настройку для ограничения количества загружаемых файлов, например ms2form.max_upload_files
Создать запись словаря ms2_err_gallery_overload (в minishop2)

2. Отредактировать /core/components/ms2form/processors/web/gallery/upload.class.php следующим образом:
После строк
if ($this->modx->getCount('msProductFile', array('product_id' => $this->product->id, 'hash' => $hash, 'parent' => 0))) {
      return $this->failure($this->modx->lexicon('ms2_err_gallery_exists'));
    }
добавить следующий код
if ($filesLimit = $this->modx->getOption('ms2form.max_upload_files')) {
 if ($this->modx->getCount('msProductFile', array('product_id' => $this->product->id, 'parent' => 0,'createdby' => $this->modx->user->id)) >= $filesLimit) {
return $this->failure($this->modx->lexicon('ms2_err_gallery_overload'));
}
}
К сожалению, не могу проверить работоспособность
Алексей Ерохин
14 августа 2018, 00:40
0
Без дополнительного программирования не выйдет,

Можно написать сниппет или просто php-скрипт, в котором средствами modx api собирать данные — по факту просто будет обертка для соединения с БД.

Если напрямую к базе:
данные пользователя:
users
user_attributes

заказы ms2_orders
ms2_order_products — состав заказов (товары)
если нужны более полные данные по заказам:
статус ms2_order_statuses
способ оплаты ms2_payments
способ доставки ms2_deliveries
адрес доставки ms2_order_addresses

Есть схема в xml если вы это имеете ввиду. Там описаны поля, индексы, связи