PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.4.3
Kubio AI Page Builder v2.4.3
2.8.3 2.8.2 2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / lib / src / AssetsDependencyInjector.php
kubio / lib / src Last commit date
CLI 2 years ago Core 1 year ago DemoSites 1 year ago AssetsDependencyInjector.php 3 years ago Config.php 3 years ago FileLog.php 2 years ago Flags.php 2 years ago GoogleFontsLocalLoader.php 2 years ago GutenbergControls.php 1 year ago Migrations.php 4 years ago NotificationsManager.php 1 year ago PluginsManager.php 2 years ago
AssetsDependencyInjector.php
93 lines
1 <?php
2
3 namespace Kubio;
4
5 use IlluminateAgnostic\Arr\Support\Arr;
6
7 class AssetsDependencyInjector {
8
9
10 const KUBIO_DEPENENCY_PREFIX = 'kubio--dep-';
11
12 private static $dependencies_to_inject = array(
13 'style' => array(),
14 'script' => array(),
15 );
16
17
18 public static function injectDependencies( $type, $handle, $dependencies ) {
19 $dependencies = Arr::wrap( $dependencies );
20
21 $items = null;
22
23 if ( $type === 'style' ) {
24 $items = \wp_styles();
25 } else {
26 $items = \wp_scripts();
27 }
28
29 $target = Arr::get( $items->registered, $handle, null );
30
31 foreach ( $dependencies as $dependency ) {
32 $items->enqueue( $dependency );
33 }
34
35 if ( ! $target ) {
36 static::$dependencies_to_inject[ $handle ] = array_unique(
37 array_merge(
38 Arr::get( static::$dependencies_to_inject, $handle, array() ),
39 $dependencies
40 )
41 );
42 } else {
43 $target->deps = array_unique( array_merge( $target->deps, $dependencies ) );
44 }
45
46 }
47
48 public static function injectScriptDependencies( $handle, $dependencies ) {
49 return self::injectDependencies( 'script', $handle, $dependencies );
50 }
51
52 public static function injectStyleDependencies( $handle, $dependencies ) {
53 return self::injectDependencies( 'style', $handle, $dependencies );
54 }
55
56 public static function injectKubioScriptDependencies( $dependencies, $prefix = true ) {
57 $dependencies = Arr::wrap( $dependencies );
58 if ( $prefix ) {
59 $dependencies = array_map(
60 function( $handle ) {
61 return AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle;
62 },
63 $dependencies
64 );
65 }
66
67 self::injectScriptDependencies( 'kubio-scripts', $dependencies );
68 }
69
70 public static function injectKubioFrontendStyleDependencies( $dependencies, $prefix = true ) {
71 $dependencies = Arr::wrap( $dependencies );
72 if ( $prefix ) {
73 $dependencies = array_map(
74 function( $handle ) {
75 return AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle;
76 },
77 $dependencies
78 );
79 }
80
81 self::injectStyleDependencies( 'kubio-block-library', $dependencies );
82 }
83
84
85 public static function registerKubioScriptsDependency( $handle, $src, $deps, $version ) {
86 wp_register_script( AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle, $src, $deps, $version, true );
87 }
88
89 public static function registerKubioFrontendStyleDependency( $handle, $src, $deps, $version ) {
90 wp_register_style( AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle, $src, $deps, $version );
91 }
92 }
93