Как создать кастомный тип свойства инфоблока, состоящий из трех полей с типами строка, файл, HTML/текст.
Пока получилось сделать вот это
AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("CIBlockPropertyCustom", "GetUserTypeDescription"));
class CIBlockPropertyCustom
{
public function GetUserTypeDescription()
{
return array(
"PROPERTY_TYPE" => "S", // тип свойства — строка
"USER_TYPE" => "SERVICE",
"DESCRIPTION" => "Услуга",
"GetPropertyFieldHtml" => array("CIBlockPropertyCustom", "GetPropertyFieldHtml"),
);
}
// вывод поля свойства на странице редактирования
public function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
{
return '<input type="text" name="'.$strHTMLControlName["VALUE"].'" value="'.$value['VALUE'].'">
<input type="file" name="'.$strHTMLControlName["VALUE"].'" value="'.$value['VALUE'].'">
<textarea name="'.$strHTMLControlName["VALUE"].'" id="" cols="30" rows="10" value="'.$value['VALUE'].'"></textarea>
';
}
//сохраняем в базу
function ConvertToDB($arProperty, $value){
return $value;
}
//читаем из базы
function ConvertFromDB($arProperty, $value){
return $value;
}
}
Но сохраняется только одно значение для всех полей