Просмотр исходного кода

#1354 dropzone.js integration as uploader: client image resizing

Alex Trofimov 8 лет назад
Родитель
Сommit
8992206ea0

+ 3 - 0
install/sql/system.sql

@@ -390,6 +390,9 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 (@iCategoryId, 'currency_sign', '_adm_stg_cpt_option_currency_sign', '$', 'digit', '', 'Avail', '_adm_stg_err_option_currency_sign', 31),
 
 (@iCategoryId, 'enable_gd', '_adm_stg_cpt_option_enable_gd', 'on', 'checkbox', '', '', '', 40),
+(@iCategoryId, 'client_image_resize_width', '_adm_stg_cpt_option_client_image_resize_width', '2048', 'digit', '', '', '', 42),
+(@iCategoryId, 'client_image_resize_height', '_adm_stg_cpt_option_client_image_resize_height', '2048', 'digit', '', '', '', 43),
+
 (@iCategoryId, 'useLikeOperator', '_adm_stg_cpt_option_use_like_operator', 'on', 'checkbox', '', '', '', 45),
 
 (@iCategoryId, 'sys_transcoder_queue_storage', '_adm_stg_cpt_option_sys_transcoder_queue_storage', '', 'checkbox', '', '', '', 50),

+ 3 - 1
modules/boonex/english/data/langs/system/en.xml

@@ -1234,7 +1234,9 @@
 	<string name="_adm_stg_cpt_category_storage"><![CDATA[Storage]]></string>
 	<string name="_adm_stg_cpt_category_system"><![CDATA[System]]></string>
 	<string name="_adm_stg_cpt_category_templates"><![CDATA[Templates]]></string>
-	<string name="_adm_stg_cpt_category_twilio_gate"><![CDATA[Twilio]]></string>
+    <string name="_adm_stg_cpt_category_twilio_gate"><![CDATA[Twilio]]></string>
+    <string name="_adm_stg_cpt_option_client_image_resize_width"><![CDATA[Image width to resize before upload (0 - disable)]]></string>
+    <string name="_adm_stg_cpt_option_client_image_resize_height"><![CDATA[Image height to resize before upload (0 - disable)]]></string>
 	<string name="_adm_stg_cpt_option_currency_code"><![CDATA[Currency code (for checkout system)]]></string>
 	<string name="_adm_stg_err_option_currency_code"><![CDATA[Cannot be empty.]]></string>
 	<string name="_adm_stg_cpt_option_currency_sign"><![CDATA[Currency sign (for display purposes only)]]></string>

+ 3 - 1
modules/boonex/russian/data/langs/system/ru.xml

@@ -1232,7 +1232,9 @@
 	<string name="_adm_stg_cpt_category_storage"><![CDATA[Дисковое пространство]]></string>
 	<string name="_adm_stg_cpt_category_system"><![CDATA[Система]]></string>
 	<string name="_adm_stg_cpt_category_templates"><![CDATA[Темы]]></string>
-	<string name="_adm_stg_cpt_category_twilio_gate"><![CDATA[Twilio]]></string>
+    <string name="_adm_stg_cpt_category_twilio_gate"><![CDATA[Twilio]]></string>
+    <string name="_adm_stg_cpt_option_client_image_resize_width"><![CDATA[Изменять ширину картинки перед загрузкой (0 - отключить)]]></string>
+    <string name="_adm_stg_cpt_option_client_image_resize_height"><![CDATA[Изменять высоту картинки перед загрузкой (0 - отключить)]]></string>    
 	<string name="_adm_stg_cpt_option_currency_code"><![CDATA[Код валюты (для платёжных систем)]]></string>
 	<string name="_adm_stg_err_option_currency_code"><![CDATA[Не должно быть пустым.]]></string>
 	<string name="_adm_stg_cpt_option_currency_sign"><![CDATA[Знак валюты (только для отображения)]]></string>

+ 5 - 0
template/scripts/BxBaseUploaderHTML5.php

@@ -56,6 +56,8 @@ class BxBaseUploaderHTML5 extends BxDolUploader
      */
     public function getUploaderForm($isMultiple = true, $iContentId = false, $isPrivate = true)
     {
+        $iResizeWidth = (int)getParam('client_image_resize_width');
+        $iResizeHeight = (int)getParam('client_image_resize_height');
         $sAcceptedFiles = $this->getAcceptedFilesExtensions();
         return $this->_oTemplate->parseHtmlByName($this->_sUploaderFormTemplate, array(
             'form_container_id' => $this->_sFormContainerId,
@@ -67,6 +69,9 @@ class BxBaseUploaderHTML5 extends BxDolUploader
             'storage_private' => $isPrivate,
             'max_file_size' => $this->getMaxUploadFileSize(),
             'accepted_files' => null === $sAcceptedFiles ? 'null' : "'" . bx_js_string($sAcceptedFiles) . "'",
+            'resize_width' => $iResizeWidth ? $iResizeWidth : 'null',
+            'resize_height' => $iResizeHeight ? $iResizeHeight : 'null',
+            'resize_method' => $iResizeWidth && $iResizeHeight ? "'contain'" : 'null',
         ));
     }
 

+ 3 - 0
template/uploader_form_html5.html

@@ -10,6 +10,9 @@
     __uploader_instance_name__.initUploader({
         'maxFilesize': __max_file_size__/1024.0/1024.0,
         'acceptedFiles': __accepted_files__,
+        'resizeWidth': __resize_width__,
+        'resizeHeight': __resize_height__,
+        'resizeMethod': __resize_method__,
         'dictDefaultMessage': '<bx_text_js:_sys_uploader_html5_default_message />',
         'dictFileTooBig': '<bx_text_js:_sys_uploader_html5_file_is_too_big />',
         'dictMaxFilesExceeded': '<bx_text_js:_sys_uploader_html5_number_of_files_exceeded />',