PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.8.0
Kubio AI Page Builder v2.8.0
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 1 year ago Core 1 month ago DemoSites 1 month ago AssetsDependencyInjector.php 1 year ago Config.php 1 year ago FileLog.php 1 year ago Flags.php 1 year ago GoogleFontsLocalLoader.php 1 year ago GutenbergControls.php 1 year ago Migrations.php 1 year ago NotificationsManager.php 1 month ago PluginsManager.php 2 years ago
AssetsDependencyInjector.php
92 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 public static function injectScriptDependencies( $handle, $dependencies ) {
48 return self::injectDependencies( 'script', $handle, $dependencies );
49 }
50
51 public static function injectStyleDependencies( $handle, $dependencies ) {
52 return self::injectDependencies( 'style', $handle, $dependencies );
53 }
54
55 public static function injectKubioScriptDependencies( $dependencies, $prefix = true ) {
56 $dependencies = Arr::wrap( $dependencies );
57 if ( $prefix ) {
58 $dependencies = array_map(
59 function ( $handle ) {
60 return AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle;
61 },
62 $dependencies
63 );
64 }
65
66 self::injectScriptDependencies( 'kubio-scripts', $dependencies );
67 }
68
69 public static function injectKubioFrontendStyleDependencies( $dependencies, $prefix = true ) {
70 $dependencies = Arr::wrap( $dependencies );
71 if ( $prefix ) {
72 $dependencies = array_map(
73 function ( $handle ) {
74 return AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle;
75 },
76 $dependencies
77 );
78 }
79
80 self::injectStyleDependencies( 'kubio-block-library', $dependencies );
81 }
82
83
84 public static function registerKubioScriptsDependency( $handle, $src, $deps, $version ) {
85 wp_register_script( AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle, $src, $deps, $version, true );
86 }
87
88 public static function registerKubioFrontendStyleDependency( $handle, $src, $deps, $version ) {
89 wp_register_style( AssetsDependencyInjector::KUBIO_DEPENENCY_PREFIX . $handle, $src, $deps, $version );
90 }
91 }
92