LLMS_Blocks_Assets
Enqueue assets
Contents
Source Source
File: libraries/lifterlms-blocks/includes/class-llms-blocks-assets.php
class LLMS_Blocks_Assets { /** * Instances of `LLMS_Assets` * * @var null */ public $assets; /** * Constructor * * @since 1.0.0 * @since 1.8.0 Stop outputting editor CSS on the frontend. * @since 1.10.0 Load `LLMS_Assets` and define plugin assets. * @since 2.0.0 Maybe define backwards compatibility script. * @since 2.1.0 Adjust `editor_assets()` priority from 999 to 5. * * @return void */ public function __construct() { // Load an instance of the LLMS_Assets class. $this->assets = new LLMS_Assets( 'llms-blocks', array( // Base defaults shared by all asset types. 'base' => array( 'base_file' => LLMS_BLOCKS_PLUGIN_FILE, 'base_url' => LLMS_BLOCKS_PLUGIN_DIR_URL, 'version' => LLMS_BLOCKS_VERSION, 'suffix' => '', // Only minified files are distributed. ), // Script specific defaults. 'script' => array( 'translate' => true, // All scripts in the blocks plugin are translated. ), ) ); // Define plugin assets. $this->define(); $this->define_bc(); // Enqueue editor assets. add_action( 'enqueue_block_editor_assets', array( $this, 'editor_assets' ), 5 ); } /** * Define block plugin assets. * * @since 1.10.0 * * @return void */ private function define() { $asset = include LLMS_BLOCKS_PLUGIN_DIR . '/assets/js/llms-blocks.asset.php'; $this->assets->define( 'scripts', array( 'llms-blocks-editor' => array( 'dependencies' => $asset['dependencies'], 'file_name' => 'llms-blocks', 'version' => $asset['version'], ), ) ); $this->assets->define( 'styles', array( 'llms-blocks-editor' => array( 'dependencies' => array( 'wp-edit-blocks' ), 'file_name' => 'llms-blocks', 'version' => $asset['version'], ), ) ); } /** * Define backwards compatibility assets * * @since 2.0.0 * * @return void */ protected function define_bc() { if ( ! $this->use_bc_assets() ) { return; } $asset = include LLMS_BLOCKS_PLUGIN_DIR . '/assets/js/llms-blocks-backwards-compat.asset.php'; $this->assets->define( 'scripts', array( 'llms-blocks-editor-bc' => array( 'dependencies' => $asset['dependencies'], 'file_name' => 'llms-blocks-backwards-compat', 'version' => $asset['version'], ), ) ); } /** * Enqueue block editor assets. * * @since 1.0.0 * @since 1.4.1 Fix double slash in asset path. * @since 1.8.0 Update asset paths and improve script dependencies. * @since 1.10.0 Use `LLMS_Assets` class methods for asset enqueues. * @since 2.0.0 Maybe load backwards compatibility script. * @since 2.2.0 Only load assets on post screens. * @since 2.3.0 Also load assets on site editor screen. * @since 2.4.3 Added script localization. * @since 2.5.0 Add courseId to script localization. * * @return void */ public function editor_assets() { $screen = get_current_screen(); if ( $screen && ! in_array( $screen->base, array( 'post', 'site-editor' ), true ) ) { return; } if ( $this->use_bc_assets() ) { $this->assets->enqueue_script( 'llms-blocks-editor-bc' ); } $this->assets->enqueue_script( 'llms-blocks-editor' ); $this->assets->enqueue_style( 'llms-blocks-editor' ); wp_localize_script( 'llms-blocks-editor', 'llmsBlocks', array( 'variationIconCanBeObject' => self::can_variation_transform_icon_be_an_object(), 'courseId' => self::get_course_id(), ) ); } /** * Determines if WP Core backwards compatibility scripts should defined & be loaded. * * @since 2.0.0 * * @return boolean */ private function use_bc_assets() { return ( ! LLMS_Forms::instance()->are_requirements_met() && /** * Filter allowing opt-out of block editor backwards compatibility scripts. * * @since 2.0.0 * * @example * ``` * // Disable backwards compatibility scripts. * add_filter( 'llms_blocks_load_bc_scripts', '__return_false' ); * ``` * * @param boolean $load_scripts Whether or not to load the scripts. */ apply_filters( 'llms_blocks_load_bc_scripts', true ) ); } /** * Can a variation transform icon be an object. * * @link https://github.com/gocodebox/lifterlms-blocks/issues/170 * * @since 2.4.3 * * @return bool */ private static function can_variation_transform_icon_be_an_object(): bool { global $wp_version; return version_compare( $wp_version, '6.0-src', '<' ) && ! defined( 'GUTENBERG_VERSION' ) || ( defined( 'GUTENBERG_VERSION' ) && version_compare( GUTENBERG_VERSION, '13.0', '<' ) );
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- block_assets — Enqueue Gutenberg block assets for both frontend + backend.
- can_variation_transform_icon_be_an_object — Can a variation transform icon be an object.
- define — Define block plugin assets.
- define_bc — Define backwards compatibility assets
- editor_assets — Enqueue block editor assets.
- use_bc_assets — Determines if WP Core backwards compatibility scripts should defined & be loaded.
Changelog Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |