Добрый день столкнулся с проблемой при создании пользовательского типа для свойства элемента
Сохранение данных полей не происходит, в чем может быть проблема?
Сохранение данных полей не происходит, в чем может быть проблема?
Код |
---|
if (CModule::IncludeModule("iblock")){ class ItemsList extends CIBlockPropertyElementList //класс, описывающий пользовательское свойство { function GetUserTypeDescription(){ return array( "PROPERTY_TYPE" => "E", 'USER_TYPE' => 'Items_list', 'DESCRIPTION' => 'Дополнительные Товары', "GetPropertyFieldHtml" => array("ItemsList", "GetPropertyFieldHtml"), "GetPublicViewHTML" => array("ItemsList", "GetPublicViewHTML"), "GetPublicEditHTML" => array("ItemsList", "GetPublicEditHTML"), "GetSettingsHTML" => array("ItemsList", "GetSettingsHTML"), "ConvertToDB" => array("ItemsList", "ConvertToDB"), "ConvertFromDB" => array("ItemsList", "ConvertFromDB"), ); } function GetPropertyFieldHtml($arProperty, $arValue, $strHTMLControlName){ if (!is_array($arValue)){ $strResult .= ' <div style="width:20%; display: inline-block;"> <input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'[0]" id="'.$strHTMLControlName["VALUE"].'[0]" value="" size="5"> <input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID=1&n='.urlencode($strHTMLControlName["VALUE"]).'[0]\', 800, 600);"> </div> <div style="width:20%; display: inline-block;"> <input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'[1]" id="'.$strHTMLControlName["VALUE"].'[1]" value="" size="5"> <input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID=1&n='.urlencode($strHTMLControlName["VALUE"]).'[1]\', 800, 600);"> </div> <div style="width:20%; display: inline-block;"> <input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'[2]" id="'.$strHTMLControlName["VALUE"].'[2]" value="" size="5"> <input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID=1&n='.urlencode($strHTMLControlName["VALUE"]).'[2]\', 800, 600);"> </div> <div style="width:20%; display: inline-block;"> <input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'[3]" id="'.$strHTMLControlName["VALUE"].'[3]" value="" size="5"> <input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID=1&n='.urlencode($strHTMLControlName["VALUE"]).'[3]\', 800, 600);"> </div> '; $strResult .= ' <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[0]" ></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[1]" ></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[2]" ></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[3]" ></span></div> '; }else{ $strResult = '<input type="text" name="'.$strHTMLControlName["VALUE"].'[0]" id="'.$strHTMLControlName["VALUE"].'[0]" value="'.$arValue['VALUE'][0].'" size="5">'. '<input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID='.$arProperty["LINK_IBLOCK_ID"][0].'&n='.urlencode($strHTMLControlName["VALUE"]).'[0]\', 800, 600);">'. ' <span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[0]['NAME'].'</span>'; $strResult .= '<input type="text" name="'.$strHTMLControlName["VALUE"].'[1]" id="'.$strHTMLControlName["VALUE"].'[1]" value="'.$arValue['VALUE'][1].'" size="5">'. '<input type="button" value="..." onCl ick="jsUtils.OpenWindow(\'iblock_element_search.php?lang='.LANGUAGE_ID.'&IBLOCK_ID='.$arProperty["LINK_IBLOCK_ID"][1].'&n='.urlencode($strHTMLControlName["VALUE"]).'[1]\', 800, 600);">'. ' <span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[1]['NAME'].'</span>'; $strResult .= ' <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[0]['NAME'].'</span></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[1]['NAME'].'</span></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[2]['NAME'].'</span></span></div> <div style="width:20%; display: inline-block; vertical-align: top;"><span id="sp_'.$strHTMLControlName["VALUE"].'[1]" >'.$mxElement[3]['NAME'].'</span></span></div> '; } return $strResult; } /** * Метод возвращает безопасный HTML отображения настроек свойства для формы редактирования инфоблока * * @param $arProperty * @param $strHTMLControlName * @param $arPropertyFields * @return mixed */ public function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields) { return ''; } /** * Отображение в публичной части * * @param $arProperty * @param $value * @param $strHTMLControlName * @return mixed|string */ function GetPublicViewHTML($arProperty, $value, $strHTMLControlName) { return ''; } /** * HTML формы редактирования в публичной части * * @param $arProperty * @param $value * @param $strHTMLControlName * @return string */ function GetPublicEditHTML($arProperty, $value, $strHTMLControlName) { $s = ''; return $s; } /** * Метод преобразовывает значение свойства в формат пригодный для сохранения в базе данных. * * @param $arProperty * @param $value * @return mixed */ function ConvertToDB($arProperty, $value) { $value['VALUE'] = implode(';',$value['VALUE'] ); return $value; } /** * Метод преобразовывает значение свойства из формата пригодного для сохранения в базе данных в формат обработки. * * @param $arProperty * @param $value * @return mixed */ function ConvertFromDB($arProperty, $value) { var_dump ($value); $value['VALUE'] = explode(';',$value['VALUE']); return $value; } } } AddEventHandler("iblock",'OnIBlockPropertyBuildList',array('ItemsList','GetUserTypeDescription')); |