seo 26.100.0: админку Google Webmaster вырезали, VK включается по зоне портала
Релиз про сокращение того, что перестало работать. Раздел Google Webmaster Tools в админке убран целиком, deprecated-метод Яндекса удалён, интеграции с VK теперь отключаются по региону портала. Плюс установщик переведён на миграции ядра.
Google Webmaster: страница осталась, содержимого нет
seo_search_google.php теперь делает LocalRedirect('seo_robots.php?lang='.LANGUAGE_ID), а пункт меню и флаг $bShowGoogleServices из admin/menu.php удалены.
Если у вас на портале была прямая ссылка или закладка на этот раздел — она не отвалится с 404, а перекинет на robots.txt. Ваши собственные ссылки в интерфейсах лучше поправить: редирект — временная любезность, а не контракт.
VK режется по региону портала
Новый класс Bitrix\Seo\Region\VkAvailability с методами isAvailable(), isVkAllowedZone(?string $zone), isVkEngineCode(string $code) (коды с .vkontakte / .vkads). Разрешённые зоны — ru, kz, by, uz; на коробочном портале без модуля bitrix24 isAvailable() всегда true.
Проверка вкручена в три точки, и поведение в каждой разное — это важно, потому что «недоступно» здесь не всегда ошибка:
LeadAds\Services\FormVkontakte::registerGroup()вызывает родителя только при доступном VK, иначе возвращаетfalse;registerGroupWebHook()кладёт в результатErrorс текстом про регион.Retargeting\AuthAdapter::getAuthUrl()для VK-движков вне региона возвращает пустую строку. Не исключение, не null — пустой URL. Код, который сразу редиректит на результат, отправит пользователя в никуда.Webhook\Serviceотвечает новым кодомANSWER_ERROR_REGION_RESTRICTED = '007'на входящий вебхук VK-типа вне разрешённой зоны.
Есть и находка, о которой стоит знать: класс Bitrix\Seo\Region\VkExternalDeactivationAgent (снимает callback-серверы Lead Ads и cloud-авторизацию VK, если регион не разрешён) в релизе есть, но в install/migrations/agents.php он не зарегистрирован. Сам по себе он не запустится. Если вам нужна именно зачистка внешних привязок на «неправильном» регионе — вызывать ::run() придётся вручную.
Удалён deprecated-метод Яндекса
Bitrix\Seo\Engine\Yandex::queryOld() вырезан. Он давно был помечен @deprecated, замена — query() в том же классе. Если ваш код всё ещё звал queryOld — это фатал, а не предупреждение.
Установщик и миграции
installMigrations() / uninstallMigrations($dropTables) вместо SQL-батчей; install/db/{mysql,pgsql}/install.sql и uninstall.sql удалены. Появились:
install/migrations/tables.php— описание существующих таблиц (b_seo_keywords…b_seo_service_queue) плюс seedb_seo_search_engine(google / yandex / yandex_direct) при первой установке;install/migrations/events.php— прежние обработчики черезregister()и, что интереснее, блокunregister()старых написаний:SitemapIblock,SitemapForum, пустая пара class/method дляfileman/OnPanelCreate. То есть миграция заодно подчищает исторический мусор в регистрации обработчиков;install/migrations/agents.php—YandexDirect::updateAgent(3600),Adv\LogTable::clean(86400),Adv\Auto::checkQuantityAgent(3600).
При удалении таблиц по-прежнему вызывается YandexRegionTable::setLastUpdate(0). Новых таблиц и полей нет.
Что делать
- Найдите в коде
Yandex::queryOld— заменить наquery. - Если строите UI поверх VK-интеграций, обрабатывайте пустой
getAuthUrl()как «недоступно», а не как валидный URL. - Уберите свои ссылки на
seo_search_google.php.