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

Артур Шевченко
01 августа 2021, 21:36
0
В ресурсе класса msProduct на вкладке Свойства товара или Опции.
Артур Шевченко
01 августа 2021, 21:34
0
Судя по всему на сайте используется готовый компонент. Думаю стоит посмотреть документацию и убедиться, что всё сделано так, как там написано. По умолчанию данный компонент не перезагружает страницу и не очищает корзину.
Александр Мельник
01 августа 2021, 21:22
0
Нет, я не подскажу. Я не знаю что такое — ajax фильтрация.
Ivanov Alexandr
01 августа 2021, 21:20
0
Города и области в дополнительных полях.
Может подскажете как сделать отправку форму по кнопке даже если включена аякс фильтрация?
Александр Мельник
01 августа 2021, 21:16
0
Александр, кто кроме вас знает, как у вас организована архитектура? Что на вашем сайте есть Область, что есть Города?
Я не использую никогда mFilter и мне кажется и для этой задачи он тоже не нужен.
Предположим что у вас есть ресурс Киевская область и в нем дочерние ресурсы — города.
Чтобы вывести селект со списком областей вам хватит pdoresources
А далее пишете свой javascript который отслеживает изменения на этих селектах и отправляет ajax запрос, передающий id области.
в самом простом случает пусть вам возвращает сервер готовый html c options городов этой области. Это опять таки может сделать pdoresources у которого родителем будет указан переданный вами айдишник.
Ivanov Alexandr
01 августа 2021, 19:32
0
&filterOptions=`{«autoLoad»:1}` если установлен этот параметр то кнопка Отправить не работает. Если же выключить то кнопка работает только вот параметры автоматически не подтягиваются. Если к примеру выбрал область то не подтягиваются города.
Дима Сайт old см. профиль
01 августа 2021, 16:12
0
Ну да, переписать дополнение или использовать другое не нужно. А нужно к этому дополнению городить кучу костылей))
@Иван хоть вы на первый взгляд и детально объяснили что там как должно быть на нормальных по вашему мнению сайтах, все же не понятно какую проблему вы видите в дополнении? Какие необходимые к нему костыли вы имеете в виду?

Во времена повсеместного бума интернет-приватности и частичного отказа от cookies я вот хочу перенести в сессии некоторые настройки персонализации для незарегистрированных посетителей сайта (например открыто или закрыто боковое меню) и вообще сводить к минимуму использование cookies там где возможно.

Короче, ИМХО тренд сейчас в сторону увеличения времени жизни сессий, а не уменьшению.

Поэтому, если не «плакаться» что «anonymous_sessions» работает не так как хочется, а так, как решил мейнтейнер (хотя может и открыть ещё один issue для обсуждения?), то проблему с растущей базой надо как-то решать всё равно, а идея проверять user-agent и через него фильтровать сессии ботов это же прям похоже на решение!
Algirdas
01 августа 2021, 15:47
0
Спасибо! Всё сработало. Чуть дописал сниппет для возможности фильтрации и снова затык

<?php
$values = array();
$ids = $modx->runSnippet('pdoResources', array(
	 'parents' => $parents,
	 'limit' => 0,
	 'returnIds' => 1,
	 'includeTVs' => 'certificateBuildingType',
	 'tvFilters' => 'certificateBuildingType=='. $type

));
$resources = explode(',', $ids);
foreach($resources as $id){
	 $resource = $modx->getObject('modResource', $id);
	 $tv = $resource->getTVValue($tvname);
	 if(is_numeric($tv)) $values[] = $tv;
}
$out = array_sum($values); 
return $out;
Вот эта строка не работает
'tvFilters' => 'certificateBuildingType=='. $type
Вызываю так:
[[!countArea?&parents=`5`&tvname=`certificateArea`&type=`1`]]
Если напрямую написать
'tvFilters' => 'certificateBuildingType=='.'1'
То работает. Если в самом начале написать
$type = '1';
то тоже работает

Я так понимаю дело в синтаксисе, но я его победить так и не смог, что только не перепробовал. Знаний не хватает, примеры похожие не нашел ((
Александр Мельник
01 августа 2021, 14:14
0
Ещё правильнее хранить сессии в Redis.
Ну тут Евгений, наверное стоит заметить, что сайты разрабатываемые на modx как правило размещаются на очень недорогих хостингаx, где нет возможности установить redis. Как это по русски — каждый сверчок знай свой шесток.
При правильных настройках — у активных пользователей сессия не будет слетать (так как часто запрашивается).
А менее популярные сессии анонимов при большом размере кеша будут выталкиваться.
У вас нет ссылок на примеры реализации? Просто я буквально неделю назад углубленно вникал в работу redis и скажем так — не нашел redis очень удобным для хранения сессий. Применил redis для хранения временных токенов, для доступа у определенным ресурсам — вот тут прям идеально применение redis поскольку программа имеет возможность установки времени жизни записи и сама следит за ее удалением.
Так и при установке MODX на два сервера и более
неужели кто-то так делает? MODX это возможность за 6 дней сделать неплохо работающий сайт, лендинг, небольшой магазин без амбиций. Но распылять MODX на несколько серверов… Мне кажется это из области фантастики. Здесь на форуме собраны лучшие разработчики на MODX в России и бывших странах СССР — кто так делал?
Columb
01 августа 2021, 13:29
0
Свойство «ms2gallery» остаётся на месте, вероятно, из-за того, что в системных настройках Тикетс ms2gallery указан в качестве источника медиа для тикетов (tickets.source_default).

К сожалению, мои знания не позволяют «доработать Тикетс в том месте, где он затирает неугодные ему properties». НО я нашел способ, как можно обойти данную проблему —
  1. Созданный помощью xParser Тикет редактируем и сохраняем ТОЛЬКО в неопубликованном состоянии.
  2. Публикуем (снимаем с публикации) Тикет ТОЛЬКО в разделе с тикетами (кнопкой).
  3. Если необходимо отредактировать уже опубликованный Тикет — в разделе с тикетами (кнопкой) снимаем Тикет с публикации + редактируем и сохраняем неопубликованный Тикет + переходим в раздел с тикетами и кнопкой его публикуем.

Вот такие «танцы с бубном» для тех, кто не умеет писать код)
Евгений Шеронов
01 августа 2021, 13:00
0
Ещё правильнее хранить сессии в Redis.
При правильных настройках — у активных пользователей сессия не будет слетать (так как часто запрашивается).
А менее популярные сессии анонимов при большом размере кеша будут выталкиваться.

Так и при установке MODX на два сервера и более репликация Redis позволит не слетать авторизациям между запросами на разные сервера (именно тут у сессий в БД и было преимущество над файлами, где тоже можно было настроить репликацию БД между серверами).

Но я не знаю и не делал сайтов на MODX, работающих одновременно на двух серверах)
Андрей
31 июля 2021, 22:11
+1
В верхнем меню Пакеты -> Minishop2 -> Настройки -> Варианты доставки

Настройки miniShop2
Бывает же такое, как раз ищу инфу по уменьшению размер таблицы с сессиями (на одном проекте 3.2гб уже), нахожу массу вариантов из поиска, включая статью про сессии на bezumkin.ru (кстати она от 2014 г и спустя 7 лет, в ubuntu значение session.gc_probability и сейчас по-умолчанию = 0 ).

Ну подправил настройки PHP и довольный по привычке перехожу на главную modx.pro глянуть как дела и вижу тут большой новый пост про сессии (0_о)… уже заподозрил что рекламные-таргет-технологии добрались до портала и подкладывают рекомендации на основе истории поиска :)

Оказалось, совпадение…

P.S. Автору большое спасибо! Конечно, готовые решения намного лучше когда в пакетах!
Андрей
31 июля 2021, 14:32
0
сталкивались. Заказывали интеграцию у беларуских програмистов. Сделали но только отправляли информацию в айко но не получали от нее — заказы в айку приходили но если поставить в айко в стоп то сайт это не видел
Ivanov Alexandr
30 июля 2021, 23:53
0
К сожалению так тоже не хочет работать.
Andrey
30 июля 2021, 17:20
+1
Я не пользовался ни тем, ни другим, но мне кажется вы пытаетесь подсунуть mFilter2 параметры, которые он не принимает. Может создать отдельный набор параметров для googlestorelocator и вызывать так: &element=`GoogleStoreLocator@myParams`, например? Справка по mfilter2.
Иван
30 июля 2021, 17:03
0
Уточню что я имею ввиду. Да, в MODX есть особенность, что если отключить «anonymous_sessions», то сессии будут работать только у авторизованных пользователей. В некоторых случаях это подходит (заставлять авторизовываться). Но важен также размер хранящейся информации в таблице сессии. Его нужно свести к минимуму + уменьшить время жизни сессии до суток (или даже 12 часов). Этого вполне достаточно для большинства сайтов. Но по-хорошему эту особенность с «anonymous_sessions» нужно исправить. Сессии должны создаваться только тогда, когда они нужны.
Иван
30 июля 2021, 15:59
0
А корзина товаров? А если я товар «отложил»...
Про это я уже написал. Зачем повторяться? Какой процент всех посетителей использует корзину товаров? Я думаю меньше 50%.

а если у нас правда что-то работает через ajax?
Для аякса необходимы сессии? Это что-то новенькое)

Правильнее бы конечно создавать сессии когда они действительно нужны. Но MODX работает на своей волне
Не MODX, а указанное дополнение.

Давайте делать статичные странички на html!
Ну да, переписать дополнение или использовать другое не нужно. А нужно к этому дополнению городить кучу костылей))