# Ссылки записи eKliinik

Войдите в `/admin/`, выберите раздел **Ссылки записи eKliinik**. Вставьте адреса отдельно для RU, ET и EN и нажмите **Сохранить ссылки**. Редактор статей находится в отдельном разделе **Блог**; вернуться к выбору можно кнопкой **Все разделы**.

Принимаются HTTPS-ссылки `connectedserver.eu/ConnectedOnlineX/default.aspx` с параметром `key`. Язык портала выбирается самой ссылкой; администратор должен вставить правильный вариант для каждого языка.

Настройки хранятся в таблице `settings` существующей SQLite-базы (`DATA_DIR/site.sqlite`) отдельно от статей. Таблица создаётся автоматически без удаления данных. Перезапуск после сохранения ссылок не нужен. При обновлении сайта обязательно сохраняйте базу.

До первого сохранения используются адреса из `public/contacts/index.html`, `public/et/contacts/index.html` и `public/en/contacts/index.html`. Эти исходные значения генерируются из `PORTALS` в `localize.py`. Сохранённые настройки базы имеют приоритет; повторная сборка их не сбрасывает.

Node подставляет ссылки при выдаче контактной страницы. `public/booking-links.js` также получает актуальные значения через `GET /api/booking-links`, если HTML напрямую обслуживается Apache. API должен направляться в Node. При недоступности API остаётся ссылка из HTML; не кэшируйте API настроек.

API админки: `GET /api/admin/booking-links`, `PUT /api/admin/booking-links`. Запись требует сессии, Origin и CSRF. Поле `revision` защищает от перезаписи изменений другой вкладки. Для повторной загрузки после конфликта обновите страницу, предварительно скопировав свои изменения.

Обновление на хостинге: загрузите `server/`, `admin/`, `public/booking-links.js` и три страницы контактов из `public/`, затем выполните Restart Application. `.env` и `data/` не заменяйте. Исправление HTTPS/cookie не входит в эту доработку: при существующей ошибке сессии сервер будет по-прежнему отклонять сохранение настроек, как и статей.
