Реквизиты в подвале — из config.json (requisites), затем requisites.html, затем заглушка

Ключ requisites — список строк, каждая отдельным абзацем, текст экранируется. Без ключа — как было: requisites.html,
а если он пуст — заглушка «ИП Иванов» (решение заказчика). config.json.example — формат ключа; README.

Проверка — .extras/checks-preland-claim/t_requisites.sh (index.php в php:8.3-cli): до правки FAIL=3, после 6/6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Panfilov KonstantinandClaude Opus 5.5 committed 2026-10-05 19:44:53 +03:00
1 parent 01b5a03b8e
commit 6cd01f8714
3 files changed
+17 -3

No files matched your search

+3 -2
View File
@@ -58,7 +58,7 @@
| `components/preview.php`, `process.php`, `examples.php` | превью файла, индикатор загрузки, примеры «до/после» | | `components/preview.php`, `process.php`, `examples.php` | превью файла, индикатор загрузки, примеры «до/после» |
| `i18n.php`, `messages/{ru,en}/` | заглушка `Yii::t` и переводы; язык сейчас всегда `ru` (определение языка закомментировано) | | `i18n.php`, `messages/{ru,en}/` | заглушка `Yii::t` и переводы; язык сейчас всегда `ru` (определение языка закомментировано) |
| `docs/` | `logo.svg`, `logo-alt.svg` и документы в PDF: тарифы, оферта, соглашение, политика | | `docs/` | `logo.svg`, `logo-alt.svg` и документы в PDF: тарифы, оферта, соглашение, политика |
| `requisites.html` | реквизиты для подвала (HTML). Пустой или отсутствующий — выводится **заглушка «ИП Иванов Иван Иванович»** из `template.php`: на боевом заполнить | | `requisites.html` | реквизиты для подвала (HTML), если в `config.json` нет `requisites`. Без обоих — **заглушка «ИП Иванов Иван Иванович»** из `template.php` |
| `images/`, `fonts/`, `favicon/`, `*.css` | статика; `style.min.css` встраивается в страницу | | `images/`, `fonts/`, `favicon/`, `*.css` | статика; `style.min.css` встраивается в страницу |
| `.htaccess` | только сроки кэширования статики (Apache) | | `.htaccess` | только сроки кэширования статики (Apache) |
| `config.json.example` | образец конфига; рабочий `config.json` в git не хранится | | `config.json.example` | образец конфига; рабочий `config.json` в git не хранится |
@@ -69,6 +69,7 @@
|---|:---:|---| |---|:---:|---|
| `host` | **да** | домен сайта, куда идут загрузка и переход (`zoomzilla.ru`). Без него берётся домен самого преленда — запросы уходят на преленд и получают 404 | | `host` | **да** | домен сайта, куда идут загрузка и переход (`zoomzilla.ru`). Без него берётся домен самого преленда — запросы уходят на преленд и получают 404 |
| `utm` | да | метки: `weights` (значение → доля трафика для `rnd`) и `default` | | `utm` | да | метки: `weights` (значение → доля трафика для `rnd`) и `default` |
| `requisites` | нет | реквизиты в подвале — список строк, каждая отдельным абзацем (текст экранируется). Важнее `requisites.html`; без обоих — заглушка «ИП Иванов» |
| `assetsUriPrefix` | нет | откуда брать статику. Пусто — из своего каталога; если на хостинге нет каталога `images`, статика берётся с сайта (`https://<host>`) | | `assetsUriPrefix` | нет | откуда брать статику. Пусто — из своего каталога; если на хостинге нет каталога `images`, статика берётся с сайта (`https://<host>`) |
| `fontsUrl`, `faviconUrl`, `spritePath` | нет | адреса шрифтов, иконок и SVG-спрайта, если они не в `assetsUriPrefix` | | `fontsUrl`, `faviconUrl`, `spritePath` | нет | адреса шрифтов, иконок и SVG-спрайта, если они не в `assetsUriPrefix` |
| `logoAltExt` | нет | расширение второго логотипа (`svg` по умолчанию) | | `logoAltExt` | нет | расширение второго логотипа (`svg` по умолчанию) |
@@ -86,7 +87,7 @@
git clone http://git.dira89kv.beget.tech:3000/anton/preland.git && cd preland git clone http://git.dira89kv.beget.tech:3000/anton/preland.git && cd preland
# дальше — загрузка на хостинг: rsync/scp по SSH или FTP-клиент # дальше — загрузка на хостинг: rsync/scp по SSH или FTP-клиент
``` ```
3. **Конфиг и реквизиты.** На сервере, рядом с `index.php` (и заполнить `requisites.html` — иначе в подвале заглушка): 3. **Конфиг и реквизиты.** На сервере, рядом с `index.php`; реквизиты — ключ `requisites` (иначе в подвале заглушка):
```bash ```bash
cp config.json.example config.json # host — домен сайта, метки — по кампании cp config.json.example config.json # host — домен сайта, метки — по кампании
``` ```
+7
View File
@@ -1,6 +1,13 @@
{ {
"host": "zoomzilla.ru", "host": "zoomzilla.ru",
"requisites": [
"ИП Иванов Иван Иванович",
"123123, г. Москва, Пресненская наб., 12",
"ИНН: 123404385406",
"ОГРНИП: 123420000019175"
],
"utm": { "utm": {
"indpic": { "indpic": {
"weights": { "weights": {
+7 -1
View File
@@ -104,8 +104,14 @@
<div class="col-md-4"> <div class="col-md-4">
<div class="h5 mb-3"><?= Yii::t('app', 'Наши реквизиты') ?></div> <div class="h5 mb-3"><?= Yii::t('app', 'Наши реквизиты') ?></div>
<?php <?php
// реквизиты: config.json (requisites — строки) → requisites.html → образец
$requisites = array_filter((array) ($config['requisites'] ?? []), fn ($line) => is_scalar($line) && trim((string) $line) !== '');
$requisitesFile = __DIR__ . '/requisites.html'; $requisitesFile = __DIR__ . '/requisites.html';
if (file_exists($requisitesFile) && filesize($requisitesFile) > 0) { if ($requisites) {
foreach ($requisites as $line) {
?><p class="mb-0"><?= htmlspecialchars((string) $line, ENT_QUOTES, 'UTF-8') ?></p>
<?php }
} elseif (file_exists($requisitesFile) && filesize($requisitesFile) > 0) {
echo file_get_contents($requisitesFile); echo file_get_contents($requisitesFile);
} else { } else {
?> ?>