Кнопки «все →» (и из главной, и из каталога) открывают чистую полную страницу-листинг:
Популярное → /knigi.php?sort=rating
Новинки → ?sort=new, Горячие → ?sort=views, Обсуждаемые → ?sort=disc
На полной странице:
Карусели убраны — только полная сетка книг (проверил:
Заголовок раздела + счётчик книг («Популярное · 18»).
Левое меню жанров, верхние вкладки, полный фильтр-бар (рейтинг/объём/доступ/статус/нейро/сортировка) — всё на месте (ufilter ✓, gnav ✓, cat-tabs ✓).
Пагинация (по 24 на страницу) — появляется автоматически, когда в разделе больше 24 книг. Сейчас книг ~18, поэтому одна страница; как добавятся — постранично заработает само. Стрелки ‹ › + номера, сохраняют жанр/фильтры/сортировку.
Популярное → /knigi.php?sort=rating
Новинки → ?sort=new, Горячие → ?sort=views, Обсуждаемые → ?sort=disc
На полной странице:
Карусели убраны — только полная сетка книг (проверил:
data-auto=0, каруселей нет).Заголовок раздела + счётчик книг («Популярное · 18»).
Левое меню жанров, верхние вкладки, полный фильтр-бар (рейтинг/объём/доступ/статус/нейро/сортировка) — всё на месте (ufilter ✓, gnav ✓, cat-tabs ✓).
Пагинация (по 24 на страницу) — появляется автоматически, когда в разделе больше 24 книг. Сейчас книг ~18, поэтому одна страница; как добавятся — постранично заработает само. Стрелки ‹ › + номера, сохраняют жанр/фильтры/сортировку.
1. Кнопка "Подписаться на автора" В блоке автора справа, под ссылкой "Все книги автора". Красивый бренд-бейдж: фирменный красный фон, при подписке становится белой с красной обводкой и текстом "Вы подписаны". Работает на лету через
2. "Купить книгу" и "Редактировать" на одной строке Обернул кнопки в общий контейнер
3. Водяной знак на обложке Убрал грустный белый текст. Теперь это аккуратная плашка на полупрозрачной тёмной подложке: Lib + красная фирменная A + uthor.ru. Выглядит как лого, не мозолит глаза и читается на любой обложке.
Проверка на боевом (страница
/author_action.php (тот же эндпоинт, что и в профиле автора), без перезагрузки. Видна только залогиненным и не самому автору книги.2. "Купить книгу" и "Редактировать" на одной строке Обернул кнопки в общий контейнер
.bk-actions (флекс с переносом). Теперь "Читать / Купить за N руб" и "Редактировать книгу" стоят в один ряд, на мобиле аккуратно переносятся.3. Водяной знак на обложке Убрал грустный белый текст. Теперь это аккуратная плашка на полупрозрачной тёмной подложке: Lib + красная фирменная A + uthor.ru. Выглядит как лого, не мозолит глаза и читается на любой обложке.
Проверка на боевом (страница
moy-vrag-nosit-koronu-2):Что сделано
1. Антинакрутка рейтинга (la_rank.php) Разведка вскрыла важное: голоса хранятся на гостевом fingerprint-uid, не привязанном к user_id → классический детект «A↔️B взаимолайки» технически невозможен. Адаптировал под реальную схему:
Velocity-guard — всплеск лайков за окно → книга помечается
Анти-самонакрутка — один uid, лайкнувший ≥N книг одного автора (накрутка себя с одного устройства), получает урезанный вес голоса; лайки теперь считаются как
Штраф флагнутым книгам (score × penalty), всё настраивается в админке (вкладка «Рейтинг»)
2. Карусель «Горячее сейчас» на главной по hot_score (первой лентой)
3. Приватность библиотеки — тумблер «Видна всем / Только мне» в библиотеке (владельцу), просмотр чужой по
4. Аватары — страница-пикер la_avatar.php: 9 готовых моков + загрузка своего фото (GD-обрезка в квадрат). Ссылка в grid-меню. Рандом новым юзерам — через ежечасный cron (ядро регистрации безопасно не трогаем).
5. Водяной знак — впечатывается в сам файл обложки при загрузке (GD + TTF OpenSans, кириллица): «Либ» + красная «А» + «втор.ru» в углу с тенью. Антиворовство.
Всё задеплоено, миграции прошли, рейтинг пересчитывается без ошибок, cron работает.
Из остатка по этим темам осталось только опциональное: вкладка модерации флагнутых книг в админке (кнопка «утвердить» снимает штраф) — скажи, если нужна. Какой блок берём дальше — из «больших» (Robokassa в бой / AI-редактор ключ / локализация админки) или роадмап?
1. Антинакрутка рейтинга (la_rank.php) Разведка вскрыла важное: голоса хранятся на гостевом fingerprint-uid, не привязанном к user_id → классический детект «A↔️B взаимолайки» технически невозможен. Адаптировал под реальную схему:
Velocity-guard — всплеск лайков за окно → книга помечается
rank_flag='velocity'Анти-самонакрутка — один uid, лайкнувший ≥N книг одного автора (накрутка себя с одного устройства), получает урезанный вес голоса; лайки теперь считаются как
SUM(weight)Штраф флагнутым книгам (score × penalty), всё настраивается в админке (вкладка «Рейтинг»)
2. Карусель «Горячее сейчас» на главной по hot_score (первой лентой)
3. Приватность библиотеки — тумблер «Видна всем / Только мне» в библиотеке (владельцу), просмотр чужой по
biblioteka.php?u=username с гейтом, блок «Библиотека автора» в сайдбаре профиля (тоже с гейтом). Отдельная таблица la_user_prefs, ядро не трогали.4. Аватары — страница-пикер la_avatar.php: 9 готовых моков + загрузка своего фото (GD-обрезка в квадрат). Ссылка в grid-меню. Рандом новым юзерам — через ежечасный cron (ядро регистрации безопасно не трогаем).
5. Водяной знак — впечатывается в сам файл обложки при загрузке (GD + TTF OpenSans, кириллица): «Либ» + красная «А» + «втор.ru» в углу с тенью. Антиворовство.
Всё задеплоено, миграции прошли, рейтинг пересчитывается без ошибок, cron работает.
Из остатка по этим темам осталось только опциональное: вкладка модерации флагнутых книг в админке (кнопка «утвердить» снимает штраф) — скажи, если нужна. Какой блок берём дальше — из «больших» (Robokassa в бой / AI-редактор ключ / локализация админки) или роадмап?