$path = CONF_ADMIN_FILE . '?m=logs&s=payments&';
 /** отбор записей **/
 if (!empty($_GET['do']) && 'filter' === $_GET['do']) {
     $retFields = array('order_id' => !empty($_GET['order_id']) ? $_GET['order_id'] : false, 'records' => !empty($_GET['records']) && validate::checkNaturalNumber($_GET['records']) ? validate::checkNaturalNumber($_GET['records']) : 30);
     ///////////////////////////////////////////////////////////////
     // Проверка данных, полученных из формы и формирование запроса
     ///////////////////////////////////////////////////////////////
     /** ORDER ID **/
     !empty($retFields['order_id']) ? $strWhere .= " AND order_id LIKE " . secure::escQuoteData($retFields['order_id']) : null;
     /** текущий обработанный URL **/
     $path .= 'do=filter&order_id=' . $retFields['order_id'] . '&records=' . $retFields['records'] . '&';
 }
 /** смещение, всегда 0 (затем берется из $_GET) **/
 $offset = !empty($_GET['offset']) && validate::checkNaturalNumber($_GET['offset']) ? validate::checkNaturalNumber($_GET['offset']) : 0;
 $strLimit = array('strLimit' => $offset . ',' . $retFields['records'], 'calcRows' => true);
 if ($arrLogsPayments = $payments->dbGetLogPayments($strWhere, false, $strLimit, false)) {
     foreach ($arrLogsPayments as $key => &$value) {
         // вычисляем имя файла
         $fName = strtolower($value['payment_type']) . '_' . date('Y-m-d', strtotime($value['date'])) . '_payment.log';
         $arrLogsPayments[$key]['file'] = file_exists('core/data/log/' . $fName) ? $fName : false;
     }
 }
 /** формируем страницы **/
 $allRecords = $payments->dbCntLogPayments();
 // получаем общее количество строк
 $strPages = strings::generatePage($allRecords, $offset, $retFields['records'], $path, true);
 // формируем странциы
 $smarty->assignByRef('arrLogsPayments', $arrLogsPayments);
 $smarty->assignByRef('allRecords', $allRecords);
 //передаем в шаблон общее количество записей
 $smarty->assignByRef('strPages', $strPages);