Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 110 комментариев

Дима Касаткин
Дима Касаткин
@FastDevLab спасибо за плагин, полезный, и opensouce — класс! Также поздравляю с дебютом — первым (кажется) твоим публичным компонентом!

Позволь подкинуть пару полезностей:

Если захочешь поддерживать более 1 компонента, возможно тебя заинтересует мой вспомогательный инструмент modx-build-environment-gui для сборки сайта.

Также могу порекомендовать переложить все файлы из папки ./_build в папку ./_build/staticfilesplus/ которую, по какому-то недоразумению, упустили в… то ли modExtra, толи в мануале по сборке пакетов… Так сможешь билдить несколько компонентов на одном установленном движке MODX!

P.S. Приятно видеть столько просмотров заметки здесь. К нам SEO-шники подъехали? ;-)
Дима Касаткин
Дима Касаткин
Вижу у вас и StaticElementsLife установлен, не конфликтуют они?
А ваша кнопка включить-отключить кэширование, переключает настройку ++cache_resouce или ещё что-то? Поделитесь как сделали её?
Николай Савин
Николай Савин
Привет Григорий.

Осадочек обоснованный — решение рабочее, но есть несколько моментов, которые стоит обдумать:

Что смущает в текущем фиксе

1. Изменение логики метода.
Оригинальный код при отсутствии сессии возвращал []. Теперь он создаёт сессию. Это может сломать логику в других местах SendIt, которые рассчитывают на пустой ответ как сигнал «сессии нет, нужно что-то сделать».

2. setcookie() без проверки заголовков
Если заголовки уже отправлены — будет ещё один warning.

Минимальный и безопасный фикс
Если цель — просто убрать warning без изменения логики:
$sessionId = $sessionId ?: ($_COOKIE['siSession'] ?? null);

if (!$sessionId || !$session = $modx->getObject('siSession', ['session_id' => $sessionId, 'class_name' => $className])) {
    return [];
}
Это сохраняет оригинальное поведение: нет куки → нет сессии → пустой массив. Создание сессии должно происходить там, где это предусмотрено архитектурой компонента.

Что бы я сделал

Посмотрел бы, где в SendIt сессия создаётся штатно. Скорее всего есть отдельный метод типа createSession() или это происходит при первой отправке формы. Вот там и должна быть логика создания + установки куки.

Твой фикс работает, но ты фактически добавил fallback-создание сессии в метод, который был рассчитан только на чтение. Если форма авторизации/регистрации работает корректно — можно оставить, но я бы откатился к минимальному варианту и понаблюдал.
Павел Романов
Павел Романов
[[*alias]] или [[*id]] выводит соответствующие поля текущего ресурса.
Если посетитель находится на главной — они от нее и выводятся.

Блоки в лендинге. должны выводиться аналогично меню.

[[pdoResources?
  &tpl=`section_tpl`
  &limit=`0`
]]

А в чанке section_tpl уже указывайте [[+id]], [[+alias]], [[+pagetitle]] и т. д. — они будут забираться от выводимых ресурсов
Сергей Самусев
Сергей Самусев
В Сбере поменяли работу с логином и паролем интернет-эквайринга. Теперь они без суфикса -api. И настраиваются в ЛК СберБизнес. (Логин ПШ и ПАроль ПШ).
Сейчас выдаётся ошибка доступа и вместо страницы оплаты идёт переадресация на страницу ошибки оплаты.
Будет ли обновление компонента?
Павел
Павел
У себя я вероятно нашел проблему.
Версия минишоп была 2.5 и обновления дальше 2.5 не видит. И установлена она была с modx.com, а не modstore. Сменил на modstore — предлагает обновления.
Обновлю, посмотрю модуль будет работать или нет
Павел
Павел
Да, я тоже нашел проблему с 500 ошибкой. Сначала она вызывалась иза отсутствия подключения к dadata.
Потом была проблема, что sendit меня опозновал как бота при тестах и просил перегрузить страницу. Видите ли слишком прямо я курсор вожу по экрану)

Недавно я опять нашел 500 ошибку, когда выбираешь населенный пункт, в котором нет пвз и выбираешь пвз доставку, то в консоли появляется 500 ошибка при аякс запросе.
И соответственно, если человек ушел со страницы оф. заказа в тот момент, когда у него появилась такая ошибка, то при след заходе в оф заказа падает сразу в 500. Очистка кеша/истории браузера помогает (не просто ctrl+f5).

Я пока склонялся к идее, что это чисто мои проблемы (в оф заказа много разных модулей добавлено...) и сейчас буду тестить максимально чистый вариант, без всего лишнего. Но первым делом проверю смену версии php, вдруг правда поможет.
И в демке на сайте такой проблемы нет, там при отсутствии пвз пишется текст, что его нет, всплывают сообщения сендит и в консоли 500 не наблюдается.
Наумов Алексей
Наумов Алексей
С mail.ru вообще часто проблемы (как в плане отправки через них, так и им), стараюсь не связываться.

А вообще правила общие просты:
1. Отправляем через smtp
2. Убеждаемся, что домен, с которого отправляем, не в списках «спам» (см. сервисы разные в интернете)
3. Настраиваем DKIM и SPF записи для домена
Максим
Максим
Т.е. полный скрипт так выгладит, правильно я понял?:
<script>
$('#mse2_filters').change(function(){
    $('html,body').stop().animate({ scrollTop: $('#mse2_results').offset().top }, 10);
});
</script>
если так:
<script>
$('#mse2_filters').change(function(){
    $('html,body').stop().animate({ scrollTop: $('#mse2_results').offset().top }, 10);
    e.preventDefault();
});
</script>
то не срабатывает ползунок — слайдер