Здравствуйте! Необходимо определять id города пользователя и в соответствии с ним переносит md группу при регистрации.
В файл ini.php добавил следующее:
Код |
---|
<? //Обработчик проверки города при регистрации
AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
// создаем обработчик события "OnBeforeUserRegister"
function OnBeforeUserRegisterHandler(&$arFields)
{
// если пользователь регистрируется на сайте из Барнаула (city id=782)
if($_SESSION['SESS_CITY_ID']=="782")
{
// добавляем его в группу с id=15
$arFields["GROUP_ID"][] = 16;
}
elseif($_SESSION['SESS_CITY_ID']!="782")
{
// иначе добавляем его в группу с id=15
$arFields["GROUP_ID"][] = 15;
}
}
?>
|
Появляется белая страница. Читал что значение $_SESSION в init.php не инициализируется. Как правильно реализовать?
Разобрался. Добавил в init.php
Код |
---|
<?
if (1==$_GET["noinit"] || 1==$_SESSION["noinit"]) {
$_SESSION["noinit"]=1;
}
else {
require_once $_SERVER["DOCUMENT_ROOT"]. "/bitrix/php_interface/check_city.php";
}
?>
|
А код вынес в /bitrix/php_interface/check_city.php
Вопрос в другом теперь. Каким образом перевести пользователя в группу после авторизации если соблюдаются условия?
Код |
---|
<? //Обработчик проверки города при регистрации
AddEventHandler("main", "OnAfterUserLogin", Array("MyClass", "OnAfterUserLoginHandler"));
// создаем обработчик события "OnAfterUserLogin"
class MyClass
{
// создаем обработчик события "OnAfterUserLogin"
function OnAfterUserLoginHandler(&$fields)
{
// если пользователь авторизуется на сайте из Барнаула (city id=782)
if($_SESSION['SESS_CITY_ID']=="782")
{
// добавляем его в группу с id=16
$arFields["GROUP_ID"][] = 16;
}
elseif($_SESSION['SESS_CITY_ID']!="782")
{
// иначе добавляем его в группу с id=15
$arFields["GROUP_ID"][] = 15;
}
}
}
?>
|
Так не работает.