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

Наумов Алексей
28 сентября 2021, 11:15
0
Я вижу «Результат 0.2634 s — Total Time» — если у вас в pdoMenu 200 элементов рендерится — выглядит приемлемым (ну может хостинг не самый быстрый).

Когда работает debugParser — считай видим результат без кеша. Вообще долго конечно, 0,7 с, но опять же… 200 элементов… При этом время на sql запросы маленькое, а вот парсинг долгий…
Ради прикола вызвал этот же код на одном из своих сайтов, где 25000 страниц, а при генерации меню с level=3 генерируется около 1800 пунктов в этом самом меню.

1й вызов (без кеша):
0.4623 s — Query Time — Shows how long MODx took talking to the database
1844 — Query Count -Shows how many database queries MODX made
0.8484 s — Parse Time — Shows how long MODX took to parse the page
1.3107 s — Total Time — Shows the total time taken to parse/ render the page
database — Source — Shows the source of page, whether is database or cache.
2 вызов (с кешем):
0.0041 s — Query Time — Shows how long MODx took talking to the database
21 — Query Count -Shows how many database queries MODX made
0.0325 s — Parse Time — Shows how long MODX took to parse the page
0.0366 s — Total Time — Shows the total time taken to parse/ render the page
cache — Source — Shows the source of page, whether is database or cache.
как видно, во втором случае все очень хорошо и быстро отрабатывает…
Может у вас плагины какие-нибудь висят или еще что-то подобное?
Дмитрий
28 сентября 2021, 11:12
0
Спасибо за совет. Учту.
Александр Лунегов
28 сентября 2021, 10:08
0
Решал задачу по изменению параметра FormIt и наткнулся на эту статью.
У меня получилось решить следующим образом:
$hook->formit->setOption('emailTo', $hook->getValue('emailto'));
newbmod
28 сентября 2021, 09:57
0
Код оптимизировал. Однако время осталось все же очень большим. Для эксперимента сделал практически пустую страницу с pdoMenu и результатами порядка 200 элементов
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    [[pdoMenu? &parents=`0` &scheme=`full` &level=`3` &where=`{"template:!=":3}`]]

<b>[^qt^]</b> - Query Time - Shows how long MODx took talking to the database <br />
<b>[^q^]</b> - Query Count -Shows how many database queries MODX made  <br />
<b>[^p^]</b> - Parse Time - Shows how long MODX took to parse the page  <br />
<b>[^t^]</b> - Total Time - Shows the total time taken to parse/ render the page <br /> 
<b>[^s^]</b> - Source - Shows the source of page, whether is database or cache. <br />

</body>
</html>
Результат:
0.0053 s - Query Time - Shows how long MODx took talking to the database
3 - Query Count -Shows how many database queries MODX made
0.2581 s - Parse Time - Shows how long MODX took to parse the page
0.2634 s - Total Time - Shows the total time taken to parse/ render the page
cache - Source - Shows the source of page, whether is database or cache.
Поставил debugParser и вот картина:
#	Tag	Queries	Queries time, s	Parse Time, s
1	[[pdoMenu? &parents=`0` &scheme=`full` &level=`3` &where=`{"template:!=":3}`]]	12	0.0100107	0.4148281
Total parse time	0.7210090 s
Total queries	20
Total queries time	0.0185585 s
Memory peak usage	12 Mb
MODX version	MODX Revolution 2.7.3-pl (advanced)
PHP version	5.6.40
Database version	mysql 10.2.39-MariaDB
From cache	false
Дело явно не в msProduct.
0,7 c на выборку 200 элементов — это перебор
Евгений
28 сентября 2021, 09:04
0
попробовал regexp
«div class=»video-iframe yt-vme-container[\S\s]*?script video-source=\"(.*?)\""
и
«script video-poster=\»(.*?)\""

и получил
[2021-09-28 05:00:05] (ERROR @ ../core/components/xparser/handlers/parser/xpparser.class.php: 393) PHP warning: preg_match(): Unknown modifier 'v'

case 'regexp':
                                                <strong>if (preg_match($v['selector'], $row, $match)) {</strong>
                                                    $string = $match[1];
                                                }
                                                break;
Павел Голубев
27 сентября 2021, 16:29
0
Если речь о 1m товаров, то зачем вообще их хранить в таблице с ресурсами и потом допилить это напильником?
Максим
27 сентября 2021, 10:56
0
Вообще, на мой взгляд, «количество» и «качество» — это общие свойства для всех товаров, как и штрихкод, вес, цена и т.п. Я бы делал их через систему плагинов минишопа (т.е. добавление их на вкладку «свойства товара»), а не через опции (вкладка «опции товара»).
varanika
27 сентября 2021, 01:36
0
Здравствуйте. Пришел сайт с этим компонентом, соответственно ключ не мой и в ТП написать не могу. Но можно маленький вопрос? Где, ну где зашит этот вызов?

<script type="text/javascript">
		!window.jQuery && document.write('<script src="/assets/components/mvtforms/js/web/jquery-3.2.1.min.js"><\/script>');
            </script>
P.S.
Все, нашла наконец. core/components/mvtforms/model/mvtforms/mvtforms.class.php
Андрей
25 сентября 2021, 23:05
+3
Старые версии можно скачать тут — https://github.com/Ibochkarev/miniShop2/releases, под релизом нажать на Assets, и там в выпадающем меню будет архив с транспортным пакетом, например minishop2-2.6.0-pl.transport.zip.
Фарит
Фарит
25 сентября 2021, 22:40
0
Сделайте, пожалуйста, возможность загрузки старых версий минишопа.
Олег Захаров
25 сентября 2021, 00:24
0
Источник проблемы был — подгружаемый скрипт yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.79-26/build/debug/full-a37604fde567790c251386c8114a5a4c2048380e.js
В нем есть на строке 167285:
setTimeout(function () {
            document.head.insertBefore(tag, document.head.firstChild);
        }, 0);
— через просмотр источника в вкладке Sources всплывает подсказка о ошибке на текст «insertBefore(tag, document.head.firstChild)» — текст сообщения об ошибке «Failed to load resource:the server responded with a status of 400 ()»
На него в консоли выходит ошибка:
full-a37604fde567790c251386c8114a5a4c2048380e.js:167286 GET https://api-maps.yandex.ru/services/search//v2/?callback=id_163251784219566603305&text=&format=json&rspn=0&lang=ru_RU&results=1&token=780a34112aa192be3eeaa652724b81e9&type=geo&properties=addressdetails&geocoder_sco=latlong&origin=jsapi2searchcontrol&apikey=туткодapikey net::ERR_ABORTED 400
Олег Захаров
25 сентября 2021, 00:01
0
Код подключения Api для яндекса указывается в скрипте assets/components/mscdistance/js/web/default.js — он скорее всего должен быть там прописан. И в коде подключения api должен быть обязательно ключ apikey. У меня при одной переустановке компонента почему-то этот код apikey отсуствовал. Благо в резервных копиях он остался и я вручную его прописал и доставка заработала — но только на ПК. На мобильных были проблемы работы, вроде решил путем явного прописывания в начало чанка head кода подключения метрики с указанием apikey. Мой коммент ниже.
Олег Захаров
24 сентября 2021, 23:56
0
Еще сегодня нашел одну возможную проблему неправильной работы доставки. На тестовом сервере все работало, на рабочем доставка в упор не считалась, карта не обновлялась По выводимым ошибкам поискал информацию и нашел рекомендации о том чтобы код api яндекс карт не были ниже кода метрики. Понаблюдал за тем как код карт подгружается и пришел к выводу о том что возникает проблема с попыткой скрипта assets/components/mscdistance/js/web/default.js добавить (инициализировать) карту. Конкретно у меня возникал конфликт с метрикой (т.к. ее код подгружался через Google Tag Manager динамически) я по совету форумов повторил код апи яндекс карт с указанием ключа — вставил непосредственно выше (но не рядом с метрикой и не над ней — все равно глючило) и все прекрасно стало грузиться.
Была проблема плохой работы на мобильных устройствах. Почитал справочные материалы — оказалось что вроде на устройствах с низкой скоростью интернета методы со вставкой кода (метод document.writeln в default.js) плохо срабатывают — где-то пишут что блокируется браузером. Вышеуказанный метод вставки кода непосредственно в начало чанка head помог с решением проблемы. Но это костыль. Вставлял так:
<script src="https://api-maps.yandex.ru/2.1/?apikey=ВзялAPIкодИзdefault.jsс5строки&lang=ru_RU&mode=debug&load=package.full&onload=mscDistance.Ymaps.ready&ns=ymaps" type="text/javascript">
    </script>
По сути это повтор 5 строки скрипта assets/components/mscdistance/js/web/default.js — и сайт сразу стал прекрасно работать и на мобильном тоже. Таковы мои изыскания нескольких бессонных ночей. Искал причину по разному, переделал форму заказа и корзины, а оказалось проблема в конфликте кода метрики с кодом подключения карт.
Олег Захаров
24 сентября 2021, 23:45
0
Есть еще проблема — если ввести и выбрать адрес доставки, карта инициализируется и стоимость пересчитывается. Но если очистить строку адреса стоимость и поля координат и расстояний не пересчитываются. Вообще хотелось бы сделать проверку что поле длины расстояний (mscdistance_delivery_distance) не оставались пустыми или равными 0. Если в поле указания адреса доставки введенный адрес удалить и ввести новый адрес и кликнуть по выпадающему адресу — вроде бы карта переинициализируется. Но периодически бывает так чтобы не обновляется и стоимость не сбрасывается.
Попробовал сделать такой код на проверку что поле адреса пустое вызывая команду mscDistance.initialize();
$(document).on('change keydown','#mscdistance_delivery_to_point',function(e){
			/*надо бы добавить проверку логики если ранее выбранная улица не совпадает с новой*/
			if($(e.target).val()!=""){
                            /*если поле не  пустое*/
			}else{
				/*пытаемся пере инициализировать расчет доставки*/	
				mscDistance.initialize();
			}
		});
$(document).on('blur','#mscdistance_delivery_to_point',function(e){
			if($(e.target).val()==""){
				mscDistance.initialize();
			}
		});
Не работает, сумму доставки и карту не обновляет. Какая команда в js отвечает за переинициализацию доставки (стоимости и карты маршрута)?
Дмитрий
24 сентября 2021, 22:08
0
Спасибо. Буду знать.
Александр Туниеков
24 сентября 2021, 21:20
0
Хм. ошибки не смотрел тогда. А сейчас минишоп уже откатили до прежней версии :)
Николай Савин
24 сентября 2021, 21:17
0
Звучит неплохо. Запишем.
Николай Савин
24 сентября 2021, 21:17
0
Ройте в сторону журнала ошибок MODX и журнала серверных ошибок для начала
Евгений
24 сентября 2021, 20:54
0
незнаю, много у кого не работает после обновлений на определенные версии, у меня просто перестает работать веб-интерфейс, ошибок никаких нигде нет, автор говорит ничего не может сделать и тп
да лан, забей… автор паша гвоздь забил :)