Browse code

予約更新用アイキャッチ画像のアップローダー変更

nita authored on 2015/04/08 08:07:33
Showing 3 changed files
... ...
@@ -22,10 +22,14 @@
22 22
 
23 23
 .rc_feature_image {
24 24
     max-width: 100%;
25
-    max-height: 80%;
26 25
     width: 50%;
27
-    height: 50%;
26
+    height: auto;
28 27
 }
29 28
 .rc_remove_feature_image {
30 29
     display: none;
30
+}
31
+.rc-feature-image-preview img {
32
+    max-width: 100%;
33
+    width: 50%;
34
+    height: auto;
31 35
 }
32 36
\ No newline at end of file
... ...
@@ -56,29 +56,59 @@ jQuery(document).ready(function(){
56 56
         return false;
57 57
     });
58 58
     // reservation feature image uploader
59
-    window.original_send_to_editor = window.send_to_editor;
60
-    window.send_to_editor = function(html){
61
-        fileurl = jQuery('img', html).attr('src');
62
-        jQuery('#rc_feature_image').val(fileurl);
63
-        tb_remove();
64
-        if(jQuery('#rc_feature_image_upload').hasClass('has_image')){
65
-            jQuery('.rc_feature_image').attr('src', fileurl);
66
-            jQuery('.rc_remove_feature_image').show();
67
-        } else {
68
-            var img = jQuery('<img>').attr('src',fileurl).addClass('rc_feature_image size-thumbnail');
69
-            jQuery('#rc_feature_image_upload').addClass('has_image').html(img);
70
-            jQuery('.rc_remove_feature_image').show();
71
-        }
72
-    };
73 59
     if(jQuery('#rc_feature_image_upload').hasClass('has_image')){
74 60
         jQuery('.rc_remove_feature_image').show();
61
+    } else {
62
+        jQuery('.rc_remove_feature_image').hide();
75 63
     }
76
-    jQuery('.rc_remove_feature_image').on('click', function(){
77
-        jQuery('#rc_feature_image').val('');
78
-        var replace_text = jQuery('#rc_feature_image_upload').attr('title');
79
-        jQuery('#rc_feature_image_upload').html(replace_text);
80
-        jQuery(this).hide();
81
-        return false;
64
+    var rc_feature_uploader;
65
+    jQuery('#rc_feature_image_upload').on('click', function(e){
66
+        e.preventDefault();
67
+        e.stopPropagation();
68
+        var parent = jQuery(this).parents('.rc_feature_image_uploader');
69
+        if( rc_feature_uploader ){
70
+            rc_feature_uploader.open();
71
+            return;
72
+        }
73
+        /** @var object wp recieved form wordpress */
74
+        custom_uploader = wp.media({
75
+            title: "Set featured image for Reservation update",
76
+            button: {
77
+                text: "Choose Image"
78
+            },
79
+            multiple: false
80
+        });
81
+        custom_uploader.on( "select", function() {
82
+            var image = custom_uploader.state().get( "selection" );
83
+            var preview = jQuery( ".rc-feature-image-preview", parent );
84
+            image.each(function( file ) {
85
+                jQuery( "#rc_feature_image", parent ).val( file.toJSON().url );
86
+                var img = jQuery( "img", preview );
87
+                if ( img.length === 0 ) {
88
+                    preview.append( '<img src="' + file.toJSON().url + '" />' );
89
+                } else {
90
+                    img.attr( "src", file.toJSON().url );
91
+                }
92
+                preview.css( "display", "block" );
93
+            });
94
+        });
95
+        custom_uploader.open();
82 96
     });
97
+    // 削除
98
+    jQuery( ".rc_remove_feature_image" ).on( 'click', function( e ) {
99
+        
100
+        e.preventDefault();
101
+        e.stopPropagation();
102
+
103
+        var parent = jQuery(this).parents( ".rc_feature_image_uploader" );
104
+        jQuery( "#rc_feature_image", parent ).val('');
105
+        var preview = jQuery( ".rc-feature-image-preview", parent );
106
+
107
+        if (  jQuery( "img", preview ).length > 0 ) {
108
+            jQuery( "img", preview ).remove();
109
+        }
110
+        
111
+    });
112
+
83 113
 });
84 114
 
... ...
@@ -228,9 +228,23 @@ function add_rucy_metabox_inside()
228 228
 <label class="rc_feature_accept">
229 229
     <input type="checkbox" name="<?php echo $reserv_accept_feature_name; ?>" value="1" <?php echo ($reserv_accept_feature == "1") ? "checked" : ""; ?>> <?php _e('Accept reserve update feature image.', RC_TXT_DOMAIN); ?>
230 230
 </label>
231
-<p><a href="media-upload.php?type=image&TB_iframe=1&width=753&height=522&post_id=<?php echo $post->ID ?>" class="thickbox<?php echo ($reserv_feature_image != '') ? ' has_image' : ''; ?>" id="rc_feature_image_upload" title="<?php _e('Set featured image Reservation', RC_TXT_DOMAIN) ?>"><?php echo ($reserv_feature_image != '') ? $reserv_feature_image : __('Set featured image for Reservation', RC_TXT_DOMAIN); ?></a></p>
232
-<p><a href="#" class="rc_remove_feature_image"><?php _e('Remove Featured image for Reservation', RC_TXT_DOMAIN) ?></a></p>
231
+<div class="rc_feature_image_uploader">
232
+<!--<p><a href="media-upload.php?type=image&TB_iframe=1&width=753&height=522&post_id=<?php echo $post->ID ?>" class="thickbox<?php echo ($reserv_feature_image != '') ? ' has_image' : ''; ?>" id="rc_feature_image_upload" title="<?php _e('Set featured image Reservation', RC_TXT_DOMAIN) ?>"><?php echo ($reserv_feature_image != '') ? $reserv_feature_image : __('Set featured image for Reservation', RC_TXT_DOMAIN); ?></a></p>-->
233
+<p><button id="rc_feature_image_upload" class="button rc-feature-uploader-button <?php echo ($reserv_feature_image != '') ? ' has_image' : ''; ?>"><?php  _e('Set featured image for Reservation', RC_TXT_DOMAIN); ?></button></p>
234
+
235
+<div class="rc-feature-image-uploader__ctrl">
236
+    <div class="rc-feature-image-preview">
237
+        <?php
238
+        if ( ! empty( $reserv_feature_image ) ) {
239
+           echo $reserv_feature_image;
240
+        }
241
+        ?> 
242
+    </div>
243
+</div>
244
+
245
+<p><button class="button rc_remove_feature_image"><?php _e('Remove Featured image for Reservation', RC_TXT_DOMAIN) ?></button></p>
233 246
 <input type="hidden" id="rc_feature_image" name="<?php echo $reserv_feature_name ?>" value="<?php echo $reserv_feature ?>" />
247
+</div>
234 248
 </fieldset>
235 249
 <?php 
236 250
     }