From 469bec1595fe70fd12d17a752dc960c5cf6b1b98 Mon Sep 17 00:00:00 2001 From: Panfilov Konstantin Date: Wed, 28 Oct 2026 05:06:53 +0300 Subject: [PATCH] =?UTF-8?q?api#347:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=87=D0=B5=D0=BD=D1=8C=20=D0=B4=D0=B5=D0=B2?= =?UTF-8?q?=D1=8F=D1=82=D0=B8=20UTM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- admin/README.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7f9afea..ff18627 100644 --- a/README.md +++ b/README.md @@ -65,12 +65,13 @@ HTTP→HTTPS, проверка двух тем/ширин, примеров, upl | `tp` | номер настроенной тарифной группы1–9 | | `cons` | номер группы согласий1–9; существование проверяет API | | `focus` |1 face,2 center | +| `part` |1 показывать ссылку «Для бизнеса» на сайте,2 скрывать; Preland ссылку не показывает | `config.json` хранит публичные числовые `weights/default`. Внутри PHP сохраняются прежние semantic enum. Runtime-конфиг мигрируется `bin/ensure-utm-config.php`: только согласованные UTM, с сохранением весов, default и JSON-типов соседних полей. Скрипт идемпотентен; старые focus/cons patch-скрипты больше не вызываются доставкой. В api#327 публичное `chob` заменено на `banch`; внутренний `bchoice` сохраняется. Мигратор переименовывает текущий host-ключ токенно, сохраняя все остальные байты, включая веса и default. Одновременные `banch/chob/bchoice` блокируют patch без записи. До миграции код читает прежний host-config; сохранённые recovery-записи с `utmDigits.chob` или `redirectUtm` продолжают выбранный вариант и выпускают уже `banch`. -Перед каждым переходом Preland создаёт для всех восьми меток новый шум из10 ASCII букв/цифр, с уже выбранной цифрой в пятой позиции. Retry и recovery меняют только шум; вариант повторно не выбирается. Выбранные цифры сохраняются в upload record. Старые записи IndexedDB адаптируются только на пути recovery, без публичных alias старого URL. +Перед каждым переходом Preland создаёт для всех девяти меток новый шум из10 ASCII букв/цифр, с уже выбранной цифрой в пятой позиции. Retry и recovery меняют только шум; вариант повторно не выбирается. Выбранные цифры сохраняются в upload record. Старые записи IndexedDB адаптируются только на пути recovery, без публичных alias старого URL. Чужие параметры (`utm_source`, `keyword`, `subid` и любые другие) сохраняют значения после обычного URL-кодирования. Технические `key/id/stage/shown_theme` не маскируются; внешний `key` не может подменить одноразовый ключ загрузки. `shown_theme` берётся из фактически показанной темы непосредственно при переходе. diff --git a/admin/README.md b/admin/README.md index 6f453ac..4b373c5 100644 --- a/admin/README.md +++ b/admin/README.md @@ -28,7 +28,7 @@ оставляет группу получателя. Источник и каждая цель проверяются по своей версии; сохранение/копирование считаются завершёнными после результата задания и перечитывания. Ошибки отдельных целей видны в колонке и журнале; успешные цели не повторяются. -Конструктор работает отдельно: значения или «Рандом» в восьми списках, затем +Конструктор работает отдельно: значения или «Рандом» в девяти списках, затем «Сформировать и сохранить». Последний выбор и точный URL сохраняются на сервере отдельно по ID домена, восстанавливаются после перезагрузки. Изменение списка скрывает старую ссылку до явного сохранения. Значащая цифра стоит на пятой позиции метки, @@ -125,7 +125,7 @@ Imagick не нужен. Замена реквизитов сбрасывает ## Ручные варианты и независимость — preland#30 -Во всех восьми UTM ссылка «Добавить вариант» создаёт пустую строку: номер, вес и +Во всех девяти UTM ссылка «Добавить вариант» создаёт пустую строку: номер, вес и неотмеченный default. До нажатия пустых строк нет. Существующие номера показаны текстом; новые вводятся вручную (1–9). После сохранения новый номер тоже становится обычным текстом. Нулевой вес сохраняется. Отсутствующую группу можно создать через