Сергей Шлоков

Сергей Шлоков

Был в сети 06 ноября 2025, 19:54
Заказы не принимаю
Прикольный заголовок.) А хранить данные в куки — это как держать ключ от квартиры под ковриком.
Подозреваю, что имелось ввиду, что пользователь логинится на сайте А и если он является админом на сайте В, то подтянуть определённые данные.
1. Запрос с данными на коннектор.
2. В нём подгружаешь пользователя по логину.
3. Проверяешь пароль, если пользователь нашелся (passwordMatches()).
4. Проверяешь sudo или принадлежность к какой-то группе.
5. Возвращаешь нужные данные.
ReCaptchaV2. Просто я в валидаторе оставил обязательное поле от второй версии. Поэтому валидация не проходила, письма не отправлялись, но FormIt ошибки не выдавал. В 3-1 версии этого поля нет, убрал его из валидации. Теперь письма приходят, хотя ошибка так и осталась.
Небольшой баг. Список тикетов в админке при первой загрузке (хоть в компоненте, хоть в документе TicketSection) вызывается с сортировкой по id.
class TicketGetListProcessor extends modObjectGetListProcessor
{
    public $classKey = 'Ticket';
    public $defaultSortField = 'id';
    public $defaultSortDirection = 'DESC';
При работе с пагинацией (вперёд, назад, обновить), сортировка по createdon.
Весь код MODX пестрит таким
function __construct(modX &$modx) {
        $this->modx= & $modx;
}
Т.е. разработчики MODX не знают как работают объекты и ссылки. Описанный выше код я считаю опасным. Ибо при изменении $this->modx глобальный объект $modx тоже измениться. А если убрать ссылки, то даже если сделать так $this->modx = null, глобальный объект останется невредимым.
Ни секунды не сомневался, что ты знаешь матчасть. Поэтому и спросил, что ты имеешь ввиду. И то, что ты описал верно для всего, кроме объектов. В самой первой ссылке в твоем комменте есть пример с функцией, демонстрирующий специфику объектов. Я в своё время разбирал это отличие. Поэтому, если ты передашь объект, то передастся не копия, а указатель на объект. И твой пример не сработает.

Я, кстати, тоже несколько раз порывался сделать PR с EXTR_REFS, но забил. Простейшие изменения принимаются годами, а тут даже надеяться не на что. С этим нужно разбираться, а у них ни времени ни желания нету, а возможно и знаний.
Извиняюсь, что вмешиваюсь. Говоря про объекты ты имеешь ввиду объекты PHP или параметры плагина?
MODX не всегда корректно использует ссылки на объекты. В результате передается не объект, а его копия, и теряется связь с оригиналом.
Если объекты PHP, то уверен, что ты просто оговорился.
По-моему, это даже не полусладкое, а полусухое. Ну для чанков, допустим, подсластитель в том, чтобы не писать папку «chunk» и разширение «tpl». А для сниппета где он? Профит в том, чтобы не писать палку и двоеточие?
// pdoTools
{'pdoResources' | snippet : ['param' => 'value']}
// Твой вариант
{snippet 'pdoResources' ['param' => 'value']}
Кроме того возможна путаница (для стороннего разработчика) — chunk вызывает файловый чанк, а snippet — обычный сниппет.

Для чанков, подключаемых таким способом, нужно соблюдать 2 условия. Они должны
1) Быть файловыми и лежать в /core/elements/chunks/
2) Иметь расширение .tpl
1. Необязательно. Так как ты сломал механизм pdoTools, то можно указать любой путь.
2. Тут да. Так как nul байт пофиксили в 5.3.

Дерзайте!
Спасибо!
Теперь буду знать, что для Василия Наумкина, Павла Гвоздя и Алексея Бгатова вполне дружелюбно первым комментарием без объяснения каких-либо причин кинуть предъяву.
Хоть кто-нибудь сталкивался с такой проблемой? У кого-то был сбой? И вот кто бы подумал, столкнулся человек с проблемой, а нафига разбираться, зачем кому-то об этом сказать, выяснить. Не, лучше потом саркастически хмыкнуть. Может проблемы с менеджером пакетов? Может попробовать на том же modhost.pro? Нахер, лучше автору плюнуть. А чё такого?
Спасибо на добром слове!