admin_header_callback = $admin_header_callback; $this->admin_image_div_callback = $admin_image_div_callback; } /** * Setup the hooks for the Custom Background admin page. * * @since unknown */ function init() { if ( ! current_user_can('switch_themes') ) return; $page = add_theme_page(__('Background'), __('Background'), 'switch_themes', 'custom-background', array(&$this, 'admin_page')); add_action("admin_print_scripts-$page", array(&$this, 'js_includes')); add_action("admin_print_styles-$page", array(&$this, 'css_includes')); add_action("admin_head-$page", array(&$this, 'js'), 50); add_action("admin_head-$page", array(&$this, 'take_action'), 49); if ( $this->admin_header_callback ) add_action("admin_head-$page", $this->admin_header_callback, 51); } /** * Get the current step. * * @since unknown * * @return int Current step */ function step() { if ( ! isset( $_GET['step'] ) ) return 1; $step = (int) $_GET['step']; if ( $step < 1 || 3 < $step ) $step = 1; return $step; } /** * Setup the enqueue for the JavaScript files. * * @since unknown */ function js_includes() { $step = $this->step(); if ( 1 == $step ) wp_enqueue_script('farbtastic'); } /** * Setup the enqueue for the CSS files * * @since unknown */ function css_includes() { $step = $this->step(); if ( 1 == $step ) wp_enqueue_style('farbtastic'); } /** * Execute custom background modification. * * @since unknown */ function take_action() { if ( ! current_user_can('switch_themes') ) return; if ( empty($_POST) ) return; check_admin_referer('custom-background'); if ( isset($_POST['reset-background']) ) remove_theme_mods(); if ( isset($_POST['background-repeat']) ) { if ( in_array($_POST['background-repeat'], array('repeat', 'no-repeat')) ) $repeat = $_POST['background-repeat']; else $repeat = 'repeat'; set_theme_mod('background_repeat', $repeat); } if ( isset($_POST['background-position']) ) { if ( in_array($_POST['background-position'], array('center', 'right', 'left')) ) $position = $_POST['background-position']; else $position = 'left'; set_theme_mod('background_position', $position); } if ( isset($_POST['background-attachment']) ) { if ( in_array($_POST['background-attachment'], array('fixed', 'scroll')) ) $attachment = $_POST['background-attachment']; else $attachment = 'fixed'; set_theme_mod('background_attachment', $attachment); } if ( isset($_POST['remove-background']) ) set_theme_mod('background_image', ''); if ( isset( $_POST['background-color'] ) ) { $color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['background-color']); if ( strlen($color) == 6 || strlen($color) == 3 ) set_theme_mod('background_color', $color); else set_theme_mod('background_color', ''); } } /** * Execute Javascript depending on step. * * @since unknown */ function js() { $step = $this->step(); if ( 1 == $step ) $this->js_1(); } /** * Display Javascript based on Step 1. * * @since unknown */ function js_1() { ?>

Visit your site to see how it looks.'), home_url()); ?>

admin_image_div_callback ) { call_user_func($this->admin_image_div_callback); } else { ?>


false); $file = wp_handle_upload($_FILES['import'], $overrides); if ( isset($file['error']) ) die( $file['error'] ); $url = $file['url']; $type = $file['type']; $file = $file['file']; $filename = basename($file); // Construct the object array $object = array( 'post_title' => $filename, 'post_content' => $url, 'post_mime_type' => $type, 'guid' => $url); // Save the data $id = wp_insert_attachment($object, $file); // Add the meta-data wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); set_theme_mod('background_image', esc_url($url)); do_action('wp_create_file_in_uploads', $file, $id); // For replication return $this->finished(); } /** * Display last step of custom header image page. * * @since unknown */ function finished() { $_GET['updated'] = 1; $this->step_1(); } /** * Display the page based on the current step. * * @since unknown */ function admin_page() { if ( ! current_user_can('switch_themes') ) wp_die(__('You do not have permission to customize the background.')); $step = $this->step(); if ( 1 == $step ) $this->step_1(); elseif ( 2 == $step ) $this->step_2(); } } ?>