Inpsyde\MultilingualPress\Core\CoreServiceProvider::bootstrap PHP Method

bootstrap() public method

Bootstraps the registered services.
Since: 3.0.0
public bootstrap ( Inpsyde\MultilingualPress\Service\Container $container ) : void
$container Inpsyde\MultilingualPress\Service\Container Container object.
return void
    public function bootstrap(Container $container)
    {
        $properties = $container['multilingualpress.properties'];
        $plugin_dir_path = rtrim($properties->plugin_dir_path(), '/');
        $plugin_dir_url = rtrim($properties->plugin_dir_url(), '/');
        $container['multilingualpress.internal_locations']->add('plugin', $plugin_dir_path, $plugin_dir_url)->add('css', "{$plugin_dir_path}/assets/css", "{$plugin_dir_url}/assets/css")->add('js', "{$plugin_dir_path}/assets/js", "{$plugin_dir_url}/assets/js")->add('images', "{$plugin_dir_path}/assets/images", "{$plugin_dir_url}/assets/images")->add('flags', "{$plugin_dir_path}/assets/images/flags", "{$plugin_dir_url}/assets/images/flags");
        $setting_page = $container['multilingualpress.plugin_settings_page'];
        add_action('plugins_loaded', [$setting_page, 'register'], 8);
        add_action('admin_post_' . PluginSettingsPage\PluginSettingsUpdater::ACTION, [$container['multilingualpress.plugin_settings_updater'], 'update_settings']);
        add_action('network_admin_notices', function () use($setting_page) {
            if (isset($_GET['message']) && isset($GLOBALS['hook_suffix']) && $setting_page->hookname() === $GLOBALS['hook_suffix']) {
                (new AdminNotice('<p>' . __('Settings saved.', 'multilingual-press') . '</p>'))->render();
            }
        });
        (new ActionLink('settings', '<a href="' . esc_url($setting_page->url()) . '">' . __('Settings', 'multilingual-press') . '</a>'))->register('network_admin_plugin_action_links_' . $properties->plugin_base_name());
        if (isset($_SERVER['REQUEST_METHOD']) && 'POST' === strtoupper($_SERVER['REQUEST_METHOD'])) {
            $post_request_data_manipulator = $container['multilingualpress.post_request_data_manipulator'];
            add_action('mlp_before_post_synchronization', [$post_request_data_manipulator, 'clear_data']);
            add_action('mlp_after_post_synchronization', [$post_request_data_manipulator, 'restore_data']);
            add_action('mlp_before_term_synchronization', [$post_request_data_manipulator, 'clear_data']);
            add_action('mlp_after_term_synchronization', [$post_request_data_manipulator, 'restore_data']);
        }
        if (is_admin()) {
            $relationship_control_view = $container['multilingualpress.relationship_control_view'];
            add_action('mlp_translation_meta_box_bottom', function (WP_Post $post, $remote_site_id, WP_Post $remote_post) use($relationship_control_view) {
                global $pagenow;
                if ('post.php' === $pagenow) {
                    $relationship_control_view->render(new RelationshipContext([RelationshipContext::KEY_REMOTE_POST_ID => $remote_post->ID, RelationshipContext::KEY_REMOTE_SITE_ID => $remote_site_id, RelationshipContext::KEY_SOURCE_POST_ID => $post->ID, RelationshipContext::KEY_SOURCE_SITE_ID => get_current_blog_id()]));
                }
            }, 200, 3);
            if (defined('DOING_AJAX') && DOING_AJAX && isset($_REQUEST['action'])) {
                switch ($_REQUEST['action']) {
                    case SearchController::ACTION:
                        $container['multilingualpress.relationship_control_search_controller']->initialize();
                        break;
                    case RelationshipController::ACTION_CONNECT_EXISTING:
                    case RelationshipController::ACTION_CONNECT_NEW:
                    case RelationshipController::ACTION_DISCONNECT:
                        $container['multilingualpress.relationship_controller']->initialize();
                        break;
                }
            }
        }
    }
CoreServiceProvider