| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- /**
- * Multisite helper for the page builder.
- *
- * @since 1.0
- */
- final class FLBuilderMultisite {
- /**
- * Initializes builder multisite support.
- *
- * @since 1.0
- * @return void
- */
- static public function init() {
- add_action( 'wpmu_new_blog', __CLASS__ . '::install_for_new_blog', 10, 6 );
- add_filter( 'wpmu_drop_tables', __CLASS__ . '::uninstall_on_delete_blog' );
- add_filter( 'fl_builder_activate', __CLASS__ . '::activate' );
- add_filter( 'fl_builder_uninstall', __CLASS__ . '::uninstall' );
- }
- /**
- * Short circuit activation in favor of multisite activation.
- *
- * @since 1.8
- * @return void
- */
- static public function activate( $activate ) {
- if ( is_network_admin() ) {
- FLBuilderMultisite::install();
- } else {
- FLBuilderAdmin::install();
- }
- FLBuilderAdmin::trigger_activate_notice();
- return false;
- }
- /**
- * Runs the install method for each site on the network.
- *
- * @since 1.0
- * @return void
- */
- static public function install() {
- global $blog_id;
- global $wpdb;
- $original_blog_id = $blog_id;
- $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
- foreach ( $blog_ids as $id ) {
- switch_to_blog( $id );
- FLBuilderAdmin::install();
- }
- switch_to_blog( $original_blog_id );
- }
- /**
- * Runs the install for a newly created site.
- *
- * @since 1.0
- * @param int $blog_id
- * @param int $user_id
- * @param string $domain
- * @param string $path
- * @param int $site_id
- * @param array $meta
- * @return void
- */
- static public function install_for_new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
- global $wpdb;
- if ( is_plugin_active_for_network( FLBuilderModel::plugin_basename() ) ) {
- switch_to_blog( $blog_id );
- FLBuilderAdmin::install();
- restore_current_blog();
- }
- }
- /**
- * Short circuit the default uninstall and run
- * the uninstall for each site on the network.
- *
- * @since 1.0
- * @return void
- */
- static public function uninstall( $uninstall ) {
- global $blog_id;
- global $wpdb;
- $original_blog_id = $blog_id;
- $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
- foreach ( $blog_ids as $id ) {
- switch_to_blog( $id );
- FLBuilderAdmin::uninstall();
- }
- switch_to_blog( $original_blog_id );
- return false;
- }
- /**
- * Runs the uninstall method when a site is deleted.
- *
- * @since 1.0
- * @return array
- */
- static public function uninstall_on_delete_blog( $tables ) {
- return $tables;
- }
- /**
- * Checks if a blog on the network exists.
- *
- * @since 1.5.7
- * @param $blog_id The blog ID to check.
- * @return bool
- */
- static public function blog_exists( $blog_id ) {
- global $wpdb;
- if ( method_exists( $wpdb, 'esc_like' ) ) {
- $like = esc_sql( $wpdb->esc_like( $blog_id ) );
- } else {
- $like = like_escape( esc_sql( $blog_id ) );
- }
- return $wpdb->get_row( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE blog_id = '%s'", $like ) );
- }
- }
- FLBuilderMultisite::init();
|