Здравствуйте.
За ссылку спасибо. Полезная.
Частично разобрался. Подскажите пару моментов:
Сделан код класса для размещения в init.php
Казалось бы куда уже проще. На любое сохранение элемента информационного блока в БД должно попадать значение 5 и считываться оттуда.
Но ведь не работает. В ConvertToDB вижу что значение пришло, а в ConvertFromDB вижу что $value['VALUE'] пустое.
Где тут ошибка?
if (CModule::IncludeModule("iblock"))
{
class filterEnumClassMaxim extends CIBlockPropertyElementList //класс, описывающий пользовательское свойство
{
function GetUserTypeDescription()
{
return array(
'PROPERTY_TYPE' => 'L',
'USER_TYPE' => 'Filter_enummax',
'DESCRIPTION' => 'Фильтр_списокМаксим',
//'PrepareSettings' => array('filterEnumClassMaxim','PrepareSettings'),
'GetPropertyFieldHtml' => array('filterEnumClassMaxim','GetPropertyFieldHtml'),
'ConvertToDB' => array('filterEnumClassMaxim','ConvertToDB'),
'ConvertFromDB' => array('filterEnumClassMaxim','ConvertFromDB'),
//'GetSettingsHTML' => array('filterEnumClassMaxim','GetSettingsHTML'),
//'CheckFields' => array('filterEnumClassMaxim','CheckFields'),
);
}
function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
{
global $APPLICATION;
print_r($value);
$strHTMLControlName["VALUE"] = htmlspecialcharsEx($strHTMLControlName["VALUE"]);
$return='<input type="text" name="'.$strHTMLControlName['VALUE'].'">';
return $return;
}
function ConvertToDB($arProperty, $value)
{
$filename = $_SERVER["DOCUMENT_ROOT"].'/exchange/import/temp_image/1111.txt';
if (!$handle = fopen($filename, 'w')) {
echo "DEBUG: Не могу открыть файл ($filename)";
}
if (fwrite($handle, $value['VALUE']."----".$value['DESCRIPTION'] ) === FALSE) {
echo "DEBUG: Не могу произвести запись в файл ($filename)";
}
fclose($handle);
$value['VALUE']=5;
return $value;
}
function ConvertFromDB($arProperty, $value)
{
$filename = $_SERVER["DOCUMENT_ROOT"].'/exchange/import/temp_image/22222.txt';
if (!$handle = fopen($filename, 'w')) {
echo "DEBUG: Не могу открыть файл ($filename)";
}
if (fwrite($handle, $value['VALUE']."----".$value['DESCRIPTION'] ) === FALSE) {
echo "DEBUG: Не могу произвести запись в файл ($filename)";
}
fclose($handle);
return $value;
}
}
}
AddEventHandler("iblock",'OnIBlockPropertyBuildList',array('filterEnumClassMaxim','GetUserTypeDescription'));