[решено + дополнено] pdoPage спамит в отчет об ошибках
        Вот такие ошибки сыпятся очень часто:
сама строка
ДОПОЛНЕНО. ВАЖНО
Если будете изменять moderrorhandler.class.php — не забудьте его потом вернуть обратно, когда найдете ошибки.
У нас на одном из сайтов из-за этой правки были проблемы на бэкэнде
miniShop2 не выводит список товаров в документе Категория товаров (под админкой)
    
    
                                                                                
            [2021-07-15 12:18:01] (ERROR @ /сайт/public_html/core/cache/includes/elements/modsnippet/17.include.cache.php : 152) PHP warning: A non-numeric value encountered
[2021-07-15 12:18:01] (ERROR @ /сайт/public_html/core/cache/includes/elements/modsnippet/17.include.cache.php : 152) PHP warning: Division by zeroсама строка
$cache = !empty($cache) || (!$modx->user->id && !empty($cacheAnonymous));
$url = $pdoPage->getBaseUrl();
$output = $pagination = $total = $pageCount = '';
$data = $cache
    ? $pdoPage->pdoTools->getCache($scriptProperties)
    : array();
if (empty($data)) {
    $output = $pdoPage->pdoTools->runSnippet($scriptProperties['element'], $scriptProperties);
    if ($output === false) {
        return '';
    } elseif (!empty($toPlaceholder)) {
        $output = $modx->getPlaceholder($toPlaceholder);
    }
    // Pagination
    $total = (int)$modx->getPlaceholder($totalVar);
    $pageCount = !empty($scriptProperties['limit']) && $total > $offset
----- ОШИБКА ---->>>        ? ceil(($total - $offset) / $scriptProperties['limit'])
        : 0;что надо сделать чтобы это исправить (где и что я сделал не так ), заранее спасибо?ДОПОЛНЕНО. ВАЖНО
Если будете изменять moderrorhandler.class.php — не забудьте его потом вернуть обратно, когда найдете ошибки.
У нас на одном из сайтов из-за этой правки были проблемы на бэкэнде
miniShop2 не выводит список товаров в документе Категория товаров (под админкой)
Комментарии: 10
                Там написано, что встречено нечисловое значение, а потом деление на ноль. Отследите значения по переменным и типам переменных: $total, $offset, $scriptProperties['limit'], например.
upd: А, это кусок кода оригинального pdoPage?) Думаю тогда стоит посмотреть, как выводите пагинацию и нет ли странного в параметрах сниппета.
                    upd: А, это кусок кода оригинального pdoPage?) Думаю тогда стоит посмотреть, как выводите пагинацию и нет ли странного в параметрах сниппета.
                В вызове сниппета посмотрите, что указано в limit?            
                    
                Спасибо за ответы.
Но есть нюанс — уж больно много страниц и не понимаю как отследить на какой странице и в каком чанке/снипете эта(и) ошибки.
Можно ли как-то в логи об ошибках MODX добавить URI источника ошибки?
                    Но есть нюанс — уж больно много страниц и не понимаю как отследить на какой странице и в каком чанке/снипете эта(и) ошибки.
Можно ли как-то в логи об ошибках MODX добавить URI источника ошибки?
                В вызове pdopage посмотрите не стоит ли в лимите 0.            
                    
                Ну, можно побаловаться с выводом в журнал… Вот вывод id ресурса, например:
                    $modx->log(MODX_LOG_LEVEL_ERROR, $modx->resource->get('id'));Можно с пояснительным текстом:$modx->log(MODX_LOG_LEVEL_ERROR, 'ID ресурса: ' . $modx->resource->get('id'));            
                Огромное спасибо. 
Теперь хоть будет понятно где искать.
в файле \core\model\modx\error\moderrorhandler.class.php
в первой попавшейся было
                    Теперь хоть будет понятно где искать.
в файле \core\model\modx\error\moderrorhandler.class.php
case E_WARNING:
                $handled= true;
                $errmsg= 'PHP warning: ' . $errstr;
                $this->modx->log(modX::LOG_LEVEL_ERROR, $errmsg, '', '', $errfile, $errline);
                break;поменял наcase E_WARNING:
                $handled= true;
                $errmsg= 'PHP warning: ' .  $this->modx->resource->get('id') . ' ' . $errstr;
                $this->modx->log(modX::LOG_LEVEL_ERROR, $errmsg, '', '', $errfile, $errline);
                break;и да теперь хоть вижу на какой странице искать ошибку/опечатку.в первой попавшейся было
[[pdoPage? &element=`msProducts`&parents=`26` &limit='250' &sortby=`{"menuindex":"asc"}` ]]`]]т.е. не кавычки в limit=            
                Можно по условию дебажить прямо в сниппете с выводом различных данных. Что-то такое добавить в pdopage: 
                    if (!is_int($scriptProperties['limit']) || $scriptProperties['limit'] < 1) {
    $modx->log(MODX_LOG_LEVEL_ERROR, 'Ошибка pdopage. Параметр limit содержит: [' . $scriptProperties['limit'] . ']. В ресурсе: ' . $modx->resource->get('id'));
}В общем, можно поиграться по-всякому.            
                OK. c pdo — все норм, но как отловить
добавил доп поля вывода в логах в
                    [2021-07-23 23:56:45] (ERROR @ /home/***/public_html/core/model/modx/modparser.class.php : 541) Could not find snippet with name Рассрочка под 0%.да понимаю, что это парень-«набивщик» который наполняет сайт заказанными текстами ошибся где-то в скобках, но ИМХО как-то не очень удачно (опять же по моему мнению) сделан лог ошибок — не видно где ошибка, если вызов чанков/снипетов.добавил доп поля вывода в логах в
case E_STRICT:но не уверен, что эта ошибка там «отметится»            
                Не совсем понял, но в modparser.class.php, в строке 541, добавить например:
                    $this->modx->log(xPDO::LOG_LEVEL_ERROR, "Could not find snippet with name {$tagName}. Resource ID: {$this->modx->resource->get('id')}.");Да, регистрация ошибок могла бы быть информативней «из коробки», согласен.            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
            
            
                    
                    
                