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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
02 августа 2021, 07:46
0
Так вот компонент и решает задачу:
1. отдельно управлять временем жизни сессий для авторизованных пользователей (например, поставить им месяц);
2. отдельно управлять временем жизни сессий ботов (к примеру, поставить им 3 часа);
3. У всех остальных — ну пусть будет стандартная неделя.

И на моих сайтах, за счет п.2. размер таблицы и объем данных уменьшился в десятки раз, т.к. именно сессии различных ботов составляли 90% записей в таблице.
Наумов Алексей
30 июля 2021, 14:38
0
Что значит только для авторизованных?..
А корзина товаров? А если я товар «отложил», а если я перешел по реферальной ссылке на сайт, а если у нас правда что-то работает через ajax?
Правильнее бы конечно создавать сессии когда они действительно нужны. Но MODX работает на своей волне, а кажется именно его мы здесь и обсуждаем.

Более разумно просто отказаться от использования таких дополнений как AjaxForm, который для каждого посетителя создает сессию.

Давайте делать статичные странички на html!
Наумов Алексей
30 июля 2021, 09:20
+2
Так у меня и только beta версия только выпущена)))
Но за здравую критику — спасибо
Наумов Алексей
26 июля 2021, 10:42
0
Может быть, да)
но код в посте на 90% взят с минишопа, а написан он уже несколько лет назад
Наумов Алексей
23 июля 2021, 16:38
0
{$_modx->runSnippet('mapexMap', [
		'resource' => '8',
               'tvName' => 'ИМЯ ВАШЕГО TV ПОЛЯ',
		'width' => '100%',
		'height' => '460px',
		'mapId' => 'mapexMap1'
])}
Наумов Алексей
23 июля 2021, 12:40
0
Если исходные фото большие — то ms2Gallery может пережимать их на стороне клиента и фактически на сервер придет уже другой файл, в этом разница при загрузке через API и через интерфейс.

А почему думает что дубли… наверное алгоритм так срабатывает) Эту проверку можно выключить в настройках.
Наумов Алексей
23 июля 2021, 09:16
+1
Это же код пример?
Просто 'id' => 'resource_id' выглядит странно :)

Какой вывод у responce?
Наумов Алексей
22 июля 2021, 14:00
+1
Ну сначала быстро копируем все старые цены во временную таблицу, без разбора.
А потом уже неспешно «перебираем» эту таблицу, сравниваем со второй таблицей, где хранятся только те цены, что действительно изменились. Ну и после сравнения принимаем решение о переносе цены из временной таблицы в постоянную
Наумов Алексей
22 июля 2021, 10:39
0
Наверное, только вариант с хранением изменившихся цен.

В принципе, можно записывать в таблицу все цены, а затем подчищать ненужные записи отдельным скриптом, который по cron будет запускаться.

Подчищает пусть каким-нибудь хитрым sql запросом.., чтобы не объекты xpdo (мы же про modx говорим?))) дергать, а попроще как-нибудь. Типа выбрать 2 последние записи с одним id товара, если цена одинаковая — то последнюю из этих записей удалить, как не нужную, а если цены разные — предпоследнюю пометить как «проверенную» и больше ее не проверять.

Или например разнести все это по 2м таблицам: одна временная, где все 40 тыс записей, а во вторую уже попадают только действительно изменившиеся цены.
Наумов Алексей
21 июля 2021, 11:21
0
В качестве element указан сниппет migxLoopCollection, он умеет работать с Fenom то вообще?..
Наумов Алексей
21 июля 2021, 10:47
0
В чанке loft-site2:
1. {$lotnumber} — верная запись
2. {$_modx->resource.lotnumber} — конечно же нет, $_modx->resource это ТЕКУЩИЙ РЕСУРС
3. [[+lotnumber]] — верная запись
4. {$_modx->getPlaceholder('lotnumber')} если в плейсхолдер никто ничего не устанавливал — то он пуст.

п.1. возможно не работает, т.к. это migx поле, там наверняка есть скобки { } и парсер Fenom на них спотыкается… может сразу в массив это преобразовать?
Вот так выводит что-нибудь?
{$lotnumber | fromJSON | print}
Наумов Алексей
21 июля 2021, 09:39
+1
мейби влияет разделитель значений у mFilter2, он по-умолчанию — запятая, а она у вас встречается в значении свойств, что и может привести к косякам.
Наумов Алексей
05 июля 2021, 17:11
0
Здесь нужно понимать, как работает парсер MODX. Это именно ПАРСЕР, а не шаблонизатор.
Он сначала ВСЕ парсит, а потом выполняет условия. Т.е. TicketComments вызывается всегда, каким бы ни был parent в вашем If.
Либо в отдельный шаблон убирайте, либо переводите сайт на шаблонизатор Fenom, который уже условия обрабатывать более привычно для человеческого восприятия.
Наумов Алексей
05 июля 2021, 15:13
0
Здесь
Часть кода можно убрать отключив редактор (настройка tickets.enable_editor).
Подключение основного скрипта без правки исходников не сделать.
Наумов Алексей
02 июля 2021, 14:18
0
Обновится не выйдет 100%.
Поэтому делаете новый сайт, а старые данные импортируете через базу, csv файлы или как умеете.
Наумов Алексей
25 июня 2021, 09:15
+2
Цена товара в корзине сохраняется, поэтому да, если поменять ее на сайте — в корзине будет старая.

Думаем, как поправить…
Нужно при каждом получении корзины (это плагин на событие msOnGetStatusCart, доступен объект $cart) пробегаться по корзине, получать товары и актуализировать цену.
Примеров с тем, как в корзине что-то менять — на сайте полно)
Наумов Алексей
10 июня 2021, 09:10
0
Вы же запускаете сниппет в контексте mgr, верно?
Там нет $modx->resource, здесь и возникает ошибка…
Наумов Алексей
10 июня 2021, 08:59
0
Добрый день.
Я так понимаю, у вас там некий файл с кодом, где нужны id товаров?

Сделайте запрос в бд напрямую, не запускайте сниппет.
Вот вырезка кода, только поправьте ее, я просто скопировал кусок:
// addPackage для загрузки модели
$modx->addPackage('msproductkits', MODX_CORE_PATH . 'components/msproductkits/model/');

// Build query
$c = $modx->newQuery('msProductKitItem');
$c->select($modx->getSelectColumns('msProductKitItem', 'msProductKitItem'));
$c->where(['active' => 1, $mode => $resource]);
$kitItems = $modx->getIterator('msProductKitItem', $c);
// далее foreach
Наумов Алексей
04 июня 2021, 15:29
+1
Там разве не вот так?
modx.user.id:ismember=`MyGroup`
Наумов Алексей
03 июня 2021, 13:16
0
Да, поискал побольше информации… увидел это)
Обидно, у меня vps свежая, успел на нее уже штук 5 сайтов поставить, и конечно же там mysql 8 свежий поставил… получается опять с vps заниматься…