Скрыть объявление
Гость Присоединяйся к складчине. Автокаталог для грузовых авто

Мануал Полезные Функции

Тема в разделе "Битрикс", создана пользователем KNStariy, 28 май 2019.

  1. KNStariy

    KNStariy Новичок Зарегистрирован

    Регистрация
    7 янв 2017
    Сообщения
    30
    Симпатии
    3
    Баллы
    6
    Пол
    Мужской
    В данной теме я буду постепенно дополнять полезными наработками.
    И первое что я опишу, это как при регистрации пользователя выбирать дополнительную группу пользователя.
    И так. Стал вопрос, добавить группу "Монтажник" и дать пользователю возможность выбрать ее при регистрации.
    (Используется готовое решение Digital Web, Deluxe)

    Открываем шаблон регистрации:
    bitrix\templates\dresscode\components\bitrix\system.auth.registration\.default\template.php
    и в нужном вам месте добавляем селектор:
    HTML:
    <select>
        <option name="buyer">Покупатель</option>
        <option name="installer">Монтажник</option>
    </select>
    
    Далее создаем в папке bitrix папку php_interface, и создаем в ней файл init.php.

    В файле прописываем следующее:
    Код:
    AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserUpdateHandler");
    AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler");
    function OnBeforeUserUpdateHandler(&$arFields)
    {
        if($arFields["buyer"] == true) {
            $arFields["GROUP_ID"][] = 6;
        }
    
        elseif($arFields["supplier"] = true) {
            $arFields["GROUP_ID"][] = 13;
        }
    }
    Данный код будет добавлять нового пользователя в ту группу которую выбрал при регистрации.
    В моем случае, ID 6, это обычная группа зарегистрированного пользователя а ID 13, как раз та группа которую я создал.

    Далее создал тестовое Пользовательское поле UF_MONTAJNIK.
    Потом открываем шаблон персональных данных:
    bitrix\templates\dresscode\components\dresscode\personal.info\.default\template.php
    И вставил в нужное мне место:
    Код:
    <? if( in_array(13,CUser::GetUserGroup(CUser::GetID()))||in_array(13,CUser::GetUserGroup(CUser::GetID())) == true )
    {
    ?>
    <li>
        <label>Монтажник</label>
        <input type="text" name="MONTAJNIK" value="<?=$arResult["USER"]["UF_MONTAJNIK"]?>" class="inputText">
    </li>
    <?
    }
    else
    {
    
    }
    ?>
    
    В условии указываем для какой группы будет отображаться данное поле. В моем случае 13,CUser.
    Заметьте, в условии нужно 2 раза указать ID группы.
    И так, поле отобразилось. Но теперь нам надо обработать сохранение поля.
    Для этого открываем следующий файл:
    bitrix\components\dresscode\personal.info\templates\.default\ajax.php
    Добавляем дополнительный код.
    Код:
    isset($_GET["MONTAJNIK"]) &&
    [​IMG]
    Код:
    $UF_MONTAJNIK = htmlspecialchars($_GET["MONTAJNIK"]);
    [​IMG]
    Код:
    "UF_MONTAJNIK" => BX_UTF === true ? $UF_MONTAJNIK : iconv("UTF-8", "windows-1251//IGNORE", $UF_MONTAJNIK),
    [​IMG]

    После этого должно все заработать.

    P.S. Тема будет дополняться.
     

Поделиться этой страницей

Share
Загрузка...
Плагины для XenForo/