R2m0x94 (Vasily)

R2m0x94 (Vasily)

С нами с 07 мая 2018; Место в рейтинге пользователей: #362
R2m0x94 (Vasily)
28 февраля 2022, 15:00
0
А у меня стоит на submit minishop2 «msCustomerAutoReg», и он при создании нового пользователя, когда логгинет в ЛК, выдаёт это предупреждение на стоках core/model/modx/error/moderror.class.php:168 и 250, пока временно внёс правки хотя знаю, что так делать нельзя.

168 строка
if (is_array($this->errors) || is_object($this->errors)) {
    $count_errors = count($this->errors);
} else {
    $count_errors = '';
}
return array (
    'success' => $status,
    'message' => $this->message,
    'total' => isset ($this->total) && $this->total != 0 ? $this->total : $count_errors,
    'errors' => $this->errors,
    'object' => $objarray,
);
250 строка
public function hasError() {
    if (is_array($this->errors) || is_object($this->errors)) {
        $count_errors = count($this->errors);
    }
    return $count_errors > 0 || $this->message != '';
}
R2m0x94 (Vasily)
17 февраля 2022, 12:14
0
Проверил, у меня ресурс программно создаётся и даже в searchable 1 — В индекс не добавляется. Сейчас из консольки попробовал запустить процессор, всё хорошо. Ваше решение помогло, спасибо огромное, а на дебаге вот:
Notice: Trying to access array offset on value of type int in /core/components/msearch2/phpmorphy/src/fsa/access/fsa_sparse_file.php on line 32
R2m0x94 (Vasily)
17 февраля 2022, 12:11
0
Спасибо, это самое, то что надо.
R2m0x94 (Vasily)
16 февраля 2022, 21:07
0
Там, я уже был. Спасибо.

Мне нужно добавление слов в индекс при создании товара, то есть из плагина. А настройка mse2OnBeforeSearchIndex, что-то не срабатывает и в бд слова не пишутся. От того и вопрос, как выполнить индексацию слов при том, что есть публичная функция Index()

Индексация происходит в админке и за неё отвечает assets/components/msearch2/js/mgr/widgets/index.form.js:27
core/components/msearch2/processors/mgr/index/create.class.php:148
R2m0x94 (Vasily)
14 февраля 2022, 15:30
0
Проблема была успешно ликвидирована путем, что расширял класс с тем же названием, а надо было create another base class, от туда и не срасталось, а пишу, что всё делал по инструкции. Прошу прощения, виноват, делал на скорую руку.
R2m0x94 (Vasily)
14 февраля 2022, 14:04
0
Возможно я что-то упустил или в видео этого нет, но попробую обуздать в примерах понимании об addPackage, loadClass и getService и подключении сторонних таблиц, хотя так-то из консоли кастомный класс работает, добавляет объект и получает объект и коллекцию, что на обычной версии, что на про версии.
R2m0x94 (Vasily)
14 февраля 2022, 13:13
0
Попробовал на тестовом сделать, как у Вас на видео. Делал всё по видео инструкции, но валятся ошибки
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::getSelectColumns() is not a valid static method.
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::loadCollection() is not a valid static method.
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/model/modx/modprocessor.class.php : 525) PHP warning: Invalid argument supplied for foreach()
В консоле ругань или на manager/assets/ext3/ext-all.js или на assets/components/promocupons/connector.php при добавлении в бд из меню Promo Cupons.

Не знаю в чем дело, не получилось и да в бд добавлял запись проверить отображение в админке — тоже не вышло.
R2m0x94 (Vasily)
07 февраля 2022, 11:01
0
А компонент msOrderFields дополняет msOrderDiscount? Хочу поставить, но боюсь конфликта с msOrderDiscount
R2m0x94 (Vasily)
05 февраля 2022, 12:28
+1
В любом случае должно получится, а иначе попробовать можно msOrderFields (490 р)
R2m0x94 (Vasily)
24 декабря 2021, 17:03
0
Разумеется, если в настройке ms2_plugins была бы возможность добавлять плагины просто через запятую (например ms2_plugins: availability, custom_modules, deliverytime и т.д., которые подключены напрямую из папки plugins/), то отпали бы такие заметки, и деактивация плагинов проходила бы глаже при регистрации того же плагина в другое место.

Надеюсь на то, что в minishop3 появится такая возможность из коробки.
R2m0x94 (Vasily)
24 декабря 2021, 14:49
0
Привет, лично у меня при разработке ушло на это время, и я не смог понять, почему если я регистрирую плагин относительно пути
/plugins/order/custom_modules/index.php
И вдруг захотел сменить путь на более удобный
/plugins/custom_fields/index.php
У меня появляется эта ошибка, сразу задался вопросом, а как же происходит регистрация плагинов, но ответа не нашел, поэтому и решил проблему таким способом
/plugins/custom_fields/ms2/index.php
Странно, но работает))
R2m0x94 (Vasily)
24 декабря 2021, 14:29
0
Да, и главное не надо боятся переименовывать, переносить папки и файлы указывая правильные пути на сервере, а также переименовывать результат в ms2_plugins, чтобы не трогать бэкапы.
SELECT * FROM `modx_system_settings` WHERE `key` LIKE 'ms2_plugins'
R2m0x94 (Vasily)
23 декабря 2021, 19:26
1
0
На всякий случай если не заработает, то
// удаляем плагин
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->removePlugin('cart');
}
// добавляем вновь
$plugin = '{core_path}components/minishop2/plugins/cart/availability/index.php';
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addPlugin('availability', $plugin);
}
// результат в ms2_plugins: {"availability":"{core_path}components\/minishop2\/plugins\/cart\/availability\/index.php"}

/* Вложенность иерархии в дереве и подключение, тоже имеют значение:
plugins
|_cart
|_|_availability
|_|_|_index.php
|_|_|_msproductdata.map.inc.php
*/
R2m0x94 (Vasily)
22 декабря 2021, 18:38
0
Точнее так будет более правильнее:
$plugin = ['availability' => '{core_path}components/minishop2/plugins/cart/availability/index.php'];
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addPlugin('cart', $plugin);
}
R2m0x94 (Vasily)
22 декабря 2021, 18:15
0
Возьмем например такую иерархию в дереве каталогов проекта:
plugins
|_cart
|_|_availability
|_|_|_index.php
|_order
|_|_custom_modules
|_|_|_index.php
|_|_deliverytime
|_|_|_index.php
И рассмотрим пример системной настройки ms2_plugins: []
Давайте попробуем туда записать данные за вместо квадратных скобок, поместим массив json:
{
    "cart": {"availability": "{core_path}components/minishop2/plugins/cart/availability/index.php"}, 
    "order": {
        "custom_modules": "{core_path}components/minishop2/plugins/order/custom_modules/index.php",
        "deliverytime": "{core_path}components/minishop2/plugins/order/deliverytime/index.php"
    }
}
Работает, отлично!

На Вашем же примере надо просто выполнить код в консоле, который будет помещать массив в плагин cart
<?php
$plugins = [
    'cart' => ['availability' => '{core_path}components/minishop2/plugins/cart/availability/index.php']
];
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addPlugin($plugins);
}
И Вы увидите в системной настройке ms2_plugins массив-json со следующем содержимом:
{"cart": {"availability": "{core_path}components/minishop2/plugins/cart/availability/index.php"}}
R2m0x94 (Vasily)
28 октября 2021, 16:05
0
Временно задал в 918 строке $entry = 0, вроде ошибки нет))
R2m0x94 (Vasily)
28 октября 2021, 15:46
0
У меня такая ошибка в журнале новой версии minishop2 2.9.3-pl, PHP 8.0, MODX 2.8.3-pl:
[2021-10-28 15:26:20] (ERROR @ /core/model/modx/modx.class.php: 1677) [OnMODXInit]
Deprecated: Required parameter $entry follows optional parameter $action in /core/components/minishop2/model/minishop2/minishop2.class.php on line 918
Только распаковался, у кого-то было также?
R2m0x94 (Vasily)
20 октября 2021, 13:09
0
У меня например была такая проблема, у поддомена не было ключа, который находился в контексте сайта (домена), у которого был ключ. Иными словами на домене репозиторий работает исправно, так как ключ к ниму есть, а у поддомена ключа нет и подключения соответственно тоже нет, поэтому приходится идти на основной домен, ставить пакеты, затем логинится в админку контекста поддомена и юзать установленные пакеты. Лично я так решил проблему.
R2m0x94 (Vasily)
18 октября 2021, 15:31
0
Делал по инструкциям, но результат один и тот же:
Local time: Mon 2021-10-18 15:28:28 MSK
  Universal time: Mon 2021-10-18 12:28:28 UTC
        RTC time: Mon 2021-10-18 15:24:27
       Time zone: Europe/Moscow (MSK, +0300)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: yes
      DST active: n/a

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
Есть ли решение, как активировать NTP enabled: no в NTP enabled: yes?
тобс: в Network time on: yes и NTP synchronized: yes