legacyAdminCredentials->getAdminID(); $isLogged = $this->legacyAdminCredentials->isLogged(); $admin = getAdminUser(); } catch (\RuntimeException $e) { $adminId = 0; $isLogged = false; } $adminName = ($isLogged && $admin) ? $admin['login'] : 'Robot'; $message = trim(stripTags(ucfirst($message))); if ($tags && isDevelopment()) { $activityLogTags = $this->adminRegisterLocator->getActivityLogTags(); $activityLogTags = array_combine(array_column($activityLogTags, 'tag'), $activityLogTags); foreach ($tags as $tag) { assert(array_key_exists($tag, $activityLogTags), "wrong tag: {$tag}"); } } return sqlGetConnection()->transactional(function () use ($adminId, $adminName, $severity, $type, $message, $data, $tags) { sqlQueryBuilder() ->insert('report_activities') ->directValues( [ 'id_admin' => $adminId ?: null, 'admin_name' => $adminName, 'severity' => $severity, 'type' => $type, 'report' => $message, 'ip_address' => explode(',', $this->requestStack->getCurrentRequest()?->getClientIp() ?? '')[0], 'data' => json_encode($data, JSON_INVALID_UTF8_IGNORE), 'tags' => $tags ? json_encode($tags) : null, ] ) ->setValue('date', 'NOW()') ->execute(); return (int) sqlInsertId(); }); } public function addDifferencialActivityLog(string $severity, string $type, string $message, $oldData, $newData) { $diff = ArrayUtil::arrayRecursiveDiff((array) $oldData, (array) $newData); $data = ArrayUtil::getSimpleArrayFromDiffs($diff); $data = array_filter($data, function ($act) { return $act['new'] !== null && $act['new'] !== ''; }); return addActivityLog($severity, $type, $message, $data ? ['save_changes' => $data] : []); } public function addHtmlActivityLog(string $severity, string $type, string $message, $data = []) { return addActivityLog($severity, $type, $message, $data ? ['html_message' => $data] : []); } /** * @param array $data * * @return array */ public static function addObjectData(array $data, string $type) { $_objects = []; foreach ($data as $k => $v) { $_objects['objects'][$type][$k] = $v; } return $_objects; } public static function addListLink($listName) { $_objects['list'] = $listName; return $_objects; } }