Посетите Дворцовую площадь

Возможные проблемы и их решения


Во-первых, крайне советуем обновить модуль до последней версии, так как, если в модуль на самом деле закралась ошибка, то её быстро замечают и исправление в скором времени выпускается в ближайшем обновлении.

Также очень много ошибок возникает, когда кто-то правит шаблоны компонентов модуля. Мы крайне не советуем этого делать. Так как в этой ситуации владельцы проектов и нанятые ими программисты меняют код модуля и, как и все люди, могут допускать ошибки. Плюс такие манипуляции могут повредить механизм обновления решения.

А если вы обновляли код непосредственно в /bitrix/modules/aristov.vregions/, то вы уже сломали механизм обновлений, никогда не правьте код там.

Также проверьте консоль на предмет ошибок. Если там есть проблемы, то могут не работать переходы на поддомены, показ всплывающего окна и многое другое.

Ниже перечислены встреченные нами ошибки и наши способы их решения. То есть, когда к нам приходит сообщение об ошибке, мы сами же работаем по этим алгоритмам. Практически всегда проблемы оказываются мнимыми и решаются (или вызываются) просто изменением настроек.

Не подставляются переменные

В большинстве случаев переменная просто написана неправильно. С правильностью написания вы всегда сможете свериться на странице Настройки -> Настройки продукта -> Настройки модулей -> Регионы продаж вкладка "Список переменных".

На втором месте по популярности стоит причина - данное свойство у региона просто незаполненно. То есть, например, в Москве у вас подставляется, например, адрес, а в Перми нет. Просто проверьте что у проблемного региона в принципе заполненно это свойство.

Если ваша ошибка не вызвана невнимательностью, то проверьте настройки модуля. У вас всегда должны быть указаны "Инфоблок для регионов" и "Регион по умолчанию". А если вы хотите заменять все переменные на страницах без правки кода сайта, то проверьте, что у вас стоит галочка напротив "Использовать радикальную замену всех переменных".

Если же и сейчас переменные не заработали, то мб что-то сломалось в Битриксе при установке модуля. К счастью проверить это можно легко и наглядно на странице Сервисы -> Регионы продаж -> Тест обработчиков событий.

Неправильно определяется ближайший город

Если вы выбрали способ определение через php, то его алгоритм таков:

  1. Модуль узнаёт ip пользователя
  2. Этот IP сопоставляется с одной из двух библиотек входящих в модуль (в зависимости от вашего выбора) для того, чтобы узнать город посетителя
  3. Берутся координаты города из библиотеки
  4. По этим координатам высчитывается ближайший регион в инфоблоке регионов (учитывается кривизна Земли)

Следовательно какие могут быть проблемы:

  • Библиотеки ip-адресов устарели
  • Не созданы нужные регионы
  • Не у всех регионов заполнены координаты центра

Проверить эти моменты и обновить библиотеки вы можете на странице Сервисы -> Регионы продаж -> Тест геолокации. Там же можно и обновить базы данных.

Слишком часто появляется окно с выбором региона

Этот момент настраивается в настройках модуля. Параметр "Время жизни куки в секундах". Чтобы не считать, 3600 - один час, 86400 - одни сутки.

Окно с выбором региона появляется не на всех страницах

Это окно показывает компонент переключения регионов. Следовательно, причина банальна - не на всех страницах есть этот компонент. Рекомендуем вставлять компонент в шапку сайта.

Не отображается google-карта в инфоблоке регионов

Почему-то в Битриксе на каких-то сайтах из свойств карты работает только google-карта, а на каких-то только яндекс-карта. Если у вас в инфоблоке не работает карта, то просто поменяйте в настройках инфоблока тип свойства карты с яндекса на google или наоборот, они полностью взаимозаменяемы.

Адрес сайта в файле robots.txt пустой

Почти в 100% случаев это означает, что в файле robots.txt (или robots.php, в зависимости от выбранного вами способа реализации) в самом начале отсутствует данный блок кода:

<?$host = $_SERVER["HTTP_HOST"];
$host = preg_replace("/\:\d+/is", "", $host);
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"){
	$http = "https";
}
else{
	$http = "http";
}
header("Content-Type: text/plain");?>

Этот код должен идти в самом начале файла, до любых директив.

Не открываются поддомены

Вы не можете перейти на поддомен, даже если вбить его адрес прямо в строку адреса в браузере, хотя всё настроили по инструкции. Проверьте свой файл .htaccess, скорее всего там стоит запрет на открытие поддоменов.

Правило может выглядеть как "если сайт не адрес сайта, то перевести на адрес сайта". Ориентируйтесь на слова RewriteCond и RewriteRule.

Не отображается компонент в визуальном редакторе

Просто сбросьте кеш Битрикса как показано на рисунке.

Сброс кеша в Битриксе

Резкое увеличение размера кеша на сайте, слишком большой размер кеша

После установки модуля может случится так, что у вас на сервере кеш Битрикса увеличился на несколько гигабайт. Если вы полностью уверены, что всему виной наш модуль, а конкретно компонент переключения регионов, значит у вас включена галочка в настройках компонента (именно компонента, а не всего модуля) "Учитывать текущий регион при кешировании (увеличивает кеш)". Просто отключите её и удалите кеш, его размер должен будет вернуться в норму. А эта настройка нужна лишь в очень специфичных случаях другим программистам.

Сайт можно открыть по несуществующим поддоменам

Просто включите настройку модуля "Проверять ли домен на существование" и сайт можно будет открыть только по созданным в инфоблоке поддоменам.

Резкое увеличение нагрузки на сайт

Для поисковиков каждый поддомен - отдельный сайт. Эта идеалогия являлась основной причиной разработки данного модуля. Следовательно, при появлении поддомена, поисковик думает, что появился новый сайт, поэтому начинает его активно индексировать. А если на основном сайте у вас много страниц, то на поддомене их будет столько же и робот может генерировать десятки тысяч запросов.

Решение очевидно - ограничить индексацию сайта, любым удобным для вас способом, например, через Crawl-delay.

Слетает авторизация при переключении между поддоменами

Нужно включить настройки главного модуля "Распространять авторизацию на все домены" и "Распространять куки на все домены".

Если это не помогло, проверьте, что у Apache общая папка для сессий всех сайтов/доменов и session.cookie_domain прописан с ведущей точкой.

При переносе модуля на тестовый поддомен нельзя зайти на сайт

Модуль считает, что поддомены находятся на третьем уровне (это поведение по умолчанию + на вашем старом сайте так было), и в данном случае ваш тестовый поддомен расценивается как потенциально региональный. Поэтому модуль сравнивает поддомен с кодами регионов и не находит его, а так как у вас похоже были включены редиректы с несуществующих поддоменов, то вас редиректит на адрес без поддоменов.

Для исправления ситуации нужно поменять настройку "Уровень у поддоменов" с 3 на 4. Но так как у вас скорее всего сейчас недоступна админка, то это придётся сделать через апи. Создайте файл со следующим содержанием и откройте его в браузере:

	<?
	require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
	\COption::SetOptionString($this->MODULE_ID, 'vregions_subdomain_level', '4');


Аристов Василий
Разработчик всех модулей на проекте

Что-то осталось непонятным или вы нашли неточность? Напишите, пожалуйста об этом в комментариях.

Написать комментарий

Чтобы писать комментарии, вам нужно войти на сайт

Авторизоваться через соцсеть

Авторизоваться через vk.com Авторизоваться через facebook.com

Хотите такие же комментарии себе на сайт? Купите готовый к установке модуль