Всего 125 974 комментария

Prihod
27 января 2022, 10:31
+1
1. У ключа есть срок его действия и возможно он истек и его нужно продлить
2. Возможно старая версия компонента и его нужно обновить
Vladimir
27 января 2022, 09:01
0
Можно ли вообще получить товары в плагине, в любом плагине. без каких либо событий
Виктор
27 января 2022, 01:06
0
Приветствую! Я так понял, на НП сменили api? Ключ теперь нужно новый сделать? Видимо, из-за этого у клиента перестал выпадать список городов
iWatchYouFromAfar
26 января 2022, 22:23
+1
Я уже начал писать следующую статью, там как раз будет TS и типизация. Я наглядно покажу что такое типизация на более сложном примере, чем объявления типа переменной.
iWatchYouFromAfar
26 января 2022, 22:20
0
Я как и большинство долго работал с MySQL, затем на Nest я поработал с Mongo, затем переключился на PostgreSQL, а ведь есть еще GraphQL.

Свой выбор остановил на Монге просто потому что мне с ней пока что очень удобно работать. Наверное люди с бОльшим опытом работы смогут тебе объяснить более тонкие нюансы, но все что я делал на MySQL, я спокойно реализовываю и в Монге.
Сергей
26 января 2022, 21:03
0
Николай, спасибо за ответ!

У меня получилось реализовать следующим образом:
1. В ноде получаю куку PHPSESSID
req.headers.cookie
2. С помощью пакета php-unserialize разбираю данные сессии и получаю user_id
const PHPUnserialize = require('php-unserialize');
$dataarr = PHPUnserialize.unserializeSession(data[0].data);
userid = $dataarr['modx.user.contextTokens']['web']; //или mgr
3. Если в $dataarr['modx.user.contextTokens'] пусто, то перекидываю на страницу авторизации.
Giant Dad
26 января 2022, 17:46
0
Да, а вот так работает. Спасибо Вам огромное за подсказку!
Александр Мельник
26 января 2022, 17:27
0
только написать свой сниппет который принимает те же параметры что и pdoPage и который вернет общее количество страниц. Его вызывать в head.
Евгений Webinmd
26 января 2022, 17:14
1
0
можно попробовать использовать родной синтаксис [[!+pageCount]]
Александр Мельник
26 января 2022, 17:13
0
Я понял, спасибо.
Если вы действительно осознанно выбрали typescript а не просто следуя трендам, это приятно и похвально.

А Руслан, простите, я думал это ответил автор заметки.
Giant Dad
26 января 2022, 17:08
0
Ну, так то да, но до того, как отработает pdoPage этот плейсхолдер пустой. А мне нужно подтягивать инфу уже в head
Руслан Сафин
26 января 2022, 16:58
+2
Если проект хоть немного больше сайта каталога, ts в разы ускоряет разработку. С ts видишь подсказки что в находится в объектах, минимизируется количество банальных ошибок (опечатки, перепутал название и т.д.)

Пока сами не попробуете ts сложно объяснить его необходимость… Я после ts, на голом js совсем писать не хочу
Евгений Webinmd
26 января 2022, 16:58
0
для pdoPage в документации указан плейсхолдер pageCount

на феноме наверное будет так
{$_modx->getPlaceholder('pageCount')}
Greza
26 января 2022, 16:33
0
На фронте нет возможности редактировать сообщения или отзывы?
В компоненте не нашел метода editMessage.
Павел Бигель
26 января 2022, 13:18
0
Это должно быть интересно каждому разработчику который хочет повысить свой уровень, учитывая что Ваня нереальный гений. Но при этом не наберешь же джунов на это все, должен быть какой-то бэкграуд в разработке.
Я таких человечков в рамках данного сообщества очень немного
Александр Мельник
26 января 2022, 11:41
0
вы правы. я пока только теоретически рассматриваю этот вопрос, как вообще люди подходят к кешированию данных для фильтра. Хочу так сказать чужого опыта набраться)
Александр Мельник
26 января 2022, 11:40
0
Насчет того, влияет ли последовательность выбора характеристик в фильтре. Вы правы, что не влияет. Но это если говорить о фильтре для покупателя. Ему не важно, сначала он выберет что хочет красную футболку а потом добавит что хочет еще и белые, или наоборот.
Но чаще всего наши СЕО специалисты требуют, чтобы фильтр не был только инструментом для пользователя но был и СЕО инструментом и тут начинается такое… Иногда бывают требования, чтобы урл страницы изменялся так, в какой очередности человек кликает в фильтре. К примеру если сначала на красный а потом на белый, то урл чтобы был
site.com/filter/red-white/
а если сначала на белый а потом на красный, то
site.com/filter/white-red/
и не смотря на то, что оба запроса вернут один и тот же товар, но например это позволит «порадовать» клиента, и показать ему товары сначала красные, а потом уже белые, тоесть «первое слово главнее второго)».
И получается что от очередности выбора характеристики напрямую зависит то, сколько данных нужно кешировать.
Алексей Смирнов
26 января 2022, 11:21
0
В данном случае комбинаций будет 3*3*3 = 27, без учета последовательностей. Да и не будет зависимости от последовательности для БД. Так что всего лишь 27+1 разных запросов закэшировать просто. 1 -й это без фильтра вовсе — тоже кэшируется.
Сергей
26 января 2022, 11:15
0
Спасибо большое, заработало!
Алексей Смирнов
26 января 2022, 11:11
0
Думаю, нужно исходить из того какие тормоза. это 1 сек или 10 сек?
по 2му пункту — я выставляю кеширование БД и как раз для часто используемых вариантов — будет профит.
3. кешировать после изменения менеджером какого то свойства — тоже такая себе затея. это нужно делать если хотя бы 1 день никто лазить туда не будет. и то сомнительное удовольствие для шаред хостингов.
Учитывая что магазины у меня не сильно велики, то без кеша БД или кеш по загрузке (включается в MODX настройке) вполне для 5..10 к товаров уместен.
Если товаров более 10к стоит думать об оптимизации, если фильтрация улетает за 2...3 секунды ожидания.