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

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

Был в сети 28 июля 2026, 14:21
Заказы принимаю
Я вижу «Результат 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.
как видно, во втором случае все очень хорошо и быстро отрабатывает…
Может у вас плагины какие-нибудь висят или еще что-то подобное?
Чанк выглядит ужасно)
Оптимизируйте.
Во-первых, в чанке доступен Fenom, а у вас смесь из Fenom и родного парсера MODX.
И в этом вся проблема.
Если вы не знаете, то вот это
[[+template:is=`3`:then=`КОД 1`:else=`КОД 2`]]
и вот это
{if $template == 2}
КОД 1
{else}
КОД 2
{/if}
работает совершенно по разному!

В первом примере КОД 1 и КОД 2 все равно ВСЕГДА сначала выполняются (!), а только потом парсер показывает результат в зависимости от условия.
Учитывая, что у вас там внутри еще вызовы различных сниппетов…
А вот во втором примере все работает хорошо, сначала проверяется условие, и только потом выполняется КОД 1 или КОД 2.

Далее
<!-- [[pdoField? &id=`[[+id]]` &field=`pricetv`]] -->
это комментарий html! Код все равно выполняется!!!

ну и самый трэш здесь
[[+tv.imgTV:is=``:then=`
<img 
src="[[+tv.img:default=`[[!msGallery?tpl=`msGalleryCategory`&product=`[[+id]]`&limit=`1`]]`:phpthumbon=`w=200&f=webp&q=65`]]" 
data-img="[[+tv.img:default=`[[!msGallery?tpl=`msGalleryCategory`&product=`[[+id]]`&limit=`1`]]`:phpthumbon=`w=200&f=webp&q=65`]]" 
class="zerone lazy" 
alt="{$pagetitle}" />
`:else=`
<img src="[[+tv.imgTV]]" 
data-img="[[+tv.imgTV]]" 
class="zerone lazy" 
alt="{$pagetitle}" />
`]]
я даже разбираться боюсь и не хочу, это просто кладезь тормозов.
в catalogItemTpl что?

Ну и 5 JOIN по tv полям… ну не самое классное, что можно придумать..., тем более, что tv хранятся как строки, а вы хотите их как number видеть… все это CAST лишние

Сортировка опять же по TV…
includeContent действительно нужен?
Добрый день!

У дополнения нет такой функции.
Однако вы можете через плагины
добавить произвольное поле в базу данных и сохранять нужные значения в него.
Естественно, придется дописать и функционал на js.
Добрый день!
Спасибо, обновляюсь, все лучше и лучше)
clip2net.com/s/4deLsku
здесь ошибочка лезет, если нет способа доставки «Почта России».
нужно проверять, что el найден
С большой долей вероятности на событие OnDocFormSave висит какой-нибудь плагин. В его работе возникает ошибка (о чем может быть сообщение в логах), документ не сохраняется, все зависает.
Об этом же может символизировать 5XX код в ответе сервера на запрос (см. консоль браузера).
Добрый день!

И еще как бы нюанс…
У меня на сайте одна служба DPD.
Ввожу в поле Город какую-нибудь деревню из области, где ну точно нет пункта самовывоза. При этом населенный пункт вполне себе подсказывается. Я так понимаю, что в целом курьером транспортная компания привезти заказ может, т.к. стоимость «Курьер до адреса» меняется, ну а самовывоза — нет. Однако скрипты такую ситуацию не обрабатывают, в консоли браузера ошибка:
2eshoplogistic2.js?v=0.0.1:176 Uncaught (in promise) TypeError: Cannot read property 'price' of null
    at Object.confirm (eshoplogistic2.custom.js?v=0.0.1:176)
    at Object.eShopLogistic.onSelectedService (eshoplogistic2.custom.js?v=0.0.1:420)
    at app.js:1
    at Array.forEach (<anonymous>)
    at H (app.js:1)
    at onSelect (app.js:1)
    at $r (chunk-vendors.js:1)
    at Vr (chunk-vendors.js:1)
    at Jt (chunk-vendors.js:1)
    at Proxy.selected (app.js:1)
Еще из замечаний: при первой загрузке страницы (а так же если просто её обновить кнопкой F5), то выбирается не первая доставка из списка (Самовывоз в моем случае), а первая из доставок компонента и показывается блок с выбором службы доставки. Это не корректное поведение.
Добрый день!

Пощелкал немного на демо-сайте, на основном уж в понедельник буду разбираться…

Пока заметил вот что:
clip2net.com/s/4d8ZXPJ
Выбрал Почту России, но остались галочки у курьерской службы… путаница.
Глюк с п.3 да, пока остался…

И у меня еще общий вопрос: расчет стоимости для служб идет только на основании веса, размеров посылки и города? Для курьера учитываются ли поля адреса (улица, дом и др. стандартные поля минишопа? Дело в том, что я все их (street, building, room) заменил на просто общее поле full_address (добавил самостоятельно), где пользователь может написать адрес в удобном ему виде.
Для Почты России, я так понимаю, доставки считается только на основании индекса?
Конечно не нужно скрывать все)))

Самовывоз со склада, собственный курьер, да просто куча способов доставок может быть, которые не нужно скрывать.

Ладно, хорошо, хоть есть несжатый скрипт, придется поковыряться!
Добрый день!

Когда добавляю вызов сниппета eshoplogistic2Order на страницу оформления заказа — скрипты скрывают все мои остальные способы доставки.
У меня 4 способа:
1. Самовывоз со склада
2. Доставка курьером в пределах МКАД
3. Забрать с пункта самовывоза (должно работать через eShopLogistic.ru)
3. Курьером по РФ (должно работать через eShopLogistic.ru)

я что-то не так сделал или компонент так работает?