Kaynağa Gözat

#2873 Classes: sound attachments

Alex Trofimov 6 yıl önce
ebeveyn
işleme
252cefa2f3

+ 3 - 0
modules/boonex/classes/classes/BxClssConfig.php

@@ -50,6 +50,7 @@ class BxClssConfig extends BxBaseModTextConfig
             'FIELD_COVER' => 'covers',
             'FIELD_PHOTO' => 'pictures',
             'FIELD_VIDEO' => 'videos',
+            'FIELD_SOUND' => 'sounds',
             'FIELD_FILE' => 'files',
             'FIELD_POLL' => 'polls',
             'FIELD_THUMB' => 'thumb',
@@ -98,6 +99,7 @@ class BxClssConfig extends BxBaseModTextConfig
             'OBJECT_STORAGE_FILES' => 'bx_classes_files',
             'OBJECT_STORAGE_PHOTOS' => 'bx_classes_photos',
             'OBJECT_STORAGE_VIDEOS' => 'bx_classes_videos',
+            'OBJECT_STORAGE_SOUNDS' => 'bx_classes_sounds',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW' => 'bx_classes_preview',
             'OBJECT_IMAGES_TRANSCODER_GALLERY' => 'bx_classes_gallery',
             'OBJECT_IMAGES_TRANSCODER_COVER' => 'bx_classes_cover',
@@ -105,6 +107,7 @@ class BxClssConfig extends BxBaseModTextConfig
             'OBJECT_IMAGES_TRANSCODER_GALLERY_FILES' => 'bx_classes_gallery_files',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_PHOTOS' => 'bx_classes_preview_photos',
             'OBJECT_IMAGES_TRANSCODER_GALLERY_PHOTOS' => 'bx_classes_gallery_photos',
+            'OBJECT_SOUNDS_TRANSCODER' => 'bx_classes_sounds_mp3',
             'OBJECT_VIDEOS_TRANSCODERS' => array(
                 'poster' => 'bx_classes_videos_poster', 
             	'poster_preview' => 'bx_classes_videos_poster_preview',

+ 11 - 0
modules/boonex/classes/classes/BxClssFormEntry.php

@@ -64,6 +64,17 @@ class BxClssFormEntry extends BxBaseModTextFormEntry
             $this->aInputs[$CNF['FIELD_VIDEO']]['tr_attrs'] = array('class'=> 'bx-base-text-attachment-item');
         }
 
+        if(isset($this->aInputs[$CNF['FIELD_SOUND']])) {
+            $this->aInputs[$CNF['FIELD_SOUND']]['storage_object'] = $CNF['OBJECT_STORAGE_SOUNDS'];
+            $this->aInputs[$CNF['FIELD_SOUND']]['uploaders'] = !empty($this->aInputs[$CNF['FIELD_SOUND']]['value']) ? unserialize($this->aInputs[$CNF['FIELD_SOUND']]['value']) : $CNF['OBJECT_UPLOADERS'];
+            $this->aInputs[$CNF['FIELD_SOUND']]['images_transcoder'] = $CNF['OBJECT_IMAGES_TRANSCODER_PREVIEW_FILES'];
+            $this->aInputs[$CNF['FIELD_SOUND']]['storage_private'] = 0;
+            $this->aInputs[$CNF['FIELD_SOUND']]['multiple'] = true;
+            $this->aInputs[$CNF['FIELD_SOUND']]['content_id'] = 0;
+            $this->aInputs[$CNF['FIELD_SOUND']]['ghost_template'] = '';
+            $this->aInputs[$CNF['FIELD_SOUND']]['tr_attrs'] = array('class'=> 'bx-base-text-attachment-item');
+        }
+
         if (isset($CNF['FIELD_FILE']) && isset($this->aInputs[$CNF['FIELD_FILE']])) {
             $this->aInputs[$CNF['FIELD_FILE']]['storage_object'] = $CNF['OBJECT_STORAGE_FILES'];
             $this->aInputs[$CNF['FIELD_FILE']]['uploaders'] = !empty($this->aInputs[$CNF['FIELD_FILE']]['value']) ? unserialize($this->aInputs[$CNF['FIELD_FILE']]['value']) : $CNF['OBJECT_UPLOADERS'];

+ 3 - 0
modules/boonex/classes/install/config.php

@@ -62,6 +62,7 @@ $aConfig = array(
         'bx_classes_covers',
     	'bx_classes_photos',
         'bx_classes_videos',
+        'bx_classes_sounds',
         'bx_classes_files'
     ),
 
@@ -81,6 +82,8 @@ $aConfig = array(
         'bx_classes_videos_mp4',
         'bx_classes_videos_mp4_hd',
 
+        'bx_classes_sounds_mp3',
+
         'bx_classes_preview_files',
         'bx_classes_gallery_files'
     ),

+ 8 - 0
modules/boonex/classes/install/langs/en.xml

@@ -47,6 +47,8 @@
     <string name="_bx_classes_form_entry_input_pictures"><![CDATA[]]></string>
     <string name="_bx_classes_form_entry_input_sys_videos"><![CDATA[Videos]]></string>
     <string name="_bx_classes_form_entry_input_videos"><![CDATA[]]></string>
+    <string name="_bx_classes_form_entry_input_sys_sounds"><![CDATA[Sounds]]></string>
+    <string name="_bx_classes_form_entry_input_sounds"><![CDATA[]]></string>
     <string name="_bx_classes_form_entry_input_sys_files"><![CDATA[Files]]></string>
     <string name="_bx_classes_form_entry_input_files"><![CDATA[]]></string>
     <string name="_bx_classes_form_entry_input_sys_polls"><![CDATA[Polls]]></string>
@@ -152,6 +154,12 @@
     <string name="_bx_classes_menu_item_title_system_cpa_video_html5"><![CDATA[Add Video (html5)]]></string>
     <string name="_bx_classes_menu_item_title_cpa_video_html5"><![CDATA[Add Videos]]></string>
     <string name="_bx_classes_menu_item_title_system_cpa_file_simple"><![CDATA[Add File (simple)]]></string>
+
+    <string name="_bx_classes_menu_item_title_system_cpa_sound_simple"><![CDATA[Add Sound (simple)]]></string>
+    <string name="_bx_classes_menu_item_title_cpa_sound_simple"><![CDATA[Add Sound]]></string>
+    <string name="_bx_classes_menu_item_title_system_cpa_sound_html5"><![CDATA[Add Video (html5)]]></string>
+    <string name="_bx_classes_menu_item_title_cpa_sound_html5"><![CDATA[Add Video]]></string>
+
     <string name="_bx_classes_menu_item_title_cpa_file_simple"><![CDATA[Add File]]></string>
     <string name="_bx_classes_menu_item_title_system_cpa_file_html5"><![CDATA[Add File (html5)]]></string>
     <string name="_bx_classes_menu_item_title_cpa_file_html5"><![CDATA[Add Files]]></string>

+ 7 - 3
modules/boonex/classes/install/sql/enable.sql

@@ -122,9 +122,11 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_classes_entry_attachments', 'bx_classes', 'photo_html5', '_bx_classes_menu_item_title_system_cpa_photo_html5', '_bx_classes_menu_item_title_cpa_photo_html5', 'javascript:void(0)', 'javascript:{js_object_uploader_photos_html5}.showUploaderForm();', '_self', 'camera', '', '', 2147483647, '', 1, 0, 1, 2),
 ('bx_classes_entry_attachments', 'bx_classes', 'video_simple', '_bx_classes_menu_item_title_system_cpa_video_simple', '_bx_classes_menu_item_title_cpa_video_simple', 'javascript:void(0)', 'javascript:{js_object_uploader_videos_simple}.showUploaderForm();', '_self', 'video', '', '', 2147483647, '', 0, 0, 1, 3),
 ('bx_classes_entry_attachments', 'bx_classes', 'video_html5', '_bx_classes_menu_item_title_system_cpa_video_html5', '_bx_classes_menu_item_title_cpa_video_html5', 'javascript:void(0)', 'javascript:{js_object_uploader_videos_html5}.showUploaderForm();', '_self', 'video', '', '', 2147483647, '', 1, 0, 1, 4),
-('bx_classes_entry_attachments', 'bx_classes', 'file_simple', '_bx_classes_menu_item_title_system_cpa_file_simple', '_bx_classes_menu_item_title_cpa_file_simple', 'javascript:void(0)', 'javascript:{js_object_uploader_files_simple}.showUploaderForm();', '_self', 'file', '', '', 2147483647, '', 0, 0, 1, 5),
-('bx_classes_entry_attachments', 'bx_classes', 'file_html5', '_bx_classes_menu_item_title_system_cpa_file_html5', '_bx_classes_menu_item_title_cpa_file_html5', 'javascript:void(0)', 'javascript:{js_object_uploader_files_html5}.showUploaderForm();', '_self', 'file', '', '', 2147483647, '', 1, 0, 1, 6),
-('bx_classes_entry_attachments', 'bx_classes', 'poll', '_bx_classes_menu_item_title_system_cpa_poll', '_bx_classes_menu_item_title_cpa_poll', 'javascript:void(0)', 'javascript:{js_object}.showPollForm(this);', '_self', 'tasks', '', '', 2147483647, '', 1, 0, 1, 7);
+('bx_classes_entry_attachments', 'bx_classes', 'sound_simple', '_bx_classes_menu_item_title_system_cpa_sound_simple', '_bx_classes_menu_item_title_cpa_sound_simple', 'javascript:void(0)', 'javascript:{js_object_uploader_sounds_simple}.showUploaderForm();', '_self', 'music', '', '', 2147483647, '', 0, 0, 1, 5),
+('bx_classes_entry_attachments', 'bx_classes', 'sound_html5', '_bx_classes_menu_item_title_system_cpa_sound_html5', '_bx_classes_menu_item_title_cpa_sound_html5', 'javascript:void(0)', 'javascript:{js_object_uploader_sounds_html5}.showUploaderForm();', '_self', 'music', '', '', 2147483647, '', 1, 0, 1, 6),
+('bx_classes_entry_attachments', 'bx_classes', 'file_simple', '_bx_classes_menu_item_title_system_cpa_file_simple', '_bx_classes_menu_item_title_cpa_file_simple', 'javascript:void(0)', 'javascript:{js_object_uploader_files_simple}.showUploaderForm();', '_self', 'file', '', '', 2147483647, '', 0, 0, 1, 7),
+('bx_classes_entry_attachments', 'bx_classes', 'file_html5', '_bx_classes_menu_item_title_system_cpa_file_html5', '_bx_classes_menu_item_title_cpa_file_html5', 'javascript:void(0)', 'javascript:{js_object_uploader_files_html5}.showUploaderForm();', '_self', 'file', '', '', 2147483647, '', 1, 0, 1, 8),
+('bx_classes_entry_attachments', 'bx_classes', 'poll', '_bx_classes_menu_item_title_system_cpa_poll', '_bx_classes_menu_item_title_cpa_poll', 'javascript:void(0)', 'javascript:{js_object}.showPollForm(this);', '_self', 'tasks', '', '', 2147483647, '', 1, 0, 1, 9);
 
 -- MENU: actions menu for view entry 
 
@@ -356,6 +358,8 @@ INSERT INTO `sys_objects_uploader` (`object`, `active`, `override_class_name`, `
 ('bx_classes_photos_html5', 1, 'BxClssUploaderHTML5Attach', 'modules/boonex/classes/classes/BxClssUploaderHTML5Attach.php'),
 ('bx_classes_videos_simple', 1, 'BxClssUploaderSimpleAttach', 'modules/boonex/classes/classes/BxClssUploaderSimpleAttach.php'),
 ('bx_classes_videos_html5', 1, 'BxClssUploaderHTML5Attach', 'modules/boonex/classes/classes/BxClssUploaderHTML5Attach.php'),
+('bx_classes_sounds_simple', 1, 'BxClssUploaderSimpleAttach', 'modules/boonex/classes/classes/BxClssUploaderSimpleAttach.php'),
+('bx_classes_sounds_html5', 1, 'BxClssUploaderHTML5Attach', 'modules/boonex/classes/classes/BxClssUploaderHTML5Attach.php'),
 ('bx_classes_files_simple', 1, 'BxClssUploaderSimpleAttach', 'modules/boonex/classes/classes/BxClssUploaderSimpleAttach.php'),
 ('bx_classes_files_html5', 1, 'BxClssUploaderHTML5Attach', 'modules/boonex/classes/classes/BxClssUploaderHTML5Attach.php');
 

+ 60 - 18
modules/boonex/classes/install/sql/install.sql

@@ -157,6 +157,38 @@ CREATE TABLE IF NOT EXISTS `bx_classes_videos_resized` (
   UNIQUE KEY `remote_id` (`remote_id`)
 );
 
+CREATE TABLE IF NOT EXISTS `bx_classes_sounds` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `profile_id` int(10) unsigned NOT NULL,
+  `remote_id` varchar(128) NOT NULL,
+  `path` varchar(255) NOT NULL,
+  `file_name` varchar(255) NOT NULL,
+  `mime_type` varchar(128) NOT NULL,
+  `ext` varchar(32) NOT NULL,
+  `size` bigint(20) NOT NULL,
+  `added` int(11) NOT NULL,
+  `modified` int(11) NOT NULL,
+  `private` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `remote_id` (`remote_id`)
+);
+
+CREATE TABLE IF NOT EXISTS `bx_classes_sounds_resized` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `profile_id` int(10) unsigned NOT NULL,
+  `remote_id` varchar(128) NOT NULL,
+  `path` varchar(255) NOT NULL,
+  `file_name` varchar(255) NOT NULL,
+  `mime_type` varchar(128) NOT NULL,
+  `ext` varchar(32) NOT NULL,
+  `size` bigint(20) NOT NULL,
+  `added` int(11) NOT NULL,
+  `modified` int(11) NOT NULL,
+  `private` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `remote_id` (`remote_id`)
+);
+
 -- TABLE: comments
 CREATE TABLE IF NOT EXISTS `bx_classes_cmts` (
   `cmt_id` int(11) NOT NULL AUTO_INCREMENT,
@@ -370,6 +402,9 @@ INSERT INTO `sys_objects_storage` (`object`, `engine`, `params`, `token_life`, `
 ('bx_classes_videos', @sStorageEngine, '', 360, 2592000, 3, 'bx_classes_videos', 'allow-deny', 'avi,flv,mpg,mpeg,wmv,mp4,m4v,mov,qt,divx,xvid,3gp,3g2,webm,mkv,ogv,ogg,rm,rmvb,asf,drc', '', 0, 0, 0, 0, 0, 0),
 ('bx_classes_videos_resized', @sStorageEngine, '', 360, 2592000, 3, 'bx_classes_videos_resized', 'allow-deny', 'jpg,jpeg,jpe,gif,png,avi,flv,mpg,mpeg,wmv,mp4,m4v,mov,qt,divx,xvid,3gp,3g2,webm,mkv,ogv,ogg,rm,rmvb,asf,drc', '', 0, 0, 0, 0, 0, 0),
 
+('bx_classes_sounds', @sStorageEngine, '', 360, 2592000, 3, 'bx_classes_sounds', 'allow-deny', 'mp3,m4a,m4b,wma,wav,3gp', '', 0, 0, 0, 0, 0, 0),
+('bx_classes_sounds_resized', @sStorageEngine, '', 360, 2592000, 3, 'bx_classes_sounds_resized', 'allow-deny', 'mp3,m4a,m4b,wma,wav,3gp', '', 0, 0, 0, 0, 0, 0),
+
 ('bx_classes_files', @sStorageEngine, '', 360, 2592000, 3, 'bx_classes_files', 'deny-allow', '', 'action,apk,app,bat,bin,cmd,com,command,cpl,csh,exe,gadget,inf,ins,inx,ipa,isu,job,jse,ksh,lnk,msc,msi,msp,mst,osx,out,paf,pif,prg,ps1,reg,rgs,run,sct,shb,shs,u3p,vb,vbe,vbs,vbscript,workflow,ws,wsf', 0, 0, 0, 0, 0, 0);
 
 INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`, `source_params`, `private`, `atime_tracking`, `atime_pruning`, `ts`, `override_class_name`, `override_class_file`) VALUES 
@@ -385,6 +420,8 @@ INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`,
 ('bx_classes_videos_mp4', 'bx_classes_videos_resized', 'Storage', 'a:1:{s:6:"object";s:17:"bx_classes_videos";}', 'no', '0', '0', '0', 'BxDolTranscoderVideo', ''),
 ('bx_classes_videos_mp4_hd', 'bx_classes_videos_resized', 'Storage', 'a:1:{s:6:"object";s:17:"bx_classes_videos";}', 'no', '0', '0', '0', 'BxDolTranscoderVideo', ''),
 
+('bx_classes_sounds_mp3', 'bx_classes_sounds_resized', 'Storage', 'a:1:{s:6:"object";s:17:"bx_classes_sounds";}', 'no', '0', '0', '0', 'BxDolTranscoderAudio', ''),
+
 ('bx_classes_preview_files', 'bx_classes_photos_resized', 'Storage', 'a:1:{s:6:"object";s:16:"bx_classes_files";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_classes_gallery_files', 'bx_classes_photos_resized', 'Storage', 'a:1:{s:6:"object";s:16:"bx_classes_files";}', 'no', '1', '2592000', '0', '', '');
 
@@ -402,6 +439,8 @@ INSERT INTO `sys_transcoder_filters` (`transcoder_object`, `filter`, `filter_par
 ('bx_classes_videos_mp4', 'Mp4', 'a:2:{s:1:"h";s:3:"318";s:10:"force_type";s:3:"mp4";}', 0),
 ('bx_classes_videos_mp4_hd', 'Mp4', 'a:3:{s:1:"h";s:3:"720";s:13:"video_bitrate";s:4:"1536";s:10:"force_type";s:3:"mp4";}', 0),
 
+('bx_classes_sounds_mp3', 'Mp3', 'a:0:{}', 0),
+
 ('bx_classes_preview_files', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";}', '0'),
 ('bx_classes_gallery_files', 'Resize', 'a:1:{s:1:"w";s:3:"500";}', '0');
 
@@ -425,6 +464,7 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 ('bx_classes', 'bx_classes', 'covers', 'a:1:{i:0;s:16:"bx_classes_html5";}', 'a:2:{s:17:"bx_classes_simple";s:26:"_sys_uploader_simple_title";s:16:"bx_classes_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_classes_form_entry_input_sys_covers', '_bx_classes_form_entry_input_covers', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_classes', 'bx_classes', 'pictures', 'a:1:{i:0;s:23:"bx_classes_photos_html5";}', 'a:2:{s:24:"bx_classes_photos_simple";s:26:"_sys_uploader_simple_title";s:23:"bx_classes_photos_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_classes_form_entry_input_sys_pictures', '_bx_classes_form_entry_input_pictures', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_classes', 'bx_classes', 'videos', 'a:1:{i:0;s:23:"bx_classes_videos_html5";}', 'a:2:{s:24:"bx_classes_videos_simple";s:26:"_sys_uploader_simple_title";s:23:"bx_classes_videos_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_classes_form_entry_input_sys_videos', '_bx_classes_form_entry_input_videos', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
+('bx_classes', 'bx_classes', 'sounds', 'a:1:{i:0;s:23:"bx_classes_sounds_html5";}', 'a:2:{s:24:"bx_classes_sounds_simple";s:26:"_sys_uploader_simple_title";s:23:"bx_classes_sounds_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_classes_form_entry_input_sys_sounds', '_bx_classes_form_entry_input_sounds', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_classes', 'bx_classes', 'files', 'a:1:{i:0;s:22:"bx_classes_files_html5";}', 'a:2:{s:23:"bx_classes_files_simple";s:26:"_sys_uploader_simple_title";s:22:"bx_classes_files_html5";s:25:"_sys_uploader_html5_title";}', 0, 'files', '_bx_classes_form_entry_input_sys_files', '_bx_classes_form_entry_input_files', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_classes', 'bx_classes', 'polls', '', '', 0, 'custom', '_bx_classes_form_entry_input_sys_polls', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_classes', 'bx_classes', 'text', '', '', 0, 'textarea', '_bx_classes_form_entry_input_sys_text', '_bx_classes_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_classes_form_entry_input_text_err', 'XssHtml', '', 1, 0),
@@ -451,15 +491,16 @@ INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for
 ('bx_classes_entry_add', 'attachments', 2147483647, 1, 5),
 ('bx_classes_entry_add', 'pictures', 2147483647, 1, 6),
 ('bx_classes_entry_add', 'videos', 2147483647, 1, 7),
-('bx_classes_entry_add', 'files', 2147483647, 1, 8),
-('bx_classes_entry_add', 'polls', 2147483647, 1, 9),
-('bx_classes_entry_add', 'start_date', 2147483647, 1, 10),
-('bx_classes_entry_add', 'end_date', 2147483647, 1, 11),
-('bx_classes_entry_add', 'completed_when', 2147483647, 1, 12),
-('bx_classes_entry_add', 'avail', 2147483647, 1, 13),
-('bx_classes_entry_add', 'cmts', 2147483647, 1, 14),
-('bx_classes_entry_add', 'allow_view_to', 2147483647, 1, 15),
-('bx_classes_entry_add', 'do_publish', 2147483647, 1, 16),
+('bx_classes_entry_add', 'sounds', 2147483647, 1, 8),
+('bx_classes_entry_add', 'files', 2147483647, 1, 9),
+('bx_classes_entry_add', 'polls', 2147483647, 1, 10),
+('bx_classes_entry_add', 'start_date', 2147483647, 1, 11),
+('bx_classes_entry_add', 'end_date', 2147483647, 1, 12),
+('bx_classes_entry_add', 'completed_when', 2147483647, 1, 13),
+('bx_classes_entry_add', 'avail', 2147483647, 1, 14),
+('bx_classes_entry_add', 'cmts', 2147483647, 1, 15),
+('bx_classes_entry_add', 'allow_view_to', 2147483647, 1, 16),
+('bx_classes_entry_add', 'do_publish', 2147483647, 1, 17),
 
 ('bx_classes_entry_delete', 'delete_confirm', 2147483647, 1, 1),
 ('bx_classes_entry_delete', 'do_submit', 2147483647, 1, 2),
@@ -471,15 +512,16 @@ INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for
 ('bx_classes_entry_edit', 'attachments', 2147483647, 1, 5),
 ('bx_classes_entry_edit', 'pictures', 2147483647, 1, 6),
 ('bx_classes_entry_edit', 'videos', 2147483647, 1, 7),
-('bx_classes_entry_edit', 'files', 2147483647, 1, 8),
-('bx_classes_entry_edit', 'polls', 2147483647, 1, 9),
-('bx_classes_entry_edit', 'start_date', 2147483647, 1, 10),
-('bx_classes_entry_edit', 'end_date', 2147483647, 1, 11),
-('bx_classes_entry_edit', 'completed_when', 2147483647, 1, 12),
-('bx_classes_entry_edit', 'avail', 2147483647, 1, 13),
-('bx_classes_entry_edit', 'cmts', 2147483647, 1, 14),
-('bx_classes_entry_edit', 'allow_view_to', 2147483647, 1, 15),
-('bx_classes_entry_edit', 'do_submit', 2147483647, 1, 16),
+('bx_classes_entry_edit', 'sounds', 2147483647, 1, 8),
+('bx_classes_entry_edit', 'files', 2147483647, 1, 9),
+('bx_classes_entry_edit', 'polls', 2147483647, 1, 10),
+('bx_classes_entry_edit', 'start_date', 2147483647, 1, 11),
+('bx_classes_entry_edit', 'end_date', 2147483647, 1, 12),
+('bx_classes_entry_edit', 'completed_when', 2147483647, 1, 13),
+('bx_classes_entry_edit', 'avail', 2147483647, 1, 14),
+('bx_classes_entry_edit', 'cmts', 2147483647, 1, 15),
+('bx_classes_entry_edit', 'allow_view_to', 2147483647, 1, 16),
+('bx_classes_entry_edit', 'do_submit', 2147483647, 1, 17),
 
 ('bx_classes_entry_view', 'module_id', 2147483647, 1, 1),
 ('bx_classes_entry_view', 'completed_when', 2147483647, 1, 2),

+ 1 - 1
modules/boonex/classes/install/sql/uninstall.sql

@@ -1,6 +1,6 @@
 
 -- TABLES
-DROP TABLE IF EXISTS `bx_classes_classes`, `bx_classes_modules`, `bx_classes_statuses`, `bx_classes_covers`, `bx_classes_files`, `bx_classes_photos`, `bx_classes_photos_resized`, `bx_classes_videos`, `bx_classes_videos_resized`, `bx_classes_cmts`, `bx_classes_cmts_notes`, `bx_classes_votes`, `bx_classes_votes_track`, `bx_classes_reactions`, `bx_classes_reactions_track`, `bx_classes_views_track`, `bx_classes_meta_keywords`, `bx_classes_meta_locations`, `bx_classes_meta_mentions`, `bx_classes_reports`, `bx_classes_reports_track`, `bx_classes_favorites_track`, `bx_classes_scores`, `bx_classes_scores_track`, `bx_classes_polls`, `bx_classes_polls_answers`, `bx_classes_polls_answers_votes`, `bx_classes_polls_answers_votes_track`;
+DROP TABLE IF EXISTS `bx_classes_classes`, `bx_classes_modules`, `bx_classes_statuses`, `bx_classes_covers`, `bx_classes_files`, `bx_classes_photos`, `bx_classes_photos_resized`, `bx_classes_videos`, `bx_classes_videos_resized`, `bx_classes_sounds`, `bx_classes_sounds_resized`, `bx_classes_cmts`, `bx_classes_cmts_notes`, `bx_classes_votes`, `bx_classes_votes_track`, `bx_classes_reactions`, `bx_classes_reactions_track`, `bx_classes_views_track`, `bx_classes_meta_keywords`, `bx_classes_meta_locations`, `bx_classes_meta_mentions`, `bx_classes_reports`, `bx_classes_reports_track`, `bx_classes_favorites_track`, `bx_classes_scores`, `bx_classes_scores_track`, `bx_classes_polls`, `bx_classes_polls_answers`, `bx_classes_polls_answers_votes`, `bx_classes_polls_answers_votes_track`;
 
 -- STORAGES & TRANSCODERS
 DELETE FROM `sys_objects_storage` WHERE `object` LIKE 'bx_classes_%';

+ 1 - 0
modules/boonex/classes/template/attachment_sound.html

@@ -0,0 +1 @@
+<bx_include_base:../modules/base/general/template/attachment_sound.html />

+ 22 - 0
modules/boonex/classes/template/form_ghost_template_sound.html

@@ -0,0 +1,22 @@
+<div id="bx-uploader-file-{storage_object}-{file_id}" class="bx-uploader-ghost bx-def-margin-sec-top bx-clearfix">
+    <input type="hidden" name="__name__[]" value="{file_id}" />
+    <div class="bx-base-general-icon-wrapper bx-def-margin-sec-right">
+        <img src="{file_icon}" class="bx-def-round-corners bx-base-general-icon bx-base-general-icon-{file_id}" />
+    </div>
+    <span class="bx-base-general-uploader-ghost">
+        <b><bx_text:_sys_txt_form_entry_input_picture_pic_url /></b><br />
+        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="{file_url}" readonly="1" /> <br />
+        <span id="bx-base-general-intert-to-post-link-{file_id}" style="display:none;">
+            <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_base_general_insert_to_post('{file_id}', '{file_url}', '__editor_id__', '{file_type}', '__embed_url__');"><bx_text:_sys_txt_form_entry_input_picture_insert /></a>
+        </span>
+        <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_base_general_delete_ghost('{file_id}', '{file_url}', '{file_icon}', ['__editor_id__'], {js_instance_name});"><bx_text:_sys_txt_form_entry_input_picture_delete /></a>
+    </span>
+</div>
+<script>
+    $('#bx-base-general-intert-to-post-link-{file_id}').show();
+
+    // disable images drag&drop, because resized images address can be reset after some time
+    $(".bx-base-general-icon-{file_id}").bind('dragstart', function(){
+        return false; 
+    });
+</script>