WordPress.org

Plugin Directory

Changeset 617433


Ignore:
Timestamp:
10/25/12 17:23:12 (18 months ago)
Author:
cfinke
Message:

Custom CSS: Revisioning the "Add to my theme's CSS/Replace my theme's CSS" setting alongside the CSS itself.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • jetpack/trunk/modules/custom-css/custom-css.php

    r613720 r617433  
    5555        // Set option so that we dont keep doing this 
    5656        update_option( 'safecss_revision_migrated', time() ); 
     57    } 
     58 
     59    $newest_safecss_post = get_current_revision(); 
     60 
     61    if ( $newest_safecss_post ) { 
     62        if ( get_option( 'safecss_content_width' ) ) { 
     63            // Add the meta to the post and the latest revision. 
     64            update_post_meta( $newest_safecss_post['ID'], 'content_width', get_option( 'safecss_content_width' ) ); 
     65            update_metadata( 'post', $newest_safecss_post['ID'], 'content_width', get_option( 'safecss_content_width' ) ); 
     66 
     67            delete_option( 'safecss_content_width' ); 
     68        } 
     69 
     70        if ( get_option( 'safecss_add' ) ) { 
     71            update_post_meta( $newest_safecss_post['ID'], 'custom_css_add', get_option( 'safecss_add' ) ); 
     72            update_metadata( 'post', $newest_safecss_post['ID'], 'custom_css_add', get_option( 'safecss_add' ) ); 
     73 
     74            delete_option( 'safecss_add' ); 
     75        } 
    5776    } 
    5877} 
     
    146165 * @param string $css 
    147166 * @param bool $is_preview 
    148  * @return bool 
     167 * @return bool|int If nothing was saved, returns false. If a post 
     168 *                  or revision was saved, returns the post ID. 
    149169 */ 
    150170function save_revision( $css, $is_preview = false ) { 
     
    156176    if ( null == $safecss_post ) { 
    157177        if ( ! $css ) 
    158             return true; 
     178            return false; 
    159179 
    160180        $post = array(); 
     
    175195 
    176196        // Insert the CSS into wp_posts 
    177         $post_id = wp_insert_post( $post ); 
    178         return true; 
     197        return wp_insert_post( $post ); 
    179198    } 
    180199 
     
    200219    // Do not update post if we are only saving a preview 
    201220    if ( false === $is_preview ) { 
    202         wp_update_post( $safecss_post ); 
     221        return wp_update_post( $safecss_post ); 
    203222    } 
    204223    else if ( !defined( 'DOING_MIGRATE' ) ) { 
    205         _wp_put_post_revision( $safecss_post ); 
     224        return _wp_put_post_revision( $safecss_post ); 
    206225    } 
    207226} 
     
    210229    if ( custom_css_is_customizer_preview() ) 
    211230        return false; 
    212     else if ( safecss_is_preview() ) 
    213         return (bool) ( get_option('safecss_preview_add') == 'no' ); 
    214     else 
    215         return (bool) ( get_option('safecss_add') == 'no' ); 
     231    else { 
     232        if ( safecss_is_preview() ) { 
     233            $safecss_post = get_current_revision(); 
     234 
     235            return (bool) ( get_option('safecss_preview_add') == 'no' || get_post_meta( $safecss_post['ID'], 'custom_css_add', true ) == 'no' ); 
     236        } 
     237        else { 
     238            $safecss_post = get_safecss_post(); 
     239 
     240            return (bool) ( get_option('safecss_add') == 'no' || get_post_meta( $safecss_post['ID'], 'custom_css_add', true ) == 'no' ); 
     241        } 
     242    } 
    216243} 
    217244 
     
    327354 
    328355        if ( $_POST['action'] == 'preview' || safecss_is_freetrial() ) { 
    329             $is_preview = true; 
    330356            // Save the CSS 
    331             save_revision( $css, $is_preview ); 
     357            $safecss_revision_id = save_revision( $css, true ); 
    332358 
    333359            // Cache Buster 
    334360            update_option('safecss_preview_rev', intval( get_option('safecss_preview_rev') ) + 1); 
    335             update_option('safecss_preview_add', $add_to_existing ); 
    336             update_option('safecss_preview_content_width', $custom_content_width); 
     361 
     362            update_metadata( 'post', $safecss_revision_id, 'custom_css_add', $add_to_existing ); 
     363            update_metadata( 'post', $safecss_revision_id, 'content_width', $custom_content_width ); 
    337364 
    338365            if ( $_POST['action'] == 'preview' ) { 
     
    345372 
    346373        // Save the CSS 
    347         save_revision( $css ); 
     374        $safecss_post_id = save_revision( $css ); 
     375 
     376        $safecss_post_revision = get_current_revision(); 
     377 
    348378        update_option( 'safecss_rev', intval( get_option( 'safecss_rev' ) ) + 1 ); 
    349         update_option( 'safecss_add', $add_to_existing ); 
    350         update_option( 'safecss_content_width', $custom_content_width ); 
     379 
     380        update_post_meta( $safecss_post_id, 'custom_css_add', $add_to_existing ); 
     381        update_post_meta( $safecss_post_id, 'content_width', $custom_content_width ); 
     382        update_metadata( 'post', $safecss_post_revision['ID'], 'custom_css_add', $add_to_existing ); 
     383        update_metadata( 'post', $safecss_post_revision['ID'], 'content_width', $custom_content_width ); 
    351384 
    352385        add_action('admin_notices', 'safecss_saved'); 
     
    840873    } 
    841874 
     875    $safecss_post = get_current_revision(); 
     876 
    842877    ?> 
    843878    <p class="css-settings"> 
    844         <label><input type="radio" name="add_to_existing" value="true" <?php checked( get_option( 'safecss_add' ) != 'no' ); ?> /> <?php printf( __( 'Add my CSS to <strong>%s&apos;s</strong> CSS stylesheet.', 'jetpack' ), $current_theme ); ?></label><br /> 
    845         <label><input type="radio" name="add_to_existing" value="false" <?php checked( get_option( 'safecss_add' ) == 'no' ); ?> /> <?php printf( __( 'Don&apos;t use <strong>%s&apos;s</strong> CSS, and replace everything with my own CSS.', 'jetpack' ), $current_theme ); ?></label> 
     879        <label><input type="radio" name="add_to_existing" value="true" <?php checked( get_post_meta( $safecss_post['ID'], 'custom_css_add', true ) != 'no' ); ?> /> <?php printf( __( 'Add my CSS to <strong>%s&apos;s</strong> CSS stylesheet.', 'jetpack' ), $current_theme ); ?></label><br /> 
     880        <label><input type="radio" name="add_to_existing" value="false" <?php checked( get_post_meta( $safecss_post['ID'], 'custom_css_add', true ) == 'no' ); ?> /> <?php printf( __( 'Don&apos;t use <strong>%s&apos;s</strong> CSS, and replace everything with my own CSS.', 'jetpack' ), $current_theme ); ?></label> 
    846881    </p> 
    847882    <p><?php printf( __( '<a href="%s">View the original stylesheet</a> for the %s theme. Use this as a reference and do not copy and paste all of it into the CSS Editor.', 'jetpack' ), apply_filters( 'safecss_theme_stylesheet_url', get_stylesheet_uri() ), $current_theme ); ?></p> 
     
    950985 */ 
    951986function custom_css_reset() { 
    952     save_revision( '' ); 
     987    $safecss_post_id = save_revision( '' ); 
     988    $safecss_revision = get_current_revision(); 
     989 
    953990    update_option( 'safecss_rev', intval( get_option( 'safecss_rev' ) ) + 1 ); 
    954     update_option( 'safecss_add', 'yes' ); 
    955     update_option( 'safecss_content_width', false ); 
     991 
     992    update_post_meta( $safecss_post_id, 'custom_css_add', 'yes' ); 
     993    update_post_meta( $safecss_post_id, 'content_width', false ); 
     994    update_metadata( 'post', $safecss_revision['ID'], 'custom_css_add', 'yes' ); 
     995    update_metadata( 'post', $safecss_revision['ID'], 'content_width', false ); 
    956996} 
    957997 
     
    9851025    return $csstidy->print->plain(); 
    9861026} 
     1027 
     1028/** 
     1029 * When restoring a SafeCSS post revision, also copy over the 
     1030 * content_width and custom_css_add post metadata. 
     1031 */ 
     1032function custom_css_restore_revision( $_post_id, $_revision_id ) { 
     1033    $_post = get_post( $_post_id ); 
     1034 
     1035    if ( 'safecss' != $_post->post_type ) 
     1036        return; 
     1037 
     1038    $safecss_revision = get_current_revision(); 
     1039 
     1040    $content_width = get_post_meta( $_revision_id, 'content_width', true ); 
     1041    $custom_css_add = get_post_meta( $_revision_id, 'custom_css_add', true ); 
     1042 
     1043    update_metadata( 'post', $safecss_revision['ID'], 'content_width', $content_width ); 
     1044    update_metadata( 'post', $safecss_revision['ID'], 'custom_css_add', $custom_css_add ); 
     1045    update_post_meta( $_post->ID, 'content_width', $content_width ); 
     1046    update_post_meta( $_post->ID, 'custom_css_add', $custom_css_add ); 
     1047} 
     1048 
     1049add_action( 'wp_restore_post_revision', 'custom_css_restore_revision', 10, 2 ); 
Note: See TracChangeset for help on using the changeset viewer.