true ) ); wp_set_script_translations( self::HANDLE, 'rooster-lms', ROOSTER_LMS_DIR . 'languages' ); foreach ( glob( $dir . '/' . self::ENTRY . '-*.js' ) ?: array() as $chunk ) { // phpcs:ignore Universal.Operators.DisallowShortTernary.Found -- glob() answers false on error. $name = basename( $chunk, '.js' ); $handle = 'rooster-lms-' . $name; wp_register_script( $handle, $url . $name . '.js', array( self::HANDLE ), $version, array( 'in_footer' => true ) ); $json = load_script_textdomain( $handle, 'rooster-lms', ROOSTER_LMS_DIR . 'languages' ); $translations = is_string( $json ) && '' !== $json ? json_decode( $json ) : null; if ( is_object( $translations ) ) { wp_add_inline_script( self::HANDLE, '( function( domain, translations ) { var data = translations.locale_data[ domain ] || translations.locale_data.messages; data[""].domain = domain; wp.i18n.setLocaleData( data, domain ); } )( "rooster-lms", ' . wp_json_encode( $translations, JSON_HEX_TAG | JSON_HEX_AMP ) . ' );', 'before' ); } } if ( is_readable( $dir . '/' . self::ENTRY . '.css' ) ) { wp_register_style( self::HANDLE, $url . self::ENTRY . '.css', array( Assets::UI ), $version ); wp_style_add_data( self::HANDLE, 'rtl', 'replace' ); } return self::HANDLE; } public static function boot( array $boot ): bool { if ( ! wp_script_is( self::HANDLE, 'registered' ) ) { return false; } $sizes = \RoosterLMS\Admin\Home\Prefs::get( get_current_user_id(), \RoosterLMS\Admin\Home\Prefs::FIELD_SIZES, array() ); $sizes = is_array( $sizes ) && array() !== $sizes ? $sizes : new \stdClass(); return wp_add_inline_script( self::HANDLE, 'window.roosterLmsFieldSizes = ' . wp_json_encode( $sizes, JSON_HEX_TAG | JSON_HEX_AMP ) . '; window.' . self::BOOT_GLOBAL . ' = ' . wp_json_encode( $boot, JSON_HEX_TAG | JSON_HEX_AMP ) . ';', 'before' ); } public static function mount_html( int $course_id, string $tab, string $fallback ): string { return '
' . $fallback . '
'; } }