Guest User

Untitled

a guest
May 16th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.81 KB | None | 0 0
  1. $eventManager = \Bitrix\Main\EventManager::getInstance();
  2.  
  3. $eventManager->addEventHandlerCompatible('main', 'OnUserTypeBuildList',   ['CUserTypeBookCover', 'GetUserTypeDescription']);
  4.  
  5. class CUserTypeBookCover extends \CUserTypeFile
  6. {
  7.     const USER_TYPE_ID = 'bookcover';
  8.  
  9.     function GetUserTypeDescription()
  10.     {
  11.         return array(
  12.             "USER_TYPE_ID"  => static::USER_TYPE_ID,
  13.             "CLASS_NAME"    => __CLASS__,
  14.             "DESCRIPTION"   => "Book Cover",
  15.             "BASE_TYPE"     => \CUserTypeManager::BASE_TYPE_FILE,
  16.             "VIEW_CALLBACK" => array(__CLASS__, 'GetPublicView'),
  17.             "EDIT_CALLBACK" => array(__CLASS__, 'GetPublicEdit'),
  18.         );
  19.     }
  20.  
  21.     function PrepareSettings($arUserField)
  22.     {
  23.         return array(
  24.             "LIST_WIDTH" => intval($arUserField["SETTINGS"]["LIST_WIDTH"]),
  25.             "LIST_HEIGHT" => intval($arUserField["SETTINGS"]["LIST_HEIGHT"]),
  26.         );
  27.     }
  28.  
  29.     function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm)
  30.     {
  31.         $result = '';
  32.         if($bVarsFromForm)
  33.         {
  34.             $width = intval($GLOBALS[$arHtmlControl["NAME"]]["LIST_WIDTH"]);
  35.         }
  36.         elseif(is_array($arUserField) && isset($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]))
  37.         {
  38.             $width = intval($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]);
  39.         }
  40.         else
  41.         {
  42.             $width = 200;
  43.         }
  44.         if($bVarsFromForm)
  45.         {
  46.             $height = intval($GLOBALS[$arHtmlControl["USER_TYPE_SETTINGS"]]["LIST_HEIGHT"]);
  47.         }
  48.         elseif(is_array($arUserField) && isset($arUserField["USER_TYPE_SETTINGS"]["LIST_WIDTH"]))
  49.         {
  50.             $height = intval($arUserField["USER_TYPE_SETTINGS"]["LIST_HEIGHT"]);
  51.         }
  52.         else
  53.         {
  54.             $height = 200;
  55.         }
  56.  
  57.         $result .= '
  58.         <tr>
  59.         <td>Максимальный размер изображения:</td>
  60.         <td>
  61.         <input type="text" name="'.$arHtmlControl["NAME"].'[LIST_WIDTH]" size="7"  maxlength="20" value="'.$width.'">
  62.         px
  63.         x
  64.         <input type="text" name="'.$arHtmlControl["NAME"].'[LIST_HEIGHT]" size="7"  maxlength="20" value="'.$height.'">
  65.         px
  66.         </td>
  67.         </tr>
  68.         ';      
  69.         return $result;
  70.     }
  71.  
  72.     function CheckFields($arUserField, $value)
  73.     {
  74.         $maxWidth=140;
  75.         $maxHeight=140;
  76.         $aMsg = array();
  77.         $error = "";
  78.         $extensions=explode(',',$arUserField['FILE_TYPE']);
  79.  
  80.         if(is_array($extensions) && count($extensions)){
  81.             $error = CFile::CheckImageFile($value['VALUE'], 0, 640, 640, $arUserField['FILE_TYPE']);
  82.         }
  83.         if(strlen($error))
  84.         {
  85.             $aMsg[] = array(
  86.                 "id" => $arUserField["NAME"],
  87.                 "text" => $error
  88.             );
  89.         }
  90.         $file = CFile::GetImageSize($value['VALUE']['tmp_name']);
  91.         if ($file !== false && is_array($file)){
  92.             if ($file[0] > $maxWidth){
  93.                 $aMsg[] = $arUserField["NAME"].': Ширина должна быть меньше чем '.$maxWidth.'px;';
  94.             }
  95.             if ($file[1] > $maxHeight){
  96.                 $aMsg[] = $arUserField["NAME"].': Высота должна быть меньше чем '.$maxHeight.'px;';
  97.             }
  98.         }
  99.         return $aMsg;
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment