Your IP : 3.15.147.162
<?
use Bitrix\Main\Localization\Loc,
Bitrix\Iblock;
Loc::loadMessages(__FILE__);
class CIBlockPropertyFileMan
{
const USER_TYPE = 'FileMan';
public static function GetUserTypeDescription()
{
return array(
"PROPERTY_TYPE" => Iblock\PropertyTable::TYPE_STRING,
"USER_TYPE" => self::USER_TYPE,
"DESCRIPTION" => Loc::getMessage("IBLOCK_PROP_FILEMAN_DESC"),
"GetPropertyFieldHtml" => array(__CLASS__, "GetPropertyFieldHtml"),
"GetPropertyFieldHtmlMulty" => array(__CLASS__, "GetPropertyFieldHtmlMulty"),
"ConvertToDB" => array(__CLASS__, "ConvertToDB"),
"ConvertFromDB" => array(__CLASS__, "ConvertFromDB"),
"GetSettingsHTML" => array(__CLASS__, "GetSettingsHTML"),
);
}
public static function GetPropertyFieldHtmlMulty($arProperty, $arValues, $strHTMLControlName)
{
if($strHTMLControlName["MODE"]=="FORM_FILL" && CModule::IncludeModule('fileman'))
{
$inputName = array();
$description = array();
foreach ($arValues as $intPropertyValueID => $arOneValue)
{
$key = $strHTMLControlName["VALUE"]."[".$intPropertyValueID."]";
$inputName[$key."[VALUE]"] = $arOneValue["VALUE"];
$description[$key."[DESCRIPTION]"] = $arOneValue["DESCRIPTION"];
}
return CFileInput::ShowMultiple($inputName, $strHTMLControlName["VALUE"]."[n#IND#][VALUE]", array(
"PATH" => "Y",
"IMAGE" => "N",
"MAX_SIZE" => array(
"W" => COption::GetOptionString("iblock", "detail_image_size"),
"H" => COption::GetOptionString("iblock", "detail_image_size"),
),
), false, array(
'upload' => false,
'medialib' => true,
'file_dialog' => true,
'cloud' => true,
'del' => true,
'description' => $arProperty["WITH_DESCRIPTION"]=="Y"? array(
"VALUES" => $description,
'NAME_TEMPLATE' => $strHTMLControlName["VALUE"]."[n#IND#][DESCRIPTION]",
): false,
));
}
else
{
$table_id = md5($strHTMLControlName["VALUE"]);
$return = '<table id="tb'.$table_id.'" border=0 cellpadding=0 cellspacing=0>';
foreach ($arValues as $intPropertyValueID => $arOneValue)
{
$return .= '<tr><td>';
$return .= '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]."[$intPropertyValueID][VALUE]").'" size="'.$arProperty["COL_COUNT"].'" value="'.htmlspecialcharsEx($arOneValue["VALUE"]).'">';
if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
$return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]."[$intPropertyValueID][DESCRIPTION]").'" value="'.htmlspecialcharsEx($arOneValue["DESCRIPTION"]).'" size="18" type="text"></span>';
$return .= '</td></tr>';
}
$return .= '<tr><td>';
$return .= '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]."[n0][VALUE]").'" size="'.$arProperty["COL_COUNT"].'" value="">';
if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
$return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]."[n0][DESCRIPTION]").'" value="" size="18" type="text"></span>';
$return .= '</td></tr>';
$return .= '<tr><td><input type="button" value="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_ADD").'" onClick="addNewRow(\'tb'.$table_id.'\')"></td></tr>';
return $return.'</table>';
}
}
public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
{
global $APPLICATION;
if (strLen(trim($strHTMLControlName["FORM_NAME"])) <= 0)
$strHTMLControlName["FORM_NAME"] = "form_element";
$name = preg_replace("/[^a-zA-Z0-9_]/i", "x", htmlspecialcharsbx($strHTMLControlName["VALUE"]));
if(is_array($value["VALUE"]))
{
$value["VALUE"] = $value["VALUE"]["VALUE"];
$value["DESCRIPTION"] = $value["DESCRIPTION"]["VALUE"];
}
if($strHTMLControlName["MODE"]=="FORM_FILL" && CModule::IncludeModule('fileman'))
{
return CFileInput::Show($strHTMLControlName["VALUE"], $value["VALUE"],
array(
"PATH" => "Y",
"IMAGE" => "N",
"MAX_SIZE" => array(
"W" => COption::GetOptionString("iblock", "detail_image_size"),
"H" => COption::GetOptionString("iblock", "detail_image_size"),
),
), array(
'upload' => false,
'medialib' => true,
'file_dialog' => true,
'cloud' => true,
'del' => true,
'description' => $arProperty["WITH_DESCRIPTION"]=="Y"? array(
"VALUE" => $value["DESCRIPTION"],
"NAME" => $strHTMLControlName["DESCRIPTION"],
): false,
)
);
}
else
{
$return = '<input type="text" name="'.htmlspecialcharsbx($strHTMLControlName["VALUE"]).'" id="'.$name.'" size="'.$arProperty["COL_COUNT"].'" value="'.htmlspecialcharsEx($value["VALUE"]).'">';
if (($arProperty["WITH_DESCRIPTION"]=="Y") && ('' != trim($strHTMLControlName["DESCRIPTION"])))
{
$return .= ' <span title="'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_TITLE").'">'.Loc::getMessage("IBLOCK_PROP_FILEMAN_DESCRIPTION_LABEL").':<input name="'.htmlspecialcharsEx($strHTMLControlName["DESCRIPTION"]).'" value="'.htmlspecialcharsEx($value["DESCRIPTION"]).'" size="18" type="text"></span>';
}
return $return;
}
}
public static function ConvertToDB($arProperty, $value)
{
$result = array();
$return = array();
if(is_array($value["VALUE"]))
{
$result["VALUE"] = $value["VALUE"]["VALUE"];
$result["DESCRIPTION"] = $value["DESCRIPTION"]["VALUE"];
}
else
{
$result["VALUE"] = $value["VALUE"];
$result["DESCRIPTION"] = $value["DESCRIPTION"];
}
$return["VALUE"] = trim($result["VALUE"]);
$return["DESCRIPTION"] = trim($result["DESCRIPTION"]);
return $return;
}
public static function ConvertFromDB($arProperty, $value)
{
$return = array();
if (strLen(trim($value["VALUE"])) > 0)
$return["VALUE"] = $value["VALUE"];
if (strLen(trim($value["DESCRIPTION"])) > 0)
$return["DESCRIPTION"] = $value["DESCRIPTION"];
return $return;
}
public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
{
$arPropertyFields = array(
"HIDE" => array("MULTIPLE_CNT"),
);
return '';
}
}