Наумов Алексей

Наумов Алексей

Был в сети 28 июля 2026, 14:21
Заказы принимаю
У сессий есть поле access — когда к ней был последний доступ… к примеру можно чистить сессии старше 20 минут.
Чтобы избежать ситуации с открытой вкладкой без движения — небольшой скрипт, который будет «дергать» страницу раз в минуту.
[[#[[+parent]].alias]]
и
{$_modx->resource.parent | resource : 'alias'}
вызванные «внутри» pdoResources, это разные конструкции.

Первый код — это parent того ресурса, который сейчас обрабатывает pdoResources в цикле.
А во втором коде — это будет всегда parent ТЕКУЩЕГО ресурса, того, который открыт в браузере у пользователя.
Вам нужно сделать так:
{$parent | resource : 'alias'}
Да, если это так — правда неоднозначная ситуация.
Стоит изучить логи сервера (nginx к примеру, имею ввиду), посмотреть, есть ли там такие «двойные» запросы. Возможно, стоит фильтровать по UserAgent, если это почтовый сервер (робот) — не активировать пользователя.

Ну а еще вариант — пусть ссылка ведет на страницу с формой и кнопочкой, которую робот нажимать не будет, а пользователь будет, и только при отправке формы (через post) активировать пользователя.
Например:
— ставим fancybox свежий (2.1.3 у меня)
— делаем обычную ссылку на страницу, но добавляем ей класс js-popup-content
<a href="/policy" class="js-popup-content">Политика</a>
— добавляем такой js код на сайт (используем jQuery )
$('.js-popup-content').fancybox({
        closeClick: false,
        type: 'ajax',
        helpers: {
            title   : null,
            overlay : {
                locked : false
            }
        },
        afterLoad   : function() {
            this.content = $("<div>").html(this.content).find(".page-content")[0].outerHTML;
        },
        autoSize: false
    });
из примечательного — в обработчике afterLoad мы вырезаем из загруженной страницы только текст, используя селектор .page-content в моем случае. У вас это может быть другой какой-нибудь, суть в том, чтобы этот селектор содержал в себе только текст с целевой страницы, без header и footer.