Воеводский Михаил

Воеводский Михаил

Был в сети 30 марта 2026, 14:44
Заказы не принимаю
Правильно, «Вопросы».

Да, &actionKey должно быть достаточно, если еще и в форме на отдельной странице «service» заменить на значение параметра.

Я не говорил, что именно тот вызов сильно замедляет. Но это пример, как делать не стоит, ибо злоупотребление может замедлить.

В приведенном шаблоне можно оптимизировать использование фильтров ввода-вывода, чтобы не выполнялись лишние сниппеты. С другой стороны, если Вас скорость работы сайта полностью устраивает, то эта оптимизация может быть не слишком оправданной.
1. На отдельной странице вынесите вызов Login за пределы логической конструкции. В текущем виде это характерный пример похода, после которого появляются мнения «MODX всегда дико тормозит».
2. В вызове Login на отдельной странице укажите параметр &actionKey, задайте ему значение скрытого поля в форме. Значение должно быть отличным от 'service'. После этого 2 вызова Login перестанут перехватывать формы авторизации друг друга, и у Вас появится понимание, как дальше все настроить.
3. Укажите категорию этого тикета «Вопросы».
Код плагина:

<?php
switch ($modx->event->name) {
    case 'OnUserSave':
        $tpl = $modx->getOption('emailTpl',$scriptProperties,'tpl.reg_user');
        if ($mode == 'new') {
            $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray()));
            $email = $modx->getOption('admin_email');
            
            $modx->getService('mail', 'mail.modPHPMailer');
            $modx->mail->set(modMail::MAIL_BODY,$message);
            $modx->mail->set(modMail::MAIL_FROM,'noreply@from.ru');
            $modx->mail->set(modMail::MAIL_FROM_NAME,'Сервис уведомлений');
            $modx->mail->set(modMail::MAIL_SUBJECT,'Новый пользователь');
            $modx->mail->address('to',$email);
            $modx->mail->setHTML(true);
            if (!$modx->mail->send()) {
                $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
            }
            $modx->mail->reset();
        }
        break;
}
Еще момент — каждая группа сотрудников, естественно, является отдельной группой пользователей.

Если чуть упростить схему, то получается:
1. Бармена могут отредактировать администраторы, старшие администраторы, директор
2. Администратора могут отредактировать старшие администраторы, директор
3. Старшего администратора может отредактировать директор

НО! Право на изменение пароля, например, одно во всех случаях и его проверки недостаточно.

По первому пункту — есть конструктор, заточенный под один проект.

Возможность создания разных групп в рамках одного набора, в каждую группу можно добавить как товары, так и категории, группа может иметь добавочную стоимость, которая плюсуется к базовой цене товара.

Если интересно, пишите в скайп whiteflag.ru