PluginProbe
Panorama – Turn Photos into Immersive Virtual Tours / trunk
Panorama – Turn Photos into Immersive Virtual Tours vtrunk
1.8.0 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.1 trunk 1.0.0 1.0.1 1.0.10 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.1.3 1.1.4 1.1.5 1.1.6 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 All 38 releases
panorama / inc / Base / EnqueueAssets.php

EnqueueAssets.php in Panorama – Turn Photos into Immersive Virtual Tours trunk, at inc/Base/EnqueueAssets.php

144 lines 7.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace BPPIV\Base;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 class EnqueueAssets{
9
10 public function register(){
11 add_action('enqueue_block_assets', [$this, 'bppiv_registerFrontEndAssets']);
12 add_action('admin_enqueue_scripts', [$this, 'bppiv_registerBackendAssets']);
13 add_action('admin_enqueue_scripts', [$this, 'bppiv_registerFrontEndAssets']);
14 add_action('admin_enqueue_scripts', [$this, 'printAnalyticsEditorData'], 1);
15 add_action('enqueue_block_editor_assets', [$this, 'printAnalyticsEditorData'], 1);
16 add_action('wp_head', [$this, 'printAnalyticsFrontendData'], 1);
17 }
18
19 public function printAnalyticsEditorData() {
20 $analytics_data = [
21 'endpoint' => esc_url_raw(rest_url('bppiv/v1/track-analytics')),
22 'enabled' => true,
23 'isWcActive' => class_exists('WooCommerce'),
24 ];
25 wp_register_script('bppiv-editor-analytics-data', '', [], BPPIV_VERSION, false);
26 wp_enqueue_script('bppiv-editor-analytics-data');
27 wp_add_inline_script('bppiv-editor-analytics-data', 'window.bppivAnalyticsData = ' . wp_json_encode($analytics_data) . '; window.bppivEditorData = ' . wp_json_encode($analytics_data) . ';', 'before');
28 }
29
30 public function printAnalyticsFrontendData() {
31 if (is_admin()) {
32 return;
33 }
34 $analytics_data = [
35 'endpoint' => esc_url_raw(rest_url('bppiv/v1/track-analytics')),
36 'enabled' => true,
37 'isWcActive' => class_exists('WooCommerce'),
38 ];
39 echo "<script id='bppiv-analytics-data-js'>window.bppivAnalyticsData = " . wp_json_encode($analytics_data) . ";</script>\n";
40 }
41
42 public function bppiv_registerFrontEndAssets(){
43 wp_register_script( 'bppiv-three', BPPIV_PLUGIN_DIR . 'public/assets/js/three.min.js',[], BPPIV_VERSION, true);
44 wp_register_script( 'bppiv-panolens', BPPIV_PLUGIN_DIR . 'public/assets/js/panolens.min.js', array( 'bppiv-three' ), BPPIV_VERSION, true );
45
46 //videojs
47 wp_register_script( 'videojs', BPPIV_PLUGIN_DIR . 'public/assets/js/lib/video.min.js', [], BPPIV_VERSION, true );
48 wp_register_script( 'videojs-vr', BPPIV_PLUGIN_DIR . 'public/assets/js/lib/videojs-vr.min.js', array( 'videojs' ), BPPIV_VERSION, true );
49 wp_register_script( 'videojs-init', BPPIV_PLUGIN_DIR . 'build/videojs-init.js', array( 'videojs', 'videojs-vr' ), BPPIV_VERSION, true );
50 wp_register_style( 'videojs', BPPIV_PLUGIN_DIR . 'public/assets/css/lib/video-js.min.css', [], BPPIV_VERSION, 'all' );
51 wp_register_style( 'videojs-vr', BPPIV_PLUGIN_DIR . 'public/assets/css/lib/videojs-vr.css', array( 'videojs' ), BPPIV_VERSION, 'all' );
52
53
54 //Pannellum
55 wp_register_script( 'bppiv-pannellum-js', BPPIV_PLUGIN_DIR . 'public/assets/js/library/pannellum.js', [], file_exists(BPPIV_PATH . 'public/assets/js/library/pannellum.js') ? filemtime(BPPIV_PATH . 'public/assets/js/library/pannellum.js') : BPPIV_VERSION, true);
56 wp_register_script( 'bppiv-init', BPPIV_PLUGIN_DIR . 'build/scripts.js', array( 'jquery', 'bppiv-three', 'bppiv-panolens' ), BPPIV_VERSION, true );
57
58 wp_register_script( 'bppiv-product', BPPIV_PLUGIN_DIR . 'public/assets/js/product.js', array(), BPPIV_VERSION, true );
59 wp_register_style( 'bppiv-product', BPPIV_PLUGIN_DIR . 'public/assets/css/product.css', array(), BPPIV_VERSION, 'all' );
60
61 //Pannellum CSS
62 wp_register_style( 'bppiv-pannellum-css', BPPIV_PLUGIN_DIR . 'public/assets/css/library/pannellum.min.css', [], '2.5.6' );
63
64 // style
65 wp_register_style( 'bppiv-font-material', 'https://fonts.googleapis.com/icon?family=Material+Icons', [], BPPIV_VERSION );
66 wp_register_style( 'bppiv-main-style', BPPIV_PLUGIN_DIR . 'public/assets/css/style.css', [], BPPIV_VERSION );
67
68 $analytics_data = [
69 'endpoint' => esc_url_raw(rest_url('bppiv/v1/track-analytics')),
70 'enabled' => true,
71 ];
72 $handles = ['bppiv-init', 'bppiv-product', 'panorama-virtual-tour-view-script', 'panorama-image-360-view-script', 'panorama-tour-view-script'];
73 foreach ($handles as $h) {
74 wp_localize_script($h, 'bppivAnalyticsData', $analytics_data);
75 }
76 }
77
78 public function bppiv_registerBackendAssets($screen){
79 $current = function_exists('get_current_screen') ? get_current_screen() : null;
80 $post_type = $current && isset($current->post_type) ? $current->post_type : '';
81 $screen_id = $current && isset($current->id) ? $current->id : '';
82 $is_bppiv_screen = ($post_type === 'bppiv-image-viewer') || ($post_type === 'product') || ($screen_id === 'bppiv-image-viewer_page_bppiv-support');
83
84 if ( $is_bppiv_screen ) {
85 wp_register_style( 'bppiv-custom-style', BPPIV_PLUGIN_DIR . 'public/assets/css/admin-style.css',[], BPPIV_VERSION );
86 wp_enqueue_style( 'bppiv-custom-style' );
87
88 // Script
89 wp_register_script( 'bppiv-admin-script', BPPIV_PLUGIN_DIR . 'public/assets/js/admin-scripts.js', ['jquery'], BPPIV_VERSION, true );
90 wp_enqueue_script( 'bppiv-admin-script' );
91
92 wp_register_style( 'bppiv-readonly', BPPIV_PLUGIN_DIR . 'public/assets/css/readonly.css', [], BPPIV_VERSION );
93
94 // classic editor preview (only for our CPT)
95 wp_enqueue_script( 'classic-editor-preview', BPPIV_PLUGIN_DIR . 'build/classic-editor-preview.js', ['react', 'react-dom'], BPPIV_VERSION, true );
96
97 // meta fields
98 wp_register_script( 'bppiv-meta', BPPIV_PLUGIN_DIR . 'build/custom-codestar.js', ['jquery', 'wp-compose', 'lodash'], BPPIV_VERSION, true );
99 wp_register_style( 'bppiv-meta', BPPIV_PLUGIN_DIR . 'build/custom-codestar.css', [], BPPIV_VERSION, 'all' );
100
101 global $post;
102 if ($screen === 'post.php' || $screen === 'post-new.php') {
103 if (isset($post) && $post->post_type === 'bppiv-image-viewer') {
104 wp_add_inline_script('jquery-core', "
105 function bppiv_copy_to_clipboard(text) {
106 if (navigator.clipboard && window.isSecureContext) {
107 return navigator.clipboard.writeText(text);
108 } else {
109 var textArea = document.createElement('textarea');
110 textArea.value = text;
111 textArea.style.position = 'fixed';
112 textArea.style.left = '-9999px';
113 textArea.style.top = '0';
114 document.body.appendChild(textArea);
115 textArea.focus();
116 textArea.select();
117 var successful = document.execCommand('copy');
118 document.body.removeChild(textArea);
119 return successful ? Promise.resolve() : Promise.reject();
120 }
121 }
122
123 document.addEventListener('click', function(e){
124 var el = e.target.closest('.shortcode_copy');
125 if(!el) return;
126
127 bppiv_copy_to_clipboard(el.dataset.code).then(function(){
128 var original = el.innerHTML;
129 el.innerHTML = 'Copied!';
130 setTimeout(function(){
131 el.innerHTML = original;
132 }, 1000);
133 });
134 });
135 ");
136 }
137 }
138 }
139 }
140 }
141
142
143
144