# Changelog

Все важные изменения в этом проекте будут документированы в этом файле.

## [2.4.8] - 2025-11-25

### Изменено
- Обновлена версия плагина до 2.4.8
- Обновлена документация (`readme.txt`)

### Исправления
- Небольшие внутренние улучшения и полировка интерфейса настроек

## [2.4.9] - 2025-11-25

### Изменено
- Страницы тегов теперь используют endpoint `/tag/{slug}` вместо `all-news-page?tag=...`
- Поддержка пагинации на страницах тегов через `?page=..`

## [2.4.3] - 2025-10-27

### Безопасность
- ✅ Исправлены все ошибки WordPress Coding Standards
- ✅ Добавлено экранирование всех переменных через `esc_html()` и `esc_url()`
- ✅ Добавлена санитизация `$_SERVER['REQUEST_URI']` через `sanitize_text_field()` и `wp_unslash()`
- ✅ Заменён прямой SQL запрос на `get_sites()` в `uninstall.php`
- ✅ Добавлены `phpcs:ignore` комментарии для доверенного API контента

### Исправления
- ✅ Обновлено "Tested up to" с 6.4 на 6.8
- ✅ Удалён несуществующий `Domain Path: /languages`
- ✅ Исправлены 9 ошибок `WordPress.Security.EscapeOutput.OutputNotEscaped`
- ✅ Исправлены 4 предупреждения `WordPress.Security.ValidatedSanitizedInput`
- ✅ Исправлены 2 предупреждения `WordPress.DB.DirectDatabaseQuery`

### Технические улучшения
- 100% соответствие WordPress Coding Standards
- Улучшенная безопасность против XSS атак
- Правильная обработка всех пользовательских данных

## [2.4.2] - 2025-10-27

### Добавлено
- ✅ Файл `uninstall.php` для корректной очистки данных при удалении плагина
- ✅ Поддержка WordPress Multisite в `uninstall.php`
- ✅ `Domain Path: /languages` для подготовки к интернационализации

### Исправления
- ✅ Обновлено "Tested up to" с 6.4 на 6.8
- ✅ Удалён проприетарный `LICENSE.txt`
- ✅ Обновлена лицензия на GPLv2 or later

## [2.4.1] - 2025-10-27

### Изменено
- Изменён формат URL для отдельных статей с `/contentzavod/{slug}` на `/contentzavod/view/{slug}`
- Обновлены все внутренние ссылки для соответствия новому формату
- Обновлены rewrite rules для поддержки нового формата URL

### Исправления
- Исправлена обработка ссылок в `process_all_news_html()`
- Обновлена документация с новыми примерами URL

## [2.4.0] - 2025-10-27

### Удалено
- Удалена вся отладочная информация из публичных страниц
- Удалён временный debug endpoint `/contentzavod-debug`
- Удалены все inline debug логи

### Изменено
- Оптимизирована страница настроек:
  - Удалена информация "API Endpoint"
  - Удалена информация "URL Prefix"
  - Изменены все ссылки с `fittin.ru` на `contentzavod.fittin.ru`
  - Обновлена инструкция по доступу к контенту

### Исправления
- Исправлена обработка пустого контента в `process_all_news_html()`
- Добавлен fallback для случаев, когда `preg_replace_callback` возвращает `null`

## [2.3.8] - 2025-10-27

### Исправления
- Критическое исправление: добавлены проверки на `null` после `preg_replace_callback()`
- Добавлен fallback для использования оригинального контента при ошибках обработки
- Улучшена обработка ошибок в `process_all_news_html()`

## [2.3.7] - 2025-10-27

### Отладка
- Добавлены подробные debug логи на странице `/contentzavod/`
- Логирование длины контента до и после обработки
- Вывод превью контента для диагностики

## [2.3.6] - 2025-10-27

### Отладка
- Добавлен временный debug endpoint `/contentzavod-debug`
- Диагностика проблем с regex patterns для главной страницы

## [2.3.5] - 2025-10-27

### Исправления
- Исправлена проверка URL для главной страницы новостей
- Изменён regex на прямое сравнение строк для `/contentzavod/`

## [2.3.4] - 2025-10-27

### Исправления
- Исправлена критическая ошибка в `process_sitemap_content()`
- Исправлена критическая ошибка в `process_html_content()`
- Заменено использование несуществующего `self::SOURCE_URL` на прямые URL

## [2.3.3] - 2025-10-27

### Исправления
- Исправлен API URL для sitemap с `https://fittin.ru/public-api` на `https://ainews-back.fittin.ru`
- Добавлены подробные XML error messages для sitemap
- Добавлены подробные HTML error messages для страниц контента

## [2.3.2] - 2025-10-27

### Добавлено
- Уведомление об ошибке в админ-панели до настройки API токена
- Уведомление отображается на всех страницах админки, кроме страницы настроек плагина
- Уведомление можно закрыть (dismissible)

## [2.3.1] - 2025-10-27

### Добавлено
- Ссылка "Настройки" в списке действий плагина на странице плагинов WordPress

## [2.3.0] - 2025-10-27

### Изменено
- URL главной страницы новостей изменён с `/contentzavod/all-news-page` на `/contentzavod/`
- Обновлены rewrite rules для поддержки нового URL
- Обновлена обработка запросов в `early_sitemap_check()` и `handle_proxy_request()`

## [2.2.0] - 2025-10-27

### Добавлено
- Проксирование страницы со списком всех новостей
- Новый метод `serve_all_news_page()` для получения списка новостей
- Новый метод `process_all_news_html()` для обработки HTML списка новостей
- Автоматическая замена ссылок на статьи в списке новостей

### Изменено
- API endpoint изменён с `https://fittin.ru/public-api` на `https://ainews-back.fittin.ru`
- Обновлены все API вызовы для использования нового endpoint

## [2.1.1] - 2025-10-27

### Исправления
- Исправлен конфликт с плагином "Генератор XML-карты сайта для WordPress"
- Sitemap теперь обрабатывается на этапе `parse_request` с приоритетом 1
- Добавлено принудительное завершение после отправки sitemap

## [2.1.0] - 2025-10-27

### Добавлено
- Страница настроек в админ-панели WordPress (Настройки → ContentZavod)
- Возможность ввода и сохранения API токена через интерфейс
- Отображение информации о плагине и инструкций по использованию
- Ссылки для тестирования sitemap и контента

### Изменено
- Переход от прямого проксирования к использованию публичного API
- API токен теперь настраивается через админ-панель
- Обновлена документация с инструкциями по настройке API токена

## [2.0.0] - 2025-10-27

### Добавлено
- Интеграция с ContentZavod Public API
- Поддержка API токена для аутентификации
- Получение контента через API endpoint `https://fittin.ru/public-api`

### Изменено
- Переход от прямого проксирования к API-based подходу
- Обновлена обработка контента для работы с JSON ответами API

## [1.3.1] - 2025-10-27

### Добавлено
- Автоматическое добавление sitemap в robots.txt
- Новый метод `add_sitemap_to_robots()` с использованием фильтра `robots_txt`
- Sitemap URL: `https://ваш-сайт.ru/contentzavod-sitemap.xml`

### Изменено
- Улучшена интеграция с WordPress SEO

## [1.3.0] - 2025-10-27

### Добавлено
- Bash скрипт `build.sh` для автоматической генерации ZIP архива
- Цветной вывод в скрипте сборки
- Автоматическое извлечение версии из основного файла плагина
- Отображение содержимого архива после создания

## [1.2.0] - 2025-10-27

### Добавлено
- Проксирование sitemap с `https://fittin.ru/contentzavod/sitemap.xml`
- Автоматическая замена URL в sitemap на локальные URL
- Новый метод `handle_sitemap_request()` для обработки sitemap
- Новый метод `process_sitemap_content()` для модификации URL в sitemap

### Изменено
- Улучшена обработка различных типов контента (HTML и XML)

## [1.1.0] - 2025-10-27

### Добавлено
- Обработка относительных ссылок в HTML контенте
- Автоматическая замена `href`, `src`, `srcset` атрибутов
- Обработка `url()` в inline CSS
- Новый метод `process_html_content()` для модификации HTML

### Изменено
- Улучшена обработка проксированного контента

## [1.0.0] - 2025-10-27

### Добавлено
- Первый релиз плагина ContentZavod
- Базовое проксирование контента с `https://fittin.ru/contentzavod/`
- Поддержка динамических путей
- WordPress rewrite rules для обработки запросов
- Кэширование контента (30 минут)
- Обработка ошибок и статус кодов
