~ubuntu-branches/debian/sid/wordpress/sid

« back to all changes in this revision

Viewing changes to wp-admin/custom-background.php

  • Committer: Package Import Robot
  • Author(s): Raphaël Hertzog, Raphaël Hertzog, Martin Bagge / brother
  • Date: 2012-06-16 01:19:20 UTC
  • mfrom: (1.2.22)
  • Revision ID: package-import@ubuntu.com-20120616011920-ivqcktmjehq4gpal
Tags: 3.4+dfsg-1
* New upstream release. Closes: #677534

[ Raphaël Hertzog ]
* [a1c0409] Refresh and update all patches to correctly apply on version
  3.4.
* [3804496] Update debian/missing-sources/ to match the current versions of
  embedded javascript and flash files.
* [185b051] Drop the old "default" theme (and its French translation)
* [966ce6c] Grab latest translations
* [1983326] Update Standards-Version to 3.9.3 (no change).
* [29c48b6] Increase debhelper compat level to 9.
* [73e16d0] Replace debian/dh_linktree by the packaged version.
* [359b660] Update debian/wordpress.linktrees to match latest developments.
* [645b650] Let setup-mysql lowercase the FQDN since the configuration
  scheme expects this. Thanks to Chris Butler <chrisb@debian.org> for the
  report (Closes: #658395)
* [5433e90] Fix setup-mysql to avoid creating /srv/www with restricted
  permissions (Closes: #616400)
* [dd2ef1d] Move back wp-config.php to /usr/share/wordpress/ since it's only
  a dispatcher to the real configuration file (Closes: #592502)
* [b602372] Improve wp-config.php so that WordPress works behind an https
  reverse-proxy.
* [ba0b729] Entirely update and rewrite README.debian. (Closes: #575985,
  #639980)
* [683a908] Update wp-config.php to not redefine constants which have
  already been set.  Thanks to Richard van den Berg <richard@vdberg.org> for
  the report. (Closes: #613283)
* [315eb68] Let wordpress-l10n depend on the same version than wordpress.
  (Closes: #623557)
* [a6d0b9f] Default configuration now sets WP_CONTENT_DIR to
  /var/lib/wordpress/wp-content. And the package provides this new directory
  appropriately setup with write rights to www-data on blogs.dir and
  uploads. themes and plugins are root-owned directories with symlinks
  pointing back to the default themes and plugins. (Closes: #675469)
* [4db98c6] Update setup-mysql to use WP_CONTENT_DIR (and no longer use
  $upload_dir). (Closes: #658508)
* [a1970da] Extend debian/wordpress.linktrees to cover swfobject.js.
* [8d46dab] Use dpkg-maintscript-helper to drop obsolete
  /etc/wordpress/wp-config.php

[ Martin Bagge / brother ]
* [56d0a34] Improve the setup script to be able to use a remote MySQL
  server.

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
        function __construct($admin_header_callback = '', $admin_image_div_callback = '') {
54
54
                $this->admin_header_callback = $admin_header_callback;
55
55
                $this->admin_image_div_callback = $admin_image_div_callback;
 
56
 
 
57
                add_action( 'admin_menu', array( $this, 'init' ) );
 
58
                add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
56
59
        }
57
60
 
58
61
        /**
70
73
                add_action("load-$page", array(&$this, 'take_action'), 49);
71
74
                add_action("load-$page", array(&$this, 'handle_upload'), 49);
72
75
 
 
76
                if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-background' ) {
 
77
                        add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 );
 
78
                        add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) );
 
79
                        add_filter( 'media_upload_mime_type_links', '__return_empty_array' );
 
80
                }
 
81
 
73
82
                if ( $this->admin_header_callback )
74
83
                        add_action("admin_head-$page", $this->admin_header_callback, 51);
75
84
        }
96
105
                        '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
97
106
                );
98
107
 
 
108
                add_thickbox();
 
109
                wp_enqueue_script('media-upload');
99
110
                wp_enqueue_script('custom-background');
100
111
                wp_enqueue_style('farbtastic');
101
112
        }
124
135
                        set_theme_mod('background_image', '');
125
136
                        set_theme_mod('background_image_thumb', '');
126
137
                        $this->updated = true;
 
138
                        wp_safe_redirect( $_POST['_wp_http_referer'] );
127
139
                        return;
128
140
                }
129
141
 
199
211
 
200
212
if ( get_background_image() ) {
201
213
        // background-image URL must be single quote, see below
202
 
        $background_styles .= ' background-image: url(\'' . get_theme_mod('background_image_thumb', '') . '\');'
 
214
        $background_styles .= ' background-image: url(\'' . set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ) . '\');'
203
215
                . ' background-repeat: ' . get_theme_mod('background_repeat', 'repeat') . ';'
204
216
                . ' background-position: top ' . get_theme_mod('background_position_x', 'left');
205
217
}
206
218
?>
207
219
<div id="custom-background-image" style="<?php echo $background_styles; ?>"><?php // must be double quote, see above ?>
208
220
<?php if ( get_background_image() ) { ?>
209
 
<img class="custom-background-image" src="<?php echo get_theme_mod('background_image_thumb', ''); ?>" style="visibility:hidden;" alt="" /><br />
210
 
<img class="custom-background-image" src="<?php echo get_theme_mod('background_image_thumb', ''); ?>" style="visibility:hidden;" alt="" />
 
221
<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ); ?>" style="visibility:hidden;" alt="" /><br />
 
222
<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ); ?>" style="visibility:hidden;" alt="" />
211
223
<?php } ?>
212
224
</div>
213
225
<?php } ?>
226
238
</tr>
227
239
<?php endif; ?>
228
240
 
229
 
<?php if ( defined( 'BACKGROUND_IMAGE' ) ) : // Show only if a default background image exists ?>
 
241
<?php $default_image = get_theme_support( 'custom-background', 'default-image' ); ?>
 
242
<?php if ( $default_image && get_background_image() != $default_image ) : ?>
230
243
<tr valign="top">
231
244
<th scope="row"><?php _e('Restore Original Image'); ?></th>
232
245
<td>
240
253
 
241
254
<?php endif; ?>
242
255
<tr valign="top">
243
 
<th scope="row"><?php _e('Upload Image'); ?></th>
 
256
<th scope="row"><?php _e('Select Image'); ?></th>
244
257
<td><form enctype="multipart/form-data" id="upload-form" method="post" action="">
245
 
<label for="upload"><?php _e('Choose an image from your computer:'); ?></label><br /><input type="file" id="upload" name="import" />
246
 
<input type="hidden" name="action" value="save" />
247
 
<?php wp_nonce_field('custom-background-upload', '_wpnonce-custom-background-upload') ?>
248
 
<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
249
 
</form>
 
258
        <p>
 
259
                <label for="upload"><?php _e( 'Choose an image from your computer:' ); ?></label><br />
 
260
                <input type="file" id="upload" name="import" />
 
261
                <input type="hidden" name="action" value="save" />
 
262
                <?php wp_nonce_field( 'custom-background-upload', '_wpnonce-custom-background-upload' ); ?>
 
263
                <?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
 
264
        </p>
 
265
        <?php
 
266
                $image_library_url = get_upload_iframe_src( 'image', null, 'library' );
 
267
                $image_library_url = remove_query_arg( 'TB_iframe', $image_library_url );
 
268
                $image_library_url = add_query_arg( array( 'context' => 'custom-background', 'TB_iframe' => 1 ), $image_library_url );
 
269
        ?>
 
270
        <p>
 
271
                <label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
 
272
                <a id="choose-from-library-link" class="button thickbox" href="<?php echo esc_url( $image_library_url ); ?>"><?php _e( 'Choose Image' ); ?></a>
 
273
        </p>
 
274
        </form>
250
275
</td>
251
276
</tr>
252
277
</tbody>
302
327
<tr valign="top">
303
328
<th scope="row"><?php _e( 'Background Color' ); ?></th>
304
329
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Color' ); ?></span></legend>
305
 
<?php $show_clear = get_background_color() ? '' : ' style="display:none"'; ?>
 
330
<?php $show_clear = get_theme_mod('background_color') ? '' : ' style="display:none"'; ?>
306
331
<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr(get_background_color()) ?>" />
307
 
<a class="hide-if-no-js" href="#" id="pickcolor"><?php _e('Select a Color'); ?></a> <span<?php echo $show_clear; ?> class="hide-if-no-js" id="clearcolor"> (<a href="#"><?php _e( 'Clear' ); ?></a>)</span>
 
332
<a class="hide-if-no-js" href="#" id="pickcolor"><?php _e('Select a Color'); ?></a> <span<?php echo $show_clear; ?> class="hide-if-no-js" id="clearcolor"> (<a href="#"><?php current_theme_supports( 'custom-background', 'default-color' ) ? _e( 'Default' ) : _e( 'Clear' ); ?></a>)</span>
 
333
<input type="hidden" id="defaultcolor" value="<?php if ( current_theme_supports( 'custom-background', 'default-color' ) ) echo '#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ); ?>" />
308
334
<div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
309
335
</fieldset></td>
310
336
</tr>
357
383
                wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
358
384
                update_post_meta( $id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
359
385
 
360
 
                set_theme_mod('background_image', esc_url($url));
 
386
                set_theme_mod('background_image', esc_url_raw($url));
361
387
 
362
388
                $thumbnail = wp_get_attachment_image_src( $id, 'thumbnail' );
363
 
                set_theme_mod('background_image_thumb', esc_url( $thumbnail[0] ) );
 
389
                set_theme_mod('background_image_thumb', esc_url_raw( $thumbnail[0] ) );
364
390
 
365
391
                do_action('wp_create_file_in_uploads', $file, $id); // For replication
366
392
                $this->updated = true;
367
393
        }
368
394
 
 
395
        /**
 
396
         * Replace default attachment actions with "Set as background" link.
 
397
         *
 
398
         * @since 3.4.0
 
399
         */
 
400
        function attachment_fields_to_edit( $form_fields, $post ) {
 
401
                $form_fields = array( 'image-size' => $form_fields['image-size'] );
 
402
                $form_fields['buttons'] = array( 'tr' => '<tr class="submit"><td></td><td><a data-attachment-id="' . $post->ID . '" class="wp-set-background">' . __( 'Set as background' ) . '</a></td></tr>' );
 
403
                $form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-background' );
 
404
 
 
405
                return $form_fields;
 
406
        }
 
407
 
 
408
        /**
 
409
         * Leave only "Media Library" tab in the uploader window.
 
410
         *
 
411
         * @since 3.4.0
 
412
         */
 
413
        function filter_upload_tabs() {
 
414
                return array( 'library' => __('Media Library') );
 
415
        }
 
416
 
 
417
        public function wp_set_background_image() {
 
418
                if ( ! current_user_can('edit_theme_options') || ! isset( $_POST['attachment_id'] ) ) exit;
 
419
                $attachment_id = absint($_POST['attachment_id']);
 
420
                $sizes = array_keys(apply_filters( 'image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')) ));
 
421
                $size = 'thumbnail';
 
422
                if ( in_array( $_POST['size'], $sizes ) )
 
423
                        $size = esc_attr( $_POST['size'] );
 
424
 
 
425
                update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
 
426
                $url = wp_get_attachment_image_src( $attachment_id, $size );
 
427
                $thumbnail = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
 
428
                set_theme_mod( 'background_image', esc_url_raw( $url[0] ) );
 
429
                set_theme_mod( 'background_image_thumb', esc_url_raw( $thumbnail[0] ) );
 
430
                exit;
 
431
        }
369
432
}
370
 
?>