Всего 125 675 комментариев

Артур Шевченко
08 декабря 2020, 13:40
0
По поводу проверки я понял, пока не знаю как её делать, но я погуглю)))
Pavel Zarubin
08 декабря 2020, 13:31
0
Ну тоже нормальный вариант, значительно лучше чем изначально, только без проверок на доступность DaData и на время ответа от DaData все равно может произойти ситуация, когда у пользователей у которых уже есть нужная кука все нормально работает, а вот новые даже зайти на сайт не могут)
Артур Шевченко
08 декабря 2020, 13:26
0
А если в куки писать? Мне кажется так удобнее, тогда и на фронте будет доступ к данным и на сервере, или есть какие-то минусы такого подхода?
Артур Шевченко
08 декабря 2020, 13:20
0
Переписал. Теперь если нужно много полей пользователя, можно одним запросом получить массив и его как плейсхолдеры раскидать по странице.
Роман
08 декабря 2020, 13:12
0
Да, я уже понял. Спасибо.
Pavel Zarubin
08 декабря 2020, 13:01
0
Я уже не помню, с modx давненько не работаю, но скорее всего как и везде, пользователь содержится в запросе, т.е. modx и так делает каждый раз запрос на получение пользователя, а этот модификатор берет уже полученную модель, твой же скрипт мало того что делает дополнительные запросы, так еще и делает их ТРИ штуки) Т.е. на 600 одновременно зашедших пользователей уйдет 1800 запросов в БД, а учитывая что свой сниппет ты используешь наверное для каждого поля отдельным вызовом, то на каждый вызов сниппета делается по три запроса в бд, 20 полей надо получить, 60 запросов в бд ушло)))
Артур Шевченко
08 декабря 2020, 13:01
0
хотя бы кэширование к этому коду по времени добавить надо
Вот тут не понял, это как?
Артур Шевченко
08 декабря 2020, 12:43
0
Во-первых, до этой минуты мне не приходила в голову мысль, что можно сделать так
{24 | user: 'extended'}
Теперь чувствую себя идиотом))) НО следом пришла другая мысль, код выше не делает запрос в БД? Как тогда он работает?
Артур Шевченко
08 декабря 2020, 12:33
0
Ок, поправлю. По крайней мере постараюсь.
Pavel Zarubin
08 декабря 2020, 12:12
0
а что делать если у меня десяток полей в extended плюс данные в profile и в user
Как и подразумевалось самим MODX'ом запрашивать их отдельно))
Да, унификация это удобно, удобно когда ты в один и тот же инпут атрибут можешь запихнуть любые данные а твой скрипт уже сам разберется что ты запихнул, но как правило, что в жизни, что в программировании — чем более универсальный инструмент — тем более он бесполезен в применении.
Pavel Zarubin
08 декабря 2020, 12:03
0
В идеале вообще обычно через локальную базу — дубликант делают, т.е. зашел пользователь, проверяем его IP в локальной базе, если нет сопоставлений, создаем новую запись и в следующий раз его местоположение уже будет тянуться с локальной базы, это если просто

А если нужно совсем просто, то хотя бы кэширование к этому коду по времени добавить надо, и добавить проверки как по доступности DaData так и по времени ответа, а лучше вообще запрашивать отдельно отдельным Ajax запросом после того как у пользователя отрендерилась страница, чтобы это не влияло на скорость генерации страницы
Артур Шевченко
08 декабря 2020, 11:56
0
Отлично, что ты мне всё это пишешь. Твои замечания помогут мне исправить недочёты. Так что спасибо. Я полагаю в этом случае надо проверку добавить или как?
Артур Шевченко
08 декабря 2020, 11:53
0
Вы правы, ради одного юзернейма такой огород городить не стоит, его можно получить гораздо проще, а что делать если у меня десяток полей в extended плюс данные в profile и в user? И да, я перепишу, сделаю один запрос в БД.
Кефирка
08 декабря 2020, 11:12
0
Это слишком дорого, у меня нет 3 тыс на этот модуль. Нужен вариант бесплатный.
Михаил
08 декабря 2020, 11:11
0
Используй вот это и не заморачивайся
Михаил
08 декабря 2020, 11:09
0
сделать экспорт через msImportExport и сделать импорт через него же
Роман
08 декабря 2020, 10:20
0
[[!pdoPage?
    &element=`msProducts`
    &parents=`0`
    &where=`{"Data.price:>":1000}`
]]
[[!+page.nav]]
Иван Бочкарев
08 декабря 2020, 10:14
0
Он так всегда пишет. Даже ошибки орфографические, пунктуационные никогда не исправляет =(