param Controller $controller */ public static function enqueue_frontend_resources_for_alternate_displayed_gallery( $displayed_gallery, $controller ) { // Allow basic thumbnails "use imagebrowser effect" feature to seamlessly change between display types as well // as for album display types to show galleries. $alternate_displayed_gallery = $controller->get_alternative_displayed_gallery( $displayed_gallery ); if ( $alternate_displayed_gallery === $displayed_gallery ) { return; } $alternate_controller = ControllerFactory::get_controller( $alternate_displayed_gallery->display_type ); if ( ! $alternate_controller && class_exists( 'C_Display_Type_Controller', false ) ) { $alternate_controller = \C_Display_Type_Controller::get_instance( $alternate_displayed_gallery->display_type ); } self::enqueue_frontend_resources_for_displayed_gallery( $alternate_displayed_gallery, $alternate_controller ); } /** * @param DisplayedGallery $displayed_gallery * @param Controller $controller */ public static function enqueue_frontend_resources_for_displayed_gallery( $displayed_gallery, $controller ) { if ( is_null( $displayed_gallery->id() ) ) { $displayed_gallery->id( md5( json_encode( $displayed_gallery->get_entity() ) ) ); } self::$enqueued_displayed_gallery_ids[] = $displayed_gallery->id(); $controller->enqueue_frontend_resources( $displayed_gallery ); if ( method_exists( $controller, 'get_alternative_displayed_gallery' ) ) { self::enqueue_frontend_resources_for_alternate_displayed_gallery( $displayed_gallery, $controller ); } } public function is_rest_request(): bool { if ( ! isset( $_SERVER['REQUEST_URI'] ) ) { return false; } return defined( 'REST_REQUEST' ) || false !== strpos( $_SERVER['REQUEST_URI'], 'wp-json' ); } /** * This moves the NextGen custom CSS to the last of the queue */ public function fix_nextgen_custom_css_order() { global $wp_styles; if ( in_array( 'nggallery', $wp_styles->queue, true ) ) { foreach ( $wp_styles->queue as $ndx => $style ) { if ( $style == 'nggallery' ) { unset( $wp_styles->queue[ $ndx ] ); $wp_styles->queue[] = 'nggallery'; break; } } } } static function enqueue_fontawesome() { // The official plugin is active, we don't need to do anything outside the wp-admin. if ( defined( 'FONT_AWESOME_OFFICIAL_LOADED' ) && ! is_admin() ) { return; } $settings = Settings::get_instance(); if ( $settings->get( 'disable_fontawesome' ) ) { return; } wp_register_script( 'fontawesome_v4_shim', StaticAssets::get_url( 'FontAwesome/js/v4-shims.min.js' ), [], '5.3.1' ); if ( ! wp_script_is( 'fontawesome', 'registered' ) ) { add_filter( 'script_loader_tag', [ '\Imagely\NGG\Display\DisplayManager', 'fix_fontawesome_script_tag' ], 10, 2 ); wp_enqueue_script( 'fontawesome', StaticAssets::get_url( 'FontAwesome/js/all.min.js' ), [ 'fontawesome_v4_shim' ], '5.3.1' ); } if ( ! wp_style_is( 'fontawesome', 'registered' ) ) { wp_enqueue_style( 'fontawesome_v4_shim_style', StaticAssets::get_url( 'FontAwesome/css/v4-shims.min.css' ) ); wp_enqueue_style( 'fontawesome', StaticAssets::get_url( 'FontAwesome/css/all.min.css' ) ); } wp_enqueue_script( 'fontawesome_v4_shim' ); wp_enqueue_script( 'fontawesome' ); } /** * WP doesn't allow an easy way to set the defer, crossorign, or integrity attributes on our