- ApiloLogger: logowanie operacji Apilo do pp_log z kontekstem JSON - Cache-busting: ?ver=filemtime() dla CSS i JS w admin main-layout - Fix: inicjalizacja $mdb przed SettingsRepository w admin/index.php - Fix: rzutowanie (string) w ShopProductController::escapeHtml() - UI: text-overflow ellipsis dla kategorii produktow + title tooltip - JS: navigator.clipboard API w copyToClipboard() z fallbackiem - CSS: uproszczenie .site-content, usuniecie .with-menu - Migracja: pp_log + kolumny action, order_id, context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
914 B
PHP
31 lines
914 B
PHP
<?php
|
|
namespace Domain\Integrations;
|
|
|
|
class ApiloLogger
|
|
{
|
|
/**
|
|
* @param \medoo $db
|
|
* @param string $action np. 'send_order', 'payment_sync', 'status_sync', 'status_poll'
|
|
* @param int|null $orderId
|
|
* @param string $message
|
|
* @param mixed $context dane do zapisania jako JSON (request/response)
|
|
*/
|
|
public static function log($db, string $action, ?int $orderId, string $message, $context = null): void
|
|
{
|
|
$contextJson = null;
|
|
if ($context !== null) {
|
|
$contextJson = is_string($context)
|
|
? $context
|
|
: json_encode($context, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
|
}
|
|
|
|
$db->insert('pp_log', [
|
|
'action' => $action,
|
|
'order_id' => $orderId,
|
|
'message' => $message,
|
|
'context' => $contextJson,
|
|
'date' => date('Y-m-d H:i:s'),
|
|
]);
|
|
}
|
|
}
|