PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.11.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.11.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
visualizer / vendor / codeinwp / themeisle-sdk / src / Modules / Script_loader.php

Script_loader.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.11.7, at vendor/codeinwp/themeisle-sdk/src/Modules/Script_loader.php

184 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The dependency model class for ThemeIsle SDK
4 *
5 * @package ThemeIsleSDK
6 * @subpackage Modules
7 * @copyright Copyright (c) 2017, Marius Cristea
8 * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
9 * @since 3.3
10 */
11
12 namespace ThemeisleSDK\Modules;
13
14 use ThemeisleSDK\Common\Abstract_Module;
15 use ThemeisleSDK\Product;
16
17 // Exit if accessed directly.
18 if ( ! defined( 'ABSPATH' ) ) {
19 exit;
20 }
21
22 /**
23 * Script loader module for ThemeIsle SDK.
24 */
25 class Script_Loader extends Abstract_Module {
26 /**
27 * Check if we should load the module for this product.
28 *
29 * @param Product $product Product to load the module for.
30 *
31 * @return bool Should we load ?
32 */
33 public function can_load( $product ) {
34 if ( $this->is_from_partner( $product ) ) {
35 return false;
36 }
37
38 return true;
39 }
40
41 /**
42 * Load module logic.
43 *
44 * @param Product $product Product to load.
45 *
46 * @return Dependancy Module object.
47 */
48 public function load( $product ) {
49 $this->product = $product;
50 $this->setup_actions();
51 return $this;
52 }
53
54 /**
55 * Setup actions. Once for all products.
56 */
57 private function setup_actions() {
58
59 if ( apply_filters( 'themeisle_sdk_script_setup', false ) ) {
60 return;
61 }
62
63 add_filter( 'themeisle_sdk_dependency_script_handler', [ $this, 'get_script_handler' ], 10, 1 );
64 add_action( 'themeisle_sdk_dependency_enqueue_script', [ $this, 'enqueue_script' ], 10, 1 );
65
66 add_filter( 'themeisle_sdk_script_setup', '__return_true' );
67 }
68
69 /**
70 * Get the script handler.
71 *
72 * @param string $slug The slug of the script.
73 *
74 * @return string The script handler. Empty if slug is not a string or not implemented.
75 */
76 public function get_script_handler( $slug ) {
77 if ( ! is_string( $slug ) ) {
78 return '';
79 }
80
81 if ( 'tracking' !== $slug && 'survey' !== $slug && 'banner' !== $slug ) {
82 return '';
83 }
84
85 return apply_filters( 'themeisle_sdk_dependency_script_handler_name', 'themeisle_sdk_' . $slug . '_script', $slug );
86 }
87
88 /**
89 * Enqueue the script.
90 *
91 * @param string $slug The slug of the script.
92 */
93 public function enqueue_script( $slug ) {
94 $handler = apply_filters( 'themeisle_sdk_dependency_script_handler', $slug );
95 if ( empty( $handler ) ) {
96 return;
97 }
98
99 if ( 'tracking' === $slug ) {
100 $this->load_tracking( $handler );
101 } elseif ( 'survey' === $slug ) {
102 $this->load_survey( $handler );
103 } elseif ( 'banner' === $slug ) {
104 $this->load_banner( $handler );
105 }
106 }
107
108 /**
109 * Load the survey script.
110 *
111 * @param string $handler The script handler.
112 *
113 * @return void
114 */
115 public function load_survey( $handler ) {
116 global $themeisle_sdk_max_path;
117 $asset_file = require $themeisle_sdk_max_path . '/assets/js/build/survey/survey_deps.asset.php';
118
119 wp_enqueue_script(
120 $handler,
121 $this->get_sdk_uri() . 'assets/js/build/survey/survey_deps.js',
122 $asset_file['dependencies'],
123 $asset_file['version'],
124 true
125 );
126
127 $language = get_user_locale();
128 $available_languages = [
129 'de_DE' => 'de',
130 'de_DE_formal' => 'de',
131 ];
132 $lang_code = isset( $available_languages[ $language ] ) ? $available_languages[ $language ] : 'en';
133
134 wp_localize_script( $handler, 'tsdk_survey_attrs', [ 'language' => $lang_code ] );
135 }
136
137 /**
138 * Load the tracking script.
139 *
140 * @param string $handler The script handler.
141 *
142 * @return void
143 */
144 public function load_tracking( $handler ) {
145 global $themeisle_sdk_max_path;
146 $asset_file = require $themeisle_sdk_max_path . '/assets/js/build/tracking/tracking.asset.php';
147
148 wp_enqueue_script(
149 $handler,
150 $this->get_sdk_uri() . 'assets/js/build/tracking/tracking.js',
151 $asset_file['dependencies'],
152 $asset_file['version'],
153 true
154 );
155 }
156
157 /**
158 * Load the banner script.
159 *
160 * @param string $handler The script handler.
161 *
162 * @return void
163 */
164 public function load_banner( $handler ) {
165 global $themeisle_sdk_max_path;
166 $asset_file = require $themeisle_sdk_max_path . '/assets/js/build/banner/banner.asset.php';
167
168 wp_enqueue_script(
169 $handler,
170 $this->get_sdk_uri() . 'assets/js/build/banner/banner.js',
171 $asset_file['dependencies'],
172 $asset_file['version'],
173 true
174 );
175
176 wp_enqueue_style(
177 $handler . '_style',
178 $this->get_sdk_uri() . 'assets/css/banner.css',
179 [],
180 $asset_file['version']
181 );
182 }
183 }
184