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')); |