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

_ShowUserPropertyField: метод Битрикс

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

<?php 
//    /bitrix/modules/iblock/admin_tools.php_ShowUserPropertyField()
//    443:

function _ShowUserPropertyField($name$property_fields$values$bInitDef false$bVarsFromForm false$max_file_size_show=50000$form_name "form_element"$bCopy false)
{
    global 
$bCopy;

    
$name htmlspecialcharsbx($name);

    
$start 0;

    if(!
is_array($property_fields["~VALUE"]))
        
$values = array();
    else
        
$values $property_fields["~VALUE"];

    unset(
$property_fields["VALUE"]);
    unset(
$property_fields["~VALUE"]);

    
$html '<table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb'.md5($name).'">';
    
$arUserType CIBlockProperty::GetUserType($property_fields["USER_TYPE"]);
    
$bMultiple $property_fields["MULTIPLE"] == "Y" && array_key_exists("GetPropertyFieldHtmlMulty"$arUserType);
    
$max_val = -1;

    if((
$arUserType["PROPERTY_TYPE"] !== "F") || (!$bCopy))
    {
        if(
$bMultiple)
        {
            
$html .= '<tr><td>';
            
$html .= call_user_func_array($arUserType["GetPropertyFieldHtmlMulty"],
                array(
                    
$property_fields,
                    
$values,
                    array(
                        
"VALUE"=>'PROP['.$property_fields["ID"].']',
                        
"FORM_NAME"=>$form_name,
                        
"MODE"=>"FORM_FILL",
                        
"COPY" => $bCopy,
                    ),
                ));
            
$html .= '</td></tr>';
        }
        else
        {
            foreach(
$values as $key=>$val)
            {
                if(
$bCopy)
                {
                    
$key "n".$start;
                    
$start++;
                }

                if(!
is_array($val) || !array_key_exists("VALUE",$val))
                    
$val = array("VALUE"=>$val"DESCRIPTION"=>"");

                
$html .= '<tr><td>';
                if(
array_key_exists("GetPropertyFieldHtml"$arUserType))
                    
$html .= call_user_func_array($arUserType["GetPropertyFieldHtml"],
                        array(
                            
$property_fields,
                            
$val,
                            array(
                                
"VALUE"=>'PROP['.$property_fields["ID"].']['.$key.'][VALUE]',
                                
"DESCRIPTION"=>'PROP['.$property_fields["ID"].']['.$key.'][DESCRIPTION]',
                                
"FORM_NAME"=>$form_name,
                                
"MODE"=>"FORM_FILL",
                                
"COPY"=>$bCopy,
                            ),
                        ));
                else
                    
$html .= '&nbsp;';
                
$html .= '</td></tr>';

                if(
substr($key, -11)=='n' && $max_val intval(substr($key1)))
                    
$max_val intval(substr($key1));
                if(
$property_fields["MULTIPLE"] != "Y")
                {
                    
$bVarsFromForm true;
                    break;
                }
            }
        }
    }

    if(
        (!
$bVarsFromForm && !$bMultiple)
        || (
$bVarsFromForm && !$bMultiple && count($values) == 0//Was not displayed
    
)
    {
        
$bDefaultValue is_array($property_fields["DEFAULT_VALUE"]) || strlen($property_fields["DEFAULT_VALUE"]);

        if(
$property_fields["MULTIPLE"]=="Y")
        {
            
$cnt = (int)$property_fields["MULTIPLE_CNT"];
            if(
$cnt <= || $cnt 30)
                
$cnt 5;

            if(
$bInitDef && $bDefaultValue)
                
$cnt++;
        }
        else
        {
            
$cnt 1;
        }

        for(
$i=$max_val+1$i<$max_val+1+$cnt$i++)
        {
            if(
$i==&& $bInitDef && $bDefaultValue)
                
$val = array(
                    
"VALUE"=>$property_fields["DEFAULT_VALUE"],
                    
"DESCRIPTION"=>"",
                );
            else
                
$val = array(
                    
"VALUE"=>"",
                    
"DESCRIPTION"=>"",
                );

            
$key "n".($start $i);

            
$html .= '<tr><td>';
            if(
array_key_exists("GetPropertyFieldHtml"$arUserType))
                
$html .= call_user_func_array($arUserType["GetPropertyFieldHtml"],
                    array(
                        
$property_fields,
                        
$val,
                        array(
                            
"VALUE"=>'PROP['.$property_fields["ID"].']['.$key.'][VALUE]',
                            
"DESCRIPTION"=>'PROP['.$property_fields["ID"].']['.$key.'][DESCRIPTION]',
                            
"FORM_NAME"=>$form_name,
                            
"MODE"=>"FORM_FILL",
                            
"COPY"=>$bCopy,
                        ),
                    ));
            else
                
$html .= '&nbsp;';
            
$html .= '</td></tr>';
        }
        
$max_val += $cnt;
    }
    if(
        
$property_fields["MULTIPLE"]=="Y"
        
&& $arUserType["USER_TYPE"] !== "HTML"
        
&& $arUserType["USER_TYPE"] !== "employee"
        
&& !$bMultiple
    
)
    {
        
$html .= '<tr><td><input type="button" value="'.GetMessage("IBLOCK_AT_PROP_ADD").'" onClick="addNewRow(\'tb'.md5($name).'\')"></td></tr>';
    }
    
$html .= '</table>';
    echo 
$html;
}

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

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

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

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

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

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

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

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