Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $eventManager = \Bitrix\Main\EventManager::getInstance();
- $eventManager->addEventHandlerCompatible('main', 'OnUserTypeBuildList', ['CUserTypeBookCover', 'GetUserTypeDescription']);
- class CUserTypeBookCover extends \CUserTypeFile
- {
- const USER_TYPE_ID = 'bookcover';
- function GetUserTypeDescription()
- {
- return array(
- "USER_TYPE_ID" => static::USER_TYPE_ID,
- "CLASS_NAME" => __CLASS__,
- "DESCRIPTION" => "Book Cover",
- "BASE_TYPE" => \CUserTypeManager::BASE_TYPE_FILE,
- "VIEW_CALLBACK" => array(__CLASS__, 'GetPublicView'),
- "EDIT_CALLBACK" => array(__CLASS__, 'GetPublicEdit'),
- );
- }
- function PrepareSettings($arUserField)
- {
- return array(
- "LIST_WIDTH" => intval($arUserField["SETTINGS"]["LIST_WIDTH"]),
- "LIST_HEIGHT" => intval($arUserField["SETTINGS"]["LIST_HEIGHT"]),
- );
- }
- function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm)
- {
- $result = '';
- if($bVarsFromForm)
- {
- $width = intval($GLOBALS[$arHtmlControl["NAME"]]["LIST_WIDTH"]);
- }
- elseif(is_array($arUserField) && isset($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]))
- {
- $width = intval($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]);
- }
- else
- {
- $width = 200;
- }
- if($bVarsFromForm)
- {
- $height = intval($GLOBALS[$arHtmlControl["USER_TYPE_SETTINGS"]]["LIST_HEIGHT"]);
- }
- elseif(is_array($arUserField) && isset($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]))
- {
- $height = intval($arUserField["USER_TYPE_SETTINGS"]["LIST_HEIGHT"]);
- }
- else
- {
- $height = 200;
- }
- $result .= '
- <tr>
- <td>Максимальный размер изображения:</td>
- <td>
- <input type="text" name="'.$arHtmlControl["NAME"].'[LIST_WIDTH]" size="7" maxlength="20" value="'.$width.'">
- px
- x
- <input type="text" name="'.$arHtmlControl["NAME"].'[LIST_HEIGHT]" size="7" maxlength="20" value="'.$height.'">
- px
- </td>
- </tr>
- ';
- return $result;
- }
- function CheckFields($arUserField, $value)
- {
- $maxWidth=140;
- $maxHeight=140;
- $aMsg = array();
- $error = "";
- $extensions=explode(',',$arUserField['FILE_TYPE']);
- if(is_array($extensions) && count($extensions)){
- $error = CFile::CheckImageFile($value['VALUE'], 0, 640, 640, $arUserField['FILE_TYPE']);
- }
- if(strlen($error))
- {
- $aMsg[] = array(
- "id" => $arUserField["NAME"],
- "text" => $error
- );
- }
- $file = CFile::GetImageSize($value['VALUE']['tmp_name']);
- if ($file !== false && is_array($file)){
- if ($file[0] > $maxWidth){
- $aMsg[] = $arUserField["NAME"].': Ширина должна быть меньше чем '.$maxWidth.'px;';
- }
- if ($file[1] > $maxHeight){
- $aMsg[] = $arUserField["NAME"].': Высота должна быть меньше чем '.$maxHeight.'px;';
- }
- }
- return $aMsg;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment