userSession->getUser(); $baseUrl = $this->urlGenerator->getBaseUrl(); $serverHost = parse_url($baseUrl, PHP_URL_HOST) ?: 'localhost'; // База REST API поддержки (без завершающего слэша). Переопределение: occ config:app:set f7support support_api_base --value=https://... $supportApiBase = trim($this->config->getAppValue('f7support', 'support_api_base', 'https://support.f7cloud.ru')); if ($supportApiBase === '') { $supportApiBase = 'https://support.f7cloud.ru'; } $supportParts = parse_url($supportApiBase); $supportApiOrigin = ($supportParts['scheme'] ?? 'https') . '://' . ($supportParts['host'] ?? ''); // Optional full WebSocket URL prefix, e.g. wss://support.f7cloud.ru/api/ws (path before /tickets/{id}) $supportWsBase = $this->config->getAppValue('f7support', 'support_ws_base', ''); // Метки «прочитано» (POST …/read на API поддержки). // Порядок деплоя: (1) выкатить бэкенд с маршрутами POST /api/client/tickets/{id}/read и POST /api/operator/tickets/{id}/read; // (2) на Nextcloud: occ config:app:set f7support client_read_receipts --value=1 — тогда приложение f7support начнёт слать client /read; // панель оператора вызывает operator /read независимо от этого флага. При client_read_receipts=0 клиент не дергает client /read (нет 404 на старом API). // Отключить вызовы с клиента: occ config:app:set f7support client_read_receipts --value=0 $clientReadReceipts = $this->config->getAppValue('f7support', 'client_read_receipts', '0'); Util::addStyle('f7support', 'f7support'); Util::addScript('f7support', 'main'); return new TemplateResponse('f7support', 'main', [ 'username' => $user ? $user->getUID() : '', 'serverAddress' => $serverHost, 'supportApiBase' => $supportApiBase, 'supportApiOrigin' => $supportApiOrigin, 'supportWsBase' => $supportWsBase, 'clientReadReceipts' => $clientReadReceipts, ]); } }