Николай Савин

Николай Савин

С нами с 06 июня 2015; Место в рейтинге пользователей: #5
Николай Савин
29 июня 2023, 08:47
+1
Да верно. Мы заменяем хук email. Насчет хука FormItAutoResponder…
В сниппете send_email в список выполняемых хуков нужно просто добавить все нужные хуки.

Чтобы письма отправлялись в разное время, нужно просто перебрать email и каждому поставить свою задачу. Перепишем кусок поставновки задачи вот так:

// Перечисляем какие поля вы заполняете в сниппете, из тех что требуются для отправки писем
$fields = [
    'emailTo',
    'emailSubject',
    'successMessage',
    'fields'
];
$params = [];
foreach($fields as $key) {
    if (!empty($scriptProperties[$key])) {
        $params[$key] = $scriptProperties[$key];
    }
}

if ($task instanceof sTask) {
    $emails = $params['emailTo'];
    unset($params['emailTo']);
    $emails = array_map('trim', explode(',', $emails));
    foreach($emails as $email) {
        $params['emailTo'] = $email;
        // Здесь можете указать через какое время выполнить задание. 

        switch($email) {
            case 'bigboss@mail.ru':
                //   Этому отправляем сразу
                $task->schedule('+1 second', $params);
            case 'smallboss@mail.ru':
                //   Этому отправляем через 5 минут
                $task->schedule('+5 minutes', $params);
            break;
        }  
    }
   
}
Николай Савин
28 июня 2023, 22:24
0
Пардон не понял тогда. msAddress совершенно точно имеет id.
Николай Савин
28 июня 2023, 21:55
0
Используйте связь между объектами $msAddress->Order
Николай Савин
28 июня 2023, 10:11
+1
Обратите внимание, я передаю в плагин через сессию идентификатор сессии, это связано с тем, что у меня на сайте авторизация происходит не через процессор, а с помощью метода addSessionContext(), который меняет id сессии, а нужен тот id, который был до авторизации. Возможно, при авторизации через процессор, такого не происходит, но я не проверял.
Процессор использует ровно тот же метод addSessionContext, добавляя еще проверку прав, запуск событий и т.п. Так что все идентично по факту. И да — addSessionContext меняет id сессии. Способа бороться с этим нет.
Я для себя делаю так

$_SESSION['prev_session_id'] = session_id();
$user->addSessionContext();
И далее запрос в базу избранного можно строить используя текущий обновленный session_id и одновременно старый из сессии.
Николай Савин
28 июня 2023, 10:06
0
Сессии так-то тоже не везде используются. Перезаписываются при каждой авторизации
Николай Савин
27 июня 2023, 10:15
0
Автозагрузка обычно через Autoload.php происходит. Я вот тоже не разу ни встречал bootstrap.php.
А так композерных пакетов внутри MODX с наличием composer.json сколько угодно. ZoomX, modRetailCRM, HibrydAuth навскидку
Николай Савин
25 июня 2023, 15:36
+1
Используй параметр ajaxTplMore. Перепиши его так, чтобы внутри был nav-wrapper
Николай Савин
24 июня 2023, 21:24
0
Установил — проверил. Прекрасно работает.
Николай Савин
23 июня 2023, 22:57
+1
Дим, лично для тебя разрешаю Console. Сам не пользуюсь ей давно.
Николай Савин
20 июня 2023, 17:39
0
Класс оплаты, мало просто положить в нужный каталог. Его нужно зарегистрировать в системе. Подробнее читайте в документации
Николай Савин
20 июня 2023, 11:32
0
DNS не везде обновились. Решаем вопрос.
Николай Савин
18 июня 2023, 22:21
+11
Да покоится с миром старый сайт, который воспитал наверное 90% всех присутствующих. @Баха Волков ты проделал колоссальную, титаническую работу — низкий поклон тебе.
Николай Савин
12 июня 2023, 16:30
0
Нет вы неверно понимаете. В MODX предусмотрены «Из коробки» около десятка типов TV полей. Это строка, текст, число, список, мультисписок и так далее. Вот с ними компонент может работать.
Также в MODX можно создавать собственные типы TV полей. К примеру карты или всякие ютуб загрузчики. С такими «дополнительными» видами TV полей компонент не будет работать, потому что не знает, об их существовании.

Примерно та же история с опциями. Есть заранее предусмотренные виды опций. Но можно и собственные создавать.
Николай Савин
08 июня 2023, 18:23
0
Да loadClass до сих пор используется и очень активно прямо в ядре.
Николай Савин
08 июня 2023, 16:39
0
у меня в ModExtra3 работает
Николай Савин
08 июня 2023, 16:23
0
Можно попробовать экранировать слэши вот так

ModExtra\\Processors\\Item\\GetList
Не уверен что сработает, но попробовать можно
Николай Савин
08 июня 2023, 15:08
0
Конечно не будет, нужно писать с неймспейсами. Тогда все будет