| @@ -79,22 +79,39 @@ | ||
| 79 | 79 | |
| 80 | 80 | add_action( 'template_redirect', array( $this, 'frontend_init' ) ); |
| 81 | 81 | add_action( 'admin_init', array( $this, 'admin_init' ) ); |
| 82 | 82 | |
| 83 | - /* | |
| 84 | - * Comment likes are gated on the Likes settings, so when the Likes module is | |
| 85 | - * off this module still needs the per-post metabox that carries them. | |
| 86 | - */ | |
| 87 | 83 | if ( ! Jetpack::is_module_active( 'likes' ) ) { |
| 88 | - if ( Jetpack::is_module_active( 'sharedaddy' ) ) { | |
| 84 | + $active = Jetpack::get_active_modules(); | |
| 85 | + $sharedaddy_active = in_array( 'sharedaddy', $active, true ); | |
| 86 | + | |
| 87 | + if ( $this->settings->needs_own_sharing_menu( $sharedaddy_active ) ) { | |
| 88 | + /* | |
| 89 | + * Sharedaddy is what registers Settings > Sharing, and it is off, so we | |
| 90 | + * register that screen ourselves; the Likes settings that gate comment | |
| 91 | + * likes are displayed on it. | |
| 92 | + */ | |
| 93 | + add_action( 'admin_menu', array( $this->settings, 'sharing_menu' ) ); | |
| 94 | + } elseif ( in_array( 'publicize', $active, true ) && ! $sharedaddy_active ) { | |
| 95 | + // we have a sharing page but not the global options area. | |
| 96 | + add_action( 'pre_admin_screen_sharing', array( $this->settings, 'sharing_block' ), 20 ); | |
| 97 | + add_action( 'pre_admin_screen_sharing', array( $this->settings, 'updated_message' ), -10 ); | |
| 98 | + } | |
| 99 | + | |
| 100 | + if ( ! $sharedaddy_active ) { | |
| 101 | + add_action( 'admin_init', array( $this->settings, 'process_update_requests_if_sharedaddy_not_loaded' ) ); | |
| 102 | + add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_showbuttonon_init' ), 19 ); | |
| 103 | + add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_showbuttonon_callback' ), 19 ); | |
| 104 | + add_action( 'admin_init', array( $this->settings, 'add_meta_box' ) ); | |
| 105 | + } else { | |
| 89 | 106 | add_filter( 'sharing_meta_box_title', array( $this->settings, 'add_likes_to_sharing_meta_box_title' ) ); |
| 90 | 107 | add_action( 'start_sharing_meta_box_content', array( $this->settings, 'meta_box_content' ) ); |
| 91 | - } else { | |
| 92 | - add_action( 'admin_init', array( $this->settings, 'add_meta_box' ) ); | |
| 93 | 108 | } |
| 94 | 109 | |
| 95 | 110 | add_action( 'save_post', array( $this->settings, 'meta_box_save' ) ); |
| 96 | 111 | add_action( 'edit_attachment', array( $this->settings, 'meta_box_save' ) ); |
| 112 | + add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_init' ), 20 ); | |
| 113 | + add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 ); | |
| 97 | 114 | } |
| 98 | 115 | } |
| 99 | 116 | |
| 100 | 117 | /** |