Вопросы

minishop2 торможение сайта

Добрый день. Сайт прорабатывался подрядчиком на шаблонном решении. Стоит минишоп с возможностью добавления фильтров/опций с админки. После того, как в категорию было загружено 3к товаров, страница стала нещадно тормозить и ajax фильтрация также (динамический фильтр перестал работать вообще).

Как можно исправить тормоза, с чем это связано, какая нужна дополнительная информация?

Подрядчик сообщает, что в тормозах виновата система управления опциями/фильтрами в админке, якобы сайт дополнительно нагружает базу данных из-за этого. Это верно?
Марсель
31 января 2020, 14:05
modx.pro
785
0

Как задать счетчик итераций в цикле foreach в Fenom?

Друзья, помогите разобраться, изучаю Fenom и появилась задача, добавить счетчик. В доках есть пример.

{foreach $list as $value}
 <div>{$value}</div>
{/foreach}

{foreach 1..7 as $value} 
 <div>№{$value}</div>
{/foreach}
Но я не понимаю как он работает, хоть тресни.
Роман
31 января 2020, 13:52
modx.pro
6 406
0

переменная $_SESSION не видна при вызове файла через ajax

Здравствуйте. Помогите пожалуйста. Не пойму почему переменная $_SESSION['code'] не видна при вызове файла через ajax

Использую MODX Revolution 2.6.5-pl
есть спиппет
[[!inteс]]

в нем вызывается php файл
include('/test/test_inteс.php');
в котором создается переменная $_SESSION['code'].

На данном этапе $_SESSION['code'] есть и есть она во всех файлах, связанных с test_inteс.php. Но если вызвать другой файл методом get через ajax,
например: ...type: 'get', url:'/test/test_base.php'…
$_SESSION['code'] в файле test_base.php становится равна 0.

session_start(); не ставлю нигде, как советуют многие.

Что не так я делаю? Спасибо за любую помощь.
Alisa
31 января 2020, 13:30
modx.pro
1 509
0

Ошибка HY000 в minishop2, заказы оформляются на других пользователей

Здравствуйте, помогите с ошибкой HY000 executing statement в minishop2. Иногда заказ оформляется неправильно, на другого, случайного существующего пользователя. Происходит это рандомно, и редко. Лог после этого содержит такие строки:
DimoniXo
31 января 2020, 12:26
modx.pro
1 462
0

Мультиязычность и https, цикличный редирект.

Николай
31 января 2020, 11:19
modx.pro
733
0

miniShop2 вывод опций товара

Доброй ночи, прощу прощения возможно за глупый, вопрос давно не работал в minishop2 и много чего поменялось, стараюсь весь сайт написать на Fenom и не могу вывести дополнительные опции товара, для вывода я понял что есть 2 сниппета: msProductOptions и msOptions, они работает, но мне нужен вывод в разным местах страницы
Например вывод {$article} работает, но если мою опцию вывести, то пустота, также [[+moyopcii]] тоже выводит пустоту, что делать HELP
Николай
31 января 2020, 01:00
modx.pro
2
3 330
0

Как в админке с помощью ExtJS отследить изменение значения TV и поменять его сразу или перезагрузкой стараницы?

Есть плагин изменения значения tv при определенных условиях.

if ($modx->event->name == 'OnDocFormSave' && $mode != 'new') {
//куча условий
//.......

// меняем значение TV
$resource->setTVValue('my_tv', 'Новое значение');

//...
}


//перезагружает страницу в админке при каждом сохранении ресурса
//НЕ пойму как сделать, чтобы перезагружалось только при изменении значения TV
if ($modx->event->name == 'OnDocFormPrerender' && $mode != 'new') {
	
	$modx->controller->addHTML('
	<script type="text/javascript">
	
		Ext.ComponentMgr.onAvailable("modx-panel-resource", function (e) {
		    var res = Ext.getCmp("modx-panel-resource");
		    res.on("beforeSubmit", function(){			
				//Перезагрузка страницу после сохранения
		        location.reload();
		    });
		   
		});
    </script>');	
}
Данная конструкция перезагружает страницу в админке при каждом сохранении ресурса, НЕ пойму как сделать, чтобы перезагружалась только при изменении значения TV… Не могу передать значение переменной из кода на событие OnDocFormSave в код на событие OnDocFormPrerender, представляется, что это невозможно…
Дмитрий
31 января 2020, 00:44
modx.pro
2
1 634
0

AjaxForm и reCaptcha V3

Доброе время суток. Сталкивался ли кто-нибудь с использованием reCaptcha V3 через плагин?

Каким образом происходит проверка на робота? Обычных пользователей не пропускает, а проверку не дает.

Сама каптча на сайте подключена, но нет возможности ее проверить. Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет. Если зайти через приватное окно, то никаких проверок не происходит и форма надежно отправляет, а другие пользователи отправляют форму и у них не выскакивает никакой проверки а сразу выдается сообщение «Вы не прошли проверку reCaptcha.» Смотрел видео на ютубе, парень делал не через плагин и говорит что существуют 3 спосоа проверки и по умолчанию стоит на кнопке, при нажатии на нее если есть подозрения то всплывающим окном выходит проверка на картинках — но ничего. PS на странице несколько форм.
Евгений Лазарев
30 января 2020, 15:10
modx.pro
1
4 645
0

На что повесить плагин уведомления админа о том, что юзер обновил профиль?

Добрый день.
Использую Office, после активации юзер должен заполнить обязательные поля. С этим все понятно. Нужно чтобы при обновлении профиля зарегистрированным пользователем, уже после описанных выше процедур, админу приходило уведомление что профиль обновился.
Ничего лучше чем повесить его на событие OnUserFormSave пока не придумал, но теперь мне валятся уведомления и когда юзер только зарегистрировался и когда заполнил обязательные поля и когда админ внес какие-то правки в его профиль. Подскажите, пожалуйста, как отфильтровать все эти события? Плагины только начинаю писать, простите за, возможно, туповатые вопросы.
Евгений
30 января 2020, 12:03
modx.pro
847
0

GeoLocation php 7.3

Добрый день! Сайт раньше работал на версии php 7.1, перевел на 7.3. После перевода перестал работать выбор города geoLocation. Разбор кода выявил что в процессоре components/gl/processors/web/getlist.class.php
if ($query) {
            $c->where(array(
                "{$this->objectType}.name_ru:LIKE"    => "%{$query}%",
                "OR:{$this->objectType}.name_en:LIKE" => "%{$query}%",
            ));
        }
данная конструкция не отрабатывает, и дебаг sql запроса выдает ( `glCity`.`name_ru` LIKE 0 OR `glCity`.`name_en` LIKE 0 )
т.е. переменную $query преобразует в ноль (0). Переменная $query приходит нормальная, преобразует в 0 ее xpdo. Как можно победить? Спасибо.
Владимир Бабусенко
30 января 2020, 11:46
modx.pro
790
0