'info',
'error' => 'error',
'warning' => 'warning'
];
$data = [];
foreach ( $rows as $row )
{
$message = (string) ( $row['message'] ?? '' );
if ( mb_strlen( $message ) > 120 )
{
$message = mb_substr( $message, 0, 120 ) . '...';
}
$client_label = '';
if ( !empty( $row['client_name'] ) )
{
$client_label = htmlspecialchars( (string) $row['client_name'], ENT_QUOTES, 'UTF-8' );
}
else if ( !empty( $row['client_id'] ) )
{
$client_label = 'ID: ' . (int) $row['client_id'];
}
else
{
$client_label = '-';
}
$data[] = [
(string) ( $row['date_add'] ?? '' ),
$level_badges[ $row['level'] ] ?? htmlspecialchars( (string) $row['level'], ENT_QUOTES, 'UTF-8' ),
htmlspecialchars( (string) ( $row['source'] ?? '' ), ENT_QUOTES, 'UTF-8' ),
$client_label,
htmlspecialchars( $message, ENT_QUOTES, 'UTF-8' ),
''
];
}
echo json_encode( [
'draw' => $draw,
'recordsTotal' => $total,
'recordsFiltered' => $total,
'data' => $data
] );
exit;
}
static public function get_detail()
{
$id = (int) \S::get( 'id' );
if ( $id <= 0 )
{
echo json_encode( [ 'success' => false, 'message' => 'Nieprawidlowe ID.' ] );
exit;
}
$log = \factory\Logs::get_one( $id );
if ( !$log )
{
echo json_encode( [ 'success' => false, 'message' => 'Wpis nie znaleziony.' ] );
exit;
}
$context = null;
if ( !empty( $log['context_json'] ) )
{
$decoded = json_decode( $log['context_json'], true );
if ( $decoded !== null )
{
$context = json_encode( $decoded, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_INVALID_UTF8_SUBSTITUTE );
}
else
{
$context = $log['context_json'];
}
}
$response = json_encode( [
'success' => true,
'log' => [
'id' => (int) $log['id'],
'level' => $log['level'],
'source' => $log['source'],
'client_name' => $log['client_name'] ?? '',
'client_id' => $log['client_id'],
'message' => $log['message'],
'context' => $context,
'date_add' => $log['date_add']
]
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_INVALID_UTF8_SUBSTITUTE | JSON_PARTIAL_OUTPUT_ON_ERROR );
if ( $response === false )
{
echo json_encode( [ 'success' => false, 'message' => 'Blad kodowania JSON: ' . json_last_error_msg() ] );
exit;
}
echo $response;
exit;
}
}