Files
medicalalert-web-reloaded/wp/wp-content/plugins/gravityforms/includes/splash-page/class-gf-splash-page-service-provider.php
2024-06-18 17:29:05 -04:00

99 lines
2.9 KiB
PHP

<?php
namespace Gravity_Forms\Gravity_Forms\Splash_Page;
use Gravity_Forms\Gravity_Forms\Config\GF_Config_Service_Provider;
use Gravity_Forms\Gravity_Forms\Splash_Page\Config\GF_Splash_Page_Config;
use Gravity_Forms\Gravity_Forms\GF_Service_Container;
use Gravity_Forms\Gravity_Forms\GF_Service_Provider;
use Gravity_Forms\Gravity_Forms\Splash_Page_Template_Tags\GF_Splash_Page_Template_Tags;
/**
* Class Splash_Page_Service_Provider
*
* Service provider for the splash page.
*
* @package Gravity_Forms\Gravity_Forms\Splash_Page;
*/
class GF_Splash_Page_Service_Provider extends GF_Service_Provider {
const SPLASH_PAGE = 'splash_page';
const SPLASH_PAGE_TEMPLATE_TAGS = 'splash_page_template_tags';
/**
* Register services to the container.
*
* @since 2.6
*
* @param GF_Service_Container $container
*/
public function register( GF_Service_Container $container ) {
require_once( plugin_dir_path( __FILE__ ) . 'class-gf-splash-page-template-tags.php' );
require_once( plugin_dir_path( __FILE__ ) . '/class-gf-splash-page.php' );
$this->splash_page( $container );
}
/**
* Initialize any actions or hooks.
*
* @since 2.6
*
* @param GF_Service_Container $container
*
* @return void
*/
public function init( GF_Service_Container $container ) {
add_action( 'admin_enqueue_scripts', function () use ( $container ) {
$container->get( self::SPLASH_PAGE )->splash_page_styles();
} );
add_filter( 'admin_body_class', function ( $classes ) use ( $container ) {
return $container->get( self::SPLASH_PAGE )->body_class( $classes );
}, 10, 1 );
add_filter( 'admin_title', function ( $title ) use ( $container ) {
return $container->get( self::SPLASH_PAGE )->admin_title( $title );
}, 10, 1 );
add_filter( 'gform_system_status_menu', function ( $subviews ) use ( $container ) {
return $container->get( self::SPLASH_PAGE )->system_status_link( $subviews );
}, 10, 1 );
add_action( 'gform_system_status_page_about', function () use ( $container ) {
$container->get( self::SPLASH_PAGE )->about_page();
} );
add_action( 'gform_post_upgrade', function ( $version, $from_db_version, $force_upgrade ) use ( $container ) {
$container->get( self::SPLASH_PAGE )->set_upgrade_transient( $version, $from_db_version, $force_upgrade );
}, 10, 3 );
add_action( 'admin_footer', function () use ( $container ) {
echo $container->get( self::SPLASH_PAGE )->about_page_modal();
}, 10, 0 );
}
/**
* Register Splash Page services.
*
* @since 2.6
*
* @param GF_Service_Container $container
*
* @return void
*/
private function splash_page( GF_Service_Container $container ) {
$container->add( self::SPLASH_PAGE_TEMPLATE_TAGS, function () {
return new GF_Splash_Page_Template_Tags();
} );
$container->add( self::SPLASH_PAGE, function () use ( $container ) {
$tags = $container->get( self::SPLASH_PAGE_TEMPLATE_TAGS );
return new GF_Splash_Page( $tags );
} );
}
}