Version Description
(15-06-2022) = * Update: Plugin Code restructured. * Update: Improvement on tour creation tabs. * New: Welcome page. * New: Guided Tour. * Tweak: Global Preview button. * Fix: Conflict with Divi Page Builder.
Download this release
Release Info
Developer | rextheme |
Plugin | ![]() |
Version | 8.0.0 |
Comparing to | |
See all releases |
Code changes from version 7.3.11 to 8.0.0
- README.md +1 -0
- README.txt +35 -25
- admin/class-wpvr-admin-pages.php +0 -38
- admin/class-wpvr-admin.php +209 -2733
- admin/class-wpvr-ajax.php +0 -1720
- admin/class-wpvr-icon.php +0 -1018
- admin/class-wpvr-rollback.php +0 -181
- admin/classes/class-setup-meta-box.php +206 -0
- admin/classes/class-tour-preview-meta-box.php +699 -0
- admin/classes/class-wpvr-admin-pages.php +129 -0
- admin/classes/class-wpvr-advanced-control.php +58 -0
- admin/classes/class-wpvr-ajax.php +211 -0
- admin/classes/class-wpvr-basic-setting.php +66 -0
- admin/classes/class-wpvr-control-button.php +58 -0
- admin/classes/class-wpvr-general.php +111 -0
- admin/classes/class-wpvr-hotspot.php +199 -0
- admin/classes/class-wpvr-meta-field.php +2563 -0
- admin/classes/class-wpvr-post-type.php +172 -0
- admin/classes/class-wpvr-scene.php +1772 -0
- admin/classes/class-wpvr-shortcode.php +58 -0
- admin/classes/class-wpvr-streetview.php +53 -0
- admin/classes/class-wpvr-video.php +178 -0
- admin/css/wpvr-admin.css +97 -25
- admin/css/wpvr-admin2.css +526 -0
- admin/fonts/Roboto-Bold.woff +0 -0
- admin/fonts/Roboto-Bold.woff2 +0 -0
- admin/fonts/Roboto-Medium.woff +0 -0
- admin/fonts/Roboto-Medium.woff2 +0 -0
- admin/fonts/Roboto-Regular.woff +0 -0
- admin/fonts/Roboto-Regular.woff2 +0 -0
- admin/helpers/class-wpvr-format.php +1350 -0
- admin/helpers/class-wpvr-validator.php +589 -0
- admin/icon/360-camera.svg +7 -0
- admin/icon/360-view.svg +9 -0
- admin/icon/3d-view.svg +7 -0
- admin/icon/arrow-return.svg +3 -0
- admin/icon/arrow-right-blue.svg +3 -0
- admin/icon/background-audio.svg +4 -0
- admin/icon/cart-lift.png +0 -0
- admin/icon/contact-form.svg +7 -0
- admin/icon/control-button.svg +7 -0
- admin/icon/explainer-video.svg +6 -0
- admin/icon/feature-cta-bg.jpg +0 -0
- admin/icon/feature-settings-cta-bg.jpg +0 -0
- admin/icon/gyroscope.svg +6 -0
- admin/icon/hotspot.svg +7 -0
- admin/icon/scene-gallery.svg +16 -0
- admin/icon/smartphone.svg +4 -0
- admin/icon/street-view.svg +5 -0
- admin/icon/vr-hero-video-shape.svg +5 -0
- admin/icon/vr-video-poster.png +0 -0
- admin/icon/woocommerce.svg +6 -0
- admin/icon/youtube-play-icon.svg +4 -0
- admin/js/wpvr-admin.js +168 -200
- admin/js/wpvr-global.js +8 -0
- admin/js/wpvr-shortcode.js +64 -0
- admin/js/wpvr-tour-guide.js +554 -0
- admin/lib/pannellum/src/js/pannellum.js +1 -0
- admin/lib/shepherd/css/shepherd-theme-arrows-plain-buttons.css +215 -0
- admin/lib/shepherd/css/wpvr-tour-guide.min.css +202 -0
- admin/lib/shepherd/tether-shepherd/LICENSE +8 -0
- admin/lib/shepherd/tether-shepherd/shepherd.js +745 -0
- admin/lib/shepherd/tether-shepherd/shepherd.min.js +1 -0
- admin/lib/shepherd/tether-shepherd/tether.js +1443 -0
- admin/lib/shepherd/tether/LICENSE +8 -0
- admin/lib/shepherd/tether/tether.js +1820 -0
- admin/lib/shepherd/tether/tether.min.js +1 -0
- admin/partials/wpvr-admin-display.php +1 -1
- admin/partials/wpvr-meta-box-builder-display.php +0 -614
- admin/partials/wpvr-meta-box-shortcode-display.php +0 -27
- admin/partials/wpvr_confirmation_alert.php +77 -22
- admin/partials/wpvr_documentation.php +35 -29
- admin/partials/wpvr_setup_wizard.php +233 -0
- admin/partials/wpvr_streetview_confirmation_alert.php +0 -20
- admin/scss/_welcome-page.scss +594 -0
- admin/scss/style.scss +1 -0
- admin/views/class-wpvr-meta-box.php +36 -0
- admin/views/class-wpvr-singleton.php +113 -0
- admin/views/class-wpvr-tour-setting.php +24 -0
- build/index.build.js +1 -1
- elementor/elementor.php +1 -5
- elementor/elements/Wpvr-widget.php +17 -29
- includes/class-wpvr-activator.php +6 -6
- includes/class-wpvr-deactivator.php +5 -5
- includes/class-wpvr-i18n.php +2 -2
- includes/class-wpvr-loader.php +2 -2
- includes/class-wpvr.php +64 -115
- languages/wpvr.pot +292 -292
- public/class-wpvr-public.php +82 -510
README.md
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
# wpvr-free-restructure
|
README.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
=== WP VR - 360 Panorama and Virtual Tour Builder For WordPress ===
|
2 |
Contributors: rextheme, coderexco
|
3 |
-
Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google
|
4 |
Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 6.0
|
7 |
Requires PHP: 7.0.0
|
8 |
-
Stable tag:
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -37,7 +37,7 @@ On top of that, you can customize the tour further using auto-rotation effect, s
|
|
37 |
|
38 |
You may also use interactive hotspots to display information and keep your viewers engaged.
|
39 |
|
40 |
-
The best part of this plugin is
|
41 |
|
42 |
Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
|
43 |
|
@@ -68,13 +68,13 @@ Also, you will get over 900+ custom icons for hotspots which you can further cus
|
|
68 |
|
69 |
**A Simple Tool For 360 Experience**
|
70 |
|
71 |
-
Whether you run a travel blog
|
72 |
|
73 |
And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
|
74 |
|
75 |
**A Functional 360 Video Viewer**
|
76 |
|
77 |
-
When you have a 360 camera, you will be able to capture 360 degree apartment videos
|
78 |
|
79 |
Once you embed the 360 degree videos on your site, your visitors can navigate within the video, while it plays.
|
80 |
|
@@ -82,7 +82,7 @@ You may upload your 360 video content to Youtube, Vimeo, or your website, and th
|
|
82 |
|
83 |
**Embed Virtual Tours In Just A Few Clicks**
|
84 |
|
85 |
-
Once you create a tour, it
|
86 |
|
87 |
Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
|
88 |
|
@@ -92,11 +92,11 @@ If you use any other page builder, you can still publish the tour by using a sho
|
|
92 |
|
93 |
**Use High Quality Images Without WordPress Restriction**
|
94 |
|
95 |
-
A good quality 360 panorama usually comes with very high resolution that can easily go over 3000 x 1500 pixels.
|
96 |
|
97 |
However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
|
98 |
|
99 |
-
WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more
|
100 |
|
101 |
**Mobile First VR Approach**
|
102 |
|
@@ -137,11 +137,11 @@ To have more control over creating a virtual tour, learn about the [Premium vers
|
|
137 |
* Tour Autoload Feature.
|
138 |
* Scene Fade Animation.
|
139 |
* Auto Rotation with Speed Control.
|
140 |
-
* Auto Rotation Direction, Pause
|
141 |
* Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
|
142 |
* Mouse Drag Control on Virtual Tour.
|
143 |
* Zoom In and Out with Mouse Scroll on Virtual Tour.
|
144 |
-
* Zoom In and Out with
|
145 |
* Add Multiple Scenes and Hotspots.
|
146 |
* Scene Type Hotspot to Connect Scenes.
|
147 |
* Info Type Hotspots to Give Information.
|
@@ -184,12 +184,12 @@ To have more control over creating a virtual tour, learn about the [Premium vers
|
|
184 |
* Disable or Enable Mouse Drag Control.
|
185 |
* Disable or Enable Mouse Scroll Zoom.
|
186 |
* Fluent Forms Integration on Hotspots.
|
187 |
-
* Fill
|
188 |
* WooCommerce Product Integration on Hotspots.
|
189 |
* Add To Cart Feature for WooCommerce Products on Hotspots.
|
190 |
* Advanced Control Buttons (Move Up, Down, Left, & Right).
|
191 |
-
* Customize Icons of Each Control Button (900+ Premium Icons).
|
192 |
-
* Customize Colors of Each Control Button (RGB, HSL, & HEX).
|
193 |
* Enable or Disable Each Control Button.
|
194 |
* Custom Default Scene Face for Each Scene.
|
195 |
* Default Scene Face For Target Scene.
|
@@ -218,7 +218,7 @@ To have more control over creating a virtual tour, learn about the [Premium vers
|
|
218 |
- Background Tour.
|
219 |
|
220 |
## Privacy Policy
|
221 |
-
WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
|
222 |
|
223 |
Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
|
224 |
|
@@ -276,25 +276,27 @@ If the Enable Script Control option is turned On, turn it off and reload the tou
|
|
276 |
|
277 |
If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
|
278 |
|
279 |
-
=9. What To Do If I Get
|
280 |
|
281 |
-
Sometimes when you add a tour
|
282 |
|
283 |
-
This error shows up when you are running a website under
|
284 |
|
285 |
-
To solve this issue, go to your WordPress Dashboard > Settings > General.
|
|
|
|
|
286 |
|
287 |
=10. Can I make The Virtual Tour Full-width?=
|
288 |
|
289 |
Yes, you can publish the tours as full-width of your page/post.
|
290 |
|
291 |
-
For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width =
|
292 |
|
293 |
=11. What If I Use An Optimization or Caching Plugin?=
|
294 |
|
295 |
If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
|
296 |
|
297 |
-
Simply add
|
298 |
|
299 |
=12. Can I Allow The Users of My Site To Create Virtual Tours?=
|
300 |
|
@@ -324,6 +326,14 @@ Admins can remove the access from Authors and Editors at any time.
|
|
324 |
== Changelog ==
|
325 |
|
326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
= 7.3.11 (03-06-2022) =
|
328 |
* Fix: URL Redirect Issue while Publishing Tour
|
329 |
|
@@ -334,15 +344,14 @@ Admins can remove the access from Authors and Editors at any time.
|
|
334 |
* New: WYSIWYG Editor Integration for Hotspot Content
|
335 |
* New: Close On-click windows on any click.
|
336 |
|
337 |
-
|
338 |
= 7.3.8 (25-05-2022) =
|
339 |
* Update: Checked compatibility with WordPress 6.0.
|
340 |
* Update: Get Started page content updated.
|
341 |
* New: Updated support for Elementor function register_controls().
|
342 |
* Fix: Loading wrong tabs on tour editing mode.
|
343 |
-
* Fix: Radius not working for self-hosted video tours
|
344 |
-
* Fix: Radius not working for self-hosted video tours
|
345 |
-
* Fix: Radius not working for self-hosted video tours
|
346 |
|
347 |
= 7.3.7 (19-05-2022) =
|
348 |
* Fix: ZenCDN Removed.
|
@@ -361,6 +370,7 @@ Admins can remove the access from Authors and Editors at any time.
|
|
361 |
* Fix: PHP Warnings on Settings Page.
|
362 |
* Fix: PHP Warnings on Hotspots Page.
|
363 |
|
|
|
364 |
= 7.3.5 (27-01-2022) =
|
365 |
* Update: Checked Compatibility with WordPress 5.9.
|
366 |
* Update: Checked Compatibility with WooCommerce 6.1.1.
|
@@ -705,7 +715,7 @@ Admins can remove the access from Authors and Editors at any time.
|
|
705 |
* Custom panorama compass support.
|
706 |
* Default zoom level.
|
707 |
* Maximum and minimum zoom range.
|
708 |
-
* Customize each scene
|
709 |
* Scene grab control and custom boundary for each scene.
|
710 |
|
711 |
= 2.1.0 =
|
1 |
=== WP VR - 360 Panorama and Virtual Tour Builder For WordPress ===
|
2 |
Contributors: rextheme, coderexco
|
3 |
+
Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google street view, panoramas
|
4 |
Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 6.0
|
7 |
Requires PHP: 7.0.0
|
8 |
+
Stable tag: 8.0.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
37 |
|
38 |
You may also use interactive hotspots to display information and keep your viewers engaged.
|
39 |
|
40 |
+
The best part of this plugin is that you will get a live tour preview at the back-end so that you can see what you are creating on the go.
|
41 |
|
42 |
Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
|
43 |
|
68 |
|
69 |
**A Simple Tool For 360 Experience**
|
70 |
|
71 |
+
Whether you run a travel blog or sell properties as a realtor, a virtual tour will make your site more interactive. Even just viewing a simple scene with one 360 degree image will add extra value.
|
72 |
|
73 |
And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
|
74 |
|
75 |
**A Functional 360 Video Viewer**
|
76 |
|
77 |
+
When you have a 360 camera, you will be able to capture 360 degree apartment videos which is amazing.
|
78 |
|
79 |
Once you embed the 360 degree videos on your site, your visitors can navigate within the video, while it plays.
|
80 |
|
82 |
|
83 |
**Embed Virtual Tours In Just A Few Clicks**
|
84 |
|
85 |
+
Once you create a tour, it's really easy to embed it on your website.
|
86 |
|
87 |
Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
|
88 |
|
92 |
|
93 |
**Use High Quality Images Without WordPress Restriction**
|
94 |
|
95 |
+
A good quality 360 panorama usually comes with a very high resolution that can easily go over 3000 x 1500 pixels.
|
96 |
|
97 |
However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
|
98 |
|
99 |
+
WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more than 3000 pixels in width.
|
100 |
|
101 |
**Mobile First VR Approach**
|
102 |
|
137 |
* Tour Autoload Feature.
|
138 |
* Scene Fade Animation.
|
139 |
* Auto Rotation with Speed Control.
|
140 |
+
* Auto Rotation Direction, Pause and Stop control.
|
141 |
* Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
|
142 |
* Mouse Drag Control on Virtual Tour.
|
143 |
* Zoom In and Out with Mouse Scroll on Virtual Tour.
|
144 |
+
* Zoom In and Out with '+' and '-' keyboard buttons.
|
145 |
* Add Multiple Scenes and Hotspots.
|
146 |
* Scene Type Hotspot to Connect Scenes.
|
147 |
* Info Type Hotspots to Give Information.
|
184 |
* Disable or Enable Mouse Drag Control.
|
185 |
* Disable or Enable Mouse Scroll Zoom.
|
186 |
* Fluent Forms Integration on Hotspots.
|
187 |
+
* Fill up and Submit Booking/Contact Forms.
|
188 |
* WooCommerce Product Integration on Hotspots.
|
189 |
* Add To Cart Feature for WooCommerce Products on Hotspots.
|
190 |
* Advanced Control Buttons (Move Up, Down, Left, & Right).
|
191 |
+
* Customize the Icons of Each Control Button (900+ Premium Icons).
|
192 |
+
* Customize the Colors of Each Control Button (RGB, HSL, & HEX).
|
193 |
* Enable or Disable Each Control Button.
|
194 |
* Custom Default Scene Face for Each Scene.
|
195 |
* Default Scene Face For Target Scene.
|
218 |
- Background Tour.
|
219 |
|
220 |
## Privacy Policy
|
221 |
+
WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon the user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
|
222 |
|
223 |
Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
|
224 |
|
276 |
|
277 |
If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
|
278 |
|
279 |
+
=9. What To Do If I Get "THE FILE (image link) COULD NOT BE ACCESSED" Error?=
|
280 |
|
281 |
+
Sometimes when you add a tour to your site, you might face this issue that rather than loading the tour it will give the error "THE FILE (...) COULD NOT BE ACCESSED."
|
282 |
|
283 |
+
This error shows up when you are running a website under "HTTPS" (secured with SSL certificate) whereas your image link is under "HTTP" (unsecured).
|
284 |
|
285 |
+
To solve this issue, go to your WordPress Dashboard > Settings > General.
|
286 |
+
|
287 |
+
Here make sure you have "http" added to both "WordPress Address (URL)" and "Site Address (URL)". That's it. Your virtual tour will load with no issues.
|
288 |
|
289 |
=10. Can I make The Virtual Tour Full-width?=
|
290 |
|
291 |
Yes, you can publish the tours as full-width of your page/post.
|
292 |
|
293 |
+
For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width = "fullwidth".
|
294 |
|
295 |
=11. What If I Use An Optimization or Caching Plugin?=
|
296 |
|
297 |
If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
|
298 |
|
299 |
+
Simply add '/plugins/wpvr' to the exclusion field (or use the location where you store plugins).
|
300 |
|
301 |
=12. Can I Allow The Users of My Site To Create Virtual Tours?=
|
302 |
|
326 |
== Changelog ==
|
327 |
|
328 |
|
329 |
+
= 8.0.0 (15-06-2022) =
|
330 |
+
* Update: Plugin Code restructured.
|
331 |
+
* Update: Improvement on tour creation tabs.
|
332 |
+
* New: Welcome page.
|
333 |
+
* New: Guided Tour.
|
334 |
+
* Tweak: Global Preview button.
|
335 |
+
* Fix: Conflict with Divi Page Builder.
|
336 |
+
|
337 |
= 7.3.11 (03-06-2022) =
|
338 |
* Fix: URL Redirect Issue while Publishing Tour
|
339 |
|
344 |
* New: WYSIWYG Editor Integration for Hotspot Content
|
345 |
* New: Close On-click windows on any click.
|
346 |
|
|
|
347 |
= 7.3.8 (25-05-2022) =
|
348 |
* Update: Checked compatibility with WordPress 6.0.
|
349 |
* Update: Get Started page content updated.
|
350 |
* New: Updated support for Elementor function register_controls().
|
351 |
* Fix: Loading wrong tabs on tour editing mode.
|
352 |
+
* Fix: Radius not working for self-hosted video tours – Shortcodes.
|
353 |
+
* Fix: Radius not working for self-hosted video tours – WPVR Gutenberg Block.
|
354 |
+
* Fix: Radius not working for self-hosted video tours – WPVR Elementor Widget.
|
355 |
|
356 |
= 7.3.7 (19-05-2022) =
|
357 |
* Fix: ZenCDN Removed.
|
370 |
* Fix: PHP Warnings on Settings Page.
|
371 |
* Fix: PHP Warnings on Hotspots Page.
|
372 |
|
373 |
+
|
374 |
= 7.3.5 (27-01-2022) =
|
375 |
* Update: Checked Compatibility with WordPress 5.9.
|
376 |
* Update: Checked Compatibility with WooCommerce 6.1.1.
|
715 |
* Custom panorama compass support.
|
716 |
* Default zoom level.
|
717 |
* Maximum and minimum zoom range.
|
718 |
+
* Customize each scene's default face on load.
|
719 |
* Scene grab control and custom boundary for each scene.
|
720 |
|
721 |
= 2.1.0 =
|
admin/class-wpvr-admin-pages.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
3 |
-
/**
|
4 |
-
* The admin-specific functionality of the plugin.
|
5 |
-
*
|
6 |
-
* @link http://rextheme.com/
|
7 |
-
* @since 1.0.0
|
8 |
-
*
|
9 |
-
* @package Wpvr
|
10 |
-
* @subpackage Wpvr/admin
|
11 |
-
*/
|
12 |
-
|
13 |
-
class Wpvr_Admin_Pages {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Admin page setup is specified in this area.
|
17 |
-
*/
|
18 |
-
function wpvr_add_admin_pages() {
|
19 |
-
|
20 |
-
add_menu_page( 'WP VR', 'WP VR', 'manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'),plugins_url(). '/wpvr/images/icon.png' , 25);
|
21 |
-
|
22 |
-
add_submenu_page( 'wpvr', 'WP VR', 'Get Started','manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'));
|
23 |
-
|
24 |
-
add_submenu_page( 'wpvr', 'WP VR', 'Tours','manage_options', 'edit.php?post_type=wpvr_item', NULL);
|
25 |
-
|
26 |
-
add_submenu_page( 'wpvr', 'WP VR', 'Add New Tour','manage_options', 'post-new.php?post_type=wpvr_item', NULL);
|
27 |
-
|
28 |
-
do_action('wpvr_pro_license_page');
|
29 |
-
|
30 |
-
}
|
31 |
-
|
32 |
-
function wpvr_admin_doc() {
|
33 |
-
require_once plugin_dir_path(__FILE__) . '/partials/wpvr_documentation.php';
|
34 |
-
}
|
35 |
-
function wpvr_pro_admin_doc() {
|
36 |
-
require_once plugin_dir_path(__FILE__) . '/partials/wpvr_license.php';
|
37 |
-
}
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/class-wpvr-admin.php
CHANGED
@@ -1,12 +1,10 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
exit;
|
4 |
-
} // Exit if accessed directly
|
5 |
/**
|
6 |
* The admin-specific functionality of the plugin.
|
7 |
*
|
8 |
* @link http://rextheme.com/
|
9 |
-
* @since
|
10 |
*
|
11 |
* @package Wpvr
|
12 |
* @subpackage Wpvr/admin
|
@@ -20,76 +18,121 @@ if (! defined('ABSPATH')) {
|
|
20 |
*
|
21 |
* @package Wpvr
|
22 |
* @subpackage Wpvr/admin
|
23 |
-
* @author Rextheme <
|
24 |
*/
|
25 |
-
class Wpvr_Admin
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
/**
|
47 |
* The post type of this plugin.
|
48 |
*
|
49 |
-
* @since
|
50 |
*/
|
51 |
private $post_type;
|
52 |
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
if ($screen->id=="toplevel_page_wpvr") {
|
89 |
wp_enqueue_style('materialize-css', plugin_dir_url(__FILE__) . 'css/materialize.min.css', array(), $this->version, 'all');
|
90 |
wp_enqueue_style('materialize-icons', plugin_dir_url(__FILE__) . 'lib/materializeicon.css', array(), $this->version, 'all');
|
91 |
wp_enqueue_style('owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all');
|
92 |
-
|
93 |
wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
|
94 |
}
|
95 |
|
@@ -102,92 +145,125 @@ class Wpvr_Admin
|
|
102 |
wp_enqueue_style('videojs-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/video-js.css', array(), true);
|
103 |
wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
|
104 |
wp_enqueue_style('summernote', plugin_dir_url(__FILE__) . 'lib/summernote/summernote-lite.min.css', array(), $this->version, 'all');
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* Register the JavaScript for the admin area.
|
110 |
-
*
|
111 |
-
* @since 1.0.0
|
112 |
-
*/
|
113 |
-
public function enqueue_scripts()
|
114 |
-
{
|
115 |
-
|
116 |
-
/**
|
117 |
-
* This function is provided for demonstration purposes only.
|
118 |
-
*
|
119 |
-
* An instance of this class should be passed to the run() function
|
120 |
-
* defined in Wpvr_Loader as all of the hooks are defined
|
121 |
-
* in that particular class.
|
122 |
-
*
|
123 |
-
* The Wpvr_Loader will then create the relationship
|
124 |
-
* between the defined hooks and the functions defined in this
|
125 |
-
* class.
|
126 |
-
*/
|
127 |
-
|
128 |
-
$wpvr_list = array();
|
129 |
-
$wpvr_list[] = array('value'=>0,'label'=>'None');
|
130 |
-
$args = array(
|
131 |
-
'numberposts' => -1,
|
132 |
-
'post_type' => 'wpvr_item'
|
133 |
-
);
|
134 |
|
135 |
-
|
136 |
-
|
137 |
-
$wpvr_list[] = array('value'=>$wpvr_post->ID,'label'=>$wpvr_post->post_title);
|
138 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
-
wp_enqueue_script('wp-api');
|
141 |
-
$adscreen = get_current_screen();
|
142 |
-
// var_dump($adscreen);
|
143 |
-
// wp_die();
|
144 |
-
wp_enqueue_media();
|
145 |
-
if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
|
146 |
-
wp_enqueue_script('summernote', plugin_dir_url(__FILE__) . 'lib/summernote/summernote-lite.min.js', array('jquery'), true);
|
147 |
-
|
148 |
-
wp_enqueue_script('wpvr-icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
|
149 |
-
wp_enqueue_script('panellium-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/pannellum.js', array(), true);
|
150 |
-
wp_enqueue_script('panelliumlib-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
|
151 |
-
wp_enqueue_script('videojs-js', plugin_dir_url(__FILE__) .'js/video.js', array('jquery'), true);
|
152 |
-
wp_enqueue_script('panelliumvid-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
|
153 |
-
wp_enqueue_script('jquery-repeater', plugin_dir_url(__FILE__) .'js/jquery.repeater.min.js', array('jquery'), true);
|
154 |
-
wp_enqueue_script('icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
|
155 |
-
wp_enqueue_script('owl', plugin_dir_url(__FILE__) . 'js/owl.carousel.js', array( 'jquery' ), false);
|
156 |
-
wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, true);
|
157 |
wp_localize_script($this->plugin_name, 'wpvr_obj', array(
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
|
|
|
|
|
|
|
|
173 |
'url_info' => array(
|
174 |
'admin_url' => admin_url(),
|
175 |
'screen' => $adscreen->action,
|
176 |
'url' => $_SERVER['PHP_SELF'],
|
177 |
'param' => $_GET,
|
178 |
),
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
182 |
|
183 |
|
184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
* Plugin action links
|
186 |
*
|
187 |
-
* @param $links
|
188 |
* @return array
|
|
|
189 |
*/
|
190 |
-
public function plugin_action_links_wpvr($actions
|
191 |
{
|
192 |
$actions['get_started'] = sprintf(
|
193 |
'<a href="%s">%s</a>',
|
@@ -210,2604 +286,4 @@ class Wpvr_Admin
|
|
210 |
return $actions;
|
211 |
}
|
212 |
|
213 |
-
|
214 |
-
/**
|
215 |
-
* Init the edit screen of the plugin post type item
|
216 |
-
*
|
217 |
-
* @since 1.0.0
|
218 |
-
*/
|
219 |
-
public function wpvr_admin_init()
|
220 |
-
{
|
221 |
-
/*
|
222 |
-
* Documentation : https://developer.wordpress.org/reference/functions/add_meta_box/
|
223 |
-
*/
|
224 |
-
|
225 |
-
add_meta_box(
|
226 |
-
$this->post_type . '_builder__box',
|
227 |
-
__('Tour Preview', $this->plugin_name),
|
228 |
-
array($this, 'wpvr_display_meta_box_builder'),
|
229 |
-
$this->post_type,
|
230 |
-
'side',
|
231 |
-
'high'
|
232 |
-
);
|
233 |
-
}
|
234 |
-
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Register the custom post type
|
238 |
-
*
|
239 |
-
* @since 1.0.0
|
240 |
-
*/
|
241 |
-
public function wpvr_add_plugin_custom_post_type()
|
242 |
-
{
|
243 |
-
$labels = array(
|
244 |
-
'name' => __('Tours', $this->plugin_name),
|
245 |
-
'singular_name' => __('Tours', $this->plugin_name),
|
246 |
-
'add_new' => __('Add New Tour', $this->plugin_name),
|
247 |
-
'add_new_item' => __('Add New Tour', $this->plugin_name),
|
248 |
-
'edit_item' => __('Edit Tour', $this->plugin_name),
|
249 |
-
'new_item' => __('New Tour', $this->plugin_name),
|
250 |
-
'view_item' => __('View Tour', $this->plugin_name),
|
251 |
-
'search_items' => __('Search Wpvr Tour', $this->plugin_name),
|
252 |
-
'not_found' => __('No Wpvr Tour found', $this->plugin_name),
|
253 |
-
'not_found_in_trash'=> __('No Wpvr Tour found in Trash', $this->plugin_name),
|
254 |
-
'parent_item_colon' => '',
|
255 |
-
'all_items' => __('All Tours', $this->plugin_name),
|
256 |
-
'menu_name' => __('WP VR', $this->plugin_name),
|
257 |
-
);
|
258 |
-
|
259 |
-
$args = array(
|
260 |
-
'labels' => $labels,
|
261 |
-
'public' => false,
|
262 |
-
'show_ui' => true,
|
263 |
-
'show_in_menu' => false,
|
264 |
-
'menu_position' => 100,
|
265 |
-
'supports' => array( 'title' ),
|
266 |
-
'menu_icon' => plugins_url(). '/wpvr/images/icon.png',
|
267 |
-
'capabilities' => array(
|
268 |
-
'edit_post' => 'edit_wpvr_tour',
|
269 |
-
'edit_posts' => 'edit_wpvr_tours',
|
270 |
-
'edit_others_posts' => 'edit_other_wpvr_tours',
|
271 |
-
'publish_posts' => 'publish_wpvr_tours',
|
272 |
-
'read_post' => 'read_wpvr_tour',
|
273 |
-
'read_private_posts' => 'read_private_wpvr_tours',
|
274 |
-
'delete_post' => 'delete_wpvr_tour'
|
275 |
-
),
|
276 |
-
'map_meta_cap' => true,
|
277 |
-
);
|
278 |
-
|
279 |
-
/**
|
280 |
-
* Documentation : https://codex.wordpress.org/Function_Reference/register_post_type
|
281 |
-
*/
|
282 |
-
register_post_type($this->post_type, $args);
|
283 |
-
}
|
284 |
-
|
285 |
-
/**
|
286 |
-
* Populates the data in the custom columns
|
287 |
-
*
|
288 |
-
* @since 1.0.0
|
289 |
-
*/
|
290 |
-
public function wpvr_manage_posts_custom_column($column_name)
|
291 |
-
{
|
292 |
-
$post = get_post();
|
293 |
-
|
294 |
-
switch ($column_name) {
|
295 |
-
case 'shortcode':
|
296 |
-
echo '<code>[wpvr id="' . $post->ID . '"]</code>';
|
297 |
-
break;
|
298 |
-
default:
|
299 |
-
break;
|
300 |
-
}
|
301 |
-
}
|
302 |
-
|
303 |
-
/**
|
304 |
-
* Adds the custom columns to the post type admin screen
|
305 |
-
*
|
306 |
-
* @since 1.0.0
|
307 |
-
*/
|
308 |
-
public function wpvr_manage_post_columns()
|
309 |
-
{
|
310 |
-
$columns = array(
|
311 |
-
'cb' => '<input type="checkbox" />',
|
312 |
-
'title' => __('Title', $this->plugin_name),
|
313 |
-
'shortcode' => __('Shortcodes', $this->plugin_name),
|
314 |
-
'author' => __('Author', $this->plugin_name),
|
315 |
-
'date' => __('Date', $this->plugin_name)
|
316 |
-
);
|
317 |
-
return $columns;
|
318 |
-
}
|
319 |
-
|
320 |
-
/**
|
321 |
-
* Sets the messages for the custom post type
|
322 |
-
*
|
323 |
-
* @since 1.0.0
|
324 |
-
*/
|
325 |
-
public function wpvr_post_updated_messages($messages)
|
326 |
-
{
|
327 |
-
$messages[$this->post_type][1] = __('WP VR item updated.', $this->plugin_name);
|
328 |
-
$messages[$this->post_type][4] = __('WP VR item updated.', $this->plugin_name);
|
329 |
-
|
330 |
-
return $messages;
|
331 |
-
}
|
332 |
-
|
333 |
-
/**
|
334 |
-
* Render the shortcode box for this plugin.
|
335 |
-
*
|
336 |
-
* @since 1.0.0
|
337 |
-
*/
|
338 |
-
public function wpvr_display_meta_box_shortcode()
|
339 |
-
{
|
340 |
-
include_once('partials/wpvr-meta-box-shortcode-display.php');
|
341 |
-
}
|
342 |
-
|
343 |
-
/**
|
344 |
-
* Render the builder box for this plugin.
|
345 |
-
*
|
346 |
-
* @since 1.0.0
|
347 |
-
*/
|
348 |
-
public function wpvr_display_meta_box_builder()
|
349 |
-
{
|
350 |
-
include_once('partials/wpvr-meta-box-builder-display.php');
|
351 |
-
}
|
352 |
-
|
353 |
-
/**
|
354 |
-
* Custom Metabox
|
355 |
-
*/
|
356 |
-
public function wpvr_add_setup_metabox()
|
357 |
-
{
|
358 |
-
add_meta_box('setup', __('Setup'), array($this, 'wpvr_setup'), 'wpvr_item', 'normal', 'high');
|
359 |
-
}
|
360 |
-
public function wpvr_setup($post)
|
361 |
-
{
|
362 |
-
$data_limit = 5;
|
363 |
-
|
364 |
-
$scene_limit = $data_limit + 1;
|
365 |
-
$postdata = get_post_meta($post->ID, 'panodata', true);
|
366 |
-
|
367 |
-
|
368 |
-
$autoload = true;
|
369 |
-
if (isset($postdata["autoLoad"])) {
|
370 |
-
$autoload = $postdata["autoLoad"];
|
371 |
-
}
|
372 |
-
|
373 |
-
$control = true;
|
374 |
-
if (isset($postdata["showControls"])) {
|
375 |
-
$control = $postdata["showControls"];
|
376 |
-
}
|
377 |
-
|
378 |
-
$default_scene = '';
|
379 |
-
if (isset($postdata["defaultscene"])) {
|
380 |
-
$default_scene = $postdata["defaultscene"];
|
381 |
-
}
|
382 |
-
|
383 |
-
$preview = '';
|
384 |
-
if (isset($postdata['preview'])) {
|
385 |
-
$preview = $postdata['preview'];
|
386 |
-
}
|
387 |
-
$previewtext = '';
|
388 |
-
if (isset($postdata['previewtext'])) {
|
389 |
-
$previewtext = $postdata['previewtext'];
|
390 |
-
}
|
391 |
-
|
392 |
-
$autorotation = '';
|
393 |
-
if (isset($postdata["autoRotate"])) {
|
394 |
-
$autorotation = $postdata["autoRotate"];
|
395 |
-
} else {
|
396 |
-
$autorotation = -5;
|
397 |
-
}
|
398 |
-
$autorotationinactivedelay = '';
|
399 |
-
if (isset($postdata["autoRotateInactivityDelay"])) {
|
400 |
-
$autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
|
401 |
-
}
|
402 |
-
|
403 |
-
$autorotationstopdelay = '';
|
404 |
-
if (isset($postdata["autoRotateStopDelay"])) {
|
405 |
-
$autorotationstopdelay = $postdata["autoRotateStopDelay"];
|
406 |
-
}
|
407 |
-
|
408 |
-
$scene_fade_duration = '';
|
409 |
-
if (isset($postdata["scenefadeduration"])) {
|
410 |
-
$scene_fade_duration = $postdata["scenefadeduration"];
|
411 |
-
}
|
412 |
-
|
413 |
-
$pano_data = '';
|
414 |
-
if (isset($postdata["panodata"])) {
|
415 |
-
$pano_data = $postdata["panodata"];
|
416 |
-
}
|
417 |
-
|
418 |
-
$custom_icon_array = new Wpvr_fontawesome_icons();
|
419 |
-
$custom_icon = $custom_icon_array->icon;
|
420 |
-
|
421 |
-
$html = '';
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
$html .= '<div class="pano-setup">';
|
426 |
-
|
427 |
-
// active tab variables
|
428 |
-
$active_tab = 'general';
|
429 |
-
$scene_active_tab = 1;
|
430 |
-
$hotspot_active_tab = 1;
|
431 |
-
if (isset($_GET['active_tab'])) {
|
432 |
-
$active_tab = $_GET['active_tab'];
|
433 |
-
}
|
434 |
-
if (isset($_GET['scene'])) {
|
435 |
-
$scene_active_tab = $_GET['scene'];
|
436 |
-
}
|
437 |
-
if (isset($_GET['hotspot'])) {
|
438 |
-
$hotspot_active_tab = $_GET['hotspot'];
|
439 |
-
}
|
440 |
-
|
441 |
-
$html = '';
|
442 |
-
|
443 |
-
$html .= '<div class="pano-setup">';
|
444 |
-
|
445 |
-
$html .= '<input type="hidden" value="'.$active_tab.'" name="wpvr_active_tab" id="wpvr_active_tab"/>';
|
446 |
-
$html .= '<input type="hidden" value="'.$scene_active_tab.'" name="wpvr_active_scenes" id="wpvr_active_scenes"/>';
|
447 |
-
$html .= '<input type="hidden" value="'.$hotspot_active_tab.'" name="wpvr_active_hotspot" id="wpvr_active_hotspot"/>';
|
448 |
-
|
449 |
-
//--------start pano alert------
|
450 |
-
$html .= '<div class="pano-alert scene-alert">';
|
451 |
-
$html .= '<div class="pano-error-wrapper">';
|
452 |
-
$html .= '<div class="pano-error-body">';
|
453 |
-
$html .= '<span class="cross pano-error-close-btn">
|
454 |
-
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
455 |
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
|
456 |
-
</svg>
|
457 |
-
</span>';
|
458 |
-
|
459 |
-
$html .= '<span class="icon pano-warning">
|
460 |
-
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
461 |
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 15C0 23.2843 6.71573 30 15 30C23.2843 30 30 23.2843 30 15C30 6.71573 23.2843 0 15 0C6.71573 0 0 6.71573 0 15ZM2 15C2 7.8203 7.8203 2 15 2C22.1797 2 28 7.8203 28 15C28 22.1797 22.1797 28 15 28C7.8203 28 2 22.1797 2 15Z" fill="#004EFA"/>
|
462 |
-
<circle cx="8.5" cy="11.5" r="1.5" fill="#004EFA"/>
|
463 |
-
<circle cx="21.5" cy="11.5" r="1.5" fill="#004EFA"/>
|
464 |
-
<path d="M20.9993 21.9932C20.7336 21.995 20.4781 21.8728 20.2894 21.6537C17.6429 18.5603 13.3571 18.5603 10.7106 21.6537C10.5228 21.8753 10.2673 22 10.0007 22C9.73407 22 9.4785 21.8753 9.29076 21.6537C8.90308 21.1971 8.90308 20.4596 9.29076 20.0029C12.7241 15.999 18.2759 15.999 21.7092 20.0029C22.0969 20.4596 22.0969 21.1971 21.7092 21.6537C21.5205 21.8728 21.2651 21.995 20.9993 21.9932V21.9932Z" fill="#004EFA"/>
|
465 |
-
</svg>
|
466 |
-
</span>';
|
467 |
-
|
468 |
-
$html .= '<div class="pano-error-message"></div>';
|
469 |
-
|
470 |
-
$html .= '</div>';
|
471 |
-
//---end error body---
|
472 |
-
|
473 |
-
//---error footer---
|
474 |
-
$html .= '<div class="pano-error-footer">';
|
475 |
-
$html .= '<ul>';
|
476 |
-
$html .= '<li class="pano-error-close">';
|
477 |
-
$html .= '<a href="https://rextheme.com/wpvr/" target="_blank" >Upgrade to Pro</a>';
|
478 |
-
$html .= '</li>';
|
479 |
-
$html .= '</ul>';
|
480 |
-
$html .= '</div>';
|
481 |
-
$html .= '</div>';
|
482 |
-
$html .= '</div>';
|
483 |
-
//--------end pano alert------
|
484 |
-
|
485 |
-
$html .='<div class="rex-pano-tabs">';
|
486 |
-
$html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav" id="wpvr-main-nav">';
|
487 |
-
$html .='<ul>';
|
488 |
-
$html .='<li class="logo"><img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/logo.png'.'" alt="logo" /></li>';
|
489 |
-
|
490 |
-
$html .='<li class="general active" data-screen="general">';
|
491 |
-
$html .='<span data-href="#general">';
|
492 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-regular.png'.'" alt="icon" class="regular" />';
|
493 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-hover.png'.'" alt="icon" class="hover" />';
|
494 |
-
$html .=''.__('General', 'wpvr').'</span>';
|
495 |
-
$html .='</li>';
|
496 |
-
|
497 |
-
$html .='<li class="scene" data-screen="scene">';
|
498 |
-
$html .='<span data-href="#scenes">';
|
499 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-regular.png'.'" alt="icon" class="regular" />';
|
500 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-hover.png'.'" alt="icon" class="hover" />';
|
501 |
-
$html .=''.__('Scenes', 'wpvr').'</span>';
|
502 |
-
$html .='</li>';
|
503 |
-
|
504 |
-
$html .='<li class="hotspot" data-screen="hotspot">';
|
505 |
-
$html .='<span data-href="#scenes">';
|
506 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-regular.png'.'" alt="icon" class="regular" />';
|
507 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-hover.png'.'" alt="icon" class="hover" />';
|
508 |
-
$html .=''.__('Hotspot', 'wpvr').'</span>';
|
509 |
-
$html .='</li>';
|
510 |
-
|
511 |
-
$html .='<li class="videos" data-screen="video">';
|
512 |
-
$html .='<span data-href="#video">';
|
513 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-regular.png'.'" alt="icon" class="regular" />';
|
514 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-hover.png'.'" alt="icon" class="hover" />';
|
515 |
-
$html .=''.__('Video', 'wpvr').'</span>';
|
516 |
-
$html .='</li>';
|
517 |
-
$html .='</ul>';
|
518 |
-
$html .='</nav>';
|
519 |
-
|
520 |
-
$html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
|
521 |
-
$html .='<div class="rex-pano-tab general active" id="general">';
|
522 |
-
|
523 |
-
//=start inner tab=
|
524 |
-
$html .= '<div class="general-inner-tab">';
|
525 |
-
//=start inner nav=
|
526 |
-
$html .= '<ul class="inner-nav">';
|
527 |
-
|
528 |
-
$html .='<li class="gen-basic active">';
|
529 |
-
$html .='<span data-href="#gen-basic">';
|
530 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-regular.png'.'" alt="icon" class="regular" />';
|
531 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-hover.png'.'" alt="icon" class="hover" />';
|
532 |
-
$html .=''.__('Basic Settings ', 'wpvr').'</span>';
|
533 |
-
$html .='</li>';
|
534 |
-
|
535 |
-
$html .='<li class="gen-advanced">';
|
536 |
-
$html .='<span data-href="#gen-advanced">';
|
537 |
-
$html .='<span class="pro-tag">pro</span>';
|
538 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-regular.png'.'" alt="icon" class="regular" />';
|
539 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-hover.png'.'" alt="icon" class="hover" />';
|
540 |
-
$html .=''.__('Advanced Controls ', 'wpvr').'</span>';
|
541 |
-
$html .='</li>';
|
542 |
-
|
543 |
-
$html .='<li class="gen-control">';
|
544 |
-
$html .='<span data-href="#gen-control">';
|
545 |
-
$html .='<span class="pro-tag">pro</span>';
|
546 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-regular.png'.'" alt="icon" class="regular" />';
|
547 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-hover.png'.'" alt="icon" class="hover" />';
|
548 |
-
$html .=''.__('Control Buttons ', 'wpvr').'</span>';
|
549 |
-
$html .='</li>';
|
550 |
-
|
551 |
-
$html .='<li class="vr-documentation">';
|
552 |
-
$html .='<a href="https://rextheme.com/docs-category/wp-vr/" target="_blank">'.__('Documentation ', 'wpvr').'</a>';
|
553 |
-
$html .='</li>';
|
554 |
-
|
555 |
-
$html .= '</ul>';
|
556 |
-
//=end inner nav=
|
557 |
-
|
558 |
-
$html .= '<div class="inner-nav-content">';
|
559 |
-
$html .= '<div class="basic-settings-content inner-single-content active" id="gen-basic">';
|
560 |
-
$html .= '<div class="content-wrapper">';
|
561 |
-
$html .= '<div class="left">';
|
562 |
-
//===preview image===//
|
563 |
-
if (!empty($preview)) {
|
564 |
-
$html .= '<div class="single-settings preview-setting">';
|
565 |
-
$html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
|
566 |
-
$html .= '<div class="form-group">';
|
567 |
-
$html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
|
568 |
-
$html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
|
569 |
-
$html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
|
570 |
-
$html .= '<span class="remove-attachment">x</span>';
|
571 |
-
$html .= '<label for="vr-preview-img">';
|
572 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
|
573 |
-
$html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
|
574 |
-
$html .= '</label>';
|
575 |
-
$html .= '</div>';
|
576 |
-
|
577 |
-
$html .= '</div>';
|
578 |
-
$html .= '<span class="hints">'.__('This option will not work if the "Tour Autoload" is turned on.', 'wpvr').'</span>';
|
579 |
-
$html .= '</div>';
|
580 |
-
} else {
|
581 |
-
$html .= '<div class="single-settings preview-setting">';
|
582 |
-
$html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
|
583 |
-
$html .= '<div class="form-group">';
|
584 |
-
$html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
|
585 |
-
$html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
|
586 |
-
$html .= '<div class="img-upload-frame">';
|
587 |
-
$html .= '<span class="remove-attachment">x</span>';
|
588 |
-
$html .= '<label for="vr-preview-img">';
|
589 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
|
590 |
-
$html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
|
591 |
-
$html .= '</label>';
|
592 |
-
$html .= '</div>';
|
593 |
-
$html .= '</div>';
|
594 |
-
$html .= '</div>';
|
595 |
-
}
|
596 |
-
//===preview image end===//
|
597 |
-
|
598 |
-
//=Message on Tour Preview Image=//
|
599 |
-
if(!empty($previewtext)){
|
600 |
-
$html .= '<div class="single-settings preview-img-message">';
|
601 |
-
$html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
|
602 |
-
$html .= '<input class="previewtext" type="text" name="previewtext" value="'.$previewtext.'"/>';
|
603 |
-
$html .= '</div>';
|
604 |
-
}else{
|
605 |
-
$html .= '<div class="single-settings preview-img-message">';
|
606 |
-
$html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
|
607 |
-
$html .= '<input class="previewtext" type="text" name="previewtext" value="Click To Load Panorama"/>';
|
608 |
-
$html .= '</div>';
|
609 |
-
}
|
610 |
-
|
611 |
-
//=Autoload setup=//
|
612 |
-
if ($autoload == true) {
|
613 |
-
$html .= '<div class="single-settings autoload">';
|
614 |
-
$html .= '<span>'.__('Tour Autoload: ', 'wpvr').'</span>';
|
615 |
-
|
616 |
-
$html .= '<span class="wpvr-switcher">';
|
617 |
-
$html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="on" checked />';
|
618 |
-
$html .= '<label for="wpvr_autoload"></label>';
|
619 |
-
$html .= '</span>';
|
620 |
-
|
621 |
-
$html .= '<div class="field-tooltip">';
|
622 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
623 |
-
$html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
|
624 |
-
$html .= '</div>';
|
625 |
-
$html .= '</div>';
|
626 |
-
} else {
|
627 |
-
$html .= '<div class="single-settings autoload">';
|
628 |
-
$html .= '<span>'.__('Tour Autoload: ', 'wpvr').' </span>';
|
629 |
-
|
630 |
-
$html .= '<span class="wpvr-switcher">';
|
631 |
-
$html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="off" />';
|
632 |
-
$html .= '<label for="wpvr_autoload"></label>';
|
633 |
-
$html .= '</span>';
|
634 |
-
|
635 |
-
$html .= '<div class="field-tooltip">';
|
636 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
637 |
-
$html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
|
638 |
-
$html .= '</div>';
|
639 |
-
$html .= '</div>';
|
640 |
-
}
|
641 |
-
//=Autoload setup End=//
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
//=Control Setup=
|
646 |
-
if ($control == false) {
|
647 |
-
$html .= '<div class="single-settings controls">';
|
648 |
-
$html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
|
649 |
-
|
650 |
-
$html .= '<span class="wpvr-switcher">';
|
651 |
-
$html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
|
652 |
-
$html .= '<label for="wpvr_controls"></label>';
|
653 |
-
$html .= '</span>';
|
654 |
-
|
655 |
-
$html .= '<div class="field-tooltip">';
|
656 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
657 |
-
$html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
|
658 |
-
$html .= '</div>';
|
659 |
-
$html .= '</div>';
|
660 |
-
} else {
|
661 |
-
$html .= '<div class="single-settings controls">';
|
662 |
-
$html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
|
663 |
-
|
664 |
-
$html .= '<span class="wpvr-switcher">';
|
665 |
-
$html .= '<input id="wpvr_controls" class="vr-switcher-check" value="on" name="controls" type="checkbox" checked />';
|
666 |
-
$html .= '<label for="wpvr_controls"></label>';
|
667 |
-
$html .= '</span>';
|
668 |
-
|
669 |
-
$html .= '<div class="field-tooltip">';
|
670 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
671 |
-
$html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
|
672 |
-
$html .= '</div>';
|
673 |
-
$html .= '</div>';
|
674 |
-
}
|
675 |
-
//=Control setup End=//
|
676 |
-
|
677 |
-
$html .= '</div>';
|
678 |
-
//===end left===//
|
679 |
-
|
680 |
-
$html .= '<div class="right">';
|
681 |
-
//=scene fade duration=//
|
682 |
-
$html .= '<div class="single-settings scene-fade-duration">';
|
683 |
-
$html .= '<span>'.__('Scene Fade Duration: ', 'wpvr').'</span>';
|
684 |
-
$html .= '<input type="number" name="scene-fade-duration" value="'.$scene_fade_duration.'" />';
|
685 |
-
|
686 |
-
$html .= '<div class="field-tooltip">';
|
687 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
688 |
-
$html .= '<span>'.__('This will set the scene fade effect and execution time.', 'wpvr').'</span>';
|
689 |
-
$html .= '</div>';
|
690 |
-
$html .= '</div>';
|
691 |
-
//=scene fade duration End=//
|
692 |
-
|
693 |
-
//===Autorotation on off set==//
|
694 |
-
if (isset($postdata["autoRotate"])) {
|
695 |
-
$html .= '<div class="single-settings autoload">';
|
696 |
-
$html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
|
697 |
-
|
698 |
-
$html .= '<span class="wpvr-switcher">';
|
699 |
-
$html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="on" name="autorotation" type="checkbox" checked />';
|
700 |
-
$html .= '<label for="wpvr_autorotation"></label>';
|
701 |
-
$html .= '</span>';
|
702 |
-
$html .= '</div>';
|
703 |
-
} else {
|
704 |
-
$html .= '<div class="single-settings autoload">';
|
705 |
-
$html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
|
706 |
-
|
707 |
-
$html .= '<span class="wpvr-switcher">';
|
708 |
-
$html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="off" name="autorotation" type="checkbox" />';
|
709 |
-
$html .= '<label for="wpvr_autorotation"></label>';
|
710 |
-
$html .= '</span>';
|
711 |
-
$html .= '</div>';
|
712 |
-
}
|
713 |
-
//===end Autorotation on off set==//
|
714 |
-
|
715 |
-
//=Auto Rotation=//
|
716 |
-
$html .= '<div class="autorotationdata-wrapper">';
|
717 |
-
$html .= '<div class="single-settings autorotationdata" >';
|
718 |
-
$html .= '<span>'.__('Rotation Speed and Direction: ', 'wpvr').'</span>';
|
719 |
-
$html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" placeholder="-5" />';
|
720 |
-
|
721 |
-
$html .= '<div class="field-tooltip">';
|
722 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
723 |
-
$html .= '<span>'.__('Set a value to determine the speed of rotation. The higher the number, the faster it will rotate. Positive values will make it rotate clockwise and negative values will make it rotate anti clockwise', 'wpvr').'</span>';
|
724 |
-
$html .= '</div>';
|
725 |
-
$html .= '</div>';
|
726 |
-
//=Auto Rotation=//
|
727 |
-
|
728 |
-
//=Auto rotation inactive delay=//
|
729 |
-
$html .= '<div class="single-settings autorotationdata" >';
|
730 |
-
$html .= '<span>'.__('Resume Auto-rotation after: ', 'wpvr').'</span>';
|
731 |
-
$html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
|
732 |
-
|
733 |
-
$html .= '<div class="field-tooltip">';
|
734 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
735 |
-
$html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
|
736 |
-
$html .= '</div>';
|
737 |
-
$html .= '</div>';
|
738 |
-
//=Auto rotation inactive delay=//
|
739 |
-
|
740 |
-
//=Auto rotation stop delay=//
|
741 |
-
$html .= '<div class="single-settings autorotationdata" >';
|
742 |
-
$html .= '<span>'.__('Stop Auto-rotation after: ', 'wpvr').'</span>';
|
743 |
-
$html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
|
744 |
-
|
745 |
-
$html .= '<div class="field-tooltip">';
|
746 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
747 |
-
$html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
|
748 |
-
$html .= '</div>';
|
749 |
-
$html .= '</div>';
|
750 |
-
$html .= '</div>';
|
751 |
-
//=Auto rotation stop delay=//
|
752 |
-
|
753 |
-
|
754 |
-
//=end backgound tour=//
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
$html .= '</div>';
|
759 |
-
//===end right===//
|
760 |
-
|
761 |
-
$html .= '</div>';
|
762 |
-
$html .= '</div>';
|
763 |
-
//===end basic settings===//
|
764 |
-
|
765 |
-
$html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
|
766 |
-
$html .= '<div class="content-wrapper">';
|
767 |
-
$html .= '<div class="left">';
|
768 |
-
|
769 |
-
//=Keyboard Movement Control=//
|
770 |
-
$html .= '<div class="single-settings compass">';
|
771 |
-
$html .= '<span>'.__('Keyboard Movement Control: ', 'wpvr').'</span>';
|
772 |
-
|
773 |
-
$html .= '<span class="wpvr-switcher">';
|
774 |
-
$html .= '<input id="wpvr_diskeyboard" class="vr-switcher-check" value="off" name="diskeyboard" type="checkbox" disabled />';
|
775 |
-
$html .= '<label for="wpvr_diskeyboard" title="Pro Feature"></label>';
|
776 |
-
$html .= '</span>';
|
777 |
-
$html .= '</div>';
|
778 |
-
//=Keyboard Movement Control end=//
|
779 |
-
|
780 |
-
//=Keyboard Zoom Control Setup=//
|
781 |
-
$html .= '<div class="single-settings">';
|
782 |
-
$html .= '<span>'.__('Keyboard Zoom Control: ', 'wpvr').'</span>';
|
783 |
-
|
784 |
-
$html .= '<span class="wpvr-switcher">';
|
785 |
-
$html .= '<input id="wpvr_keyboardzoom" class="vr-switcher-check" value="off" name="keyboardzoom" type="checkbox" disabled />';
|
786 |
-
$html .= '<label for="wpvr_keyboardzoom" title="Pro Feature"></label>';
|
787 |
-
$html .= '</span>';
|
788 |
-
$html .= '</div>';
|
789 |
-
//=Keyboard Zoom Control End=//
|
790 |
-
|
791 |
-
//=Mouse Drag Control=//
|
792 |
-
$html .= '<div class="single-settings">';
|
793 |
-
$html .= '<span>'.__('Mouse Drag Control: ', 'wpvr').'</span>';
|
794 |
-
|
795 |
-
$html .= '<span class="wpvr-switcher">';
|
796 |
-
$html .= '<input id="wpvr_draggable" class="vr-switcher-check" name="draggable" type="checkbox" value="off" disabled />';
|
797 |
-
$html .= '<label for="wpvr_draggable" title="Pro Feature"></label>';
|
798 |
-
$html .= '</span>';
|
799 |
-
$html .= '</div>';
|
800 |
-
//=Mouse Drag Control End=//
|
801 |
-
|
802 |
-
//=Mouse Zoom Control=//
|
803 |
-
$html .= '<div class="single-settings">';
|
804 |
-
$html .= '<span>'.__('Mouse Zoom Control: ', 'wpvr').'</span>';
|
805 |
-
|
806 |
-
$html .= '<span class="wpvr-switcher">';
|
807 |
-
$html .= '<input id="wpvr_mouseZoom" class="vr-switcher-check" value="off" name="mouseZoom" type="checkbox" disabled />';
|
808 |
-
$html .= '<label for="wpvr_mouseZoom" title="Pro Feature"></label>';
|
809 |
-
$html .= '</span>';
|
810 |
-
$html .= '</div>';
|
811 |
-
//=Mouse Zoom Control End=//
|
812 |
-
|
813 |
-
//=Gyroscope Control=//
|
814 |
-
$html .= '<div class="single-settings gyro">';
|
815 |
-
$html .= '<span>'.__('Gyroscope Control: ', 'wpvr').'</span>';
|
816 |
-
|
817 |
-
$html .= '<span class="wpvr-switcher">';
|
818 |
-
$html .= '<input id="wpvr_gyro" class="vr-switcher-check" value="off" name="gyro" type="checkbox" disabled />';
|
819 |
-
$html .= '<label for="wpvr_gyro" title="Pro Feature"></label>';
|
820 |
-
$html .= '</span>';
|
821 |
-
$html .= '</div>';
|
822 |
-
//=Gyroscope Control End=//
|
823 |
-
|
824 |
-
//=Auto Gyroscope Support=//
|
825 |
-
$html .= '<div class="single-settings orientation">';
|
826 |
-
$html .= '<span>'.__('Auto Gyroscope Support: ', 'wpvr').'</span>';
|
827 |
-
|
828 |
-
$html .= '<span class="wpvr-switcher">';
|
829 |
-
$html .= '<input id="wpvr_deviceorientationcontrol" class="vr-switcher-check" value="off" name="deviceorientationcontrol" type="checkbox" disabled />';
|
830 |
-
$html .= '<label for="wpvr_deviceorientationcontrol" title="Pro Feature"></label>';
|
831 |
-
$html .= '</span>';
|
832 |
-
|
833 |
-
$html .= '<div class="field-tooltip">';
|
834 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
835 |
-
$html .= '<span>'.__('If set to true, device orientation control will be used when the panorama is loaded, if the device supports it. If false, device orientation control needs to be activated by pressing a button. Defaults to false. Will work if gyroscope is enabled', 'wpvr').'</span>';
|
836 |
-
$html .= '</div>';
|
837 |
-
$html .= '</div>';
|
838 |
-
//=Auto Gyroscope Support End=//
|
839 |
-
|
840 |
-
//=Compass Setup=//
|
841 |
-
$html .= '<div class="single-settings compass">';
|
842 |
-
$html .= '<span>'.__('Compass: ', 'wpvr').'</span>';
|
843 |
-
|
844 |
-
$html .= '<span class="wpvr-switcher">';
|
845 |
-
$html .= '<input id="wpvr_compass" class="vr-switcher-check" value="off" name="compass" type="checkbox" disabled />';
|
846 |
-
$html .= '<label for="wpvr_compass" title="Pro Feature"></label>';
|
847 |
-
$html .= '</span>';
|
848 |
-
$html .= '</div>';
|
849 |
-
//=Compass setup End=//
|
850 |
-
|
851 |
-
$html .= '</div>';
|
852 |
-
//===end left===//
|
853 |
-
|
854 |
-
$html .= '<div class="right">';
|
855 |
-
//= Scene Gallery=//
|
856 |
-
$html .= '<div class="single-settings gallery">';
|
857 |
-
$html .= '<span>'.__('Scene Gallery: ', 'wpvr').'</span>';
|
858 |
-
|
859 |
-
$html .= '<span class="wpvr-switcher">';
|
860 |
-
$html .= '<input id="wpvr_vrgallery" class="vr-switcher-check" value="off" name="vrgallery" type="checkbox" disabled />';
|
861 |
-
$html .= '<label for="wpvr_vrgallery" title="Pro Feature"></label>';
|
862 |
-
$html .= '</span>';
|
863 |
-
|
864 |
-
$html .= '<div class="field-tooltip">';
|
865 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
866 |
-
$html .= '<span>'.__('Turning it On will display a gallery with all the scenes on your tour. By double clicking on a scene thumbnail on the gallery, you can move to that specific scene. The gallery will only show up on the front end and not on the preview.', 'wpvr').'</span>';
|
867 |
-
$html .= '</div>';
|
868 |
-
$html .= '</div>';
|
869 |
-
//= Scene Gallery end=//
|
870 |
-
|
871 |
-
//=Scene Titles on Gallery=//
|
872 |
-
$html .= '<div class="single-settings">';
|
873 |
-
$html .= '<span>'.__('Scene Titles on Gallery: ', 'wpvr').'</span>';
|
874 |
-
|
875 |
-
$html .= '<span class="wpvr-switcher">';
|
876 |
-
$html .= '<input id="wpvr_vrgallery_title" class="vr-switcher-check" value="off" name="vrgallery_title" type="checkbox" disabled />';
|
877 |
-
$html .= '<label for="wpvr_vrgallery_title" title="Pro Feature"></label>';
|
878 |
-
$html .= '</span>';
|
879 |
-
|
880 |
-
$html .= '<div class="field-tooltip">';
|
881 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
|
882 |
-
$html .= '<span>'.__('Turning it on will display scene titles on each scene thumbnail inside the Scene Gallery. The Scene IDs will be used as the Scene Title.', 'wpvr').'</span>';
|
883 |
-
$html .= '</div>';
|
884 |
-
$html .= '</div>';
|
885 |
-
//=Scene Titles on Gallery End=//
|
886 |
-
|
887 |
-
//===VR Audio setup===//
|
888 |
-
$html .= '<div class="single-settings">';
|
889 |
-
$html .= '<span>Tour Background Music: </span>';
|
890 |
-
|
891 |
-
$html .= '<span class="wpvr-switcher">';
|
892 |
-
$html .= '<input id="wpvr_bg_music" class="vr-switcher-check" value="off" name="bg_music" type="checkbox" disabled />';
|
893 |
-
$html .= '<label for="wpvr_bg_music" title="Pro Feature"></label>';
|
894 |
-
$html .= '</span>';
|
895 |
-
$html .= '</div>';
|
896 |
-
//==VR audio End==//
|
897 |
-
|
898 |
-
//===Company logo===//
|
899 |
-
$html .= '<div class="single-settings company-info">';
|
900 |
-
$html .= '<span>'.__('Add Company Information: ', 'wpvr').' </span>';
|
901 |
-
|
902 |
-
$html .= '<span class="wpvr-switcher">';
|
903 |
-
$html .= '<input id="wpvr_cpLogoSwitch" class="vr-switcher-check" value="off" name="cpLogoSwitch" type="checkbox" disabled />';
|
904 |
-
$html .= '<label for="wpvr_cpLogoSwitch" title="Pro Feature"></label>';
|
905 |
-
$html .= '</span>';
|
906 |
-
$html .= '</div>';
|
907 |
-
//===Company logo end===//
|
908 |
-
|
909 |
-
$html .= '</div>';
|
910 |
-
//===end right===//
|
911 |
-
|
912 |
-
$html .= '</div>';
|
913 |
-
$html .= '</div>';
|
914 |
-
//===end advanced settings===//
|
915 |
-
|
916 |
-
$html .= '<div class="control-settings-content inner-single-content" id="gen-control">';
|
917 |
-
$html .= '<div class="content-wrapper">';
|
918 |
-
$html .= '<div class="left">';
|
919 |
-
//=====Move up====//
|
920 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
921 |
-
$html .= '<span>'.__('Move Up: ', 'wpvr').'</span>';
|
922 |
-
|
923 |
-
$html .= '<div class="color-icon">';
|
924 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
|
925 |
-
$html .= '</div>';
|
926 |
-
|
927 |
-
$html .= '<span class="wpvr-switcher">';
|
928 |
-
$html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
|
929 |
-
$html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
|
930 |
-
$html .= '</span>';
|
931 |
-
|
932 |
-
$html .= '</div>';
|
933 |
-
//=====Moveup End====//
|
934 |
-
|
935 |
-
//=====Move Down====//
|
936 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
937 |
-
$html .= '<span>'.__('Move Down: ', 'wpvr').'</span>';
|
938 |
-
|
939 |
-
$html .= '<div class="color-icon">';
|
940 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
|
941 |
-
$html .= '</div>';
|
942 |
-
|
943 |
-
$html .= '<span class="wpvr-switcher">';
|
944 |
-
$html .= '<input id="wpvr_panDownControl" class="vr-switcher-check" value="off" name="panDownControl" type="checkbox" disabled />';
|
945 |
-
$html .= '<label for="wpvr_panDownControl" title="Pro Feature"></label>';
|
946 |
-
$html .= '</span>';
|
947 |
-
$html .= '</div>';
|
948 |
-
//=====Move down End====//
|
949 |
-
|
950 |
-
//=====Move Left====//
|
951 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
952 |
-
$html .= '<span>'.__('Move Left: ', 'wpvr').'</span>';
|
953 |
-
|
954 |
-
$html .= '<div class="color-icon">';
|
955 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
|
956 |
-
$html .= '</div>';
|
957 |
-
|
958 |
-
$html .= '<span class="wpvr-switcher">';
|
959 |
-
$html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
|
960 |
-
$html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
|
961 |
-
$html .= '</span>';
|
962 |
-
$html .= '</div>';
|
963 |
-
//=====Move Left End====//
|
964 |
-
|
965 |
-
//=====Move Right====//
|
966 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
967 |
-
$html .= '<span>'.__('Move Right: ', 'wpvr').'</span>';
|
968 |
-
|
969 |
-
$html .= '<div class="color-icon">';
|
970 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-right.jpg'.'" alt="icon" />';
|
971 |
-
$html .= '</div>';
|
972 |
-
|
973 |
-
$html .= '<span class="wpvr-switcher">';
|
974 |
-
$html .= '<input id="wpvr_panRightControl" class="vr-switcher-check" value="off" name="panRightControl" type="checkbox" disabled />';
|
975 |
-
$html .= '<label for="wpvr_panRightControl" title="Pro Feature"></label>';
|
976 |
-
$html .= '</span>';
|
977 |
-
$html .= '</div>';
|
978 |
-
//=====Move Right End====//
|
979 |
-
|
980 |
-
//=====Zoom In====//
|
981 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
982 |
-
$html .= '<span>'.__('Zoom In: ', 'wpvr').'</span>';
|
983 |
-
|
984 |
-
$html .= '<div class="color-icon">';
|
985 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
|
986 |
-
$html .= '</div>';
|
987 |
-
|
988 |
-
$html .= '<span class="wpvr-switcher">';
|
989 |
-
$html .= '<input id="wpvr_panZoomInControl" class="vr-switcher-check" value="off" name="panZoomInControl" type="checkbox" disabled />';
|
990 |
-
$html .= '<label for="wpvr_panZoomInControl" title="Pro Feature"></label>';
|
991 |
-
$html .= '</span>';
|
992 |
-
|
993 |
-
$html .= '</div>';
|
994 |
-
//=====Zoom In End====//
|
995 |
-
|
996 |
-
$html .= '</div>';
|
997 |
-
//===end left===//
|
998 |
-
|
999 |
-
$html .= '<div class="right">';
|
1000 |
-
//=====Zoom Out====//
|
1001 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
1002 |
-
$html .= '<span>'.__('Zoom Out: ', 'wpvr').'</span>';
|
1003 |
-
|
1004 |
-
$html .= '<div class="color-icon">';
|
1005 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-out.jpg'.'" alt="icon" />';
|
1006 |
-
$html .= '</div>';
|
1007 |
-
|
1008 |
-
$html .= '<span class="wpvr-switcher">';
|
1009 |
-
$html .= '<input id="wpvr_panZoomOutControl" class="vr-switcher-check" value="off" name="panZoomOutControl" type="checkbox" disabled />';
|
1010 |
-
$html .= '<label for="wpvr_panZoomOutControl" title="Pro Feature"></label>';
|
1011 |
-
$html .= '</span>';
|
1012 |
-
|
1013 |
-
$html .= '</div>';
|
1014 |
-
//=====Zoom Out End====//
|
1015 |
-
|
1016 |
-
//===== Full Screen====//
|
1017 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
1018 |
-
$html .= '<span>'.__('Full Screen: ', 'wpvr').'</span>';
|
1019 |
-
|
1020 |
-
$html .= '<div class="color-icon">';
|
1021 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
|
1022 |
-
$html .= '</div>';
|
1023 |
-
|
1024 |
-
$html .= '<span class="wpvr-switcher">';
|
1025 |
-
$html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
|
1026 |
-
$html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
|
1027 |
-
$html .= '</span>';
|
1028 |
-
|
1029 |
-
$html .= '</div>';
|
1030 |
-
//=====Full Screen End====//
|
1031 |
-
|
1032 |
-
//=====Gyroscope====//
|
1033 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
1034 |
-
$html .= '<span>'.__('Gyroscope: ', 'wpvr').'</span>';
|
1035 |
-
|
1036 |
-
$html .= '<div class="color-icon">';
|
1037 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
|
1038 |
-
$html .= '</div>';
|
1039 |
-
|
1040 |
-
$html .= '<span class="wpvr-switcher">';
|
1041 |
-
$html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
|
1042 |
-
$html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
|
1043 |
-
$html .= '</span>';
|
1044 |
-
|
1045 |
-
$html .= '</div>';
|
1046 |
-
//=====Gyroscope End====//
|
1047 |
-
|
1048 |
-
//=====Back to home====//
|
1049 |
-
$html .= '<div class="single-settings controls custom-data-set">';
|
1050 |
-
$html .= '<span>'.__('Home: ', 'wpvr').'</span>';
|
1051 |
-
|
1052 |
-
$html .= '<div class="color-icon">';
|
1053 |
-
$html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
|
1054 |
-
$html .= '</div>';
|
1055 |
-
|
1056 |
-
$html .= '<span class="wpvr-switcher">';
|
1057 |
-
$html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
|
1058 |
-
$html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
|
1059 |
-
$html .= '</span>';
|
1060 |
-
|
1061 |
-
$html .= '</div>';
|
1062 |
-
//=====Back to home End====//
|
1063 |
-
$html .= '</div>';
|
1064 |
-
//===end right===//
|
1065 |
-
|
1066 |
-
$html .= '</div>';
|
1067 |
-
$html .= '</div>';
|
1068 |
-
//===end control settings===//
|
1069 |
-
|
1070 |
-
$html .= '</div>';
|
1071 |
-
//=end inner tab content=
|
1072 |
-
|
1073 |
-
//== Start preview button
|
1074 |
-
$html .= '<div class="preview-btn-wrapper">';
|
1075 |
-
$html .= '<div class="preview-btn-area clearfix">';
|
1076 |
-
|
1077 |
-
$html .= '<button id="panolenspreview" class="panolenspreview">' . __('Preview', 'wpvr-pro') . '</button>';
|
1078 |
-
$html .= '</div>';
|
1079 |
-
$html .= '</div>';
|
1080 |
-
//== End preview button
|
1081 |
-
|
1082 |
-
$html .= '<div class="wpvr-use-shortcode">';
|
1083 |
-
$post = get_post();
|
1084 |
-
$id = $post->ID;
|
1085 |
-
$slug = $post->post_name;
|
1086 |
-
$postdata = get_post_meta($post->ID, 'panodata', true);
|
1087 |
-
|
1088 |
-
$html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
|
1089 |
-
|
1090 |
-
$html .= '<div class="shortcode-wrapper">';
|
1091 |
-
$html .= '<div class="single-shortcode classic">';
|
1092 |
-
$html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
|
1093 |
-
|
1094 |
-
$html .= '<div class="field-wapper">';
|
1095 |
-
$html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
|
1096 |
-
|
1097 |
-
$html .= '<div class="shortcode-field">';
|
1098 |
-
$html .= '<p class="copycode" id="copy-shortcode">[wpvr id="'.$id.'"]</p>';
|
1099 |
-
|
1100 |
-
$html .= '<span id="wpvr-copy-shortcode" class="wpvr-copy-shortcode">';
|
1101 |
-
$html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
|
1102 |
-
$html .= '</span>';
|
1103 |
-
$html .= '</div>';
|
1104 |
-
|
1105 |
-
|
1106 |
-
$html .= '<span id="wpvr-copied-notice" class="wpvr-copied-notice"></span>';
|
1107 |
-
|
1108 |
-
$html .= '</div>';
|
1109 |
-
$html .= '</div>';
|
1110 |
-
|
1111 |
-
$html .= '</div>';
|
1112 |
-
$html .= '</div>';
|
1113 |
-
//=end shortcode area=
|
1114 |
-
|
1115 |
-
|
1116 |
-
$html .= '</div>';
|
1117 |
-
//=end inner tab=
|
1118 |
-
|
1119 |
-
|
1120 |
-
$html .= '<script>';
|
1121 |
-
$html .= '
|
1122 |
-
|
1123 |
-
document.getElementById("wpvr-copy-shortcode").addEventListener("click", function() {
|
1124 |
-
copyToClipboard(document.getElementById("copy-shortcode"));
|
1125 |
-
});
|
1126 |
-
|
1127 |
-
function copyToClipboard(elem) {
|
1128 |
-
// create hidden text element, if it doesn\'t already exist
|
1129 |
-
var targetId = "_hiddenCopyText_";
|
1130 |
-
var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
|
1131 |
-
var origSelectionStart, origSelectionEnd;
|
1132 |
-
if (isInput) {
|
1133 |
-
// can just use the original source element for the selection and copy
|
1134 |
-
target = elem;
|
1135 |
-
origSelectionStart = elem.selectionStart;
|
1136 |
-
origSelectionEnd = elem.selectionEnd;
|
1137 |
-
} else {
|
1138 |
-
// must use a temporary form element for the selection and copy
|
1139 |
-
target = document.getElementById(targetId);
|
1140 |
-
if (!target) {
|
1141 |
-
var target = document.createElement("textarea");
|
1142 |
-
target.style.position = "absolute";
|
1143 |
-
target.style.left = "-9999px";
|
1144 |
-
target.style.top = "0";
|
1145 |
-
target.id = targetId;
|
1146 |
-
document.body.appendChild(target);
|
1147 |
-
}
|
1148 |
-
target.textContent = elem.textContent;
|
1149 |
-
}
|
1150 |
-
// select the content
|
1151 |
-
var currentFocus = document.activeElement;
|
1152 |
-
target.focus();
|
1153 |
-
target.setSelectionRange(0, target.value.length);
|
1154 |
-
|
1155 |
-
// copy the selection
|
1156 |
-
var succeed;
|
1157 |
-
try {
|
1158 |
-
succeed = document.execCommand("copy");
|
1159 |
-
document.getElementById("wpvr-copied-notice").innerHTML = "Copied!";
|
1160 |
-
} catch(e) {
|
1161 |
-
succeed = false;
|
1162 |
-
}
|
1163 |
-
// restore original focus
|
1164 |
-
if (currentFocus && typeof currentFocus.focus === "function") {
|
1165 |
-
currentFocus.focus();
|
1166 |
-
}
|
1167 |
-
|
1168 |
-
setTimeout(function(){
|
1169 |
-
document.getElementById("wpvr-copied-notice").innerHTML = "";
|
1170 |
-
}, 2000 );
|
1171 |
-
|
1172 |
-
if (isInput) {
|
1173 |
-
// restore prior selection
|
1174 |
-
elem.setSelectionRange(origSelectionStart, origSelectionEnd);
|
1175 |
-
} else {
|
1176 |
-
// clear temporary content
|
1177 |
-
target.textContent = "";
|
1178 |
-
}
|
1179 |
-
document.getElementById("wpvr-copy-shortcode").scrollIntoView()
|
1180 |
-
return succeed;
|
1181 |
-
}
|
1182 |
-
|
1183 |
-
';
|
1184 |
-
|
1185 |
-
$html .= '</script>';
|
1186 |
-
|
1187 |
-
$html .='</div>';
|
1188 |
-
//---end general tab----
|
1189 |
-
|
1190 |
-
$html .='<div class="rex-pano-tab" id="scenes">';
|
1191 |
-
|
1192 |
-
//=Scene and Hotspot repeater=//
|
1193 |
-
if (empty($pano_data)) {
|
1194 |
-
$html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
|
1195 |
-
|
1196 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
|
1197 |
-
$html .= '<ul>';
|
1198 |
-
$html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-image"></i></span></li>';
|
1199 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
|
1200 |
-
$html .= '</ul>';
|
1201 |
-
$html .= '</nav>';
|
1202 |
-
|
1203 |
-
$html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
|
1204 |
-
|
1205 |
-
$html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
|
1206 |
-
$html .= '<div class="active_scene_id"><p></p></div>';
|
1207 |
-
$html .= '<div class="scene-content">';
|
1208 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
|
1209 |
-
|
1210 |
-
$html .= '<div class="scene-left">';
|
1211 |
-
//==Set Default Scene==//
|
1212 |
-
$html .= '<div class="single-settings dscene">';
|
1213 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
1214 |
-
$html .= '<select class="dscen" name="dscene">';
|
1215 |
-
$html .= '<option value="on"> Yes</option>';
|
1216 |
-
$html .= '<option value="off" selected > No</option>';
|
1217 |
-
$html .= '</select>';
|
1218 |
-
$html .= '</div>';
|
1219 |
-
//==Set Default Scene end==//
|
1220 |
-
|
1221 |
-
$html .= '<div class=scene-setting>';
|
1222 |
-
$html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
|
1223 |
-
$html .= '<input class="sceneid" type="text" name="scene-id"/>';
|
1224 |
-
$html .= '</div>';
|
1225 |
-
|
1226 |
-
$html .= '<div class=scene-setting>';
|
1227 |
-
$html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
|
1228 |
-
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
1229 |
-
$html .= '</div>';
|
1230 |
-
|
1231 |
-
$html .= '<div class=scene-setting>';
|
1232 |
-
$html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
|
1233 |
-
$html .= '<div class="form-group">';
|
1234 |
-
$html .= '<img src="" style="display: none;"><br>';
|
1235 |
-
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
1236 |
-
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
|
1237 |
-
$html .= '</div>';
|
1238 |
-
$html .= '</div>';
|
1239 |
-
$html .= '</div>';
|
1240 |
-
//---end scene-left---
|
1241 |
-
|
1242 |
-
$html .= '</div>';
|
1243 |
-
|
1244 |
-
//--hotspot setup--
|
1245 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
1246 |
-
|
1247 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1248 |
-
$html .= '<ul>';
|
1249 |
-
$html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
|
1250 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
|
1251 |
-
$html .= '</ul>';
|
1252 |
-
$html .= '</nav>';
|
1253 |
-
|
1254 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
1255 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
|
1256 |
-
|
1257 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
1258 |
-
|
1259 |
-
$html .= '<div class="wrapper">';
|
1260 |
-
$html .= '<div class="hotspot-setting">';
|
1261 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
1262 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
1263 |
-
$html .= '</div>';
|
1264 |
-
|
1265 |
-
$html .= '<div class="hotspot-setting">';
|
1266 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
1267 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
|
1268 |
-
$html .= '</div>';
|
1269 |
-
|
1270 |
-
$html .= '<div class="hotspot-setting">';
|
1271 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
1272 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
|
1273 |
-
$html .= '</div>';
|
1274 |
-
|
1275 |
-
$html .= '<div class="hotspot-setting">';
|
1276 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
1277 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
1278 |
-
$html .= '</div>';
|
1279 |
-
|
1280 |
-
$html .= '</div>';
|
1281 |
-
|
1282 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1283 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1284 |
-
$html .= '<select name="hotspot-type">';
|
1285 |
-
$html .= '<option value="info" selected> Info</option>';
|
1286 |
-
$html .= '<option value="scene"> Scene</option>';
|
1287 |
-
$html .= '</select>';
|
1288 |
-
|
1289 |
-
$html .= '<div class="hotspot-url">';
|
1290 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
|
1291 |
-
$html .= '<input type="url" name="hotspot-url" value="" />';
|
1292 |
-
$html .= '</div>';
|
1293 |
-
|
1294 |
-
//====Hotspot open in same tab===//
|
1295 |
-
$html .= '<div class="single-settings s_tab">';
|
1296 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1297 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1298 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off" >';
|
1299 |
-
$html .= '<span class="switcher-box"></span>';
|
1300 |
-
$html .= '</label>';
|
1301 |
-
$html .= '</div>';
|
1302 |
-
//====Hotspot open in same tab end===//
|
1303 |
-
|
1304 |
-
$html .= '<div class="hotspot-content">';
|
1305 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1306 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
1307 |
-
$html .= '</div>';
|
1308 |
-
|
1309 |
-
$html .= '<div class="hotspot-hover">';
|
1310 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
1311 |
-
$html .= '<textarea name="hotspot-hover"></textarea>';
|
1312 |
-
$html .= '</div>';
|
1313 |
-
|
1314 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1315 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1316 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1317 |
-
$html .= '<option value="none" selected> None</option>';
|
1318 |
-
$html .= '</select>';
|
1319 |
-
$html .= '</div>';
|
1320 |
-
|
1321 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1322 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
|
1323 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
|
1324 |
-
$html .= '</div>';
|
1325 |
-
|
1326 |
-
$html .= '</div>';
|
1327 |
-
//=Hotspot type End=//
|
1328 |
-
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
1329 |
-
$html .= '</div>';
|
1330 |
-
$html .= '</div>';
|
1331 |
-
|
1332 |
-
$html .= '</div>';
|
1333 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
|
1334 |
-
$html .= '</div>';
|
1335 |
-
|
1336 |
-
|
1337 |
-
$html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-1">';
|
1338 |
-
$html .= '<div class="active_scene_id"><p></p></div>';
|
1339 |
-
$html .= '<div class="scene-content">';
|
1340 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
|
1341 |
-
|
1342 |
-
$html .= '<div class="scene-left">';
|
1343 |
-
//==Set Default Scene==//
|
1344 |
-
$html .= '<div class="single-settings dscene">';
|
1345 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
1346 |
-
$html .= '<select class="dscen" name="dscene">';
|
1347 |
-
$html .= '<option value="on"> Yes</option>';
|
1348 |
-
$html .= '<option value="off" selected > No</option>';
|
1349 |
-
$html .= '</select>';
|
1350 |
-
$html .= '</div>';
|
1351 |
-
//==Set Default Scene end==//
|
1352 |
-
|
1353 |
-
$html .= '<div class=scene-setting>';
|
1354 |
-
$html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
|
1355 |
-
$html .= '<input class="sceneid" type="text" name="scene-id"/>';
|
1356 |
-
$html .= '</div>';
|
1357 |
-
|
1358 |
-
$html .= '<div class=scene-setting>';
|
1359 |
-
$html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
|
1360 |
-
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
1361 |
-
$html .= '</div>';
|
1362 |
-
|
1363 |
-
$html .= '<div class=scene-setting>';
|
1364 |
-
$html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
|
1365 |
-
$html .= '<div class="form-group">';
|
1366 |
-
$html .= '<img src="" style="display: none;"><br>';
|
1367 |
-
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
1368 |
-
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
|
1369 |
-
$html .= '</div>';
|
1370 |
-
$html .= '</div>';
|
1371 |
-
$html .= '</div>';
|
1372 |
-
//----end scene left------
|
1373 |
-
|
1374 |
-
$html .= '</div>';
|
1375 |
-
|
1376 |
-
//--hotspot setup--//
|
1377 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
1378 |
-
|
1379 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1380 |
-
$html .= '<ul>';
|
1381 |
-
$html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
|
1382 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
|
1383 |
-
$html .= '</ul>';
|
1384 |
-
$html .= '</nav>';
|
1385 |
-
|
1386 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
1387 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-1-hotspot-1">';
|
1388 |
-
|
1389 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
1390 |
-
|
1391 |
-
$html .= '<div class="wrapper">';
|
1392 |
-
$html .= '<div class="hotspot-setting">';
|
1393 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
1394 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
1395 |
-
$html .= '</div>';
|
1396 |
-
|
1397 |
-
$html .= '<div class="hotspot-setting">';
|
1398 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
1399 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
|
1400 |
-
$html .= '</div>';
|
1401 |
-
|
1402 |
-
$html .= '<div class="hotspot-setting">';
|
1403 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
1404 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
|
1405 |
-
$html .= '</div>';
|
1406 |
-
|
1407 |
-
$html .= '<div class="hotspot-setting">';
|
1408 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
1409 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
1410 |
-
$html .= '</div>';
|
1411 |
-
|
1412 |
-
$html .= '</div>';
|
1413 |
-
|
1414 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1415 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1416 |
-
$html .= '<select name="hotspot-type">';
|
1417 |
-
$html .= '<option value="info" selected> Info</option>';
|
1418 |
-
$html .= '<option value="scene"> Scene</option>';
|
1419 |
-
$html .= '</select>';
|
1420 |
-
|
1421 |
-
$html .= '<div class="hotspot-url">';
|
1422 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
|
1423 |
-
$html .= '<input type="url" name="hotspot-url" value="" />';
|
1424 |
-
$html .= '</div>';
|
1425 |
-
|
1426 |
-
//====Hotspot open in same tab===//
|
1427 |
-
$html .= '<div class="single-settings s_tab">';
|
1428 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1429 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1430 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
|
1431 |
-
$html .= '<span class="switcher-box"></span>';
|
1432 |
-
$html .= '</label>';
|
1433 |
-
$html .= '</div>';
|
1434 |
-
//====Hotspot open in same tab end===//
|
1435 |
-
|
1436 |
-
$html .= '<div class="hotspot-content">';
|
1437 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1438 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
1439 |
-
$html .= '</div>';
|
1440 |
-
|
1441 |
-
$html .= '<div class="hotspot-hover">';
|
1442 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
1443 |
-
$html .= '<textarea name="hotspot-hover"></textarea>';
|
1444 |
-
$html .= '</div>';
|
1445 |
-
|
1446 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1447 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1448 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1449 |
-
$html .= '<option value="none"> None</option>';
|
1450 |
-
$html .= '</select>';
|
1451 |
-
$html .= '</div>';
|
1452 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1453 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
|
1454 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
|
1455 |
-
$html .= '</div>';
|
1456 |
-
|
1457 |
-
$html .= '</div>';
|
1458 |
-
//=Hotspot type End=//
|
1459 |
-
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
1460 |
-
$html .= '</div>';
|
1461 |
-
$html .= '</div>';
|
1462 |
-
$html .= '</div>';
|
1463 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
|
1464 |
-
$html .= '</div>';
|
1465 |
-
$html .= '</div>';
|
1466 |
-
|
1467 |
-
$html .= '</div>';
|
1468 |
-
} else {
|
1469 |
-
$html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
|
1470 |
-
|
1471 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
|
1472 |
-
$html .= '<ul>';
|
1473 |
-
$i = 1;
|
1474 |
-
$firstvalue = reset($pano_data["scene-list"]);
|
1475 |
-
foreach ($pano_data["scene-list"] as $pano_scenes) {
|
1476 |
-
if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
|
1477 |
-
$html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
|
1478 |
-
} else {
|
1479 |
-
$html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
|
1480 |
-
}
|
1481 |
-
$i++;
|
1482 |
-
}
|
1483 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
|
1484 |
-
$html .= '</ul>';
|
1485 |
-
$html .= '</nav>';
|
1486 |
-
|
1487 |
-
|
1488 |
-
$html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
|
1489 |
-
|
1490 |
-
//===Default empty repeater declared by nazmus sakib===//
|
1491 |
-
$html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
|
1492 |
-
$html .= '<div class="active_scene_id"><p></p></div>';
|
1493 |
-
$html .= '<div class="scene-content">';
|
1494 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
|
1495 |
-
|
1496 |
-
$html .= '<div class="scene-left">';
|
1497 |
-
//==Set Default Scene==//
|
1498 |
-
$html .= '<div class="single-settings dscene">';
|
1499 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
1500 |
-
$html .= '<select class="dscen" name="dscene">';
|
1501 |
-
$html .= '<option value="on"> Yes</option>';
|
1502 |
-
$html .= '<option value="off" selected > No</option>';
|
1503 |
-
$html .= '</select>';
|
1504 |
-
$html .= '</div>';
|
1505 |
-
//==Set Default Scene end==//
|
1506 |
-
$html .= '<div class=scene-setting>';
|
1507 |
-
$html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
|
1508 |
-
$html .= '<input class="sceneid" type="text" name="scene-id"/>';
|
1509 |
-
$html .= '</div>';
|
1510 |
-
|
1511 |
-
$html .= '<div class=scene-setting>';
|
1512 |
-
$html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
|
1513 |
-
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
1514 |
-
$html .= '</div>';
|
1515 |
-
|
1516 |
-
$html .= '<div class=scene-setting>';
|
1517 |
-
$html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
|
1518 |
-
$html .= '<div class="form-group">';
|
1519 |
-
$html .= '<img src="" style="display: none;"><br>';
|
1520 |
-
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
1521 |
-
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
|
1522 |
-
$html .= '</div>';
|
1523 |
-
$html .= '</div>';
|
1524 |
-
$html .= '</div>';
|
1525 |
-
//-----end scene left------
|
1526 |
-
|
1527 |
-
$html .= '</div>';
|
1528 |
-
|
1529 |
-
//--hotspot setup--//
|
1530 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
1531 |
-
|
1532 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1533 |
-
$html .= '<ul>';
|
1534 |
-
$html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
|
1535 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
|
1536 |
-
$html .= '</ul>';
|
1537 |
-
$html .= '</nav>';
|
1538 |
-
|
1539 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
1540 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
|
1541 |
-
|
1542 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
1543 |
-
|
1544 |
-
$html .= '<div class="wrapper">';
|
1545 |
-
$html .= '<div class="hotspot-setting">';
|
1546 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
1547 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
1548 |
-
$html .= '</div>';
|
1549 |
-
|
1550 |
-
$html .= '<div class="hotspot-setting">';
|
1551 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
1552 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
|
1553 |
-
$html .= '</div>';
|
1554 |
-
|
1555 |
-
$html .= '<div class="hotspot-setting">';
|
1556 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
1557 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
|
1558 |
-
$html .= '</div>';
|
1559 |
-
|
1560 |
-
$html .= '<div class="hotspot-setting">';
|
1561 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
1562 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
1563 |
-
$html .= '</div>';
|
1564 |
-
|
1565 |
-
$html .= '</div>';
|
1566 |
-
|
1567 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1568 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1569 |
-
$html .= '<select name="hotspot-type">';
|
1570 |
-
$html .= '<option value="info" selected> Info</option>';
|
1571 |
-
$html .= '<option value="scene"> Scene</option>';
|
1572 |
-
$html .= '</select>';
|
1573 |
-
|
1574 |
-
$html .= '<div class="hotspot-url">';
|
1575 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
|
1576 |
-
$html .= '<input type="url" name="hotspot-url" value="" />';
|
1577 |
-
$html .= '</div>';
|
1578 |
-
|
1579 |
-
//====Hotspot open in same tab===//
|
1580 |
-
$html .= '<div class="single-settings s_tab">';
|
1581 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1582 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1583 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
|
1584 |
-
$html .= '<span class="switcher-box"></span>';
|
1585 |
-
$html .= '</label>';
|
1586 |
-
$html .= '</div>';
|
1587 |
-
//====Hotspot open in same tab end===//
|
1588 |
-
|
1589 |
-
$html .= '<div class="hotspot-content">';
|
1590 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1591 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
1592 |
-
$html .= '</div>';
|
1593 |
-
|
1594 |
-
$html .= '<div class="hotspot-hover">';
|
1595 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
1596 |
-
$html .= '<textarea name="hotspot-hover"></textarea>';
|
1597 |
-
$html .= '</div>';
|
1598 |
-
|
1599 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1600 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1601 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1602 |
-
$html .= '<option value="none" selected> None</option>';
|
1603 |
-
$html .= '</select>';
|
1604 |
-
$html .= '</div>';
|
1605 |
-
|
1606 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1607 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
|
1608 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
|
1609 |
-
$html .= '</div>';
|
1610 |
-
|
1611 |
-
$html .= '</div>';
|
1612 |
-
//=Hotspot type End=//
|
1613 |
-
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
1614 |
-
$html .= '</div>';
|
1615 |
-
$html .= '</div>';
|
1616 |
-
|
1617 |
-
$html .= '</div>';
|
1618 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
|
1619 |
-
$html .= '</div>';
|
1620 |
-
//==Empty repeater end==//
|
1621 |
-
|
1622 |
-
$s = 1;
|
1623 |
-
foreach ($pano_data["scene-list"] as $pano_scenes) {
|
1624 |
-
$dscene = '';
|
1625 |
-
if (isset($pano_scenes['dscene'])) {
|
1626 |
-
$dscene = $pano_scenes['dscene'];
|
1627 |
-
}
|
1628 |
-
$scene_id = '';
|
1629 |
-
$scene_id = $pano_scenes["scene-id"];
|
1630 |
-
$scene_type = 'equirectangular';
|
1631 |
-
$scene_type = $pano_scenes["scene-type"];
|
1632 |
-
$scene_photo = '';
|
1633 |
-
$scene_photo = $pano_scenes["scene-attachment-url"];
|
1634 |
-
|
1635 |
-
$pano_hotspots = array();
|
1636 |
-
if (isset($pano_scenes["hotspot-list"])) {
|
1637 |
-
$pano_hotspots = $pano_scenes["hotspot-list"];
|
1638 |
-
}
|
1639 |
-
|
1640 |
-
$firstvalueset = reset($pano_data["scene-list"]);
|
1641 |
-
if ($pano_scenes['scene-id'] == $firstvalueset['scene-id']) {
|
1642 |
-
$html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-'.$s.'">';
|
1643 |
-
$html .= '<div class="active_scene_id"><p></p></div>';
|
1644 |
-
$html .= '<div class="scene-content">';
|
1645 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
|
1646 |
-
|
1647 |
-
$html .= '<div class="scene-left">';
|
1648 |
-
//==Set Default Scene==//
|
1649 |
-
if ($dscene == 'on') {
|
1650 |
-
$html .= '<div class="single-settings dscene">';
|
1651 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
1652 |
-
$html .= '<select class="dscen" name="dscene">';
|
1653 |
-
$html .= '<option value="on" selected > Yes</option>';
|
1654 |
-
$html .= '<option value="off"> No</option>';
|
1655 |
-
$html .= '</select>';
|
1656 |
-
$html .= '</div>';
|
1657 |
-
} else {
|
1658 |
-
$html .= '<div class="single-settings dscene">';
|
1659 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
1660 |
-
$html .= '<select class="dscen" name="dscene">';
|
1661 |
-
$html .= '<option value="on"> Yes</option>';
|
1662 |
-
$html .= '<option value="off" selected > No</option>';
|
1663 |
-
$html .= '</select>';
|
1664 |
-
$html .= '</div>';
|
1665 |
-
}
|
1666 |
-
//==Set Default Scene end==//
|
1667 |
-
$html .= '<div class=scene-setting>';
|
1668 |
-
$html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
|
1669 |
-
$html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
|
1670 |
-
$html .= '</div>';
|
1671 |
-
|
1672 |
-
$html .= '<div class=scene-setting>';
|
1673 |
-
$html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
|
1674 |
-
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
1675 |
-
$html .= '</div>';
|
1676 |
-
|
1677 |
-
$html .= '<div class=scene-setting>';
|
1678 |
-
$html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
|
1679 |
-
$html .= '<div class="form-group">';
|
1680 |
-
$html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
|
1681 |
-
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
1682 |
-
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
|
1683 |
-
$html .= '</div>';
|
1684 |
-
$html .= '</div>';
|
1685 |
-
$html .= '</div>';
|
1686 |
-
// ---end scene left---
|
1687 |
-
|
1688 |
-
$html .= '</div>';
|
1689 |
-
|
1690 |
-
if (!empty($pano_hotspots)) {
|
1691 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
1692 |
-
|
1693 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
1694 |
-
$html .= '<ul>';
|
1695 |
-
$j = 1;
|
1696 |
-
$firstvaluehotspot = reset($pano_hotspots);
|
1697 |
-
foreach ($pano_hotspots as $pano_hotspot) {
|
1698 |
-
if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
|
1699 |
-
$html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
|
1700 |
-
} else {
|
1701 |
-
$html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
|
1702 |
-
}
|
1703 |
-
$j++;
|
1704 |
-
}
|
1705 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
|
1706 |
-
$html .= '</ul>';
|
1707 |
-
$html .= '</nav>';
|
1708 |
-
|
1709 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
1710 |
-
|
1711 |
-
$h = 1;
|
1712 |
-
$firstvaluehotspotset = reset($pano_hotspots);
|
1713 |
-
$is_wpvr_premium = apply_filters('is_wpvr_premium', false);
|
1714 |
-
foreach ($pano_hotspots as $pano_hotspot) {
|
1715 |
-
$hotspot_title = '';
|
1716 |
-
$hotspot_title = $pano_hotspot['hotspot-title'];
|
1717 |
-
$hotspot_pitch = '';
|
1718 |
-
$hotspot_pitch = $pano_hotspot['hotspot-pitch'];
|
1719 |
-
$hotspot_yaw = '';
|
1720 |
-
$hotspot_yaw = $pano_hotspot['hotspot-yaw'];
|
1721 |
-
$hotspot_type = '';
|
1722 |
-
$hotspot_type = $pano_hotspot['hotspot-type'];
|
1723 |
-
$hotspot_url = '';
|
1724 |
-
$hotspot_url = $pano_hotspot['hotspot-url'];
|
1725 |
-
$hotspot_content = '';
|
1726 |
-
$hotspot_content = $pano_hotspot['hotspot-content'];
|
1727 |
-
$hotspot_hover = '';
|
1728 |
-
$hotspot_hover = $pano_hotspot['hotspot-hover'];
|
1729 |
-
$hotspot_target_scene = '';
|
1730 |
-
$hotspot_target_scene = $pano_hotspot['hotspot-scene'];
|
1731 |
-
$hotspot_custom_class = '';
|
1732 |
-
if (isset($pano_hotspot['hotspot-customclass'])) {
|
1733 |
-
$hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
|
1734 |
-
}
|
1735 |
-
|
1736 |
-
if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
|
1737 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
1738 |
-
|
1739 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
1740 |
-
|
1741 |
-
$html .= '<div class="wrapper">';
|
1742 |
-
$html .= '<div class="hotspot-setting">';
|
1743 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
1744 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
1745 |
-
$html .= '</div>';
|
1746 |
-
|
1747 |
-
$html .= '<div class="hotspot-setting">';
|
1748 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'
|
1749 |
-
</label>';
|
1750 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
1751 |
-
$html .= '</div>';
|
1752 |
-
|
1753 |
-
$html .= '<div class="hotspot-setting">';
|
1754 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
1755 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
1756 |
-
$html .= '</div>';
|
1757 |
-
|
1758 |
-
$html .= '<div class="hotspot-setting">';
|
1759 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
1760 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
1761 |
-
$html .= '</div>';
|
1762 |
-
|
1763 |
-
$html .= '</div>';
|
1764 |
-
|
1765 |
-
//=Hotspot type=//
|
1766 |
-
if ($hotspot_type == "info") {
|
1767 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1768 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1769 |
-
$html .= '<select name="hotspot-type">';
|
1770 |
-
$html .= '<option value="info" selected> Info</option>';
|
1771 |
-
$html .= '<option value="scene"> Scene</option>';
|
1772 |
-
$html .= '</select>';
|
1773 |
-
|
1774 |
-
$html .= '<div class="hotspot-url">';
|
1775 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
|
1776 |
-
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
1777 |
-
$html .= '</div>';
|
1778 |
-
|
1779 |
-
//====Hotspot open in same tab===//
|
1780 |
-
$wpvr_url_open_checked = '';
|
1781 |
-
$wpvr_url_open_data = 'off';
|
1782 |
-
if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
|
1783 |
-
$wpvr_url_open_checked = 'checked';
|
1784 |
-
$wpvr_url_open_data = 'on';
|
1785 |
-
}
|
1786 |
-
|
1787 |
-
$html .= '<div class="single-settings s_tab">';
|
1788 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1789 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1790 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
|
1791 |
-
$html .= '<span class="switcher-box"></span>';
|
1792 |
-
$html .= '</label>';
|
1793 |
-
$html .= '</div>';
|
1794 |
-
//====Hotspot open in same tab end===//
|
1795 |
-
|
1796 |
-
$html .= '<div class="hotspot-content">';
|
1797 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1798 |
-
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
1799 |
-
$html .= '</div>';
|
1800 |
-
|
1801 |
-
$html .= '<div class="hotspot-hover">';
|
1802 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
|
1803 |
-
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1804 |
-
$html .= '</div>';
|
1805 |
-
|
1806 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1807 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1808 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1809 |
-
$html .= '<option value="none" selected> None</option>';
|
1810 |
-
$html .= '</select>';
|
1811 |
-
$html .= '</div>';
|
1812 |
-
|
1813 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1814 |
-
$html .= '<label for="hotspot-scene"> '.__('Target Scene ID: ', 'wpvr').'</label>';
|
1815 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
|
1816 |
-
$html .= '</div>';
|
1817 |
-
|
1818 |
-
$html .= '</div>';
|
1819 |
-
} else {
|
1820 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1821 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1822 |
-
$html .= '<select class="trtr" name="hotspot-type">';
|
1823 |
-
$html .= '<option value="info"> Info</option>';
|
1824 |
-
$html .= '<option value="scene" selected> Scene</option>';
|
1825 |
-
$html .= '</select>';
|
1826 |
-
|
1827 |
-
$html .= '<div class="hotspot-url" style="display:none;">';
|
1828 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
|
1829 |
-
$html .= '<input type="url" name="hotspot-url" />';
|
1830 |
-
$html .= '</div>';
|
1831 |
-
|
1832 |
-
//====Hotspot open in same tab===//
|
1833 |
-
$html .= '<div class="single-settings s_tab" style="display:none;">';
|
1834 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1835 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1836 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
|
1837 |
-
$html .= '<span class="switcher-box"></span>';
|
1838 |
-
$html .= '</label>';
|
1839 |
-
$html .= '</div>';
|
1840 |
-
//====Hotspot open in same tab end===//
|
1841 |
-
|
1842 |
-
$html .= '<div class="hotspot-content" style="display:none;">';
|
1843 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
|
1844 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
1845 |
-
$html .= '</div>';
|
1846 |
-
|
1847 |
-
$html .= '<div class="hotspot-hover">';
|
1848 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
1849 |
-
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1850 |
-
$html .= '</div>';
|
1851 |
-
|
1852 |
-
$html .= '<div class="hotspot-scene" >';
|
1853 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1854 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1855 |
-
$html .= '<option value="none" selected> None</option>';
|
1856 |
-
$html .= '</select>';
|
1857 |
-
$html .= '</div>';
|
1858 |
-
|
1859 |
-
$html .= '<div class="hotspot-scene">';
|
1860 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
|
1861 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
|
1862 |
-
$html .= '</div>';
|
1863 |
-
|
1864 |
-
$html .= '</div>';
|
1865 |
-
}
|
1866 |
-
//=Hotspot type End=//
|
1867 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
1868 |
-
$html .= '</div>';
|
1869 |
-
} else {
|
1870 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
1871 |
-
|
1872 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
1873 |
-
|
1874 |
-
$html .= '<div class="wrapper">';
|
1875 |
-
$html .= '<div class="hotspot-setting">';
|
1876 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
1877 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
1878 |
-
$html .= '</div>';
|
1879 |
-
|
1880 |
-
$html .= '<div class="hotspot-setting">';
|
1881 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
1882 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
1883 |
-
$html .= '</div>';
|
1884 |
-
|
1885 |
-
$html .= '<div class="hotspot-setting">';
|
1886 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
1887 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
1888 |
-
$html .= '</div>';
|
1889 |
-
|
1890 |
-
$html .= '<div class="hotspot-setting">';
|
1891 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
1892 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
1893 |
-
$html .= '</div>';
|
1894 |
-
|
1895 |
-
$html .= '</div>';
|
1896 |
-
|
1897 |
-
//=Hotspot type=//
|
1898 |
-
if ($hotspot_type == "info") {
|
1899 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1900 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1901 |
-
$html .= '<select name="hotspot-type">';
|
1902 |
-
$html .= '<option value="info" selected> Info</option>';
|
1903 |
-
$html .= '<option value="scene"> Scene</option>';
|
1904 |
-
$html .= '</select>';
|
1905 |
-
|
1906 |
-
$html .= '<div class="hotspot-url">';
|
1907 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
|
1908 |
-
$html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
|
1909 |
-
$html .= '</div>';
|
1910 |
-
|
1911 |
-
//====Hotspot open in same tab===//
|
1912 |
-
$wpvr_url_open_checked = '';
|
1913 |
-
$wpvr_url_open_data = 'off';
|
1914 |
-
|
1915 |
-
if (isset($pano_hotspot['wpvr_url_open'][0]) && $pano_hotspot['wpvr_url_open'][0] == 'on') {
|
1916 |
-
$wpvr_url_open_checked = 'checked';
|
1917 |
-
$wpvr_url_open_data = 'on';
|
1918 |
-
}
|
1919 |
-
|
1920 |
-
$html .= '<div class="single-settings s_tab">';
|
1921 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1922 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1923 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
|
1924 |
-
$html .= '<span class="switcher-box"></span>';
|
1925 |
-
$html .= '</label>';
|
1926 |
-
$html .= '</div>';
|
1927 |
-
//====Hotspot open in same tab end===//
|
1928 |
-
|
1929 |
-
$html .= '<div class="hotspot-content">';
|
1930 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1931 |
-
$html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
|
1932 |
-
$html .= '</div>';
|
1933 |
-
|
1934 |
-
$html .= '<div class="hotspot-hover">';
|
1935 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
1936 |
-
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1937 |
-
$html .= '</div>';
|
1938 |
-
|
1939 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1940 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1941 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1942 |
-
$html .= '<option value="none" selected> None</option>';
|
1943 |
-
$html .= '</select>';
|
1944 |
-
$html .= '</div>';
|
1945 |
-
|
1946 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
1947 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
|
1948 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
|
1949 |
-
$html .= '</div>';
|
1950 |
-
|
1951 |
-
$html .= '</div>';
|
1952 |
-
} else {
|
1953 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
1954 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
1955 |
-
$html .= '<select class="trtr" name="hotspot-type">';
|
1956 |
-
$html .= '<option value="info"> Info</option>';
|
1957 |
-
$html .= '<option value="scene" selected> Scene</option>';
|
1958 |
-
$html .= '</select>';
|
1959 |
-
|
1960 |
-
$html .= '<div class="hotspot-url" style="display:none;">';
|
1961 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
|
1962 |
-
$html .= '<input type="url" name="hotspot-url" />';
|
1963 |
-
$html .= '</div>';
|
1964 |
-
|
1965 |
-
//====Hotspot open in same tab===//
|
1966 |
-
$html .= '<div class="single-settings s_tab" style="display:none;">';
|
1967 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
1968 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
1969 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
|
1970 |
-
$html .= '<span class="switcher-box"></span>';
|
1971 |
-
$html .= '</label>';
|
1972 |
-
$html .= '</div>';
|
1973 |
-
//====Hotspot open in same tab end===//
|
1974 |
-
|
1975 |
-
$html .= '<div class="hotspot-content" style="display:none;">';
|
1976 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
1977 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
1978 |
-
$html .= '</div>';
|
1979 |
-
|
1980 |
-
$html .= '<div class="hotspot-hover">';
|
1981 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
|
1982 |
-
$html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
|
1983 |
-
$html .= '</div>';
|
1984 |
-
|
1985 |
-
$html .= '<div class="hotspot-scene" >';
|
1986 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
1987 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
1988 |
-
$html .= '<option value="none" selected> None</option>';
|
1989 |
-
$html .= '</select>';
|
1990 |
-
$html .= '</div>';
|
1991 |
-
|
1992 |
-
$html .= '<div class="hotspot-scene">';
|
1993 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
|
1994 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
|
1995 |
-
$html .= '</div>';
|
1996 |
-
|
1997 |
-
$html .= '</div>';
|
1998 |
-
}
|
1999 |
-
//=Hotspot type End=//
|
2000 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
2001 |
-
$html .= '</div>';
|
2002 |
-
}
|
2003 |
-
$h++;
|
2004 |
-
}
|
2005 |
-
$html .= '</div>';
|
2006 |
-
$html .= '</div>';
|
2007 |
-
} else {
|
2008 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
2009 |
-
|
2010 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
2011 |
-
$html .= '<ul>';
|
2012 |
-
$html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
|
2013 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
|
2014 |
-
$html .= '</ul>';
|
2015 |
-
$html .= '</nav>';
|
2016 |
-
|
2017 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
2018 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
|
2019 |
-
|
2020 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
2021 |
-
|
2022 |
-
$html .= '<div class="wrapper">';
|
2023 |
-
$html .= '<div class="hotspot-setting">';
|
2024 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
2025 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
|
2026 |
-
$html .= '</div>';
|
2027 |
-
|
2028 |
-
$html .= '<div class="hotspot-setting">';
|
2029 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
2030 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
|
2031 |
-
$html .= '</div>';
|
2032 |
-
|
2033 |
-
$html .= '<div class="hotspot-setting">';
|
2034 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
2035 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
|
2036 |
-
$html .= '</div>';
|
2037 |
-
|
2038 |
-
$html .= '<div class="hotspot-setting">';
|
2039 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon class: ', 'wpvr').'</label>';
|
2040 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
|
2041 |
-
$html .= '</div>';
|
2042 |
-
|
2043 |
-
$html .= '</div>';
|
2044 |
-
|
2045 |
-
$html .= '<div class="hotspot-type hotspot-setting">';
|
2046 |
-
$html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
|
2047 |
-
$html .= '<select name="hotspot-type">';
|
2048 |
-
$html .= '<option value="info" selected> Info</option>';
|
2049 |
-
$html .= '<option value="scene"> Scene</option>';
|
2050 |
-
$html .= '</select>';
|
2051 |
-
|
2052 |
-
$html .= '<div class="hotspot-url">';
|
2053 |
-
$html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
|
2054 |
-
$html .= '<input type="url" name="hotspot-url" value="" />';
|
2055 |
-
$html .= '</div>';
|
2056 |
-
|
2057 |
-
//====Hotspot open in same tab===//
|
2058 |
-
$html .= '<div class="single-settings s_tab">';
|
2059 |
-
$html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
|
2060 |
-
$html .= '<label class="wpvr-switcher-v2">';
|
2061 |
-
$html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
|
2062 |
-
$html .= '<span class="switcher-box"></span>';
|
2063 |
-
$html .= '</label>';
|
2064 |
-
$html .= '</div>';
|
2065 |
-
//====Hotspot open in same tab end===//
|
2066 |
-
|
2067 |
-
$html .= '<div class="hotspot-content">';
|
2068 |
-
$html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
|
2069 |
-
$html .= '<textarea name="hotspot-content"></textarea>';
|
2070 |
-
$html .= '</div>';
|
2071 |
-
|
2072 |
-
$html .= '<div class="hotspot-hover">';
|
2073 |
-
$html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
|
2074 |
-
$html .= '<textarea name="hotspot-hover"></textarea>';
|
2075 |
-
$html .= '</div>';
|
2076 |
-
|
2077 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
2078 |
-
$html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
|
2079 |
-
$html .= '<select class="hotspotscene" name="hotspot-scene-list">';
|
2080 |
-
$html .= '<option value="none"> None</option>';
|
2081 |
-
$html .= '</select>';
|
2082 |
-
$html .= '</div>';
|
2083 |
-
$html .= '<div class="hotspot-scene" style="display:none;" >';
|
2084 |
-
$html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
|
2085 |
-
$html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
|
2086 |
-
$html .= '</div>';
|
2087 |
-
|
2088 |
-
$html .= '</div>';
|
2089 |
-
//=Hotspot type End=//
|
2090 |
-
$html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
|
2091 |
-
$html .= '</div>';
|
2092 |
-
$html .= '</div>';
|
2093 |
-
$html .= '</div>';
|
2094 |
-
}
|
2095 |
-
$html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
|
2096 |
-
$html .= '</div>';
|
2097 |
-
} else {
|
2098 |
-
$html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="1" id="scene-'.$s.'">';
|
2099 |
-
$html .= '<div class="active_scene_id"><p></p></div>';
|
2100 |
-
$html .= '<div class="scene-content">';
|
2101 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
|
2102 |
-
|
2103 |
-
$html .= '<div class="scene-left">';
|
2104 |
-
//==Set Default Scene==//
|
2105 |
-
if ($dscene == 'on') {
|
2106 |
-
$html .= '<div class="single-settings dscene">';
|
2107 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
2108 |
-
$html .= '<select class="dscen" name="dscene">';
|
2109 |
-
$html .= '<option value="on" selected > Yes</option>';
|
2110 |
-
$html .= '<option value="off"> No</option>';
|
2111 |
-
$html .= '</select>';
|
2112 |
-
$html .= '</div>';
|
2113 |
-
} else {
|
2114 |
-
$html .= '<div class="single-settings dscene">';
|
2115 |
-
$html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
|
2116 |
-
$html .= '<select class="dscen" name="dscene">';
|
2117 |
-
$html .= '<option value="on"> Yes</option>';
|
2118 |
-
$html .= '<option value="off" selected> No</option>';
|
2119 |
-
$html .= '</select>';
|
2120 |
-
$html .= '</div>';
|
2121 |
-
}
|
2122 |
-
//==Set Default Scene end==//
|
2123 |
-
|
2124 |
-
$html .= '<div class=scene-setting>';
|
2125 |
-
$html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
|
2126 |
-
$html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
|
2127 |
-
$html .= '</div>';
|
2128 |
-
|
2129 |
-
$html .= '<div class=scene-setting>';
|
2130 |
-
$html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
|
2131 |
-
$html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
|
2132 |
-
$html .= '</div>';
|
2133 |
-
|
2134 |
-
$html .= '<div class=scene-setting>';
|
2135 |
-
$html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
|
2136 |
-
$html .= '<div class="form-group">';
|
2137 |
-
$html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
|
2138 |
-
$html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
|
2139 |
-
$html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
|
2140 |
-
$html .= '</div>';
|
2141 |
-
$html .= '</div>';
|
2142 |
-
$html .= '</div>';
|
2143 |
-
//--end scene left----
|
2144 |
-
|
2145 |
-
$html .= '</div>';
|
2146 |
-
|
2147 |
-
if (!empty($pano_hotspots)) {
|
2148 |
-
$html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
|
2149 |
-
|
2150 |
-
$html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
|
2151 |
-
$html .= '<ul>';
|
2152 |
-
$j = 1;
|
2153 |
-
foreach ($pano_hotspots as $pano_hotspot) {
|
2154 |
-
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
2155 |
-
$html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
|
2156 |
-
} else {
|
2157 |
-
$html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
|
2158 |
-
}
|
2159 |
-
$j++;
|
2160 |
-
}
|
2161 |
-
$html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
|
2162 |
-
$html .= '</ul>';
|
2163 |
-
$html .= '</nav>';
|
2164 |
-
|
2165 |
-
$html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
|
2166 |
-
|
2167 |
-
$h = 1;
|
2168 |
-
foreach ($pano_hotspots as $pano_hotspot) {
|
2169 |
-
$hotspot_title = '';
|
2170 |
-
$hotspot_title = $pano_hotspot['hotspot-title'];
|
2171 |
-
$hotspot_pitch = '';
|
2172 |
-
$hotspot_pitch = $pano_hotspot['hotspot-pitch'];
|
2173 |
-
$hotspot_yaw = '';
|
2174 |
-
$hotspot_yaw = $pano_hotspot['hotspot-yaw'];
|
2175 |
-
$hotspot_type = '';
|
2176 |
-
$hotspot_type = $pano_hotspot['hotspot-type'];
|
2177 |
-
$hotspot_url = '';
|
2178 |
-
$hotspot_url = $pano_hotspot['hotspot-url'];
|
2179 |
-
$hotspot_content = '';
|
2180 |
-
$hotspot_content = $pano_hotspot['hotspot-content'];
|
2181 |
-
$hotspot_hover = '';
|
2182 |
-
$hotspot_hover = $pano_hotspot['hotspot-hover'];
|
2183 |
-
$hotspot_target_scene = '';
|
2184 |
-
$hotspot_target_scene = $pano_hotspot['hotspot-scene'];
|
2185 |
-
$hotspot_custom_class = '';
|
2186 |
-
if (isset($pano_hotspot['hotspot-customclass'])) {
|
2187 |
-
$hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
|
2188 |
-
}
|
2189 |
-
|
2190 |
-
if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
|
2191 |
-
$html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
|
2192 |
-
|
2193 |
-
$html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
|
2194 |
-
|
2195 |
-
$html .= '<div class="wrapper">';
|
2196 |
-
$html .= '<div class="hotspot-setting">';
|
2197 |
-
$html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
|
2198 |
-
$html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
|
2199 |
-
$html .= '</div>';
|
2200 |
-
|
2201 |
-
$html .= '<div class="hotspot-setting">';
|
2202 |
-
$html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
|
2203 |
-
$html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
|
2204 |
-
$html .= '</div>';
|
2205 |
-
|
2206 |
-
$html .= '<div class="hotspot-setting">';
|
2207 |
-
$html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
|
2208 |
-
$html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
|
2209 |
-
$html .= '</div>';
|
2210 |
-
|
2211 |
-
$html .= '<div class="hotspot-setting">';
|
2212 |
-
$html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
|
2213 |
-
$html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
|
2214 |
-
$html .= '</div>';
|
2215 |
-
|
2216 |
-
$html .= '</div>';
|
2217 |
-
|
2218 |
-
//=Hotspot type=//
|
2219 |
-
if ($hotspot_type == "info") {
|
2220 |
-
$h |