Всего 125 991 комментарий

Wassi Wassinen
15 декабря 2021, 04:18
0
Сергей, спасибо за ответ.

Самая главная беда — мы видим ошибки в общем логе MODx, но не знаем на какой странице сайта они вылезли. :) Поэтому, чаще всего, выявление ошибок происходит с помощью визуального осмотра сайта. Мы включаем дебаг и ползаем по страницам в поисках этой ошибки.

Приведу один из примеров: есть сложная страница с несколькими «вкладками». Вкладки не разбиты на отдельные страницы, а свёрстаны как вкладки с помощью css-фреймворка. На каждую вкладку выводятся ресурсы с помощью pdoPage со своими отборами для каждой вкладки.
Например, мы видим что страница «поехала» — что-то отображается не правильно.
Как это работало в предыдущих версиях — мы видим дебаг под каждым сниппетом и понимаем, какой из них отрабатывает с ошибкой. Например, я добавил showLog=1 для всех сниппетов и на каждой вкладке (или под каждым местом, где должен быть вывод сниппета) вижу свой дебаг. Сразу понимаю, какой из сниппетов отработал неправильно.

Когда мы можем вывести дебаг только в одном месте — сразу не понятно что и где «сломалось». Ошибка уже не привязана к вызову сниппета в вёрстке сайта и это не всегда удобно.

Возможно, я ошибаюсь и все привыкли действовать по-другому. Можно добавить возможность указать плейсхолдер для вывода дебага, а если он не указан — выводить единым плейсхолдером. Если через пару версий выяснится, что этим никто не пользуется — значит я был не прав и эту возможность можно будет исключить.

Еще раз спасибо, что откликнулись на предложение с позитивом.
Евгений
14 декабря 2021, 23:37
+1
Да, так и сделал, спасибо!
SeaTehno
14 декабря 2021, 23:31
0
Документация
Просто отключите очистку формы после успешной отправки сообщения form[0].reset();
Студия Сергея Сергеевича
14 декабря 2021, 20:37
0
Проблема в том что обычно выводится как положено (если заказать например один товар). Не понятно почему образуется вывод массива с данными. Т.е. в одном письме с большим кол-вом товаров (и у определенного товара много в наборе диоптрий) выводятся и нормально и так как на скрине. Думаю где-то идет переполнение.
Евгений Webinmd
14 декабря 2021, 20:06
0
это вывод опций, в чанке письма (tpl.msEmail) по умолчанию выводятся так:
{if $product.options?}
        <div class="small">
            {$product.options | join : '; '}
        </div>
    {/if}
Либо уберите его, либо отредактируйте
Николай Савин
14 декабря 2021, 19:47
0
Нет проблема не в этом, и конкретно эта запись совершенно безобидная. Ошибкой не является.
Сергей Шлоков
14 декабря 2021, 19:34
0
Это сделать абсолютно не сложно. Добавлю в следующей версии. Просто интересно, зачем дебажить сразу 2 вызова одного и того же сниппета?
Студия Сергея Сергеевича
14 декабря 2021, 16:00
0
после оформления заказа ошибок в логах нет
Александр Мельник
14 декабря 2021, 14:49
+1
Михаил, вы как хирург, который взялся оперировать человека, но звонит по телефону другу и спрашивает, как выглядит скальпель.
Вы зря взялись это делать и скорее всего приведете сайт в нерабочее состояние.
Но если все же хотите, то кликните по Шаблон главной или Основной шаблон и поищите там тег (вот именно с такими стрелочками)
<head>
. У него должен быть парный закрывающий тег
</head>
Между ними и вставьте ваш код.
Возможно что head будет вынесен в чанки (у вас в дереве слева можно развернуть Чанки) и поищите тогда head там.
Михаил
14 декабря 2021, 13:39
0
а шапка это название получается шаблона?
вот сюда вставляю тег и нажимаю сохранить?
Николай Савин
14 декабря 2021, 13:28
0
Да все верно. Шаблоны располагаются здесь.
Но совсем не обязательно что шапка сайта будет находиться в шаблоне. Это нужно по месту разбираться.
Роман
14 декабря 2021, 11:48
0
В шаблоны зайдите, и в шапку вставьте код. Между тегами
<head></head>
Wassi Wassinen
13 декабря 2021, 20:04
+4
@Сергей Шлоков, прежде всего, хочется сказать, что вы и другие разработчики — молодцы.

Небольшое пожелание.
Если есть такая возможность — сделайте вариативным плейсхолдер для лога. На многих проектах на одной странице может быть, например, несколько pdoMenu. Как я понимаю, в таком варианте все логи сольются в единую портянку и это будет крайне не удобно. Добавьте возможность указать имя плейсхолдера, в который будем выгружать лог.

Заранее благодарен.
Студия Сергея Сергеевича
13 декабря 2021, 20:02
0
Спасибо за анализ.
Такой вариант сделан чтобы каждую диоптрию можно было как отдельный товар со своим кол-вом заказать.
Артур Шевченко
13 декабря 2021, 17:48
0
В консоли браузера ошибка связанная с корзиной. В письме не ошибка, в письме похоже объект не то msoptionprice, не то mscart, ошибка скорее всего есть в журнале ошибок. И в целом, с точки зрения юзабилити такой вариант выбора неудобен. Зачем добавлять диоптрии таким образом?
Алексей Смирнов
13 декабря 2021, 16:22
0
Делал такое.
и делается просто на ajax свой небольшой запрос, скрипт удаляет, а потом принимаем ответ потом и по id визуально удаляем. — самый простой ваиант.
Алексей Смирнов
13 декабря 2021, 16:13
0
ОШИБКА.
вместо orderby следует указывать sortby.
Иногда нужно писать не id, а modResource.id — может зависеть от сниппета который используется.