Поддержка серверов

CUserTypeIBlockElement::GetSettingsHTML: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=163994

//    CUserTypeIBlockElement::GetSettingsHTML()
//    /bitrix/modules/main/classes/general/usertypeelement.php:46

    function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm)
    {
        if (self::$iblockIncluded === null)
            self::$iblockIncluded = Loader::includeModule('iblock');

        $result = '';

        if($bVarsFromForm)
            $iblock_id = $GLOBALS[$arHtmlControl["NAME"]]["IBLOCK_ID"];
        elseif(is_array($arUserField))
            $iblock_id = $arUserField["SETTINGS"]["IBLOCK_ID"];
        else
            $iblock_id = "";
        if (self::$iblockIncluded)
        {
            $iblock_id = (int)$iblock_id;
            if ($iblock_id > 0)
            {
                $iblockName = (string)CIBlock::GetArrayByID($iblock_id, 'NAME');
                if ($iblockName === '')
                {
                    $iblock_id = 0;
                }
            }
            $result .= '
            <tr>
                <td>'.Loc::getMessage("USER_TYPE_IBEL_DISPLAY").':</td>
                <td>
                    '.GetIBlockDropDownList(
                        $iblock_id,
                        $arHtmlControl["NAME"].'[IBLOCK_TYPE_ID]',
                        $arHtmlControl["NAME"].'[IBLOCK_ID]',
                        false,
                        'class="adm-detail-iblock-types"',
                        'class="adm-detail-iblock-list" onchange="showUsertypeElementNote(this);"'
                    ).'
                </td>
            </tr>
            <tr id="tr_usertype_element_note" style="display: '.($iblock_id > 0 ? 'none' : 'table-row').'"><td></td><td>'.htmlspecialcharsbx(Loc::getMessage('USER_TYPE_IBEL_DISPLAY_NOTE')).'</td></tr>
            <script type="text/javascript">'.
            "function showUsertypeElementNote(selector)
            {
                BX.style(BX('tr_usertype_element_note'), 'display', (selector.value !== '-1' && selector.value !== '0' ? 'none' : 'table-row'));
            }".
'</script>
            ';
        }
        else
        {
            $result .= '
            <tr>
                <td>'.Loc::getMessage("USER_TYPE_IBEL_DISPLAY").':</td>
                <td>
                    <input type="text" size="6" name="'.$arHtmlControl["NAME"].'[IBLOCK_ID]" value="'.htmlspecialcharsbx($iblock_id).'">
                </td>
            </tr>
            ';
        }

        if($bVarsFromForm)
            $ACTIVE_FILTER = $GLOBALS[$arHtmlControl["NAME"]]["ACTIVE_FILTER"] === "Y"? "Y": "N";
        elseif(is_array($arUserField))
            $ACTIVE_FILTER = $arUserField["SETTINGS"]["ACTIVE_FILTER"] === "Y"? "Y": "N";
        else
            $ACTIVE_FILTER = "N";

        if($bVarsFromForm)
            $value = $GLOBALS[$arHtmlControl["NAME"]]["DEFAULT_VALUE"];
        elseif(is_array($arUserField))
            $value = $arUserField["SETTINGS"]["DEFAULT_VALUE"];
        else
            $value = "";
        if (self::$iblockIncluded && $iblock_id > 0)
        {
            $result .= '
            <tr>
                <td>'.Loc::getMessage("USER_TYPE_IBEL_DEFAULT_VALUE").':</td>
                <td>
                    <select name="'.$arHtmlControl["NAME"].'[DEFAULT_VALUE]" size="5">
                        <option value="">'.Loc::getMessage("USER_TYPE_IBEL_VALUE_ANY").'</option>
            ';

            $arFilter = Array("IBLOCK_ID"=>$iblock_id);
            if($ACTIVE_FILTER === "Y")
                $arFilter["ACTIVE"] = "Y";

            $rs = CIBlockElement::GetList(
                array("NAME" => "ASC", "ID" => "ASC"),
                $arFilter,
                false,
                false,
                array("ID", "NAME")
            );
            while($ar = $rs->GetNext())
                $result .= '<option value="'.$ar["ID"].'"'.($ar["ID"]==$value? " selected": "").'>'.$ar["NAME"].'</option>';

            $result .= '</select>';
        }
        else
        {
            $result .= '
            <tr>
                <td>'.Loc::getMessage("USER_TYPE_IBEL_DEFAULT_VALUE").':</td>
                <td>
                    <input type="text" size="8" name="'.$arHtmlControl["NAME"].'[DEFAULT_VALUE]" value="'.htmlspecialcharsbx($value).'">
                </td>
            </tr>
            ';
        }

        if($bVarsFromForm)
            $value = $GLOBALS[$arHtmlControl["NAME"]]["DISPLAY"];
        elseif(is_array($arUserField))
            $value = $arUserField["SETTINGS"]["DISPLAY"];
        else
            $value = "LIST";
        $result .= '
        <tr>
            <td class="adm-detail-valign-top">'.Loc::getMessage("USER_TYPE_ENUM_DISPLAY").':</td>
            <td>
                <label><input type="radio" name="'.$arHtmlControl["NAME"].'[DISPLAY]" value="LIST" '.("LIST"==$value? 'checked="checked"': '').'>'.Loc::getMessage("USER_TYPE_IBEL_LIST").'</label><br>
                <label><input type="radio" name="'.$arHtmlControl["NAME"].'[DISPLAY]" value="CHECKBOX" '.("CHECKBOX"==$value? 'checked="checked"': '').'>'.Loc::getMessage("USER_TYPE_IBEL_CHECKBOX").'</label><br>
            </td>
        </tr>
        ';

        if($bVarsFromForm)
            $value = intval($GLOBALS[$arHtmlControl["NAME"]]["LIST_HEIGHT"]);
        elseif(is_array($arUserField))
            $value = intval($arUserField["SETTINGS"]["LIST_HEIGHT"]);
        else
            $value = 5;
        $result .= '
        <tr>
            <td>'.Loc::getMessage("USER_TYPE_IBEL_LIST_HEIGHT").':</td>
            <td>
                <input type="text" name="'.$arHtmlControl["NAME"].'[LIST_HEIGHT]" size="10" value="'.$value.'">
            </td>
        </tr>
        ';

        $result .= '
        <tr>
            <td>'.Loc::getMessage("USER_TYPE_IBEL_ACTIVE_FILTER").':</td>
            <td>
                <input type="checkbox" name="'.$arHtmlControl["NAME"].'[ACTIVE_FILTER]" value="Y" '.($ACTIVE_FILTER=="Y"? 'checked="checked"': '').'>
            </td>
        </tr>
        ';

        return $result;
    }
';

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение