PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 7.0.1
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v7.0.1
7.9.3 7.9.2 trunk 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.2.0 4.2.1 4.2.2 4.2.3 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 6.0.0 7.0.0 7.0.1 7.0.2 7.1.0 7.2.0 7.2.1 7.2.10 7.2.11 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 7.2.9 7.3.0 7.3.1 7.4.0 7.4.1 7.4.2 7.4.3 7.5.0 7.6.0 7.6.1 7.7.0 7.7.1 7.7.10 7.7.11 7.7.12 7.7.13 7.7.14 7.7.15 7.7.16 7.7.17 7.7.18 7.7.19 7.7.2 7.7.20 7.7.21 7.7.22 7.7.3 7.7.4 7.7.5 7.7.6 7.7.7 7.7.8 7.7.9 7.8.0 7.8.1 7.8.2 7.8.3 7.8.4 7.8.5 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1
the-post-grid / app / Controllers / ScriptController.php
the-post-grid / app / Controllers Last commit date
Admin 3 years ago Api 3 years ago Blocks 3 years ago Hooks 3 years ago AjaxController.php 3 years ago BlocksController.php 3 years ago ElementorController.php 3 years ago GutenBergController.php 3 years ago PageTemplateController.php 3 years ago ScriptController.php 3 years ago ShortcodeController.php 3 years ago WidgetController.php 3 years ago
ScriptController.php
359 lines
1 <?php
2 /**
3 * Script Controller class.
4 *
5 * @package RT_TPG
6 */
7
8 namespace RT\ThePostGrid\Controllers;
9
10 // Do not allow directly accessing this file.
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit( 'This script cannot be accessed directly.' );
13 }
14
15 /**
16 * Script Controller class.
17 */
18 class ScriptController {
19 /**
20 * Version
21 *
22 * @var string
23 */
24 private $version;
25
26 /**
27 * Settings
28 *
29 * @var array
30 */
31 private $settings;
32
33 /**
34 * Class construct
35 */
36 public function __construct() {
37 $this->version = defined( 'WP_DEBUG' ) && WP_DEBUG ? time() : RT_THE_POST_GRID_VERSION;
38 add_action( 'wp_head', [ $this, 'header_scripts' ] );
39 add_action( 'wp_enqueue_scripts', [ $this, 'enqueue' ] );
40 add_action( 'init', [ $this, 'init' ] );
41 }
42
43 /**
44 * Init
45 *
46 * @return void
47 */
48 public function init() {
49 $this->settings = get_option( rtTPG()->options['settings'] );
50 $current_page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
51
52 if ( 'rttpg_settings' === $current_page ) {
53 wp_enqueue_style( 'wp-color-picker' );
54 wp_enqueue_script( 'wp-color-picker' );
55 }
56
57 // register scripts.
58 $scripts = [];
59 $styles = [];
60
61 $scripts[] = [
62 'handle' => 'rt-isotope-js',
63 'src' => rtTPG()->get_assets_uri( 'vendor/isotope/isotope.pkgd.min.js' ),
64 'deps' => [ 'jquery' ],
65 'footer' => true,
66 ];
67
68 $scripts[] = [
69 'handle' => 'rt-tpg',
70 'src' => rtTPG()->get_assets_uri( 'js/rttpg.js' ),
71 'deps' => [ 'jquery' ],
72 'footer' => true,
73 ];
74
75 // register acf styles.
76 $styles['rt-fontawsome'] = rtTPG()->get_assets_uri( 'vendor/font-awesome/css/font-awesome.min.css' );
77
78 // Plugin specific css.
79 $styles['rt-tpg'] = rtTPG()->tpg_can_be_rtl( 'css/thepostgrid' );
80 $styles['rt-tpg-block'] = rtTPG()->tpg_can_be_rtl( 'css/tpg-block' );
81 $styles['rt-tpg-shortcode'] = rtTPG()->tpg_can_be_rtl( 'css/tpg-shortcode' );
82
83 if ( is_admin() ) {
84 $scripts[] = [
85 'handle' => 'rt-select2',
86 'src' => rtTPG()->get_assets_uri( 'vendor/select2/select2.min.js' ),
87 'deps' => [ 'jquery' ],
88 'footer' => false,
89 ];
90 $scripts[] = [
91 'handle' => 'rt-tpg-admin',
92 'src' => rtTPG()->get_assets_uri( 'js/admin.js' ),
93 'deps' => [ 'jquery', 'wp-color-picker','jquery-ui-sortable' ],
94 'footer' => true,
95 ];
96 $scripts[] = [
97 'handle' => 'rt-tpg-admin-preview',
98 'src' => rtTPG()->get_assets_uri( 'js/admin-preview.js' ),
99 'deps' => [ 'jquery' ],
100 'footer' => true,
101 ];
102
103 $styles['rt-select2'] = rtTPG()->get_assets_uri( 'vendor/select2/select2.min.css' );
104 $styles['rt-tpg-admin'] = rtTPG()->get_assets_uri( 'css/admin/admin.css' );
105 $styles['rt-tpg-admin-preview'] = rtTPG()->get_assets_uri( 'css/admin/admin-preview.css' );
106 }
107
108 foreach ( $scripts as $script ) {
109 wp_register_script( $script['handle'], $script['src'], $script['deps'], isset( $script['version'] ) ? $script['version'] : $this->version, $script['footer'] );
110 }
111
112 foreach ( $styles as $k => $v ) {
113 wp_register_style( $k, $v, false, isset( $script['version'] ) ? $script['version'] : $this->version );
114 }
115 }
116
117 /**
118 * Enqueue scripts.
119 *
120 * @return void
121 */
122 public function enqueue() {
123 $block_type = isset( $this->settings['tpg_block_type'] ) ? $this->settings['tpg_block_type'] : 'default';
124 wp_enqueue_script( 'jquery' );
125
126 if ( ! isset( $this->settings['tpg_load_script'] ) ) {
127 wp_enqueue_style( 'rt-fontawsome' );
128
129 if ( 'default' === $block_type ) {
130 wp_enqueue_style( 'rt-tpg' );
131 }
132
133 if ( 'elementor' === $block_type ) {
134 wp_enqueue_style( 'rt-tpg-block' );
135 }
136
137 if ( 'shortcode' === $block_type ) {
138 wp_enqueue_style( 'rt-tpg-shortcode' );
139 }
140 }
141
142 $scriptBefore = isset( $this->settings['script_before_item_load'] ) ? stripslashes( $this->settings['script_before_item_load'] ) : null;
143 $scriptAfter = isset( $this->settings['script_after_item_load'] ) ? stripslashes( $this->settings['script_after_item_load'] ) : null;
144 $scriptLoaded = isset( $this->settings['script_loaded'] ) ? stripslashes( $this->settings['script_loaded'] ) : null;
145
146 $script = "(function($){
147 $('.rt-tpg-container').on('tpg_item_before_load', function(){{$scriptBefore}});
148 $('.rt-tpg-container').on('tpg_item_after_load', function(){{$scriptAfter}});
149 $('.rt-tpg-container').on('tpg_loaded', function(){{$scriptLoaded}});
150 })(jQuery);";
151 wp_add_inline_script( 'rt-tpg', $script );
152 }
153
154 /**
155 * Header Scripts
156 *
157 * @return void
158 */
159 public function header_scripts() {
160
161 $tpg_logo = RT_THE_POST_GRID_PLUGIN_URL;
162
163 ?>
164
165 <script>
166
167 jQuery( window ).on( 'elementor/frontend/init', function () {
168 var previewIframe = jQuery('#elementor-preview-iframe').get(0);
169
170 // Attach a load event listener to the preview iframe
171 jQuery(previewIframe).on('load', function() {
172 var tpg_selector = tpg_str_rev("nottub-tropmi-gpttr nottub-aera-noitces-dda-rotnemele");
173
174 var logo = "<?php echo esc_html($tpg_logo); ?>";
175 var log_path = tpg_str_rev("gvs.04x04-noci/segami/stessa/");
176
177
178
179 jQuery('<div class="'+tpg_selector+'" style="vertical-align: bottom;margin-left: 5px;"><img src="'+logo+log_path+'" alt="TPG"/></div>').insertBefore(".elementor-add-section-drag-title");
180
181 });
182
183
184 /*
185 if ( elementorFrontend.isEditMode() ) {
186 elementorFrontend.hooks.addAction( 'elementor/frontend/init, function () {
187 var tpg_selector = tpg_str_rev("nottub-tropmi-gpttr nottub-aera-noitces-dda-rotnemele");
188
189 var logo = "<?php echo esc_html($tpg_logo); ?>";
190 var log_path = tpg_str_rev("gvs.04x04-noci/segami/stessa/");
191 console.log(logo+log_path)
192 jQuery('<div class="'+tpg_selector+'" style="vertical-align: bottom;margin-left: 5px;"><img src="'+logo+log_path+'" alt="TPG"/></div>').insertBefore(".elementor-add-section-drag-title");
193
194
195 } );
196 }
197 */
198
199 } );
200 </script>
201 <style>
202 :root {
203 --tpg-primary-color: <?php echo isset( $this->settings['tpg_primary_color_main'] ) ? sanitize_hex_color( $this->settings['tpg_primary_color_main'] ) : '#0d6efd'; ?>;
204 --tpg-secondary-color: <?php echo isset( $this->settings['tpg_secondary_color_main'] ) ? sanitize_hex_color( $this->settings['tpg_secondary_color_main'] ) : '#0654c4'; ?>;
205 --tpg-primary-light: #c4d0ff
206 }
207
208 <?php if ( isset( $this->settings['tpg_loader_color'] ) ) : ?>
209 body .rt-tpg-container .rt-loading,
210 body #bottom-script-loader .rt-ball-clip-rotate {
211 color: <?php echo sanitize_hex_color( $this->settings['tpg_loader_color'] ); ?> !important;
212 }
213
214 <?php endif; ?>
215 </style>
216
217 <?php
218 if ( isset( $this->settings['tpg_load_script'] ) ) :
219 ?>
220 <style>
221 .rt-container-fluid {
222 position: relative;
223 }
224
225 .rt-tpg-container .tpg-pre-loader {
226 position: relative;
227 overflow: hidden;
228 }
229
230 .rt-tpg-container .rt-loading-overlay {
231 opacity: 0;
232 visibility: hidden;
233 position: absolute;
234 top: 0;
235 left: 0;
236 width: 100%;
237 height: 100%;
238 z-index: 1;
239 background-color: #fff;
240 }
241
242 .rt-tpg-container .rt-loading {
243 color: var(--tpg-primary-color);
244 position: absolute;
245 top: 40%;
246 left: 50%;
247 margin-left: -16px;
248 z-index: 2;
249 opacity: 0;
250 visibility: hidden;
251 }
252
253 .rt-tpg-container .tpg-pre-loader .rt-loading-overlay {
254 opacity: 0.8;
255 visibility: visible;
256 }
257
258 .tpg-carousel-main .tpg-pre-loader .rt-loading-overlay {
259 opacity: 1;
260 }
261
262 .rt-tpg-container .tpg-pre-loader .rt-loading {
263 opacity: 1;
264 visibility: visible;
265 }
266
267
268 #bottom-script-loader {
269 position: absolute;
270 width: calc(100% + 60px);
271 height: calc(100% + 60px);
272 z-index: 999;
273 background: rgba(255, 255, 255, 0.95);
274 margin: -30px;
275 }
276
277 #bottom-script-loader .rt-ball-clip-rotate {
278 color: var(--tpg-primary-color);
279 position: absolute;
280 top: 80px;
281 left: 50%;
282 margin-left: -16px;
283 z-index: 2;
284 }
285
286 .tpg-el-main-wrapper.loading {
287 min-height: 300px;
288 transition: 0.4s;
289 }
290
291 .tpg-el-main-wrapper.loading::before {
292 width: 32px;
293 height: 32px;
294 display: inline-block;
295 float: none;
296 border: 2px solid currentColor;
297 background: transparent;
298 border-bottom-color: transparent;
299 border-radius: 100%;
300 -webkit-animation: ball-clip-rotate 0.75s linear infinite;
301 -moz-animation: ball-clip-rotate 0.75s linear infinite;
302 -o-animation: ball-clip-rotate 0.75s linear infinite;
303 animation: ball-clip-rotate 0.75s linear infinite;
304 left: 50%;
305 top: 50%;
306 position: absolute;
307 z-index: 9999999999;
308 color: red;
309 }
310
311
312 .rt-tpg-container .slider-main-wrapper,
313 .tpg-el-main-wrapper .slider-main-wrapper {
314 opacity: 0;
315 }
316
317 .md-modal {
318 visibility: hidden;
319 }
320 .md-modal.md-show {
321 visibility: visible;
322 }
323
324 .builder-content.content-invisible {
325 visibility: hidden;
326 }
327
328 .rt-tpg-container > *:not(.bottom-script-loader, .slider-main-wrapper) {
329 opacity: 0;
330 }
331
332 .rt-popup-content .rt-tpg-container > *:not(.bottom-script-loader, .slider-main-wrapper) {
333 opacity: 1;
334 }
335
336 </style>
337
338 <script>
339 jQuery( document ).ready( function () {
340 setTimeout( function () {
341 jQuery( '.rt-tpg-container > *:not(.bottom-script-loader, .slider-main-wrapper)' ).animate( { "opacity": 1 } );
342 }, 100 );
343 } );
344
345 jQuery( window ).on( 'elementor/frontend/init', function () {
346 if ( elementorFrontend.isEditMode() ) {
347 elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', function () {
348 jQuery( '.rt-tpg-container > *:not(.bottom-script-loader, .slider-main-wrapper)' ).animate( { "opacity": 1 } );
349 } );
350 }
351 } );
352 </script>
353 <?php
354 endif;
355
356 }
357
358 }
359