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

Евгений Webinmd
27 января 2022, 13:39
1
+1
Поля разные;

$orderData = [
    'order'         => $msOrder->toArray(),
    'delivery'      => $msOrder->Delivery->toArray(),
    'payment'       => $msOrder->Payment->toArray(),
    'address'       => $msOrder->Address->toArray(),
    'user'          => $msOrder->User->toArray(),
    'user_profile'  => $msOrder->UserProfile->toArray(),
];


$modx->log(1,'Order data '.print_r($orderData, 1));

Товары:

if($orderProducts = $msOrder->getMany('Products') ) {              

    foreach ($orderProducts as $orderProduct) {
        $orderProduct->get('count'); 
        // ... поля товара в заказе 
        //$fields = $modx->getObject('msProductData', array('id' => $orderProduct->get('product_id'))        
    }

}
Руслан Сафин
27 января 2022, 13:17
0
у монги есть серьезные проблемы на средних и больших проектах… база может развалится чуть ли не на ровном месте, там приколы с движком WiredTiger, с полной потерей данных. сейчас на работы мы используем 3 реплики базы в кластере что бы минимизировать риски (бд более 400гб)
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 -й это без фильтра вовсе — тоже кэшируется.