AJAX_ZOOM - Version 1.3.0

Version Notes

Implemented new AJAX-ZOOM mouseover extension ver. 5

Download this release

Release Info

Developer AJAX-ZOOM
Extension AJAX_ZOOM
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.4 to 1.3.0

Files changed (49) hide show
  1. app/code/local/Ax/Zoom/AzMouseoverConfig.php +110 -0
  2. app/code/local/Ax/Zoom/AzMouseoverSettings.php +6434 -0
  3. app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Fieldset/License.php +11 -11
  4. app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Numberimages.php +50 -0
  5. app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Resetbutton.php +44 -0
  6. app/code/local/Ax/Zoom/Block/Adminhtml/Tabs/Tabid.php +29 -29
  7. app/code/local/Ax/Zoom/Helper/Data.php +5 -5
  8. app/code/local/Ax/Zoom/Helper/Head.php +44 -36
  9. app/code/local/Ax/Zoom/Model/Ax360.php +296 -260
  10. app/code/local/Ax/Zoom/Model/Ax360set.php +26 -26
  11. app/code/local/Ax/Zoom/Model/Axproducts.php +6 -6
  12. app/code/local/Ax/Zoom/Model/Azsettings.php +57 -0
  13. app/code/local/Ax/Zoom/Model/Galleryposition.php +0 -29
  14. app/code/local/Ax/Zoom/Model/Observer.php +33 -34
  15. app/code/local/Ax/Zoom/Model/Position.php +0 -29
  16. app/code/local/Ax/Zoom/Model/Position4.php +0 -28
  17. app/code/local/Ax/Zoom/Model/Resource/Ax360.php +6 -6
  18. app/code/local/Ax/Zoom/Model/Resource/Ax360/Collection.php +6 -6
  19. app/code/local/Ax/Zoom/Model/Resource/Ax360set.php +6 -6
  20. app/code/local/Ax/Zoom/Model/Resource/Ax360set/Collection.php +6 -6
  21. app/code/local/Ax/Zoom/Model/Resource/Axproducts.php +6 -6
  22. app/code/local/Ax/Zoom/Model/Resource/Axproducts/Collection.php +6 -6
  23. app/code/local/Ax/Zoom/Model/Words.php +0 -29
  24. app/code/local/Ax/Zoom/Model/Yesno.php +0 -27
  25. app/code/local/Ax/Zoom/controllers/AxzoomController.php +212 -161
  26. app/code/local/Ax/Zoom/etc/config.xml +401 -428
  27. app/code/local/Ax/Zoom/etc/system.xml +2245 -1483
  28. app/code/local/Ax/Zoom/sql/axzoom_setup/install-0.0.1.php +0 -69
  29. app/code/local/Ax/Zoom/sql/axzoom_setup/install-1.3.0.php +69 -0
  30. app/code/local/Ax/Zoom/sql/axzoom_setup/upgrade-1.2.4-1.3.0.php +25 -0
  31. app/design/adminhtml/default/default/layout/axzoom.xml +26 -30
  32. app/design/adminhtml/default/default/template/axzoom/tab.phtml +32 -32
  33. app/design/adminhtml/default/default/template/axzoom/tab360-sets.phtml +6 -6
  34. app/design/adminhtml/default/default/template/axzoom/tab360-settings.phtml +279 -282
  35. app/design/adminhtml/default/default/template/axzoom/tab360.phtml +5 -5
  36. app/design/adminhtml/default/default/template/axzoom/uploader.phtml +61 -61
  37. app/design/frontend/base/default/layout/axzoom.xml +56 -59
  38. app/design/frontend/base/default/template/ax_zoom/catalog/product/view/media.phtml +307 -489
  39. app/etc/modules/Ax_Zoom.xml +5 -5
  40. js/axzoom/axzoom.css +56 -0
  41. js/axzoom/check_fallback.js +34 -31
  42. js/axzoom/check_jquery.js +6 -6
  43. js/axzoom/check_jquery_admin.js +30 -30
  44. js/axzoom/lic.php +27 -28
  45. js/axzoom/preview/cropeditor.php +5 -5
  46. js/axzoom/preview/hotspoteditor.php +5 -5
  47. js/axzoom/preview/index.php +0 -1
  48. js/axzoom/zoomConfigCustomAZ.inc.php +5 -7
  49. package.xml +5 -5
app/code/local/Ax/Zoom/AzMouseoverConfig.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/AzMouseoverConfig.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ $az_mouseover_config_magento = array(
18
+ 'vendor' => 'Magento',
19
+ 'exclude_opt_vendor' => array(
20
+ 'axZmPath',
21
+ 'lang',
22
+ 'images',
23
+ 'images360',
24
+ 'videos',
25
+ 'enableNativeSlider',
26
+ 'enableInTab',
27
+ 'enableInTabOpt',
28
+ 'enableCssInOtherPages',
29
+ 'default360settingsEmbed',
30
+ 'defaultVideoYoutubeSettings',
31
+ 'defaultVideoVimeoSettings',
32
+ 'defaultVideoDailymotionSettings',
33
+ 'defaultVideoVideojsSettings',
34
+ 'defaultVideoVideojsJS'
35
+ ),
36
+ 'exclude_cat_vendor' => array('contents_settings','video_settings'),
37
+ 'config_vendor' => array(
38
+ 'oneSrcImg' => true,
39
+ 'heightRatioOneImg' => 1.0,
40
+ 'zoomWidth' => '.product-shop|+1',
41
+ 'zoomHeight' => '.product-essential',
42
+ 'width' => 800,
43
+ 'height' => 800
44
+ ),
45
+ 'config_extend' => array(
46
+ 'magentoAllImages' => array(
47
+ 'prefix' => 'AJAXZOOM',
48
+ 'important' => false,
49
+ 'type' => 'bool',
50
+ 'isJsObject' => false,
51
+ 'isJsArray' => false,
52
+ 'display' => 'switch',
53
+ 'height' => null,
54
+ 'default' => false,
55
+ 'options' => null,
56
+ 'comment' => array(
57
+ 'EN' => '
58
+ Load all images independent on label (color),
59
+ also from "Simple Products" which are bind
60
+ to Configurable Product on start.
61
+ ',
62
+ 'DE' => '
63
+ Load all images independent on label (color),
64
+ also from "Simple Products" which are bind
65
+ to Configurable Product on start.
66
+ '
67
+ )
68
+ ),
69
+ 'magentoNoImage' => array(
70
+ 'prefix' => 'AJAXZOOM',
71
+ 'important' => false,
72
+ 'type' => 'bool',
73
+ 'isJsObject' => false,
74
+ 'isJsArray' => false,
75
+ 'display' => 'switch',
76
+ 'height' => null,
77
+ 'default' => false,
78
+ 'options' => null,
79
+ 'comment' => array(
80
+ 'EN' => '
81
+ Show magento no image available,
82
+ if no AJAX-ZOOM no image available will be shown.
83
+ ',
84
+ 'DE' => '
85
+ Show magento no image available,
86
+ if no AJAX-ZOOM no image available will be shown.
87
+ '
88
+ )
89
+ ),
90
+ 'magentoAdminThumb' => array(
91
+ 'prefix' => 'AJAXZOOM',
92
+ 'important' => false,
93
+ 'type' => 'bool',
94
+ 'isJsObject' => false,
95
+ 'isJsArray' => false,
96
+ 'display' => 'switch',
97
+ 'height' => null,
98
+ 'default' => false,
99
+ 'options' => null,
100
+ 'comment' => array(
101
+ 'EN' => '
102
+ Replace normal images in admin area with dynamically generated thumbs of these images
103
+ ',
104
+ 'DE' => '
105
+ Replace normal images in admin area with dynamically generated thumbs of these images
106
+ '
107
+ )
108
+ )
109
+ )
110
+ );
app/code/local/Ax/Zoom/AzMouseoverSettings.php ADDED
@@ -0,0 +1,6434 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AzMouseoverSettings.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.0.10
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=docs
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ if (!class_exists('AzMouseoverSettings', false)) {
18
+
19
+ class AzMouseoverSettings
20
+ {
21
+ public $vendor = '';
22
+ public $last_updated = '2017-06-25';
23
+ public $config = array();
24
+ public $items = array();
25
+ public $config_vendor = array();
26
+ public $config_extend = array();
27
+ public $categories = array();
28
+ public $exclude_opt_vendor = array('axZmPath', 'lang', 'images', 'images360', 'videos');
29
+ public $exclude_cat_vendor = array();
30
+
31
+ public function __construct()
32
+ {
33
+ $arguments = func_get_args();
34
+
35
+ if (!empty($arguments) && is_array($arguments[0])) {
36
+ foreach ($arguments[0] as $key => $property) {
37
+ if (property_exists($this, $key)) {
38
+ $this->{$key} = $property;
39
+ }
40
+ }
41
+ }
42
+
43
+ $this->defineCategories();
44
+ $this->defineConfig();
45
+ $this->extendConfig();
46
+ }
47
+
48
+ public function cleanComment($comment)
49
+ {
50
+ $comment = str_replace(array("\r\n", "\r", "\n", "\t"), ' ', $comment);
51
+ $comment = preg_replace('!\s+!', ' ', $comment);
52
+ return trim($comment);
53
+ }
54
+
55
+ public function defineCategories()
56
+ {
57
+ $this->categories = array(
58
+ 'plugin_settings' => array(
59
+ 'prefix' => 'AZ_CAT',
60
+ 'title' => array(
61
+ 'EN' => 'Plugin settings for '.$this->vendor,
62
+ 'DE' => 'Plugin Einstellungen für '.$this->vendor
63
+ )
64
+ ),
65
+ 'contents_settings' => array(
66
+ 'prefix' => 'AZ_CAT',
67
+ 'title' => array(
68
+ 'EN' => 'Contents settings',
69
+ 'DE' => 'Inhalts Einstellungen'
70
+ )
71
+ ),
72
+ 'general_settings' => array(
73
+ 'prefix' => 'AZ_CAT',
74
+ 'title' => array(
75
+ 'EN' => 'General settings',
76
+ 'DE' => 'Allgemeine Einstellungen'
77
+ )
78
+ ),
79
+ 'product_tour' => array(
80
+ 'prefix' => 'AZ_CAT',
81
+ 'title' => array(
82
+ 'EN' => '360 "Product tour"',
83
+ 'DE' => '360 "Produkt Tour"'
84
+ )
85
+ ),
86
+ 'fullscreen_gallery' => array(
87
+ 'prefix' => 'AZ_CAT',
88
+ 'title' => array(
89
+ 'EN' => 'Fullscreen gallery',
90
+ 'DE' => 'Vollbild Galerie'
91
+ )
92
+ ),
93
+ 'mouseover' => array(
94
+ 'prefix' => 'AZ_CAT',
95
+ 'title' => array(
96
+ 'EN' => 'Specific options for the mouseover zoom',
97
+ 'DE' => 'Spezifische optionen für mousever zoom'
98
+ )
99
+ ),
100
+ 'video_settings' => array(
101
+ 'prefix' => 'AZ_CAT',
102
+ 'title' => array(
103
+ 'EN' => 'Video settings',
104
+ 'DE' => 'Videos Einstellungen'
105
+ )
106
+ )
107
+
108
+ );
109
+ }
110
+
111
+ public function defineItemes()
112
+ {
113
+ $this->items = array(
114
+ 'images' => array(
115
+ 'prefix' => '',
116
+ 'category' => 'contents_settings',
117
+ 'important' => true,
118
+ 'type' => 'object, array',
119
+ 'isJsObject' => false,
120
+ 'isJsArray' => false,
121
+ 'display' => 'textarea',
122
+ 'height' => null,
123
+ 'default' => '{}',
124
+ 'options' => null,
125
+ 'comment' => array(
126
+ 'EN' => '
127
+ Object containing absolute paths to the master images, optional with titles. Start with 1, not 0.
128
+ Your master image "img" can be as big as you want, it never loads into cache
129
+ You can also protect the directory with .htaccess or other http access restrictions.
130
+
131
+ <pre class="language-js"><code class="language-js">
132
+ images: {
133
+ 1: {
134
+ img: "/pic/fashion_001.jpg",
135
+ title: "Test Title 1"
136
+ },
137
+ 2: {
138
+ img: "/pic/fashion_002.jpg",
139
+ title: "Test Title 2"
140
+ },
141
+ 3: {
142
+ img: "/pic/fashion_003.jpg",
143
+ title: "Test Title 3"
144
+ }
145
+ }
146
+ </code></pre>
147
+
148
+ Alternatively you can link to your static images with these keys: <br /> <br />
149
+ <ul>
150
+ <li>"zoom" - big mouseover image </li>
151
+ <li>"preview" - preview image </li>
152
+ <li>"thumb" - image for the gallery </li>
153
+ <li>"img" - your master image is needed anyway to open AJAX-ZOOM on click;
154
+ this image can be in a directory with restricted access over http;
155
+ </li>
156
+ <li>"title" - optional title</li>
157
+ <li>"hotspotFilePath" - Optionally you can define "hotspotFilePath" for each images
158
+ which is the path to the file containing data for hotspots.
159
+ For more information see <a href="http://www.ajax-zoom.com/examples/example33.php">example33.php</a>
160
+ or JSON / JS object with hotspots configuration. The hotspots will be
161
+ visible in fullscreen or responsive fancybox.
162
+ </li>
163
+ </ul>
164
+ <br /> <br />
165
+ So the images object would look like this:
166
+ <pre class="language-js"><code class="language-js">
167
+ images: {
168
+ 1: {
169
+ zoom: "/cache/fashion_001_1200x1200.jpg",
170
+ preview: "/cache/fashion_001_350x400.jpg",
171
+ thumb: "/cache/fashion_001_80x100.jpg"
172
+ img: "/pic/fashion_001.jpg",
173
+ title: "Test Title 1"
174
+ },
175
+ 2: {
176
+ zoom: "/cache/fashion_002_1200x1200.jpg",
177
+ preview: "/cache/fashion_002_350x400.jpg",
178
+ thumb: "/cache/fashion_002_80x100.jpg",
179
+ img: "/pic/fashion_002.jpg",
180
+ title: "Test Title 2"
181
+ },
182
+ 3: {
183
+ zoom: "/cache/fashion_003_1200x1200.jpg",
184
+ preview: "/cache/fashion_003_350x400.jpg",
185
+ thumb: "/cache/fashion_003_80x100.jpg",
186
+ img: "/pic/fashion_003.jpg",
187
+ title: "Test Title 3"
188
+ }
189
+ }
190
+ </code></pre>
191
+
192
+ In case "zoom", "preview" and "thumb" are not defined,
193
+ AJAX-ZOOM will generate these images out of "img" instantly on-the-fly.
194
+ <br /> <br />
195
+ "images" option can be also of type array, e.g.
196
+ <pre class="language-js"><code class="language-js">
197
+ images: [
198
+ { img: "/pic/fashion_001.jpg",
199
+ title: "Test Title 1"
200
+ },
201
+ { img: "/pic/fashion_002.jpg",
202
+ title: "Test Title 2"
203
+ },
204
+ { img: "/pic/fashion_003.jpg",
205
+ title: "Test Title 3"
206
+ }
207
+ ]
208
+ </code></pre>
209
+
210
+ ',
211
+ 'DE' => ''
212
+ )
213
+ ),
214
+
215
+ 'images360' => array(
216
+ 'prefix' => '',
217
+ 'category' => 'contents_settings',
218
+ 'important' => true,
219
+ 'type' => 'object, array',
220
+ 'isJsObject' => false,
221
+ 'isJsArray' => false,
222
+ 'display' => 'textarea',
223
+ 'height' => null,
224
+ 'default' => '{}',
225
+ 'options' => null,
226
+ 'comment' => array(
227
+ 'EN' => '
228
+ Object or an array with paths to the folders which contain 360 degree images;
229
+ mostly you would want to add only one 360 spin but the "images360" object can contain as many as you like;
230
+
231
+ <pre class="language-js"><code class="language-js">
232
+ images360: {
233
+ 1: {
234
+ path: "/pic/zoom3d/Uvex_Occhiali",
235
+ position: "first"
236
+ }
237
+ }
238
+ </code></pre>
239
+
240
+ Other possible keys are: <br /> <br />
241
+ <ul>
242
+ <li>"thumb" - direct link to thumb image displayed in the gallery.
243
+ In case "thumb" is not present AJAX-ZOOM will internally request
244
+ first image of your 360 and generate the thumb.
245
+ You can disable this by setting "images360Thumb" option below to
246
+ false so you will only get a 360 degree icon which is ok too.
247
+ </li>
248
+ <li>"thumbImg" - instead of "thumb" you can also directly link to an image under "path" out of which
249
+ AJAX-ZOOM will generate the gallery thumb
250
+ </li>
251
+ <li>"title" - optional title</li>
252
+ <li>"hotspotFilePath" - optional path to the file which contains data for hotspots. For more information see
253
+ <a href="http://www.ajax-zoom.com/examples/example33.php">example33.php</a>
254
+ or JSON / JS object with hotspots configuration.
255
+ </li>
256
+ <li>"crop" - JSON generated with <a href="http://www.ajax-zoom.com/examples/example35.php">example35.php</a>
257
+ or path to the file (static or dynamically generated) which contains this JSON.
258
+ </li>
259
+ </ul>
260
+
261
+ <br /><br />Most AJAX-ZOOM main script options can be set with JavaScript.
262
+ You could define these options for each 360 individually, e.g. <br /> <br />
263
+ <ul>
264
+ <li>"spinReverse" - reverse the direction of the spin</li>
265
+ <li>"spinDemoTime" - time in ms during which AJAX-ZOOM will make one turn</li>
266
+ <li>"someThingElse..." - any other key</li>
267
+ </ul>
268
+ ',
269
+ 'DE' => ''
270
+ )
271
+ ),
272
+
273
+ 'videos' => array(
274
+ 'prefix' => '',
275
+ 'category' => 'contents_settings',
276
+ 'important' => true,
277
+ 'type' => 'object, array',
278
+ 'isJsObject' => false,
279
+ 'isJsArray' => false,
280
+ 'display' => 'textarea',
281
+ 'height' => null,
282
+ 'default' => '{}',
283
+ 'options' => null,
284
+ 'comment' => array(
285
+ 'EN' => '
286
+ Object containing videos configuration. Start with 1, not 0.
287
+
288
+ <pre class="language-js"><code class="language-js">
289
+ videos: {
290
+ 1: {key: "YmcyTNWs9_Q", type: "youtube", position: "last", thumbImg: false},
291
+ 2: {key: "171617419", type: "vimeo", position: "last", thumbImg: false},
292
+ 3: {key: "x20g8k1", type: "dailymotion", position: "last", thumbImg: false, title: "Lorem..."},
293
+ 4: {
294
+ key: "http://vjs.zencdn.net/v/oceans.mp4",
295
+ type: "html5", position: "last",
296
+ thumbImg: false,
297
+ settings: {},
298
+ title: "Lorem..."
299
+ }
300
+ }
301
+ </code></pre>
302
+
303
+ Configuration keys: <br /> <br />
304
+ <ul>
305
+ <li>"key" - key of the video or url for html5</li>
306
+ <li>"type" - type of the video, possible values are youtube, vimeo, dailymotion or html5 </li>
307
+ <li>"position" - position in the gallery (first, last, afterFirst)</li>
308
+ <li>"thumbImg" - link to thumbnail / image. For youtube / vimeo / dailymotion they can be received instanly,
309
+ not need to be deifned
310
+ </li>
311
+ <li>"settings" - for html5 you can define several options over "settings" which is an object too.
312
+ This will extend the global settings for html5 player.
313
+ In e-commerce plugins these settings can be also set individually for each video over backend.
314
+ </li>
315
+ <li>"title" - optional title</li>
316
+ </ul>
317
+ ',
318
+ 'DE' => ''
319
+ )
320
+ )
321
+
322
+ );
323
+ }
324
+
325
+ public function defineConfig()
326
+ {
327
+ /*
328
+ 'OPTION' => array(
329
+ 'prefix' => 'AJAXZOOM',
330
+ 'category' => 'plugin_settings',
331
+ 'vendor' => array(),
332
+ 'important' => false,
333
+ 'useful' => false,
334
+ 'type' => 'bool',
335
+ 'isJsObject' => false,
336
+ 'isJsArray' => false,
337
+ 'display' => 'switch',
338
+ 'height' => null,
339
+ 'default' => false,
340
+ 'options' => null,
341
+ 'comment' => array(
342
+ 'EN' => '
343
+
344
+ ',
345
+ 'DE' => '
346
+
347
+ '
348
+ )
349
+ )
350
+ */
351
+
352
+ $this->config = array(
353
+
354
+ // plugin_settings
355
+ 'enableInFrontDetail' => array(
356
+ 'prefix' => 'AJAXZOOM', // prefix AJAXZOOM OR AZ
357
+ 'category' => 'plugin_settings', // key $this->categories
358
+ 'important' => false, // true / false
359
+ 'type' => 'bool', // bool, int, float, string, object, array, mixed, function
360
+ 'isJsObject' => false, // true, false
361
+ 'isJsArray' => false, // true, false
362
+ 'display' => 'switch', // text, textarea, switch, select
363
+ 'height' => null, // height of textarea if applied
364
+ 'default' => true, // default value
365
+ 'options' => null, // array for select
366
+ 'comment' => array(
367
+ 'EN' => '
368
+ Eneable / disable AJAX-ZOOM output in product detail view.
369
+ ',
370
+ 'DE' => '
371
+ Aktivieren / deaktivieren AJAX-ZOOM Output in Produktdetailansicht.
372
+ '
373
+ )
374
+ ),
375
+
376
+ 'enableCssInOtherPages' => array(
377
+ 'prefix' => 'AJAXZOOM',
378
+ 'category' => 'plugin_settings',
379
+ 'important' => false,
380
+ 'type' => 'bool',
381
+ 'isJsObject' => false,
382
+ 'isJsArray' => false,
383
+ 'display' => 'switch',
384
+ 'height' => null,
385
+ 'default' => true,
386
+ 'options' => null,
387
+ 'comment' => array(
388
+ 'EN' => '
389
+ Add a small css file to frontend for embedding AJAX-ZOOM in responsive iframe.
390
+ ',
391
+ 'DE' => '
392
+ Eine kleine css Datei weiteren Shopbereichen hinzufügen, um AJAX-ZOOM 360 Player
393
+ im responsiven iframe einzubetten.
394
+ '
395
+ )
396
+ ),
397
+
398
+ 'enableNativeSlider' => array(
399
+ 'prefix' => 'AJAXZOOM',
400
+ 'category' => 'plugin_settings',
401
+ 'vendor' => array('Shopware 5'),
402
+ 'important' => true,
403
+ 'type' => 'bool',
404
+ 'isJsObject' => false,
405
+ 'isJsArray' => false,
406
+ 'display' => 'switch',
407
+ 'height' => null,
408
+ 'default' => false,
409
+ 'options' => null,
410
+ 'comment' => array(
411
+ 'EN' => '
412
+ Eneable native '.$this->vendor.' slider for all products
413
+ instead of AJAX-ZOOM mouseover gallery.
414
+ The 360s will be injected into this native Shopware 5 gallery.
415
+ Please note that you might need to clear shop teplate cache to see the results.
416
+ ',
417
+ 'DE' => '
418
+ Den default '.$this->vendor.' Slider / Galerie
419
+ anstatt von AJAX-ZOOM Mouseover Zoom für alle Produkte aktivieren.
420
+ Die 360 Animationen werden in diesem Slider automatisch dargestellt.
421
+ Bitte beachten Sie, dass Sie eventuell den Shop-Teplate-Cache löschen müssen,
422
+ um die Ergebnisse zu sehen.
423
+ '
424
+ )
425
+ ),
426
+
427
+ 'enableInTab' => array(
428
+ 'prefix' => 'AJAXZOOM',
429
+ 'category' => 'plugin_settings',
430
+ 'vendor' => array('Shopware 5'),
431
+ 'important' => true,
432
+ 'type' => 'bool',
433
+ 'isJsObject' => false,
434
+ 'isJsArray' => false,
435
+ 'display' => 'switch',
436
+ 'height' => null,
437
+ 'default' => false,
438
+ 'options' => null,
439
+ 'comment' => array(
440
+ 'EN' => '
441
+ Display 360 / 3D / videos in tab contant.
442
+ Please note that you might need to clear shop teplate cache to see the results.
443
+ ',
444
+ 'DE' => '
445
+ Anzeige von 360 / 3D / Videos im Registerinhalt.
446
+ Bitte beachten Sie, dass Sie eventuell den Shop-Teplate-Cache löschen müssen,
447
+ um die Ergebnisse zu sehen.
448
+ '
449
+ )
450
+ ),
451
+
452
+ 'enableInTabOpt' => array(
453
+ 'prefix' => 'AJAXZOOM',
454
+ 'category' => 'plugin_settings',
455
+ 'vendor' => array('Shopware 5'),
456
+ 'important' => false,
457
+ 'type' => 'string',
458
+ 'isJsObject' => true,
459
+ 'isJsArray' => false,
460
+ 'display' => 'textarea',
461
+ 'height' => null,
462
+ 'default' => '{
463
+ "ajaxZoomOpenMode": "fullscreen",
464
+ "thumbSliderPosition": "bottom",
465
+ "maxSizePrc": "1.0|-200",
466
+ "azOptions360": {
467
+ "mouseScrollEnable": false,
468
+ "mouseScrollEnableFS": false,
469
+ "mNavi": {
470
+ "enabled": true,
471
+ "gravity": "bottomLeft",
472
+ "order": {
473
+ "mZoomOut": 5,
474
+ "mZoomIn": 15
475
+ }
476
+ }
477
+ }
478
+ }',
479
+ 'options' => null,
480
+ 'comment' => array(
481
+ 'EN' => '
482
+ Override default options if "enableInTab" is activated
483
+ globally or set for particular product.
484
+ ',
485
+ 'DE' => '
486
+ Überschreiben der Standardoptionen, wenn "enableInTab" global aktiviert ist
487
+ oder für ein bestimmtes Produkt gesetzt ist.
488
+ '
489
+ )
490
+ ),
491
+
492
+ 'displayOnlyForThisProductID' => array(
493
+ 'prefix' => 'AJAXZOOM',
494
+ 'category' => 'plugin_settings',
495
+ 'type' => 'string',
496
+ 'isJsObject' => false,
497
+ 'isJsArray' => false,
498
+ 'useful' => true,
499
+ 'display' => 'textarea',
500
+ 'height' => 100,
501
+ 'default' => '',
502
+ 'options' => null,
503
+ 'comment' => array(
504
+ 'EN' => '
505
+ CSV with product IDs for which AJAX-ZOOM will be <b>only</b> enabled.
506
+ Leave blank to have it enabled for all products!
507
+ This option can be useful e.g. if you want to make A/B tests and enable
508
+ AJAX-ZOOM only for certain products, e.g. 7,15 would
509
+ enable AJAX-ZOOM only for products with ID 7 and 15.
510
+ ',
511
+ 'DE' => '
512
+ CSV mit Produkt-IDs für die AJAX-ZOOM ausschließlich aktiviert wird.
513
+ Lassen Sie das Feld leer um AJAX-ZOOM für alle Produkte zu aktivieren!
514
+ Diese Option ist nützlich z.B. wenn Sie A / B - Tests durchführen wollen,
515
+ z.B. 7,15 würde AJAX-ZOOM nur für Produkte mit ID 7 und 15 freischalten.
516
+ '
517
+ )
518
+ ),
519
+
520
+ 'default360settings' => array(
521
+ 'prefix' => 'AJAXZOOM',
522
+ 'category' => 'plugin_settings',
523
+ 'type' => 'string',
524
+ 'isJsObject' => true,
525
+ 'isJsArray' => false,
526
+ 'display' => 'textarea',
527
+ 'height' => 50,
528
+ 'default' => '{
529
+ "position": "first",
530
+ "spinReverse": "true",
531
+ "spinBounce": "false",
532
+ "spinDemoRounds": "3",
533
+ "spinDemoTime": "4500"
534
+ }',
535
+ 'options' => null,
536
+ 'comment' => array(
537
+ 'EN' => '
538
+ Default configuration settings when importing / creating new 360 over backend.
539
+ ',
540
+ 'DE' => '
541
+ Die Standardeinstellungen beim Import / Erstellen neuer 360 über das Backend.
542
+ '
543
+ )
544
+ ),
545
+
546
+ 'default360settingsEmbed' => array(
547
+ 'prefix' => 'AJAXZOOM',
548
+ 'category' => 'plugin_settings',
549
+ 'type' => 'string',
550
+ 'isJsObject' => true,
551
+ 'isJsArray' => false,
552
+ 'display' => 'textarea',
553
+ 'height' => 50,
554
+ 'default' => '{
555
+ "fullScreenCornerButton": "true",
556
+ "fullScreenCornerButtonTouch": "false",
557
+ "scroll": "false",
558
+ "mouseScrollEnable": "true"
559
+ }',
560
+ 'options' => null,
561
+ 'comment' => array(
562
+ 'EN' => '
563
+ Default 360 degree configuration settings settings when embedded into
564
+ CMS / Blog and simmilar
565
+ (not product detail page).
566
+ ',
567
+ 'DE' => '
568
+ Die Standardeinstellungen für das Einbetten der 360 Grad Animationen in CMS / Blog
569
+ oder ähnlich (nicht Produkt Detailseite).
570
+ '
571
+ )
572
+ ),
573
+
574
+ 'defaultVideoYoutubeSettings' => array(
575
+ 'prefix' => 'AJAXZOOM',
576
+ 'category' => 'plugin_settings',
577
+ 'type' => 'string',
578
+ 'isJsObject' => true,
579
+ 'isJsArray' => false,
580
+ 'display' => 'textarea',
581
+ 'height' => 50,
582
+ 'default' => '{}',
583
+ 'options' => null,
584
+ 'comment' => array(
585
+ 'EN' => '
586
+ Default configuration settings for new YouTube video.
587
+ ',
588
+ 'DE' => '
589
+ Standard-Konfigurationseinstellungen für neues YouTube Video.
590
+ '
591
+ )
592
+ ),
593
+
594
+ 'defaultVideoVimeoSettings' => array(
595
+ 'prefix' => 'AJAXZOOM',
596
+ 'category' => 'plugin_settings',
597
+ 'type' => 'string',
598
+ 'isJsObject' => true,
599
+ 'isJsArray' => false,
600
+ 'display' => 'textarea',
601
+ 'height' => 50,
602
+ 'default' => '{}',
603
+ 'options' => null,
604
+ 'comment' => array(
605
+ 'EN' => '
606
+ Default configuration settings for new Vimeo video.
607
+ ',
608
+ 'DE' => '
609
+ Standard-Konfigurationseinstellungen für neues Vimeo Video.
610
+ '
611
+ )
612
+ ),
613
+
614
+ 'defaultVideoDailymotionSettings' => array(
615
+ 'prefix' => 'AJAXZOOM',
616
+ 'category' => 'plugin_settings',
617
+ 'type' => 'string',
618
+ 'isJsObject' => true,
619
+ 'isJsArray' => false,
620
+ 'display' => 'textarea',
621
+ 'height' => 50,
622
+ 'default' => '{}',
623
+ 'options' => null,
624
+ 'comment' => array(
625
+ 'EN' => '
626
+ Default configuration settings for new Dailymotion video.
627
+ ',
628
+ 'DE' => '
629
+ Standard-Konfigurationseinstellungen für neues Dailymotion Video.
630
+ '
631
+ )
632
+ ),
633
+
634
+ 'defaultVideoVideojsSettings' => array(
635
+ 'prefix' => 'AJAXZOOM',
636
+ 'category' => 'plugin_settings',
637
+ 'type' => 'string',
638
+ 'isJsObject' => true,
639
+ 'isJsArray' => false,
640
+ 'display' => 'textarea',
641
+ 'height' => 50,
642
+ 'default' => '{}',
643
+ 'options' => null,
644
+ 'comment' => array(
645
+ 'EN' => '
646
+ Default configuration settings for new HTML5 (videojs) video.
647
+ ',
648
+ 'DE' => '
649
+ Standard-Konfigurationseinstellungen für neues HTML5 (videojs) Video.
650
+ '
651
+ )
652
+ ),
653
+
654
+ 'defaultVideoVideojsJS' => array(
655
+ 'prefix' => 'AJAXZOOM',
656
+ 'category' => 'plugin_settings',
657
+ 'type' => 'string',
658
+ 'isJsObject' => true,
659
+ 'isJsArray' => false,
660
+ 'display' => 'textarea',
661
+ 'height' => 100,
662
+ 'default' => '{
663
+ "css1": "//vjs.zencdn.net/5.11.9/video-js.css",
664
+ "css2": "",
665
+ "js1": "//vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js",
666
+ "js2": "//vjs.zencdn.net/5.11.9/video.js",
667
+ "js3": ""
668
+ }',
669
+ 'options' => null,
670
+ 'comment' => array(
671
+ 'EN' => '
672
+ Sources for videojs CSS and JS which will be included in frontend template.
673
+ ',
674
+ 'DE' => '
675
+ Quellen für Videojs CSS und JS Dateien, die in der Frontend-Vorlage enthalten sein werden.
676
+ '
677
+ )
678
+ ),
679
+
680
+ 'pngModeCssFix' => array(
681
+ 'prefix' => 'AJAXZOOM',
682
+ 'category' => 'plugin_settings',
683
+ 'type' => 'bool',
684
+ 'isJsObject' => false,
685
+ 'isJsArray' => false,
686
+ 'display' => 'switch',
687
+ 'height' => null,
688
+ 'default' => false,
689
+ 'options' => null,
690
+ 'comment' => array(
691
+ 'EN' => '
692
+ Include CSS file for making
693
+ some areas of the player transparent which only makes sense
694
+ if pngMode option is set to auto or true and you are
695
+ really using transparent png images.
696
+ ',
697
+ 'DE' => '
698
+ Eine CSS Datei einschließen, die bestimmte Bereiche des Players transparent macht,
699
+ was nur Sinn macht, wenn pngMode eingeschaltet ist (auto, true) und Sie im Shop
700
+ tatsächlich fast ausschließlich PNG Bilder mit transparenten Bereichen verwenden.
701
+ '
702
+ )
703
+ ),
704
+
705
+ // general_settings
706
+ 'axZmPath' => array(
707
+ 'prefix' => 'AJAXZOOM',
708
+ 'category' => 'general_settings',
709
+ 'type' => 'string',
710
+ 'isJsObject' => false,
711
+ 'isJsArray' => false,
712
+ 'display' => 'text',
713
+ 'height' => null,
714
+ 'default' => 'auto',
715
+ 'options' => null,
716
+ 'comment' => array(
717
+ 'EN' => '
718
+ Path to AJAX-ZOOM, e.g. "/zoomTest/axZm/".
719
+ The default "auto" value might not always work so if you experience any difficulties
720
+ please set the path manually.
721
+ It is recommended to set this path manually anyway!
722
+ ',
723
+ 'DE' => '
724
+ Pfad zu AJAX-ZOOM, z.B. "/zoomTest/axZm/".
725
+ Der Wert "auto", welches standardmäßig definiert ist,
726
+ kann unter Umständen nicht funktionieren!
727
+ Definieren Sie diesen Pfad daher manuell in jedem Fall!
728
+ '
729
+ )
730
+ ),
731
+
732
+ 'divID' => array(
733
+ 'prefix' => 'AJAXZOOM',
734
+ 'category' => 'general_settings',
735
+ 'type' => 'string',
736
+ 'isJsObject' => false,
737
+ 'isJsArray' => false,
738
+ 'display' => 'text',
739
+ 'height' => null,
740
+ 'default' => 'az_mouseOverZoomContainer',
741
+ 'options' => null,
742
+ 'comment' => array(
743
+ 'EN' => '
744
+ DIV (container) ID for mouseover zoom :-)
745
+ ',
746
+ 'DE' => '
747
+ DIV (Container) ID für Mouseover Zoom.
748
+ '
749
+ )
750
+ ),
751
+
752
+ 'galleryDivID' => array(
753
+ 'prefix' => 'AJAXZOOM',
754
+ 'category' => 'general_settings',
755
+ 'type' => 'string, bool',
756
+ 'isJsObject' => false,
757
+ 'isJsArray' => false,
758
+ 'display' => 'text',
759
+ 'height' => null,
760
+ 'default' => 'az_mouseOverZoomGallery',
761
+ 'options' => null,
762
+ 'comment' => array(
763
+ 'EN' => '
764
+ DIV (container) id of the gallery, set to false to disable gallery.
765
+ ',
766
+ 'DE' => '
767
+ DIV (Container) ID für die Galerie, mit false wird die Galerie abgeschaltet.
768
+ '
769
+ )
770
+ ),
771
+
772
+ 'lang' => array(
773
+ 'prefix' => '',
774
+ 'category' => 'general_settings',
775
+ 'type' => 'string',
776
+ 'isJsObject' => false,
777
+ 'isJsArray' => false,
778
+ 'display' => 'text',
779
+ 'height' => null,
780
+ 'default' => '',
781
+ 'options' => null,
782
+ 'comment' => array(
783
+ 'EN' => '
784
+ Language, e.g. "en", "fr" or "de".
785
+ On default, when not defined / empty, the language is browser or system language.
786
+ ',
787
+ 'DE' => '
788
+ Sprache, z.B. "en", "fr" oder "de".
789
+ Wenn nicht definiert / leer, wird die Sprache des Browsers bzw. des Systems ermittelt.
790
+ '
791
+ )
792
+ ),
793
+
794
+ 'disableAllMsg' => array(
795
+ 'prefix' => 'AJAXZOOM',
796
+ 'category' => 'general_settings',
797
+ 'type' => 'bool',
798
+ 'isJsObject' => false,
799
+ 'isJsArray' => false,
800
+ 'useful' => true,
801
+ 'display' => 'switch',
802
+ 'height' => null,
803
+ 'default' => false,
804
+ 'options' => null,
805
+ 'comment' => array(
806
+ 'EN' => '
807
+ AJAX-ZOOM produces some notifications within the player
808
+ telling that image tiles or other files are generating and returns the result.
809
+ This happens only when an image or 360 images are opened for the first time.
810
+ This is also the reason why preloading is slow at first.
811
+ With this switch you can disable these notifications in the frontend.
812
+ ',
813
+ 'DE' => '
814
+ AJAX-ZOOM produziert einige Meldungen direkt im Player wenn beispielsweise
815
+ Bildkacheln oder andere Bilddateien automatisch generiert werden.
816
+ Dies geschieht nur, wenn Bilder bzw. 360 zum ersten Mal geöffnet werden. Dies ist
817
+ und auch der Grund, weshalb beim ersten Laden das Vorladen spührbar länger dauert.
818
+ Über diese Einstellung können Sie diese Benachrichtigungen abschalten.
819
+ '
820
+ )
821
+ ),
822
+
823
+ 'dotNavigation' => array(
824
+ 'prefix' => 'AJAXZOOM',
825
+ 'category' => 'general_settings',
826
+ 'type' => 'int',
827
+ 'isJsObject' => false,
828
+ 'isJsArray' => false,
829
+ 'display' => 'text',
830
+ 'height' => null,
831
+ 'default' => 400,
832
+ 'options' => null,
833
+ 'comment' => array(
834
+ 'EN' => '
835
+ Enable dot navigation if browser / device resolution is less than this value.
836
+ See also "thumbSliderMinSize" option. Setting both
837
+ - "dotNavigation" and "thumbSliderMinSize"
838
+ to same value will result in dot navigation replacing
839
+ gallery on devices with small resolution. Set to 0 to disable.
840
+ ',
841
+ 'DE' => '
842
+ Aktivieren der Punktnavigation, wenn die Browser- / Geräteauflösung
843
+ kleiner als dieser Wert ist. Siehe auch die Option "thumbSliderMinSize".
844
+ Wenn "dotNavigation" und "thumbSliderMinSize" auf den
845
+ gleichen Wert eingestellt sind, dann ersetzt "dotNavigation" die Galerie
846
+ auf Geräten mit geringer Auflösung. Mit 0 wird die Punktnavigation abgeschaltet.
847
+ '
848
+ )
849
+ ),
850
+
851
+ 'floorWidth' => array(
852
+ 'prefix' => 'AJAXZOOM',
853
+ 'category' => 'general_settings',
854
+ 'type' => 'bool',
855
+ 'isJsObject' => false,
856
+ 'isJsArray' => false,
857
+ 'display' => 'switch',
858
+ 'height' => null,
859
+ 'default' => true,
860
+ 'options' => null,
861
+ 'comment' => array(
862
+ 'EN' => '
863
+ Prevent browser computed width with decimals for AJAX-ZOOM containers.
864
+ ',
865
+ 'DE' => '
866
+ Verhindert die Browser berechnete Breite mit Dezimalstellen für AJAX-ZOOM-Container.
867
+ '
868
+ )
869
+ ),
870
+
871
+ 'pngMode' => array(
872
+ 'prefix' => 'AJAXZOOM',
873
+ 'category' => 'general_settings',
874
+ 'type' => 'bool, string',
875
+ 'isJsObject' => false,
876
+ 'isJsArray' => false,
877
+ 'useful' => true,
878
+ 'display' => 'select',
879
+ 'height' => null,
880
+ 'default' => null,
881
+ 'options' => array(
882
+ array('null', 'null'),
883
+ array('auto', 'auto'),
884
+ array('true', 'true'),
885
+ array('false', 'false')
886
+ ),
887
+ 'comment' => array(
888
+ 'EN' => '
889
+ Enable PNG mode in different ways:
890
+ null will not change the configuration set in zoomConfig.inc.php or
891
+ other php configuration files at all;
892
+ auto, true and false will set pngMode setting in PHP.
893
+ Auto means that cached thumbnails, image tiles etc. will be only kept as PNG
894
+ if source images are PNG too. Transparancy is also preserved.
895
+ If true, all cached images will be converted to PNG, even if they are JPG.
896
+ If false, all cached images will be converted to JPG.
897
+ ',
898
+ 'DE' => '
899
+ Aktivieren des PNG-Moduses auf unterschiedliche Weisen:
900
+ Null ändert nicht die Konfiguration in zoomConfig.inc.php
901
+ oder andere PHP-Konfigurationsdateien;
902
+ Auto, true und false setzen "pngMode" Einstellung.
903
+ Auto bedeutet, dass zwischengespeicherte Miniaturbilder, Bildkacheln usw.
904
+ nur dann als PNG aufbewahrt werden, wenn auch die Quellbilder PNG sind.
905
+ Dabei werden eventuelle Transparenzberiche erhalten.
906
+ Wenn true, werden alle zwischengespeicherten Bilder in PNG konvertiert,
907
+ auch wenn die Quellbilder JPG sind.
908
+ Wenn false, werden alle zwischengespeicherten Bilder in JPG konvertiert.
909
+ '
910
+ )
911
+ ),
912
+
913
+ 'hideGalleryOneImage' => array(
914
+ 'prefix' => 'AJAXZOOM',
915
+ 'category' => 'general_settings',
916
+ 'type' => 'bool',
917
+ 'isJsObject' => false,
918
+ 'isJsArray' => false,
919
+ 'display' => 'switch',
920
+ 'height' => null,
921
+ 'default' => true,
922
+ 'options' => null,
923
+ 'comment' => array(
924
+ 'EN' => '
925
+ Instantly hide gallery if there is only one image, one video or one 360/3D.
926
+ ',
927
+ 'DE' => '
928
+ Galerie automatisch ausblenden, wenn nur ein Bild bzw. nur ein 360/3D vorhanden sind.
929
+ '
930
+ )
931
+ ),
932
+
933
+ 'hideGalleryAddClass' => array(
934
+ 'prefix' => 'AJAXZOOM',
935
+ 'category' => 'general_settings',
936
+ 'type' => 'string',
937
+ 'isJsObject' => false,
938
+ 'isJsArray' => false,
939
+ 'display' => 'text',
940
+ 'height' => null,
941
+ 'default' => 'axZm_mouseOverNoMargin',
942
+ 'options' => null,
943
+ 'comment' => array(
944
+ 'EN' => '
945
+ This option is mainly for the layout with vertical gallery
946
+ which is located next (left or right) to mouseover area.
947
+ The most solid CSS layout for vertical gallery is when "divID" is wrapped by a div
948
+ which has a left or right margin. This margin corresponds to vertical gallery width +
949
+ some space in between. So if "hideGalleryOneImage" option is activated
950
+ and there is only one image,
951
+ only one 360 or no images / 360s at all, then the container
952
+ represented by "galleryDivID" option is hidden
953
+ and there is more space which can be filled.
954
+ To do that we simply add a CSS class with margin 0 to the parent of "divID"
955
+ overriding the left or right margin which is not needed for the gallery.
956
+ You can change the "hideGalleryAddClass"
957
+ to your own class name or set it to false to prevent this action.
958
+ ',
959
+ 'DE' => '
960
+ Diese Option ist hauptsächlich für Layouts mit vertikalen Galerie.
961
+ Wenn Galerie nicht angezeigt werden soll, dann wird
962
+ diese CSS Klasse dem Container automatisch hinzugefügt.
963
+ Bei false wird keine CSS Klasse hinzugefügt.
964
+ '
965
+ )
966
+ ),
967
+
968
+ 'galleryHover' => array(
969
+ 'prefix' => 'AJAXZOOM',
970
+ 'category' => 'general_settings',
971
+ 'type' => 'int, bool',
972
+ 'isJsObject' => false,
973
+ 'isJsArray' => false,
974
+ 'useful' => true,
975
+ 'display' => 'text',
976
+ 'height' => null,
977
+ 'default' => false,
978
+ 'options' => null,
979
+ 'comment' => array(
980
+ 'EN' => '
981
+ Use mouseenter (mouseover) for switching between images.
982
+ You can specify an integer which will represent the time in ms to wait
983
+ for switching after the mouse enters the thumb; true defaults to 200.
984
+ ',
985
+ 'DE' => '
986
+ Mouseenter (mouseover) bei der Galerie
987
+ für Umschalten zwischen den Bildern / 360 verwenden.
988
+ Man kann auch eine Zahl definieren.
989
+ Dies wäre dann die Zeit in ms bei der abgewartet wird,
990
+ ehe der Umschaltvorgang startet; true setzt den Standardwert von 200 (ms).
991
+ '
992
+ )
993
+ ),
994
+
995
+ 'gallerySwitchSlide' => array(
996
+ 'prefix' => 'AJAXZOOM',
997
+ 'category' => 'general_settings',
998
+ 'type' => 'bool',
999
+ 'isJsObject' => false,
1000
+ 'isJsArray' => false,
1001
+ 'display' => 'switch',
1002
+ 'height' => null,
1003
+ 'default' => false,
1004
+ 'options' => null,
1005
+ 'comment' => array(
1006
+ 'EN' => '
1007
+ Placeholder, not finished yet (todo).
1008
+ ',
1009
+ 'DE' => '
1010
+ Placeholder, not finished yet (todo).
1011
+ '
1012
+ )
1013
+ ),
1014
+
1015
+ 'galleryAxZmThumbSlider' => array(
1016
+ 'prefix' => 'AJAXZOOM',
1017
+ 'category' => 'general_settings',
1018
+ 'type' => 'bool',
1019
+ 'isJsObject' => false,
1020
+ 'isJsArray' => false,
1021
+ 'useful' => true,
1022
+ 'display' => 'switch',
1023
+ 'height' => null,
1024
+ 'default' => true,
1025
+ 'options' => null,
1026
+ 'comment' => array(
1027
+ 'EN' => '
1028
+ Use $.axZmThumbSlider on gallery thumbnails or not.
1029
+ ',
1030
+ 'DE' => '
1031
+ Den AJAX-ZOOM $.axZmThumbSlider für die Galerie verwenden.
1032
+ '
1033
+ )
1034
+ ),
1035
+
1036
+ 'galleryAxZmThumbSliderParamHorz' => array(
1037
+ 'prefix' => 'AJAXZOOM',
1038
+ 'category' => 'general_settings',
1039
+ 'type' => 'object',
1040
+ 'isJsObject' => true,
1041
+ 'isJsArray' => false,
1042
+ 'display' => 'textarea',
1043
+ 'height' => 100,
1044
+ 'example' => '{
1045
+ "thumbLiStyle": {
1046
+ "borderRadius": 3
1047
+ },
1048
+ "btn": true,
1049
+ "btnClass": "axZmThumbSlider_button_new",
1050
+ "btnHidden": true,
1051
+ "btnOver": false,
1052
+ "scrollBy": 1,
1053
+ "centerNoScroll": true
1054
+ }',
1055
+ 'default' => '{}',
1056
+ 'options' => null,
1057
+ 'comment' => array(
1058
+ 'EN' => '
1059
+ $.axZmThumbSlider options if "galleryAxZmThumbSlider" is enabled
1060
+ and gallery is horizontal. For full list of options see under:
1061
+ http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/
1062
+ ',
1063
+ 'DE' => '
1064
+ $.axZmThumbSlider Optionen wenn "galleryAxZmThumbSlider"
1065
+ aktiviert ist und die Galerie horizontal ist. Für die komplette Liste der Optionen
1066
+ siehe http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider
1067
+ '
1068
+ )
1069
+ ),
1070
+
1071
+ 'galleryAxZmThumbSliderParamVert' => array(
1072
+ 'prefix' => 'AJAXZOOM',
1073
+ 'category' => 'general_settings',
1074
+ 'type' => 'object',
1075
+ 'isJsObject' => true,
1076
+ 'isJsArray' => false,
1077
+ 'display' => 'textarea',
1078
+ 'height' => 100,
1079
+ 'example' => '{
1080
+ "thumbLiStyle": {
1081
+ "borderRadius": 3
1082
+ },
1083
+ "btn": true,
1084
+ "btnClass": "axZmThumbSlider_button_new",
1085
+ "btnHidden": true,
1086
+ "btnOver": false,
1087
+ "scrollBy": 1,
1088
+ "centerNoScroll": true
1089
+ }',
1090
+ 'default' => '{}',
1091
+ 'options' => null,
1092
+ 'comment' => array(
1093
+ 'EN' => '
1094
+ $.axZmThumbSlider options if "galleryAxZmThumbSlider" is enabled
1095
+ and gallery is vertical. For full list of options see under:
1096
+ http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/
1097
+ ',
1098
+ 'DE' => '
1099
+ $.axZmThumbSlider Optionen wenn "galleryAxZmThumbSlider"
1100
+ aktiviert ist und die Galerie vertikal ist. Für die komplette Liste der Optionen
1101
+ siehe http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider
1102
+ '
1103
+ )
1104
+ ),
1105
+
1106
+ 'thumbSliderPosition' => array(
1107
+ 'prefix' => 'AJAXZOOM',
1108
+ 'category' => 'general_settings',
1109
+ 'type' => 'string',
1110
+ 'isJsObject' => false,
1111
+ 'isJsArray' => false,
1112
+ 'useful' => true,
1113
+ 'display' => 'select',
1114
+ 'height' => null,
1115
+ 'default' => 'left-bottom',
1116
+ 'options' => array(
1117
+ array('left-bottom', 'left-bottom'),
1118
+ array('left-top', 'left-top'),
1119
+ array('right-bottom', 'right-bottom'),
1120
+ array('right-top', 'right-top'),
1121
+ array('top-left', 'top-left'),
1122
+ array('top-right', 'top-right'),
1123
+ array('bottom-left', 'bottom-left'),
1124
+ array('bottom-right', 'bottom-right'),
1125
+ array('top', 'top (fixed)'),
1126
+ array('right', 'right (fixed)'),
1127
+ array('bottom', 'bottom (fixed)'),
1128
+ array('left', 'left (fixed)'),
1129
+ array('left-right', 'left-right'),
1130
+ array('right-left', 'right-left'),
1131
+ array('bottom-top', 'bottom-top'),
1132
+ array('top-bottom', 'top-bottom')
1133
+ ),
1134
+ 'comment' => array(
1135
+ 'EN' => '
1136
+ Position of the thumb slider. Possible values are
1137
+ left, top, right, bottom, as well as any combination of these separated
1138
+ with the dash, e.g. left-bottom.
1139
+ ',
1140
+ 'DE' => '
1141
+ Position des Thumbsliders. Mögliche Werte sind top, left, right, bottom,
1142
+ sowie jegliche Kombination aus den obigen getrennt mit einem Strich,
1143
+ also z.B. left-bottom.
1144
+ '
1145
+ )
1146
+ ),
1147
+
1148
+ 'thumbSliderPositionSwitch' => array(
1149
+ 'prefix' => 'AJAXZOOM',
1150
+ 'category' => 'general_settings',
1151
+ 'type' => 'int, string',
1152
+ 'isJsObject' => false,
1153
+ 'isJsArray' => false,
1154
+ 'display' => 'text',
1155
+ 'height' => null,
1156
+ 'default' => 'auto',
1157
+ 'options' => null,
1158
+ 'comment' => array(
1159
+ 'EN' => '
1160
+ Possible values: "auto" as string or integer.
1161
+ Auto means depending on whether the screen is in portrait or
1162
+ landscape mode the first or second value of "thumbSliderPosition"
1163
+ suited for the resolution will be chosen. For the value set as
1164
+ integer the second position from "thumbSliderPosition" will be
1165
+ chosen if width of the screen is less than this integer and
1166
+ the position suits for current resolution.
1167
+ ',
1168
+ 'DE' => '
1169
+ Mögliche Werte: "auto" als String oder Integer.
1170
+ Auto bedeutet, je nachdem, ob der Bildschirm im Hochformat oder
1171
+ Landscape-Modus ist, wird der erste oder zweite Wert aus "thumbSliderPosition"
1172
+ automatisch passend zur Auflösung gewählt. Bei einer Zahl wird die zweite
1173
+ Position aus "thumbSliderPosition" genommen, wenn die Bildschirmbreite
1174
+ kleiner ist als diese Zahl und die Position passt.
1175
+ '
1176
+ )
1177
+ ),
1178
+
1179
+ 'thumbSliderMinSize' => array(
1180
+ 'prefix' => 'AJAXZOOM',
1181
+ 'category' => 'general_settings',
1182
+ 'type' => 'int',
1183
+ 'isJsObject' => false,
1184
+ 'isJsArray' => false,
1185
+ 'display' => 'text',
1186
+ 'height' => null,
1187
+ 'default' => 400,
1188
+ 'options' => null,
1189
+ 'comment' => array(
1190
+ 'EN' => '
1191
+ Minimal browser width for the gallery to be displayed.
1192
+ See also "dotNavigation" option!
1193
+ ',
1194
+ 'DE' => '
1195
+ Minimale Breite des Browserfensters, damit die Galerie angezeigt wird.
1196
+ Siehe auch "dotNavigation" Option.
1197
+ '
1198
+ )
1199
+ ),
1200
+
1201
+ 'thumbSliderDimensionHorz' => array(
1202
+ 'prefix' => 'AJAXZOOM',
1203
+ 'category' => 'general_settings',
1204
+ 'type' => 'int',
1205
+ 'isJsObject' => false,
1206
+ 'isJsArray' => false,
1207
+ 'display' => 'text',
1208
+ 'height' => null,
1209
+ 'default' => 80,
1210
+ 'options' => null,
1211
+ 'comment' => array(
1212
+ 'EN' => '
1213
+ Height of the container for the gallery when placed horizontally.
1214
+ ',
1215
+ 'DE' => '
1216
+ Höhe des Containers für Galerie, wenn sie horizontal erscheint.
1217
+ '
1218
+ )
1219
+ ),
1220
+
1221
+ 'thumbSliderDimensionVert' => array(
1222
+ 'prefix' => 'AJAXZOOM',
1223
+ 'category' => 'general_settings',
1224
+ 'type' => 'int',
1225
+ 'isJsObject' => false,
1226
+ 'isJsArray' => false,
1227
+ 'display' => 'text',
1228
+ 'height' => null,
1229
+ 'default' => 80,
1230
+ 'options' => null,
1231
+ 'comment' => array(
1232
+ 'EN' => '
1233
+ Width of the container for the gallery when placed vertically.
1234
+ ',
1235
+ 'DE' => '
1236
+ Breite des Containers für Galerie, wenn sie vertikal erscheint.
1237
+ '
1238
+ )
1239
+ ),
1240
+
1241
+ 'thumbSliderAutoSizeHorz' => array(
1242
+ 'prefix' => 'AJAXZOOM',
1243
+ 'category' => 'general_settings',
1244
+ 'type' => 'bool',
1245
+ 'isJsObject' => false,
1246
+ 'isJsArray' => false,
1247
+ 'display' => 'switch',
1248
+ 'height' => null,
1249
+ 'default' => true,
1250
+ 'options' => null,
1251
+ 'comment' => array(
1252
+ 'EN' => '
1253
+ Thumb CSS size will be set instantly depending on
1254
+ "thumbSliderDimensionHorz" and other options.
1255
+ ',
1256
+ 'DE' => '
1257
+ Stellt die CSS Größen für Miniaturansichten automatisch abhängig von
1258
+ "thumbSliderDimensionHorz" und anderen Optionen ein,
1259
+ wenn Galerie horizontal erscheint.
1260
+ '
1261
+ )
1262
+ ),
1263
+
1264
+ 'thumbSliderAutoSizeVert' => array(
1265
+ 'prefix' => 'AJAXZOOM',
1266
+ 'category' => 'general_settings',
1267
+ 'type' => 'bool',
1268
+ 'isJsObject' => false,
1269
+ 'isJsArray' => false,
1270
+ 'display' => 'switch',
1271
+ 'height' => null,
1272
+ 'default' => true,
1273
+ 'options' => null,
1274
+ 'comment' => array(
1275
+ 'EN' => '
1276
+ Thumb CSS size will be set instantly depending on
1277
+ "thumbSliderDimensionVert" and other options.
1278
+ ',
1279
+ 'DE' => '
1280
+ Stellt die CSS Größen für Miniaturansichten automatisch abhängig von
1281
+ "thumbSliderDimensionVert" und anderen Optionen ein,
1282
+ wenn Galerie horizontal erscheint.
1283
+ '
1284
+ )
1285
+ ),
1286
+
1287
+ 'thumbSliderAutoMarginHorz' => array(
1288
+ 'prefix' => 'AJAXZOOM',
1289
+ 'category' => 'general_settings',
1290
+ 'type' => 'int',
1291
+ 'isJsObject' => false,
1292
+ 'isJsArray' => false,
1293
+ 'display' => 'text',
1294
+ 'height' => null,
1295
+ 'default' => 7,
1296
+ 'options' => null,
1297
+ 'comment' => array(
1298
+ 'EN' => '
1299
+ Thumb margin when set instantly for horizontal gallery.
1300
+ ',
1301
+ 'DE' => '
1302
+ Abstand der Miniaturansichten in horizontalen Galerie, wenn
1303
+ "thumbSliderAutoSizeHorz" eingeschaltet ist.
1304
+ '
1305
+ )
1306
+ ),
1307
+
1308
+ 'thumbSliderAutoMarginVert' => array(
1309
+ 'prefix' => 'AJAXZOOM',
1310
+ 'category' => 'general_settings',
1311
+ 'type' => 'int',
1312
+ 'isJsObject' => false,
1313
+ 'isJsArray' => false,
1314
+ 'display' => 'text',
1315
+ 'height' => null,
1316
+ 'default' => 7,
1317
+ 'options' => null,
1318
+ 'comment' => array(
1319
+ 'EN' => '
1320
+ Thumb margin when set instantly for vertical gallery.
1321
+ ',
1322
+ 'DE' => '
1323
+ Abstand der Miniaturansichten in vertikallen Galerie, wenn
1324
+ "thumbSliderAutoSizeHorz" eingeschaltet ist.
1325
+ '
1326
+ )
1327
+ ),
1328
+
1329
+ 'thumbSliderAutoExtendHorz' => array(
1330
+ 'prefix' => 'AJAXZOOM',
1331
+ 'category' => 'general_settings',
1332
+ 'type' => 'int',
1333
+ 'isJsObject' => false,
1334
+ 'isJsArray' => false,
1335
+ 'display' => 'text',
1336
+ 'height' => null,
1337
+ 'default' => 0,
1338
+ 'options' => null,
1339
+ 'comment' => array(
1340
+ 'EN' => '
1341
+ Extend slider height by a fixed value
1342
+ when set instantly for horizontal gallery - "thumbSliderAutoSizeHorz".
1343
+ ',
1344
+ 'DE' => '
1345
+ Erweitern die Höhe des Sliders um einen festen Wert, wenn diese für horizontale Galerie
1346
+ automatisch eingestellt wird - "thumbSliderAutoSizeHorz"
1347
+ '
1348
+ )
1349
+ ),
1350
+
1351
+ 'thumbSliderAutoExtendVert' => array(
1352
+ 'prefix' => 'AJAXZOOM',
1353
+ 'category' => 'general_settings',
1354
+ 'type' => 'int',
1355
+ 'isJsObject' => false,
1356
+ 'isJsArray' => false,
1357
+ 'display' => 'text',
1358
+ 'height' => null,
1359
+ 'default' => 0,
1360
+ 'options' => null,
1361
+ 'comment' => array(
1362
+ 'EN' => '
1363
+ Extend slider width by a fixed value
1364
+ when set instantly for vertical gallery - "thumbSliderAutoSizeVert"
1365
+ ',
1366
+ 'DE' => '
1367
+ Erweitern die Breite des Sliders um einen festen Wert, wenn diese für vertikale Galerie
1368
+ automatisch eingestellt wird - "thumbSliderAutoSizeVert"
1369
+ '
1370
+ )
1371
+ ),
1372
+
1373
+ 'thumbSliderHorzMargin' => array(
1374
+ 'prefix' => 'AJAXZOOM',
1375
+ 'category' => 'general_settings',
1376
+ 'type' => 'int',
1377
+ 'isJsObject' => false,
1378
+ 'isJsArray' => false,
1379
+ 'display' => 'text',
1380
+ 'height' => null,
1381
+ 'default' => 10,
1382
+ 'options' => null,
1383
+ 'comment' => array(
1384
+ 'EN' => '
1385
+ Horizontal margin of the vertical gallery to mouseover container.
1386
+ ',
1387
+ 'DE' => '
1388
+ Margin bzw. Abstand der vertikalen Galerie zu mouseover Container.
1389
+ '
1390
+ )
1391
+ ),
1392
+
1393
+ 'thumbsFadeIn' => array(
1394
+ 'prefix' => 'AJAXZOOM',
1395
+ 'category' => 'general_settings',
1396
+ 'type' => 'int',
1397
+ 'isJsObject' => false,
1398
+ 'isJsArray' => false,
1399
+ 'display' => 'text',
1400
+ 'height' => null,
1401
+ 'default' => 200,
1402
+ 'options' => null,
1403
+ 'comment' => array(
1404
+ 'EN' => '
1405
+ Fadein duration / speed of the thumbnails added to the gallery.
1406
+ ',
1407
+ 'DE' => '
1408
+ Einblenddauer für neu geladene Miniaturansichten in der Galerie.
1409
+ '
1410
+ )
1411
+ ),
1412
+
1413
+ 'thumbW' => array(
1414
+ 'prefix' => 'AJAXZOOM',
1415
+ 'category' => 'general_settings',
1416
+ 'type' => 'int',
1417
+ 'isJsObject' => false,
1418
+ 'isJsArray' => false,
1419
+ 'useful' => true,
1420
+ 'display' => 'text',
1421
+ 'height' => null,
1422
+ 'default' => 64,
1423
+ 'options' => null,
1424
+ 'comment' => array(
1425
+ 'EN' => '
1426
+ Gallery image thumb width. Please note that when "galleryAxZmThumbSlider" is enabled,
1427
+ the final thumbnail width and height are determined by CSS
1428
+ set over "galleryAxZmThumbSliderParam".
1429
+ ',
1430
+ 'DE' => '
1431
+ Galeriebild Breite; bitte beachten Sie,
1432
+ dass wenn "galleryAxZmThumbSlider" eingeschaltet ist,
1433
+ dann wird die finale Thumbnail Breite und Höhe auch über CSS
1434
+ in "galleryAxZmThumbSliderParam" bestimmt.
1435
+ '
1436
+ )
1437
+ ),
1438
+
1439
+ 'thumbH' => array(
1440
+ 'prefix' => 'AJAXZOOM',
1441
+ 'category' => 'general_settings',
1442
+ 'type' => 'int',
1443
+ 'isJsObject' => false,
1444
+ 'isJsArray' => false,
1445
+ 'useful' => true,
1446
+ 'display' => 'text',
1447
+ 'height' => null,
1448
+ 'default' => 64,
1449
+ 'options' => null,
1450
+ 'comment' => array(
1451
+ 'EN' => '
1452
+ Gallery image thumb height. Please note that when "galleryAxZmThumbSlider" is enabled,
1453
+ the final thumbnail width and height are determined by CSS
1454
+ set over "galleryAxZmThumbSliderParam".
1455
+ ',
1456
+ 'DE' => '
1457
+ Galeriebild Höhe; bitte beachten Sie,
1458
+ dass wenn "galleryAxZmThumbSlider" eingeschaltet ist,
1459
+ dann wird die finale Thumbnail Breite und Höhe auch über CSS
1460
+ in "galleryAxZmThumbSliderParam" bestimmt.
1461
+ '
1462
+ )
1463
+ ),
1464
+
1465
+ 'thumbRetina' => array(
1466
+ 'prefix' => 'AJAXZOOM',
1467
+ 'category' => 'general_settings',
1468
+ 'type' => 'bool',
1469
+ 'isJsObject' => false,
1470
+ 'isJsArray' => false,
1471
+ 'display' => 'switch',
1472
+ 'height' => null,
1473
+ 'default' => true,
1474
+ 'options' => null,
1475
+ 'comment' => array(
1476
+ 'EN' => '
1477
+ Double resolution of the thumb image.
1478
+ ',
1479
+ 'DE' => '
1480
+ Doppelte Auflösung für Galeriebild.
1481
+ '
1482
+ )
1483
+ ),
1484
+
1485
+ 'thumbMode' => array(
1486
+ 'prefix' => 'AJAXZOOM',
1487
+ 'category' => 'general_settings',
1488
+ 'type' => 'bool, string',
1489
+ 'isJsObject' => false,
1490
+ 'isJsArray' => false,
1491
+ 'display' => 'select',
1492
+ 'height' => null,
1493
+ 'default' => false,
1494
+ 'options' => array(
1495
+ array('false', 'false'),
1496
+ array('cover', 'cover'),
1497
+ array('contain', 'contain')
1498
+ ),
1499
+ 'comment' => array(
1500
+ 'EN' => '
1501
+ Create thumbnails in a way similar to css background values cover and contain.
1502
+ ',
1503
+ 'DE' => '
1504
+ Miniatursichen ähnlich der CSS background Werten cover und contain erstellen.
1505
+ '
1506
+ )
1507
+ ),
1508
+
1509
+ 'qualityThumb' => array(
1510
+ 'prefix' => 'AJAXZOOM',
1511
+ 'category' => 'general_settings',
1512
+ 'type' => 'int',
1513
+ 'isJsObject' => false,
1514
+ 'isJsArray' => false,
1515
+ 'display' => 'text',
1516
+ 'height' => null,
1517
+ 'default' => 100,
1518
+ 'options' => null,
1519
+ 'comment' => array(
1520
+ 'EN' => '
1521
+ Jpeg quality of the gallery thumbs.
1522
+ ',
1523
+ 'DE' => '
1524
+ Jpeg Qualität der Galerie Bilder.
1525
+ '
1526
+ )
1527
+ ),
1528
+
1529
+ 'thumbIcon' => array(
1530
+ 'prefix' => 'AJAXZOOM',
1531
+ 'category' => 'general_settings',
1532
+ 'type' => 'bool',
1533
+ 'isJsObject' => false,
1534
+ 'isJsArray' => false,
1535
+ 'display' => 'switch',
1536
+ 'height' => null,
1537
+ 'default' => true,
1538
+ 'options' => null,
1539
+ 'comment' => array(
1540
+ 'EN' => '
1541
+ Place an icon over gallery thumbnail depending on media type.
1542
+ The icon has CSS class axZmThumbSliderIcon and the source is defined in
1543
+ "thumbIconFile" option.
1544
+ ',
1545
+ 'DE' => '
1546
+ Setzen eines Symbols über Galerie-Miniaturansicht abhängig von Medientyp.
1547
+ Das Symbol hat die CSS-Klasse axZmThumbSliderIcon. Die Quelle des Symbols wird in
1548
+ "thumbIconFile" Option definiert.
1549
+ '
1550
+ )
1551
+ ),
1552
+
1553
+ 'thumbIconFile' => array(
1554
+ 'prefix' => 'AJAXZOOM',
1555
+ 'category' => 'general_settings',
1556
+ 'type' => 'object',
1557
+ 'isJsObject' => true,
1558
+ 'isJsArray' => false,
1559
+ 'display' => 'textarea',
1560
+ 'height' => 100,
1561
+ 'default' => '{
1562
+ "360": "360_1.png",
1563
+ "3D": "3d_1.png",
1564
+ "youtube": "youtube_icon_30.png",
1565
+ "vimeo": "vimeo_icon_30.png",
1566
+ "dailymotion": "video_icon-30.png",
1567
+ "html5": "video_icon-30.png"
1568
+ }',
1569
+ 'options' => null,
1570
+ 'comment' => array(
1571
+ 'EN' => '
1572
+ Source for icons placed over the thumbnails in the gallery.
1573
+ If only filename without path is defined the path presumed to be the
1574
+ /axZm/icons folder. You can also set complete different paths including the image
1575
+ filename instead.
1576
+ ',
1577
+ 'DE' => '
1578
+ Quelle für Symbole, welche über Galerie-Miniaturansichten
1579
+ abhängig von Medientyp gesetzt werden. Wenn nur Dateiname ohne Pfad definiert ist,
1580
+ werden die Pfade im /axZm/icons Ordner vermutet.
1581
+ Sie können stattdessen auch komplett andere Pfade inklusive der Bilddatei definieren.
1582
+ '
1583
+ )
1584
+ ),
1585
+
1586
+ 'thumbWfs' => array(
1587
+ 'prefix' => 'AJAXZOOM',
1588
+ 'category' => 'general_settings',
1589
+ 'type' => 'int',
1590
+ 'isJsObject' => false,
1591
+ 'isJsArray' => false,
1592
+ 'display' => 'text',
1593
+ 'height' => null,
1594
+ 'default' => 64,
1595
+ 'options' => null,
1596
+ 'comment' => array(
1597
+ 'EN' => '
1598
+ Fullscreen gallery image thumb width.
1599
+ ',
1600
+ 'DE' => '
1601
+ Physische Breite des Galeriebildes in Vollbild Galerie.
1602
+ '
1603
+ )
1604
+ ),
1605
+
1606
+ 'thumbHfs' => array(
1607
+ 'prefix' => 'AJAXZOOM',
1608
+ 'category' => 'general_settings',
1609
+ 'type' => 'int',
1610
+ 'isJsObject' => false,
1611
+ 'isJsArray' => false,
1612
+ 'display' => 'text',
1613
+ 'height' => null,
1614
+ 'default' => 64,
1615
+ 'options' => null,
1616
+ 'comment' => array(
1617
+ 'EN' => '
1618
+ Fullscreen gallery image thumb height.
1619
+ ',
1620
+ 'DE' => '
1621
+ Physische Höhe des Galeriebildes in Vollbild Galerie.
1622
+ '
1623
+ )
1624
+ ),
1625
+
1626
+ 'thumbRetinaFs' => array(
1627
+ 'prefix' => 'AJAXZOOM',
1628
+ 'category' => 'general_settings',
1629
+ 'type' => 'bool',
1630
+ 'isJsObject' => false,
1631
+ 'isJsArray' => false,
1632
+ 'display' => 'switch',
1633
+ 'height' => null,
1634
+ 'default' => true,
1635
+ 'options' => null,
1636
+ 'comment' => array(
1637
+ 'EN' => '
1638
+ Double the resolution of fullscreen gallery image thumbs.
1639
+ ',
1640
+ 'DE' => '
1641
+ Doppelte Auflösung für Vollbild Galeriebild.
1642
+ '
1643
+ )
1644
+ ),
1645
+
1646
+ 'thumbModeFs' => array(
1647
+ 'prefix' => 'AJAXZOOM',
1648
+ 'category' => 'general_settings',
1649
+ 'type' => 'string, bool',
1650
+ 'isJsObject' => false,
1651
+ 'isJsArray' => false,
1652
+ 'display' => 'select',
1653
+ 'height' => null,
1654
+ 'default' => false,
1655
+ 'options' => array(
1656
+ array('false', 'false'),
1657
+ array('cover', 'cover'),
1658
+ array('contain', 'contain')
1659
+ ),
1660
+ 'comment' => array(
1661
+ 'EN' => '
1662
+ Create thumbnails in a way similar to css background values cover and contain.
1663
+ ',
1664
+ 'DE' => '
1665
+ Miniatursichen ähnlich der CSS background Werten cover und contain erstellen.
1666
+ '
1667
+ )
1668
+ ),
1669
+
1670
+ 'qualityThumbFs' => array(
1671
+ 'prefix' => 'AJAXZOOM',
1672
+ 'category' => 'general_settings',
1673
+ 'type' => 'int',
1674
+ 'isJsObject' => false,
1675
+ 'isJsArray' => false,
1676
+ 'display' => 'text',
1677
+ 'height' => null,
1678
+ 'default' => 100,
1679
+ 'options' => null,
1680
+ 'comment' => array(
1681
+ 'EN' => '
1682
+ Jpeg Quality of the thumbnails in fullscreen gallery.
1683
+ ',
1684
+ 'DE' => '
1685
+ Jpeg Qualität der Vollbild Galerie Bilder.
1686
+ '
1687
+ )
1688
+ ),
1689
+
1690
+ 'quality' => array(
1691
+ 'prefix' => 'AJAXZOOM',
1692
+ 'category' => 'general_settings',
1693
+ 'type' => 'int',
1694
+ 'isJsObject' => false,
1695
+ 'isJsArray' => false,
1696
+ 'display' => 'text',
1697
+ 'height' => null,
1698
+ 'default' => 90,
1699
+ 'options' => null,
1700
+ 'comment' => array(
1701
+ 'EN' => '
1702
+ Jpeg quality of the preview image.
1703
+ ',
1704
+ 'DE' => '
1705
+ Jpeg Qualität der Voransicht Bilder.
1706
+ '
1707
+ )
1708
+ ),
1709
+
1710
+ 'qualityZoom' => array(
1711
+ 'prefix' => 'AJAXZOOM',
1712
+ 'category' => 'general_settings',
1713
+ 'type' => 'int',
1714
+ 'isJsObject' => false,
1715
+ 'isJsArray' => false,
1716
+ 'display' => 'text',
1717
+ 'height' => null,
1718
+ 'default' => 80,
1719
+ 'options' => null,
1720
+ 'comment' => array(
1721
+ 'EN' => '
1722
+ Jpeg quality of the zoom image shown in the flyout window.
1723
+ ',
1724
+ 'DE' => '
1725
+ Jpeg Qualität der Bilder im Mouseover Fenster.
1726
+ '
1727
+ )
1728
+ ),
1729
+
1730
+ 'firstImageToLoad' => array(
1731
+ 'prefix' => 'AJAXZOOM',
1732
+ 'category' => 'general_settings',
1733
+ 'type' => 'int',
1734
+ 'isJsObject' => false,
1735
+ 'isJsArray' => false,
1736
+ 'display' => 'text',
1737
+ 'height' => null,
1738
+ 'default' => 1,
1739
+ 'options' => null,
1740
+ 'comment' => array(
1741
+ 'EN' => '
1742
+ Image from "images" option which should be loaded at first.
1743
+ See also "images360firstToLoad" option below.
1744
+ The "images" option does not exist as defineable option
1745
+ in AJAX-ZOOM modules / plugins for
1746
+ ecommerce systems because obviously the purpose of the modules is to set it instantly.
1747
+ ',
1748
+ 'DE' => '
1749
+ Bild aus "images" Option, welche zuerst geladen werden soll.
1750
+ Siehe auch "images360firstToLoad" Option.
1751
+ Die Option "images" existiert nicht als definierbare Option
1752
+ in AJAX-ZOOM-Modulen / Plugins für E-Commerce-Systeme,
1753
+ weil offensichtlich der Zweck der Module ist, es automatisch einzustellen.
1754
+ '
1755
+ )
1756
+ ),
1757
+
1758
+ 'images360firstToLoad' => array(
1759
+ 'prefix' => 'AJAXZOOM',
1760
+ 'category' => 'general_settings',
1761
+ 'important' => true,
1762
+ 'type' => 'bool',
1763
+ 'isJsObject' => false,
1764
+ 'isJsArray' => false,
1765
+ 'display' => 'switch',
1766
+ 'height' => null,
1767
+ 'default' => false,
1768
+ 'options' => null,
1769
+ 'comment' => array(
1770
+ 'EN' => '
1771
+ In case present load 360 from "images360" first and not an image from "images".
1772
+ ',
1773
+ 'DE' => '
1774
+ Wenn 360 präsent ist, dann wird die 360 animation zuerst geladen.
1775
+ '
1776
+ )
1777
+ ),
1778
+
1779
+ 'images360Thumb' => array(
1780
+ 'prefix' => 'AJAXZOOM',
1781
+ 'category' => 'general_settings',
1782
+ 'type' => 'bool',
1783
+ 'isJsObject' => false,
1784
+ 'isJsArray' => false,
1785
+ 'display' => 'switch',
1786
+ 'height' => null,
1787
+ 'default' => true,
1788
+ 'options' => null,
1789
+ 'comment' => array(
1790
+ 'EN' => '
1791
+ Show first image of the spin as thumb.
1792
+ ',
1793
+ 'DE' => '
1794
+ Als Galerie Bild wird automatisch das erste Bild eines 360 / 3D angezeigt.
1795
+ '
1796
+ )
1797
+ ),
1798
+
1799
+ 'images360ThumbDefaultPostion' => array(
1800
+ 'prefix' => 'AJAXZOOM',
1801
+ 'category' => 'general_settings',
1802
+ 'type' => 'string',
1803
+ 'isJsObject' => false,
1804
+ 'isJsArray' => false,
1805
+ 'display' => 'select',
1806
+ 'height' => null,
1807
+ 'default' => 'first',
1808
+ 'options' => array(
1809
+ array('first', 'first'),
1810
+ array('afterfirst', 'afterfirst'),
1811
+ array('last', 'last')
1812
+ ),
1813
+ 'comment' => array(
1814
+ 'EN' => '
1815
+ Default position of the thumbnail representing a 360/3D in the gallery.
1816
+ The position can be also defined for each thumb individually.
1817
+ Possible values are: "first", "afterfirst" and "last".
1818
+ See also "videoThumbDefaultPostion" option.
1819
+ ',
1820
+ 'DE' => '
1821
+ Standardposition der Miniaturansicht, die ein 360 / 3D in der Galerie darstellt.
1822
+ Die Position kann auch für jede Miniaturansicht individuell definiert werden.
1823
+ Mögliche Werte sind: "first", "afterfirst" und "last".
1824
+ Siehe auch "videoThumbDefaultPostion" Option.
1825
+ '
1826
+ )
1827
+ ),
1828
+
1829
+ 'images360ThumbBeforeVideo' => array(
1830
+ 'prefix' => 'AJAXZOOM',
1831
+ 'category' => 'general_settings',
1832
+ 'type' => 'bool',
1833
+ 'isJsObject' => false,
1834
+ 'isJsArray' => false,
1835
+ 'display' => 'switch',
1836
+ 'height' => null,
1837
+ 'default' => true,
1838
+ 'options' => null,
1839
+ 'comment' => array(
1840
+ 'EN' => '
1841
+ If activated thumbnails in the gallery representing a 360/3D will be
1842
+ appended before thumbnails representing videos.
1843
+ ',
1844
+ 'DE' => '
1845
+ Wenn aktiviert, werden Miniaturbilder, die eine 360 / 3D darstellen,
1846
+ vor Miniaturbildern, die Videos darstellen, der Galerie hinzugefügt.
1847
+ '
1848
+ )
1849
+ ),
1850
+
1851
+ 'images360Overlay' => array(
1852
+ 'prefix' => 'AJAXZOOM',
1853
+ 'category' => 'general_settings',
1854
+ 'type' => 'bool',
1855
+ 'isJsObject' => false,
1856
+ 'isJsArray' => false,
1857
+ 'display' => 'switch',
1858
+ 'height' => null,
1859
+ 'default' => false,
1860
+ 'options' => null,
1861
+ 'comment' => array(
1862
+ 'EN' => '
1863
+ Add a div with class "spinOverlImg" or "spinOverl" over the gallery thumb.
1864
+ On default it has a 360 icon as background.
1865
+ ',
1866
+ 'DE' => '
1867
+ Bei Aktivierung wird ein DIV mit der Klasse "spinOverlImg" oder "spinOverl"
1868
+ über das Galerie Bild hinzugefügt.
1869
+ Es enthält ein 360 Icon als Hintergrund.
1870
+ '
1871
+ )
1872
+ ),
1873
+
1874
+ 'images360Small' => array(
1875
+ 'prefix' => 'AJAXZOOM',
1876
+ 'category' => 'general_settings',
1877
+ 'type' => 'string',
1878
+ 'isJsObject' => false,
1879
+ 'isJsArray' => false,
1880
+ 'display' => 'text',
1881
+ 'height' => null,
1882
+ 'default' => 'media-360-600.png',
1883
+ 'options' => null,
1884
+ 'comment' => array(
1885
+ 'EN' => '
1886
+ Placeholder image when 360 is slided.
1887
+ If only filename without path is defined the path presumed to be the
1888
+ /axZm/icons folder. You can also set complete different paths including the image
1889
+ filename instead.
1890
+ ',
1891
+ 'DE' => '
1892
+ Platzhalterbild, wenn 360 verschoben wird.
1893
+ Wenn nur Dateiname ohne Pfad definiert ist,
1894
+ werden die Pfade im /axZm/icons Ordner vermutet.
1895
+ Sie können stattdessen auch komplett andere Pfade inklusive der Bilddatei definieren.
1896
+ '
1897
+ )
1898
+ ),
1899
+
1900
+ 'images360Big' => array(
1901
+ 'prefix' => 'AJAXZOOM',
1902
+ 'category' => 'general_settings',
1903
+ 'type' => 'string',
1904
+ 'isJsObject' => false,
1905
+ 'isJsArray' => false,
1906
+ 'display' => 'text',
1907
+ 'height' => null,
1908
+ 'default' => 'media-360-1200.png',
1909
+ 'options' => null,
1910
+ 'comment' => array(
1911
+ 'EN' => '
1912
+ Placeholder image when 360 is slided.
1913
+ If only filename without path is defined the path presumed to be the
1914
+ /axZm/icons folder. You can also set complete different paths including the image
1915
+ filename instead.
1916
+ ',
1917
+ 'DE' => '
1918
+ Platzhalterbild, wenn 360 verschoben wird.
1919
+ Wenn nur Dateiname ohne Pfad definiert ist,
1920
+ werden die Pfade im /axZm/icons Ordner vermutet.
1921
+ Sie können stattdessen auch komplett andere Pfade inklusive der Bilddatei definieren.
1922
+ '
1923
+ )
1924
+ ),
1925
+
1926
+ 'images360example' => array(
1927
+ 'prefix' => 'AJAXZOOM',
1928
+ 'category' => 'general_settings',
1929
+ 'type' => 'string',
1930
+ 'isJsObject' => false,
1931
+ 'isJsArray' => false,
1932
+ 'display' => 'text',
1933
+ 'height' => null,
1934
+ 'default' => 'mouseOverExtension360Ver5',
1935
+ 'options' => null,
1936
+ 'comment' => array(
1937
+ 'EN' => '
1938
+ Configuration set which is passed to ajax-zoom when opening a 360/3D.
1939
+ The configuration set can be found in /axZm/zoomConfigCustom.inc.php
1940
+ ',
1941
+ 'DE' => '
1942
+ Wert des Konfiguration Sets, welches an AJAX-ZOOM übergeben wird wenn es ein 360/3D ist.
1943
+ Die configuration des Sets kann in /axZm/zoomConfigCustom.inc.php
1944
+ gefunden / erweitert werden.
1945
+ '
1946
+ )
1947
+ ),
1948
+
1949
+ 'zoomMsg360' => array(
1950
+ 'prefix' => 'AJAXZOOM',
1951
+ 'category' => 'general_settings',
1952
+ 'type' => 'object, string',
1953
+ 'isJsObject' => true,
1954
+ 'isJsArray' => false,
1955
+ 'display' => 'textarea',
1956
+ 'height' => 100,
1957
+ 'default' => '{
1958
+ "en" : "Drag to spin 360°, scroll to zoom in and out, right click and drag to pan",
1959
+ "de" : "Ziehen um 360° zu drehen, zoomen mit dem mausrad, rechte maustaste ziehen verschiebt die Ansicht",
1960
+ "fr" : "Faites glisser pour tourner à 360 °, faites défiler pour zoomer dans et hors, cliquer et faire glisser à droite pour vous déplacer",
1961
+ "es" : "Arrastrar para girar en 360º, Rueda del ratón para utilizar el Zoom, botón derecho para mover la imagen"
1962
+ }',
1963
+ 'options' => null,
1964
+ 'comment' => array(
1965
+ 'EN' => '
1966
+ Message displayed under mouse over zoom when 360 is loaded,
1967
+ e.g. "Drag to spin 360, scroll to zoom".
1968
+ For more than one language define a js object, e.g.
1969
+ {"en": "english text", "de": "german text"}
1970
+ ',
1971
+ 'DE' => '
1972
+ Nachricht, welche unter der Voransicht angezeigt wird, wenn darin 360 geladen ist.
1973
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
1974
+ z.B. {"en": "english text", "de": "german text"}
1975
+ '
1976
+ )
1977
+ ),
1978
+
1979
+ 'zoomMsg360_touch' => array(
1980
+ 'prefix' => 'AJAXZOOM',
1981
+ 'category' => 'general_settings',
1982
+ 'type' => 'object, string',
1983
+ 'isJsObject' => true,
1984
+ 'isJsArray' => false,
1985
+ 'display' => 'textarea',
1986
+ 'height' => 100,
1987
+ 'default' => '{
1988
+ "en" : "Drag to spin 360°, pinch to zoom in and out",
1989
+ "de" : "Ziehen um 360° zu drehen, zoomen mit zwei fingern",
1990
+ "fr" : "Faites glisser pour tourner à 360 °, pincer pour zoomer et dézoomer",
1991
+ "es" : "Arrastrar para girar en 360º, pellizcar para ampliar y reducir"
1992
+ }',
1993
+ 'options' => null,
1994
+ 'comment' => array(
1995
+ 'EN' => '
1996
+ Message displayed under mouse over zoom when 360 is loaded on touch devices.
1997
+ For more than one language define a js object,
1998
+ e.g. {"en": "english text", "de": "german text"}
1999
+ ',
2000
+ 'DE' => '
2001
+ Nachricht, welche unter der Voransicht angezeigt wird, wenn
2002
+ darin 360 auf einem touch Device geladen ist.
2003
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
2004
+ z.B. {"en": "english text", "de": "german text"}
2005
+ '
2006
+ )
2007
+ ),
2008
+
2009
+ 'preloadMouseOverImages' => array(
2010
+ 'prefix' => 'AJAXZOOM',
2011
+ 'category' => 'general_settings',
2012
+ 'type' => 'string, bool',
2013
+ 'isJsObject' => false,
2014
+ 'isJsArray' => false,
2015
+ 'display' => 'select',
2016
+ 'height' => null,
2017
+ 'default' => true,
2018
+ 'options' => array(
2019
+ array('false', 'false'),
2020
+ array('true', 'true'),
2021
+ array('oneByOne', 'oneByOne')
2022
+ ),
2023
+ 'comment' => array(
2024
+ 'EN' => '
2025
+ Preload all preview and mouseover images, possible values: false, true oder "oneByOne".
2026
+ ',
2027
+ 'DE' => '
2028
+ Alle Bilder für das Mouseover vorladen. Mögliche Werte sind
2029
+ false, true oder "oneByOne".
2030
+ '
2031
+ )
2032
+ ),
2033
+
2034
+ 'noImageAvailableClass' => array(
2035
+ 'prefix' => 'AJAXZOOM',
2036
+ 'category' => 'general_settings',
2037
+ 'type' => 'object, string',
2038
+ 'isJsObject' => true,
2039
+ 'isJsArray' => false,
2040
+ 'display' => 'textarea',
2041
+ 'height' => 50,
2042
+ 'default' => 'axZm_mouseOverNoImage',
2043
+ 'options' => null,
2044
+ 'comment' => array(
2045
+ 'EN' => '
2046
+ In case there are no images in "images", nor there are any in "images360",
2047
+ a div with some image as background can be appended to the
2048
+ container and receive this options value as CSS class.
2049
+ For more than one language define a js object,
2050
+ e.g. {"en": "axZm_mouseOverNoImage_en", "de": "axZm_mouseOverNoImage_de"}
2051
+ ',
2052
+ 'DE' => '
2053
+ Falls es weder Bilder, noch 360 gibt,
2054
+ wird ein DIV mit einem Bild als Hintergrund angezeigt.
2055
+ Der Wert diese Option ist die CSS Klasse, welche dem Container hinzugefügt wird.
2056
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
2057
+ z.B. {"en": "axZm_mouseOverNoImage_en", "de": "axZm_mouseOverNoImage_de"}
2058
+ '
2059
+ )
2060
+ ),
2061
+
2062
+ 'width' => array(
2063
+ 'prefix' => 'AJAXZOOM',
2064
+ 'category' => 'general_settings',
2065
+ 'type' => 'int, string',
2066
+ 'isJsObject' => false,
2067
+ 'isJsArray' => false,
2068
+ 'display' => 'text',
2069
+ 'height' => null,
2070
+ 'default' => 'auto',
2071
+ 'options' => null,
2072
+ 'comment' => array(
2073
+ 'EN' => '
2074
+ Width of the preview image or "auto"
2075
+ (depending on parent container size - "divID", see above).
2076
+ This is also the value which will be passed to your AJAX-ZOOM imaging server
2077
+ to generate this image on-the-fly.
2078
+ If width or height are set to "auto", both: width and height of the preview image
2079
+ are set to 50% of the value taken from "mouseOverZoomWidth", so on default it is 600px
2080
+ ',
2081
+ 'DE' => '
2082
+ Breite des Bildes in der Voransicht oder "auto"
2083
+ (ist dann abhängig von der Größe des Containers - "divID").
2084
+ Wenn Breite und Höhe auf "auto" stehen und "responsive" Option aktiviert ist,
2085
+ dann werden beide Werte auf 50% des Wertes von "mouseOverZoomWidth" eingestellt,
2086
+ also standardmäßig sind es 600px.
2087
+ '
2088
+ )
2089
+ ),
2090
+
2091
+ 'height' => array(
2092
+ 'prefix' => 'AJAXZOOM',
2093
+ 'category' => 'general_settings',
2094
+ 'type' => 'int, string',
2095
+ 'isJsObject' => false,
2096
+ 'isJsArray' => false,
2097
+ 'display' => 'text',
2098
+ 'height' => null,
2099
+ 'default' => 'auto',
2100
+ 'options' => null,
2101
+ 'comment' => array(
2102
+ 'EN' => '
2103
+ Height of the preview image or "auto"
2104
+ (depending on parent container size - "divID", see above).
2105
+ This is also the value which will be passed to your AJAX-ZOOM imaging server
2106
+ to generate this image on-the-fly.
2107
+ If width or height are set to "auto", both: width and height of the preview image
2108
+ are set to 50% of the value taken from "mouseOverZoomWidth", so on default it is 600px
2109
+ ',
2110
+ 'DE' => '
2111
+ Höhe des Bildes in der Voransicht oder "auto"
2112
+ (ist dann abhängig von der Größe des Containers - "divID").
2113
+ Wenn Breite und Höhe auf "auto" stehen und "responsive" Option aktiviert ist,
2114
+ dann werden beide Werte auf 50% des Wertes von "mouseOverZoomWidth" eingestellt,
2115
+ also standardmäßig sind es 600px.
2116
+ '
2117
+ )
2118
+ ),
2119
+
2120
+ 'oneSrcImg' => array(
2121
+ 'prefix' => 'AJAXZOOM',
2122
+ 'category' => 'general_settings',
2123
+ 'type' => 'bool',
2124
+ 'isJsObject' => false,
2125
+ 'isJsArray' => false,
2126
+ 'display' => 'switch',
2127
+ 'height' => null,
2128
+ 'default' => false,
2129
+ 'options' => null,
2130
+ 'comment' => array(
2131
+ 'EN' => '
2132
+ Use same image for "preview image" -
2133
+ the image which is hovered and the big "flyout image".
2134
+ ',
2135
+ 'DE' => '
2136
+ Das gleiche Bild in der Voransicht, als auch Mouseover Fenster verwenden.
2137
+ '
2138
+ )
2139
+ ),
2140
+
2141
+ 'heightRatio' => array(
2142
+ 'prefix' => 'AJAXZOOM',
2143
+ 'category' => 'general_settings',
2144
+ 'type' => 'float, string',
2145
+ 'isJsObject' => false,
2146
+ 'isJsArray' => false,
2147
+ 'useful' => true,
2148
+ 'display' => 'text',
2149
+ 'height' => null,
2150
+ 'default' => 1.0,
2151
+ 'options' => null,
2152
+ 'comment' => array(
2153
+ 'EN' => '
2154
+ "heightRatio" with instantly adjust the height of mouseover
2155
+ container depending on width calculated by the browser, e.g. 1.0 will always
2156
+ (only limited by "maxSizePrc" option) make height same as width;
2157
+ a value of 1.5 will make the preview like a portrait.
2158
+ You can also set "heightRatio" to "auto".
2159
+ In this case the height will be adjusted to cover available space instantly!
2160
+ Please note that when your images are not always same proportion,
2161
+ then the container will also change the size when the user switches to a different image.
2162
+ ',
2163
+ 'DE' => '
2164
+ Wenn "responsive" Option aktiviert, dann wird über diese Option die Höhe des Containers
2165
+ für die Voransicht je nach Breite automatisch kalkuliert.
2166
+ Bei 1.0 wird also die Höhe gleich der Breite gesetzt
2167
+ (eine tatsächliche Abweichung / Verringerung der Höhe ergibt sich
2168
+ ggf. nur durch "maxSizePrc" Option).
2169
+ Bei 1.5 wird die Preview in Portrait Dimensionen erscheinen.
2170
+ Sie können "heightRatio", also diese Option, ebenfalls auf "auto" setzen.
2171
+ Dann wird das Maximum Sichtbare als Höhe gesetzt.
2172
+ Der Container wird jedoch bei Bildern, mit unterschiedlichen Proportionen
2173
+ beim Wechsel in der Höhe "springen".
2174
+ '
2175
+ )
2176
+ ),
2177
+
2178
+ 'heightRatioOneImg' => array(
2179
+ 'prefix' => 'AJAXZOOM',
2180
+ 'category' => 'general_settings',
2181
+ 'type' => 'string, int',
2182
+ 'isJsObject' => false,
2183
+ 'isJsArray' => false,
2184
+ 'display' => 'text',
2185
+ 'height' => null,
2186
+ 'default' => 'same',
2187
+ 'options' => null,
2188
+ 'comment' => array(
2189
+ 'EN' => '
2190
+ Overwrites "heightRatio" if only one image / 360 is present and
2191
+ e.g. gallery is instantly disabled. Set to
2192
+ "same" in order to prevent any impact on "heightRatio" option.
2193
+ ',
2194
+ 'DE' => '
2195
+ Überschreibt "heightRatio" wenn nur ein Bild bzw.
2196
+ ein 360 vorhanden ist und die Galerie automatisch deaktiviert ist.
2197
+ Sie können als Wert aber auch "same" angeben.
2198
+ Dadurch wird jegliche Auswirkung dieses Wertes auf "heightRatio" vermieden.
2199
+ '
2200
+ )
2201
+ ),
2202
+
2203
+ 'heightMaxWidthRatio' => array(
2204
+ 'prefix' => 'AJAXZOOM',
2205
+ 'category' => 'general_settings',
2206
+ 'type' => 'array, string, bool',
2207
+ 'isJsObject' => false,
2208
+ 'isJsArray' => true,
2209
+ 'display' => 'text',
2210
+ 'height' => null,
2211
+ 'default' => '[]',
2212
+ 'options' => null,
2213
+ 'comment' => array(
2214
+ 'EN' => '
2215
+ Similar as you would set max-width: someValue @media only screen condition
2216
+ you can define "heightRatio"
2217
+ depending on the width of the browser, e.g. ["960|0.8", "700|0.7"].
2218
+ You can define a string or js array with more than one conditions.
2219
+ ',
2220
+ 'DE' => '
2221
+ Ähnlich der CSS max-width: someValue @media only screen Bedingung
2222
+ kann hier der Wert des "heightRatio" abhängig von Browser Fenster Breite
2223
+ gesetzt werden, z.B. ["960|0.8", "700|0.7"]
2224
+ '
2225
+ )
2226
+ ),
2227
+
2228
+ 'widthRatio' => array(
2229
+ 'prefix' => 'AJAXZOOM',
2230
+ 'category' => 'general_settings',
2231
+ 'type' => 'array, string, bool',
2232
+ 'isJsObject' => false,
2233
+ 'isJsArray' => true,
2234
+ 'display' => 'text',
2235
+ 'height' => null,
2236
+ 'default' => false,
2237
+ 'options' => null,
2238
+ 'comment' => array(
2239
+ 'EN' => '
2240
+ Oposit of "heightRatio".
2241
+ ',
2242
+ 'DE' => '
2243
+ Gegenteil von "heightRatio".
2244
+ '
2245
+ )
2246
+ ),
2247
+
2248
+ 'widthMaxHeightRatio' => array(
2249
+ 'prefix' => 'AJAXZOOM',
2250
+ 'category' => 'general_settings',
2251
+ 'type' => 'array, string, bool',
2252
+ 'isJsObject' => false,
2253
+ 'isJsArray' => true,
2254
+ 'display' => 'text',
2255
+ 'height' => null,
2256
+ 'default' => '[]',
2257
+ 'options' => null,
2258
+ 'comment' => array(
2259
+ 'EN' => '
2260
+ Oposit of "heightMaxWidthRatio"
2261
+ ',
2262
+ 'DE' => '
2263
+ Gegenteil von "heightMaxWidthRatio".
2264
+ '
2265
+ )
2266
+ ),
2267
+
2268
+ 'maxSizePrc' => array(
2269
+ 'prefix' => 'AJAXZOOM',
2270
+ 'category' => 'general_settings',
2271
+ 'type' => 'string, float',
2272
+ 'isJsObject' => false,
2273
+ 'isJsArray' => false,
2274
+ 'useful' => true,
2275
+ 'display' => 'text',
2276
+ 'height' => null,
2277
+ 'default' => '1.0|-120',
2278
+ 'options' => null,
2279
+ 'comment' => array(
2280
+ 'EN' => '
2281
+ Limit the actual height if "heightRatio" option is set.
2282
+ Setting "heightRatio" option may result in that the height of the mouseover zoom
2283
+ is bigger than window height and the image is not fully visible.
2284
+ To prevent this you can limit the calculated height with this "maxSizePrc" option.
2285
+ The value of 1.0 would limit the height to 100% of window height;
2286
+ a value of 0.8 to 80% of window height;
2287
+ you can also define two values, e.g. \'1.0|-120\'
2288
+ which would be window height minus 120px.
2289
+ ',
2290
+ 'DE' => '
2291
+ Schränkt die Höhe ein, wenn "heightRatio" optionen gesetzt sind.
2292
+ Wenn "heightRatio" gesetzt ist, dann könnte die Höhe größer sein, als die eigentliche
2293
+ Fenster Größe und das Bild nicht als Ganzes (ohne scrollen) zu sehen ist.
2294
+ Um dies zu verhindern kann man über diese Option die Höhe einschränken.
2295
+ Der Wert von 1.0 würde die Höhe auf 100% des Fensters einschränken;
2296
+ ein Wert von 0.8 auf 80%; bei dem Wert \'1.0|-120\' wären dies 100% minus 120px.
2297
+ '
2298
+ )
2299
+ ),
2300
+
2301
+ 'mouseOverZoomWidth' => array(
2302
+ 'prefix' => 'AJAXZOOM',
2303
+ 'category' => 'general_settings',
2304
+ 'type' => 'int',
2305
+ 'isJsObject' => false,
2306
+ 'isJsArray' => false,
2307
+ 'important' => true,
2308
+ 'display' => 'text',
2309
+ 'height' => null,
2310
+ 'default' => 1200,
2311
+ 'options' => null,
2312
+ 'comment' => array(
2313
+ 'EN' => '
2314
+ Max width of the image that will be shown in the zoom window;
2315
+ this is the value which will be passed to your AJAX-ZOOM imaging server
2316
+ to generate this image on-the-fly.
2317
+ Please note that the size is limited by $zoom[\'config\'][\'allowDynamicThumbsMaxSize\']
2318
+ which is can be set in \'/axZm/zoomConfig.inc.php\'.
2319
+ You can also specify a link to the image, see "images" option above.
2320
+ To set the width of the fly out window see "zoomWidth" under "mouseOverZoomParam".
2321
+ ',
2322
+ 'DE' => '
2323
+ Maximale Breite des Bildes, welches im Zoom Fenster gezeigt wird.
2324
+ Dies ist auch der Wert, welches an den AJAX-ZOOM dynamischen Bild Generator
2325
+ übergeben wird um das Bild zu skalieren. Bitte beachten Sie, dass
2326
+ der Wert bei $zoom[\'config\'][\'allowDynamicThumbsMaxSize\'] limitiert ist und
2327
+ nur in \'/axZm/zoomConfig.inc.php\'
2328
+ bzw. in \'zoomConfigCustomAZ.inc.php\' verändert werden kann.
2329
+ Die Breite des Fensters wird über "zoomWidth" in "mouseOverZoomParam" definiert.
2330
+ '
2331
+ )
2332
+ ),
2333
+
2334
+ 'mouseOverZoomHeight' => array(
2335
+ 'prefix' => 'AJAXZOOM',
2336
+ 'category' => 'general_settings',
2337
+ 'type' => 'int',
2338
+ 'isJsObject' => false,
2339
+ 'isJsArray' => false,
2340
+ 'important' => true,
2341
+ 'display' => 'text',
2342
+ 'height' => null,
2343
+ 'default' => 1200,
2344
+ 'options' => null,
2345
+ 'comment' => array(
2346
+ 'EN' => '
2347
+ Max height of the image that will be shown in the zoom window;
2348
+ this is the value which will be passed to your AJAX-ZOOM imaging server
2349
+ to generate this image on-the-fly.
2350
+ Please note that the size is limited by $zoom[\'config\'][\'allowDynamicThumbsMaxSize\']
2351
+ which is can be set in \'/axZm/zoomConfig.inc.php\'.
2352
+ You can also specify a link to the image, see "images" option above.
2353
+ To set the height of the fly out window see "zoomHeight" under "mouseOverZoomParam".
2354
+ ',
2355
+ 'DE' => '
2356
+ Maximale Höhe des Bildes, welches im Zoom Fenster gezeigt wird.
2357
+ Dies ist auch der Wert, welches an den AJAX-ZOOM dynamischen Bild Generator
2358
+ übergeben wird um das Bild zu skalieren. Bitte beachten Sie, dass
2359
+ der Wert bei $zoom[\'config\'][\'allowDynamicThumbsMaxSize\'] limitiert ist und nur in
2360
+ \'/axZm/zoomConfig.inc.php\' bzw. in \'zoomConfigCustomAZ.inc.php\' verändert werden kann.
2361
+ Die Breite des Fensters wird über "zoomWidth" in "mouseOverZoomParam" definiert.
2362
+ '
2363
+ )
2364
+ ),
2365
+
2366
+ 'mouseOverContain' => array(
2367
+ 'prefix' => 'AJAXZOOM',
2368
+ 'category' => 'general_settings',
2369
+ 'type' => 'bool',
2370
+ 'isJsObject' => false,
2371
+ 'isJsArray' => false,
2372
+ 'display' => 'switch',
2373
+ 'height' => null,
2374
+ 'default' => false,
2375
+ 'options' => null,
2376
+ 'comment' => array(
2377
+ 'EN' => '
2378
+ Create preview and the image, which is shown in the zoom window,
2379
+ with the same size / proportion
2380
+ as it is set in "mouseOverZoomWidth" and "mouseOverZoomHeight" options.
2381
+ Empty space will be filled with white color or kept transparent for png images.
2382
+ ',
2383
+ 'DE' => '
2384
+ Voransichtsbild, sowie das Bild, welches im Zoom Fenster gezeigt wird,
2385
+ entsprechend der Dimensionen / Proportion
2386
+ der in "mouseOverZoomWidth" und "mouseOverZoomHeight" gesetzten Werten erstellen.
2387
+ Leere Bereiche werden dabei mit weißer Farbe bzw. bei PNG mit transparent gefüllt.
2388
+ '
2389
+ )
2390
+ ),
2391
+
2392
+ 'ajaxZoomOpenMode' => array(
2393
+ 'prefix' => 'AJAXZOOM',
2394
+ 'category' => 'general_settings',
2395
+ 'type' => 'string',
2396
+ 'isJsObject' => false,
2397
+ 'isJsArray' => false,
2398
+ 'useful' => true,
2399
+ 'display' => 'select',
2400
+ 'height' => null,
2401
+ 'default' => 'fancyboxFullscreen',
2402
+ 'options' => array(
2403
+ array('fullscreen', 'fullscreen (browser window or screen) '),
2404
+ array('fancyboxFullscreen', 'fancyboxFullscreen (responsive fancybox)')
2405
+ ),
2406
+ 'comment' => array(
2407
+ 'EN' => '
2408
+ Determines how AJAX-ZOOM is opened when the user clicks on preview images / lens,
2409
+ possible values: \'fullscreen\' (see also "fullScreenApi" option below)
2410
+ or \'fancyboxFullscreen\'.
2411
+ ',
2412
+ 'DE' => '
2413
+ Hier kann bestimmt werden, wie AJAX-ZOOM geöffnet wird, wenn
2414
+ der Nutzer auf die Voransicht / Linse klickt.
2415
+ Mögliche Werte sind: \'fullscreen\' (siehe auch "fullScreenApi" Option)
2416
+ oder \'fancyboxFullscreen\'
2417
+ '
2418
+ )
2419
+ ),
2420
+
2421
+ 'ajaxZoomOpenModeTouch' => array(
2422
+ 'prefix' => 'AJAXZOOM',
2423
+ 'category' => 'general_settings',
2424
+ 'type' => 'string',
2425
+ 'isJsObject' => false,
2426
+ 'isJsArray' => false,
2427
+ 'display' => 'select',
2428
+ 'height' => null,
2429
+ 'default' => 'fullscreen',
2430
+ 'options' => array(
2431
+ array('fullscreen', 'fullscreen (browser window or screen) '),
2432
+ array('fancyboxFullscreen', 'fancyboxFullscreen (responsive fancybox)')
2433
+ ),
2434
+ 'comment' => array(
2435
+ 'EN' => '
2436
+ Determines how AJAX-ZOOM is opened when the user touch - clicks on
2437
+ preview images / lens, possible values: \'fullscreen\' and \'fancyboxFullscreen\'.
2438
+ ',
2439
+ 'DE' => '
2440
+ Hier kann bestimmt werden, wie AJAX-ZOOM geöffnet wird, wenn
2441
+ der Nutzer auf die Voransicht / Linse mit touch event klickt.
2442
+ Mögliche Werte sind: \'fullscreen\' und \'fancyboxFullscreen\'.
2443
+ '
2444
+ )
2445
+ ),
2446
+
2447
+ 'fancyBoxFullscreenParam' => array(
2448
+ 'prefix' => 'AJAXZOOM',
2449
+ 'category' => 'general_settings',
2450
+ 'type' => 'string',
2451
+ 'isJsObject' => true,
2452
+ 'isJsArray' => false,
2453
+ 'display' => 'textarea',
2454
+ 'height' => 120,
2455
+ 'default' => '{
2456
+ "boxMargin": 30,
2457
+ "boxPadding": 10,
2458
+ "boxCenterOnScroll": true,
2459
+ "boxOverlayShow": true,
2460
+ "boxOverlayOpacity": 0.85,
2461
+ "boxOverlayColor": "#777",
2462
+ "boxTransitionIn": "fade",
2463
+ "boxTransitionOut": "fade",
2464
+ "boxSpeedIn": 300,
2465
+ "boxSpeedOut": 300,
2466
+ "boxEasingIn": "swing",
2467
+ "boxEasingOut": "swing",
2468
+ "boxShowCloseButton": true,
2469
+ "boxEnableEscapeButton": true,
2470
+ "boxOnComplete": function(){}
2471
+ }',
2472
+ 'options' => null,
2473
+ 'comment' => array(
2474
+ 'EN' => '
2475
+ If fancyboxFullscreen is used in "ajaxZoomOpenMode" option, Fancybox options.
2476
+ Prefixed with box and capitalized first letter!
2477
+ ',
2478
+ 'DE' => '
2479
+ Wenn fancybox in "ajaxZoomOpenMode" gesetzt ist, sind dies die Fancybox Optionen.
2480
+ Dabei ist der Präfix box und erster Buchstabe wird großgeschrieben.
2481
+ '
2482
+ )
2483
+ ),
2484
+
2485
+ 'example' => array(
2486
+ 'prefix' => 'AJAXZOOM',
2487
+ 'category' => 'general_settings',
2488
+ 'type' => 'string',
2489
+ 'isJsObject' => false,
2490
+ 'isJsArray' => false,
2491
+ 'display' => 'text',
2492
+ 'height' => null,
2493
+ 'default' => 'mouseOverExtension360Ver5',
2494
+ 'options' => null,
2495
+ 'comment' => array(
2496
+ 'EN' => '
2497
+ Configuration set which is passed to ajax-zoom when opening a 2D image.
2498
+ The configuration set can be found in /axZm/zoomConfigCustom.inc.php
2499
+ ',
2500
+ 'DE' => '
2501
+ Wert des Konfiguration Sets,
2502
+ welches an AJAX-ZOOM übergeben wird wenn es ein 2D Bild ist.
2503
+ Die configuration des Sets kann in /axZm/zoomConfigCustom.inc.php gefunden
2504
+ / erweitert werden.
2505
+ '
2506
+ )
2507
+ ),
2508
+
2509
+ 'exampleFancyboxFullscreen' => array(
2510
+ 'prefix' => 'AJAXZOOM',
2511
+ 'category' => 'general_settings',
2512
+ 'type' => 'string',
2513
+ 'isJsObject' => false,
2514
+ 'isJsArray' => false,
2515
+ 'display' => 'text',
2516
+ 'height' => null,
2517
+ 'default' => 'mouseOverExtension360Ver5',
2518
+ 'options' => null,
2519
+ 'comment' => array(
2520
+ 'EN' => '
2521
+ Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode
2522
+ is \'fancyboxFullscreen\'.
2523
+ ',
2524
+ 'DE' => '
2525
+ Wert des Konfiguration Sets, welches an AJAX-ZOOM übergeben wird,
2526
+ wenn ajaxZoomOpenMode auf \'fancyboxFullscreen\' gesetzt ist.
2527
+ '
2528
+ )
2529
+ ),
2530
+
2531
+ 'enforceFullScreenRes' => array(
2532
+ 'prefix' => 'AJAXZOOM',
2533
+ 'category' => 'general_settings',
2534
+ 'type' => 'int',
2535
+ 'isJsObject' => false,
2536
+ 'isJsArray' => false,
2537
+ 'display' => 'text',
2538
+ 'height' => null,
2539
+ 'default' => 768,
2540
+ 'options' => null,
2541
+ 'comment' => array(
2542
+ 'EN' => '
2543
+ Enforce "ajaxZoomOpenMode" to be "fullscreen" if screen width is less than this value.
2544
+ ',
2545
+ 'DE' => '
2546
+ Erzwingen / setzen "ajaxZoomOpenMode" auf "fullscreen",
2547
+ wenn Breite des Browser Fensters kleiner ist, als dieser Wert.
2548
+ '
2549
+ )
2550
+ ),
2551
+
2552
+ 'prevNextArrows' => array(
2553
+ 'prefix' => 'AJAXZOOM',
2554
+ 'category' => 'general_settings',
2555
+ 'type' => 'bool',
2556
+ 'isJsObject' => false,
2557
+ 'isJsArray' => false,
2558
+ 'display' => 'switch',
2559
+ 'height' => null,
2560
+ 'default' => false,
2561
+ 'options' => null,
2562
+ 'comment' => array(
2563
+ 'EN' => '
2564
+ Put prev / next buttons over mouseover zoom. CSS: .axZm_mouseOverPrevNextArrows;
2565
+ ',
2566
+ 'DE' => '
2567
+ Prev / next Pfeile über Mouseover Zoom / Voransicht anzeigen,
2568
+ CSS: .axZm_mouseOverPrevNextArrows;
2569
+ '
2570
+ )
2571
+ ),
2572
+
2573
+ 'prevNextArrowsTouch' => array(
2574
+ 'prefix' => 'AJAXZOOM',
2575
+ 'category' => 'general_settings',
2576
+ 'type' => 'bool',
2577
+ 'isJsObject' => false,
2578
+ 'isJsArray' => false,
2579
+ 'display' => 'switch',
2580
+ 'height' => null,
2581
+ 'default' => true,
2582
+ 'options' => null,
2583
+ 'comment' => array(
2584
+ 'EN' => '
2585
+ Put prev / next buttons over mouseover zoom for touch devices.
2586
+ CSS: .axZm_mouseOverPrevNextArrows;
2587
+ ',
2588
+ 'DE' => '
2589
+ Prev / next Pfeile über Mouseover Zoom / Voransicht für touch Geräte anzeigen,
2590
+ CSS: .axZm_mouseOverPrevNextArrows;
2591
+ '
2592
+ )
2593
+ ),
2594
+
2595
+ 'prevNextArrowsSlide' => array(
2596
+ 'prefix' => 'AJAXZOOM',
2597
+ 'category' => 'general_settings',
2598
+ 'type' => 'bool',
2599
+ 'isJsObject' => false,
2600
+ 'isJsArray' => false,
2601
+ 'display' => 'switch',
2602
+ 'height' => null,
2603
+ 'default' => true,
2604
+ 'options' => null,
2605
+ 'comment' => array(
2606
+ 'EN' => '
2607
+ Slide images to right or left when clicked on the prev / next buttons.
2608
+ ',
2609
+ 'DE' => '
2610
+ Das Bild jeweils nach rechts oder links "sliden", wenn
2611
+ auf die prev / next Pfeile geklickt wird.
2612
+ '
2613
+ )
2614
+ ),
2615
+
2616
+ 'disableScrollAnm' => array(
2617
+ 'prefix' => 'AJAXZOOM',
2618
+ 'category' => 'general_settings',
2619
+ 'type' => 'bool',
2620
+ 'isJsObject' => false,
2621
+ 'isJsArray' => false,
2622
+ 'display' => 'switch',
2623
+ 'height' => null,
2624
+ 'default' => true,
2625
+ 'options' => null,
2626
+ 'comment' => array(
2627
+ 'EN' => '
2628
+ Disable animation while zooming with AJAX-ZOOM and using mousewheel.
2629
+ ',
2630
+ 'DE' => '
2631
+ Deaktivieren der Animation während mit AJAX-ZOOM und dem Mausrad gezoomt wird.
2632
+ '
2633
+ )
2634
+ ),
2635
+
2636
+ 'fullScreenApi' => array(
2637
+ 'prefix' => 'AJAXZOOM',
2638
+ 'category' => 'general_settings',
2639
+ 'type' => 'bool',
2640
+ 'isJsObject' => false,
2641
+ 'isJsArray' => false,
2642
+ 'display' => 'switch',
2643
+ 'height' => null,
2644
+ 'default' => false,
2645
+ 'options' => null,
2646
+ 'comment' => array(
2647
+ 'EN' => '
2648
+ Try to open AJAX-ZOOM at browsers fullscreen mode,
2649
+ possible on modern browsers except IE < 10 and mobile.
2650
+ ',
2651
+ 'DE' => '
2652
+ AJAX-ZOOM im Browser als Vollbild öffnen,
2653
+ möglich in modernen Browsern außer IE <10 und mobil;
2654
+ '
2655
+ )
2656
+ ),
2657
+
2658
+ 'axZmCallBacks' => array(
2659
+ 'prefix' => 'AJAXZOOM',
2660
+ 'category' => 'general_settings',
2661
+ 'type' => 'object',
2662
+ 'isJsObject' => false,
2663
+ 'isJsArray' => false,
2664
+ 'display' => 'textarea',
2665
+ 'height' => 100,
2666
+ 'default' => '{}',
2667
+ 'options' => null,
2668
+ 'comment' => array(
2669
+ 'EN' => '
2670
+ AJAX-ZOOM has several callbacks / hooks,
2671
+ http://www.ajax-zoom.com/index.php?cid=docs#onBeforeStart
2672
+ ',
2673
+ 'DE' => '
2674
+ AJAX-ZOOM kann mit zahlreichen Callbacks bzw. Hooks erweitert werden.
2675
+ Docu: http://www.ajax-zoom.com/index.php?cid=docs#onBeforeStart
2676
+ '
2677
+ )
2678
+ ),
2679
+
2680
+ 'azOptions' => array(
2681
+ 'prefix' => 'AJAXZOOM',
2682
+ 'category' => 'general_settings',
2683
+ 'type' => 'object',
2684
+ 'isJsObject' => true,
2685
+ 'isJsArray' => false,
2686
+ 'display' => 'textarea',
2687
+ 'height' => 100,
2688
+ 'default' => '{}',
2689
+ 'options' => null,
2690
+ 'comment' => array(
2691
+ 'EN' => '
2692
+ Some AJAX-ZOOM options can be set with JS when AJAX-ZOOM is inited.
2693
+ Normally you would be defining them in /axZm/zoomConfig.inc.php
2694
+ or /axZm/zoomConfigCustom.inc.php; this field is for convenience reasons. Example:
2695
+ {"fullScreenCornerButton": false} - this would disable the button for fullscreen.
2696
+ ',
2697
+ 'DE' => '
2698
+ Einige AJAX-ZOOM-Optionen können mit JS eingestellt werden,
2699
+ wenn AJAX-ZOOM initialisiert wird.
2700
+ Normalerweise würde man sie in /axZm/zoomConfig.inc.php
2701
+ oder /axZm/zoomConfigCustom.inc.php einstellen;
2702
+ Aus Bequemlichkeitsgründen kann man diese auch hier einstellen. Beispiel:
2703
+ {"fullScreenCornerButton": false} -
2704
+ dies würde die Schaltfläche für Vollbild deaktivieren.
2705
+ '
2706
+ )
2707
+ ),
2708
+
2709
+ 'azOptions360' => array(
2710
+ 'prefix' => 'AJAXZOOM',
2711
+ 'category' => 'general_settings',
2712
+ 'type' => 'object',
2713
+ 'isJsObject' => true,
2714
+ 'isJsArray' => false,
2715
+ 'display' => 'textarea',
2716
+ 'height' => 100,
2717
+ 'default' => '{}',
2718
+ 'options' => null,
2719
+ 'comment' => array(
2720
+ 'EN' => '
2721
+ Same as above but specifically for 360/3D.
2722
+ In AJAX-ZOOM modules for ecommerce systems you can also set these options
2723
+ for each 360 individually...
2724
+ As an example for setting this option manually would be such an object:
2725
+ {"mouseScrollEnable": true,
2726
+ "mNavi": {"enabled": true, "gravity": "bottomLeft",
2727
+ "order": {"mZoomOut": 5, "mZoomIn": 15}}}
2728
+ ',
2729
+ 'DE' => '
2730
+ Das gleiche wie "azOptions", nur für 360. In AJAX-ZOOM Modulen für diverse Ecommerce Systeme
2731
+ können diese Optionen für jede 360 auch individuell gesetzt werden.
2732
+ Als Beispiel für die manuelle Einstellung dieser Option wäre ein solches Objekt:
2733
+ {"mouseScrollEnable": true,
2734
+ "mNavi": {"enabled": true, "gravity": "bottomLeft",
2735
+ "order": {"mZoomOut": 5, "mZoomIn": 15}}}
2736
+ '
2737
+ )
2738
+ ),
2739
+
2740
+ 'postMode' => array(
2741
+ 'prefix' => 'AJAXZOOM',
2742
+ 'category' => 'general_settings',
2743
+ 'type' => 'bool',
2744
+ 'isJsObject' => false,
2745
+ 'isJsArray' => false,
2746
+ 'display' => 'switch',
2747
+ 'height' => null,
2748
+ 'default' => false,
2749
+ 'options' => null,
2750
+ 'comment' => array(
2751
+ 'EN' => '
2752
+ Set AJAX-ZOOM to use POST instead of GET.
2753
+ ',
2754
+ 'DE' => '
2755
+ AJAX-ZOOM mit POST anstatt GET nutzen.
2756
+ '
2757
+ )
2758
+ ),
2759
+
2760
+ 'cropAxZmThumbSliderParam' => array(
2761
+ 'prefix' => 'AJAXZOOM',
2762
+ 'category' => 'product_tour',
2763
+ 'type' => 'object',
2764
+ 'isJsObject' => true,
2765
+ 'isJsArray' => false,
2766
+ 'display' => 'textarea',
2767
+ 'height' => 100,
2768
+ 'example' => '{
2769
+ "btn": true,
2770
+ "btnClass": "axZmThumbSlider_button_new",
2771
+ "btnHidden": true,
2772
+ "centerNoScroll": true,
2773
+ "thumbImgWrap": "azThumbImgWrapRound",
2774
+ "scrollBy": 1
2775
+ }',
2776
+ 'default' => '{}',
2777
+ 'options' => null,
2778
+ 'comment' => array(
2779
+ 'EN' => '
2780
+ Slider settings for 360° "Product Tour". Can be kept empty.
2781
+ See also "galleryAxZmThumbSliderParam" option for more info.
2782
+ ',
2783
+ 'DE' => '
2784
+ Slider Einstellungen für 360° "Produkt Tour".
2785
+ Kann leer bleiben. Für mehr Info siehe "galleryAxZmThumbSliderParam" Option.
2786
+ '
2787
+ )
2788
+ ),
2789
+
2790
+ 'cropSliderPosition' => array(
2791
+ 'prefix' => 'AJAXZOOM',
2792
+ 'category' => 'product_tour',
2793
+ 'type' => 'string',
2794
+ 'isJsObject' => false,
2795
+ 'isJsArray' => false,
2796
+ 'useful' => true,
2797
+ 'display' => 'select',
2798
+ 'height' => null,
2799
+ 'default' => 'bottom',
2800
+ 'options' => array(
2801
+ array('left-bottom', 'left-bottom'),
2802
+ array('left-top', 'left-top'),
2803
+ array('right-bottom', 'right-bottom'),
2804
+ array('right-top', 'right-top'),
2805
+ array('top-left', 'top-left'),
2806
+ array('top-right', 'top-right'),
2807
+ array('bottom-left', 'bottom-left'),
2808
+ array('bottom-right', 'bottom-right'),
2809
+ array('top', 'top (fixed)'),
2810
+ array('right', 'right (fixed)'),
2811
+ array('bottom', 'bottom (fixed)'),
2812
+ array('left', 'left (fixed)'),
2813
+ array('left-right', 'left-right'),
2814
+ array('right-left', 'right-left'),
2815
+ array('bottom-top', 'bottom-top'),
2816
+ array('top-bottom', 'top-bottom')
2817
+ ),
2818
+ 'comment' => array(
2819
+ 'EN' => '
2820
+ Position of the 360° "Product Tour" slider,
2821
+ possible values: "top", "right", "bottom", "left" and any combination
2822
+ between those separated with dash.
2823
+ ',
2824
+ 'DE' => '
2825
+ Position der 360 "Produkt Tour" Galerie,
2826
+ mögliche Werte sind: "top", "right", "bottom", "left", sowie
2827
+ jegliche Kombination getrennt durch einen Strich.
2828
+ '
2829
+ )
2830
+ ),
2831
+
2832
+ 'cropSliderPositionSwitch' => array(
2833
+ 'prefix' => 'AJAXZOOM',
2834
+ 'category' => 'product_tour',
2835
+ 'type' => 'string, int',
2836
+ 'isJsObject' => false,
2837
+ 'isJsArray' => false,
2838
+ 'display' => 'text',
2839
+ 'height' => null,
2840
+ 'default' => 'auto',
2841
+ 'options' => null,
2842
+ 'comment' => array(
2843
+ 'EN' => '
2844
+ Possible values: "auto" as string or integer.
2845
+ Auto means depending on whether the screen is in portrait or
2846
+ landscape mode the first or second value of "cropSliderPosition"
2847
+ suited for the resolution will be chosen. For the value set as
2848
+ integer the second position from "cropSliderPosition" will be
2849
+ chosen if width of the screen is less than this integer and
2850
+ the position suits for current resolution.
2851
+ ',
2852
+ 'DE' => '
2853
+ Mögliche Werte: "auto" als String oder Integer.
2854
+ Auto bedeutet, je nachdem, ob der Bildschirm im Hochformat oder
2855
+ Landscape-Modus ist, wird der erste oder zweite Wert aus "cropSliderPosition"
2856
+ automatisch passend zur Auflösung gewählt. Bei einer Zahl wird die zweite
2857
+ Position aus "cropSliderPosition" genommen, wenn die Bildschirmbreite
2858
+ kleiner ist als diese Zahl und die Position passt.
2859
+ '
2860
+ )
2861
+ ),
2862
+
2863
+ 'cropSliderPosPriority' => array(
2864
+ 'prefix' => 'AJAXZOOM',
2865
+ 'category' => 'product_tour',
2866
+ 'type' => 'bool',
2867
+ 'isJsObject' => false,
2868
+ 'isJsArray' => false,
2869
+ 'display' => 'switch',
2870
+ 'height' => null,
2871
+ 'default' => true,
2872
+ 'options' => null,
2873
+ 'comment' => array(
2874
+ 'EN' => '
2875
+ Prioritize placing 360° "Product Tour" slider,
2876
+ defined in "cropSliderPosition", before positioning fullscreen thumbnail slider,
2877
+ defined in "fsSliderPosition".
2878
+ ',
2879
+ 'DE' => '
2880
+ Priorisieren die Positionierung des 360° "Produkt Tour" Sliders,
2881
+ definiert in "cropSliderPosition", vor Positionierung des
2882
+ Vollbild Miniaturansichten Sliders, definiert in "fsSliderPosition".
2883
+ '
2884
+ )
2885
+ ),
2886
+
2887
+ 'cropSliderReposition' => array(
2888
+ 'prefix' => 'AJAXZOOM',
2889
+ 'category' => 'product_tour',
2890
+ 'type' => 'string',
2891
+ 'isJsObject' => false,
2892
+ 'isJsArray' => false,
2893
+ 'display' => 'select',
2894
+ 'height' => null,
2895
+ 'default' => 'right-bottom',
2896
+ 'options' => array(
2897
+ array('left-bottom', 'left-bottom'),
2898
+ array('left-top', 'left-top'),
2899
+ array('right-bottom', 'right-bottom'),
2900
+ array('right-top', 'right-top'),
2901
+ array('opposite', 'opposite')
2902
+ ),
2903
+ 'comment' => array(
2904
+ 'EN' => '
2905
+ In case the positions of the gallery slider and the slider for 360 Product tour collude,
2906
+ the alternative position.
2907
+ Possible values: "left-bottom", "left-top", "right-bottom", "right-top" and "opposite".
2908
+ ',
2909
+ 'DE' => '
2910
+ Falls die Positionen der slider für Gallerie und 360 Produkt Tour kollidieren,
2911
+ wird die alternative bzw. ausweichende Position gewählt.
2912
+ Mögliche Werte sind: "left-bottom", "left-top",
2913
+ "right-bottom", "right-top" und "opposite".
2914
+ '
2915
+ )
2916
+ ),
2917
+
2918
+ 'cropSliderDimension' => array(
2919
+ 'prefix' => 'AJAXZOOM',
2920
+ 'category' => 'product_tour',
2921
+ 'type' => 'int',
2922
+ 'isJsObject' => false,
2923
+ 'isJsArray' => false,
2924
+ 'display' => 'text',
2925
+ 'height' => null,
2926
+ 'default' => 86,
2927
+ 'options' => null,
2928
+ 'comment' => array(
2929
+ 'EN' => '
2930
+ Width or height (depending on position) of the instantly
2931
+ created container for the 360° "Product Tour" thumb slider.
2932
+ ',
2933
+ 'DE' => '
2934
+ Breite oder Höhe (je nach Position) des Containers in dem
2935
+ der 360° "Product Tour" Galerie angezeigt wird.
2936
+ '
2937
+ )
2938
+ ),
2939
+
2940
+ 'cropSliderThumbAutoSize' => array(
2941
+ 'prefix' => 'AJAXZOOM',
2942
+ 'category' => 'product_tour',
2943
+ 'type' => 'bool',
2944
+ 'isJsObject' => false,
2945
+ 'isJsArray' => false,
2946
+ 'display' => 'switch',
2947
+ 'height' => null,
2948
+ 'default' => true,
2949
+ 'options' => null,
2950
+ 'comment' => array(
2951
+ 'EN' => '
2952
+ Thumb CSS size will be set instantly depending on "cropSliderDimension" option.
2953
+ ',
2954
+ 'DE' => '
2955
+ CSS werte für die 360° "Product Tour"
2956
+ automatisch in Abhängigkeit von "cropSliderDimension" setzen.
2957
+ '
2958
+ )
2959
+ ),
2960
+
2961
+ 'cropSliderThumbAutoMargin' => array(
2962
+ 'prefix' => 'AJAXZOOM',
2963
+ 'category' => 'product_tour',
2964
+ 'type' => 'int',
2965
+ 'isJsObject' => false,
2966
+ 'isJsArray' => false,
2967
+ 'display' => 'text',
2968
+ 'height' => null,
2969
+ 'default' => 10,
2970
+ 'options' => null,
2971
+ 'comment' => array(
2972
+ 'EN' => '
2973
+ Thumb margin when set instantly.
2974
+ ',
2975
+ 'DE' => '
2976
+ Anstand der Bilder wenn "cropSliderThumbAutoSize" eingeschaltet ist.
2977
+ '
2978
+ )
2979
+ ),
2980
+
2981
+ 'cropSliderThumbDescr' => array(
2982
+ 'prefix' => 'AJAXZOOM',
2983
+ 'category' => 'product_tour',
2984
+ 'type' => 'bool',
2985
+ 'isJsObject' => false,
2986
+ 'isJsArray' => false,
2987
+ 'display' => 'switch',
2988
+ 'height' => null,
2989
+ 'default' => true,
2990
+ 'options' => null,
2991
+ 'comment' => array(
2992
+ 'EN' => '
2993
+ Enable descriptions for the thumbs in the slider for 360° "Product Tour"
2994
+ ',
2995
+ 'DE' => '
2996
+ Beschreibungen in der 360° "Produkt Tour" Galerie aktivieren.
2997
+ '
2998
+ )
2999
+ ),
3000
+
3001
+ 'cropSliderMinSize' => array(
3002
+ 'prefix' => 'AJAXZOOM',
3003
+ 'category' => 'product_tour',
3004
+ 'type' => 'int',
3005
+ 'isJsObject' => false,
3006
+ 'isJsArray' => false,
3007
+ 'display' => 'text',
3008
+ 'height' => null,
3009
+ 'default' => 400,
3010
+ 'options' => null,
3011
+ 'comment' => array(
3012
+ 'EN' => '
3013
+ Minimal size of the player (width or height) for 360° "Product Tour" gallery
3014
+ (if present) to be shown.
3015
+ ',
3016
+ 'DE' => '
3017
+ Minimale Größe des Players um die 360° "Product Tour" sichtbar zu machen.
3018
+ '
3019
+ )
3020
+ ),
3021
+
3022
+ 'cropSliderNotParent' => array(
3023
+ 'prefix' => 'AJAXZOOM',
3024
+ 'category' => 'product_tour',
3025
+ 'type' => 'string',
3026
+ 'isJsObject' => false,
3027
+ 'isJsArray' => false,
3028
+ 'display' => 'text',
3029
+ 'height' => null,
3030
+ 'default' => '',
3031
+ 'options' => null,
3032
+ 'comment' => array(
3033
+ 'EN' => '
3034
+ Prevent showing 360° "Product Tour" gallery when the parent container
3035
+ matches the id or CSS class represented as string in this option value,
3036
+ e.g. "az_mouseOverZoomContainer".
3037
+ For more than one value split them with vertical dash.
3038
+ ',
3039
+ 'DE' => '
3040
+ Verhindert das Anzeigen der 360° "Produkt Tour" Gallerie, wenn
3041
+ übergeordneter Container den Wert dieser Option als ID oder
3042
+ CSS Klasse entspricht, z.B. "az_mouseOverZoomContainer".
3043
+ Für mehrere Werte können diese mit einem vertikalen Strich
3044
+ in einem String getrennt werden.
3045
+ '
3046
+ )
3047
+ ),
3048
+
3049
+ 'cropAxZmEbOpt' => array(
3050
+ 'prefix' => 'AJAXZOOM',
3051
+ 'category' => 'product_tour',
3052
+ 'type' => 'obejct',
3053
+ 'isJsObject' => true,
3054
+ 'isJsArray' => false,
3055
+ 'display' => 'textarea',
3056
+ 'height' => 150,
3057
+ 'default' => '{
3058
+ "marginX": 5,
3059
+ "marginY": 5,
3060
+ "openSpeed": 300,
3061
+ "closeSpeed": 300,
3062
+ "fadeInSpeed": 200,
3063
+ "autoOpen": false,
3064
+ "arrow": true,
3065
+ "thumbSlider": true,
3066
+ "parO": "#axZm_zoomLayer",
3067
+ "dynText": true,
3068
+ "dynTextBtn": [
3069
+ {"base": 0.016, "min": 12, "max": 24, "important": true}
3070
+ ],
3071
+ "dynTextTitle": [
3072
+ {"base": 0.016, "min": 18, "max": 28, "important": true}
3073
+ ],
3074
+ "dynTextDescr": [
3075
+ ["*", {"base": 0.012, "min": 12, "max": 24, "important": true}],
3076
+ ["h3", {"base": 0.016, "min": 16, "max": 32, "important": true}]
3077
+ ]
3078
+ }',
3079
+ 'options' => null,
3080
+ 'comment' => array(
3081
+ 'EN' => '
3082
+ Options for $.axZmEb function which is used for descriptions for
3083
+ 360° "Product Tour". Documentation to be updated...
3084
+ ',
3085
+ 'DE' => '
3086
+ Einstellungen für die $.axZmEb Funktion, welche für die Beschreibungen der
3087
+ 360° "Product Tour" genutzt werden. Dokumentation muss noch geschrieben werden...
3088
+ '
3089
+ )
3090
+ ),
3091
+
3092
+ 'fsAxZmThumbSliderParam' => array(
3093
+ 'prefix' => 'AJAXZOOM',
3094
+ 'category' => 'fullscreen_gallery',
3095
+ 'type' => 'obejct',
3096
+ 'isJsObject' => true,
3097
+ 'isJsArray' => false,
3098
+ 'display' => 'textarea',
3099
+ 'height' => 100,
3100
+ 'example' => '{
3101
+ "scrollBy": 1,
3102
+ "btn": true,
3103
+ "btnClass": "axZmThumbSlider_button_new",
3104
+ "btnLeftText": null,
3105
+ "btnRightText": null,
3106
+ "btnHidden": true,
3107
+ "pressScrollSnap": true,
3108
+ "centerNoScroll": true,
3109
+ "wrapStyle": {
3110
+ "borderWidth": 0
3111
+ }
3112
+ }',
3113
+ 'default' => '{}',
3114
+ 'options' => null,
3115
+ 'comment' => array(
3116
+ 'EN' => '
3117
+ $.axZmThumbSlider options for fullscreen gallery.
3118
+ For full list of options see under:
3119
+ /modules/ajaxzoom/axZm/extensions/axZmThumbSlider/
3120
+ ',
3121
+ 'DE' => '
3122
+ $.axZmThumbSlider Optionen für Vollbild Galerie.
3123
+ Für die komplette Liste der Optionen siehe
3124
+ http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/
3125
+ '
3126
+ )
3127
+ ),
3128
+
3129
+ 'fsSliderPosition' => array(
3130
+ 'prefix' => 'AJAXZOOM',
3131
+ 'category' => 'fullscreen_gallery',
3132
+ 'type' => 'string',
3133
+ 'isJsObject' => false,
3134
+ 'isJsArray' => false,
3135
+ 'display' => 'select',
3136
+ 'height' => null,
3137
+ 'default' => 'right-bottom',
3138
+ 'options' => array(
3139
+ array('left-bottom', 'left-bottom'),
3140
+ array('left-top', 'left-top'),
3141
+ array('right-bottom', 'right-bottom'),
3142
+ array('right-top', 'right-top'),
3143
+ array('top-left', 'top-left'),
3144
+ array('top-right', 'top-right'),
3145
+ array('bottom-left', 'bottom-left'),
3146
+ array('bottom-right', 'bottom-right'),
3147
+ array('top', 'top (fixed)'),
3148
+ array('right', 'right (fixed)'),
3149
+ array('bottom', 'bottom (fixed)'),
3150
+ array('left', 'left (fixed)'),
3151
+ array('left-right', 'left-right'),
3152
+ array('right-left', 'right-left'),
3153
+ array('bottom-top', 'bottom-top'),
3154
+ array('top-bottom', 'top-bottom')
3155
+ ),
3156
+ 'comment' => array(
3157
+ 'EN' => '
3158
+ Position of the fullscreen thumbnail slider.
3159
+ Possible values are:
3160
+ "top", "right", "bottom", "left" and any combination between those separated with dash,
3161
+ e.g. "right-bottom". Positions with dash mean that the second after dash
3162
+ is the alternative position which could be switched instantly depending on the logic
3163
+ described in "fsSliderPositionSwitch" option.
3164
+ ',
3165
+ 'DE' => '
3166
+ Position der Vollbild Galerie. Mögliche Werte sind top, left, right, bottom,
3167
+ sowie jegliche Kombination aus den obigen getrennt mit einem Strich,
3168
+ also z.B. left-bottom. Positionen mit Strich (also zwei) bedeuten, dass je nach
3169
+ einstellbaren Logik, beschrieben in "fsSliderPositionSwitch" Option,
3170
+ die Position sich dynamisch verändern kann.
3171
+ '
3172
+ )
3173
+ ),
3174
+
3175
+ 'fsSliderReposition' => array(
3176
+ 'prefix' => 'AJAXZOOM',
3177
+ 'category' => 'fullscreen_gallery',
3178
+ 'type' => 'string',
3179
+ 'isJsObject' => false,
3180
+ 'isJsArray' => false,
3181
+ 'display' => 'select',
3182
+ 'height' => null,
3183
+ 'default' => 'right-bottom',
3184
+ 'options' => array(
3185
+ array('left-bottom', 'left-bottom'),
3186
+ array('left-top', 'left-top'),
3187
+ array('right-bottom', 'right-bottom'),
3188
+ array('right-top', 'right-top'),
3189
+ array('opposite', 'opposite')
3190
+ ),
3191
+ 'comment' => array(
3192
+ 'EN' => '
3193
+ In case sliders position collude, the alternative position.
3194
+ Possible values: "left-bottom", "left-top", "right-bottom", "right-top", "opposite".
3195
+ ',
3196
+ 'DE' => '
3197
+ Falls die Positionen der slider für Gallerie und 360 Produkt Tour kollidieren,
3198
+ wird die alternative bzw. ausweichende Position gewählt.
3199
+ Mögliche Werte sind: "left-bottom", "left-top",
3200
+ "right-bottom", "right-top" und "opposite".
3201
+ '
3202
+ )
3203
+ ),
3204
+
3205
+ 'fsSliderPositionSwitch' => array(
3206
+ 'prefix' => 'AJAXZOOM',
3207
+ 'category' => 'fullscreen_gallery',
3208
+ 'type' => 'string, int',
3209
+ 'isJsObject' => false,
3210
+ 'isJsArray' => false,
3211
+ 'display' => 'text',
3212
+ 'height' => null,
3213
+ 'default' => 'auto',
3214
+ 'options' => null,
3215
+ 'comment' => array(
3216
+ 'EN' => '
3217
+ Switch fsSliderPosition instantly depending on certain conditions.
3218
+ This switch is only applied when fsSliderPosition value is
3219
+ "top-left", "top-right", "bottom-left" or "bottom-right".
3220
+ Possible values are "auto" or integer;
3221
+ When "auto" is enabled an alternative position will be chosen depending
3222
+ on screen being in portrait or landscape mode. If value of
3223
+ fsSliderPositionSwitch is integer, alternative position will be
3224
+ only chosen if screen width (or height - depending on first value
3225
+ of fsSliderPosition before dash) is less than fsSliderPositionSwitch value.
3226
+ ',
3227
+ 'DE' => '
3228
+ Mögliche Werte: "auto" als String oder Integer.
3229
+ Auto bedeutet, je nachdem, ob der Bildschirm im Hochformat oder
3230
+ Landscape-Modus ist, wird der erste oder zweite Wert aus "fsSliderReposition"
3231
+ automatisch passend zur Auflösung gewählt. Bei einer Zahl wird die zweite
3232
+ Position aus "fsSliderReposition" genommen, wenn die Bildschirmbreite
3233
+ kleiner ist als diese Zahl und die Position passt.
3234
+ '
3235
+ )
3236
+ ),
3237
+
3238
+ 'fsSliderDimension' => array(
3239
+ 'prefix' => 'AJAXZOOM',
3240
+ 'category' => 'fullscreen_gallery',
3241
+ 'type' => 'int',
3242
+ 'isJsObject' => false,
3243
+ 'isJsArray' => false,
3244
+ 'display' => 'text',
3245
+ 'height' => null,
3246
+ 'default' => 80,
3247
+ 'options' => null,
3248
+ 'comment' => array(
3249
+ 'EN' => '
3250
+ Width or height of the container for fullscreen slider
3251
+ (depends on if it is vertical or horizontal).
3252
+ ',
3253
+ 'DE' => '
3254
+ Breite oder Höhe (je nach Position) des Containers in dem
3255
+ der Vollbild Galerie angezeigt wird.
3256
+ '
3257
+ )
3258
+ ),
3259
+
3260
+ 'fsSliderThumbAutoSize' => array(
3261
+ 'prefix' => 'AJAXZOOM',
3262
+ 'category' => 'fullscreen_gallery',
3263
+ 'type' => 'bool',
3264
+ 'isJsObject' => false,
3265
+ 'isJsArray' => false,
3266
+ 'display' => 'switch',
3267
+ 'height' => null,
3268
+ 'default' => true,
3269
+ 'options' => null,
3270
+ 'comment' => array(
3271
+ 'EN' => '
3272
+ Adjust fsSliderDimension depending on
3273
+ fsAxZmThumbSliderParam instantly (to be improved).
3274
+ ',
3275
+ 'DE' => '
3276
+ CSS werte für Vollbild Galerie Miniaturansichten
3277
+ automatisch in Abhängigkeit von "fsSliderDimension" setzen.
3278
+ '
3279
+ )
3280
+ ),
3281
+
3282
+ 'fsSliderThumbAutoMargin' => array(
3283
+ 'prefix' => 'AJAXZOOM',
3284
+ 'category' => 'fullscreen_gallery',
3285
+ 'type' => 'int',
3286
+ 'isJsObject' => false,
3287
+ 'isJsArray' => false,
3288
+ 'display' => 'text',
3289
+ 'height' => null,
3290
+ 'default' => 7,
3291
+ 'options' => null,
3292
+ 'comment' => array(
3293
+ 'EN' => '
3294
+ Thumbnails margin when fsSliderThumbAutoSize is enabled.
3295
+ ',
3296
+ 'DE' => '
3297
+ Anstand der Miniaturansichten wenn "fsSliderThumbAutoSize" eingeschaltet ist.
3298
+ '
3299
+ )
3300
+ ),
3301
+
3302
+ 'fsSliderThumbAutoExtend' => array(
3303
+ 'prefix' => 'AJAXZOOM',
3304
+ 'category' => 'fullscreen_gallery',
3305
+ 'type' => 'int',
3306
+ 'isJsObject' => false,
3307
+ 'isJsArray' => false,
3308
+ 'display' => 'text',
3309
+ 'height' => null,
3310
+ 'default' => 0,
3311
+ 'options' => null,
3312
+ 'comment' => array(
3313
+ 'EN' => '
3314
+ Extend slider width / height by this pixel value when set instantly.
3315
+ ',
3316
+ 'DE' => '
3317
+ Erweitern die Breite bzw. Höhe der Vollbild Galerie um einen festen Wert,
3318
+ wenn "fsSliderThumbAutoSize" eingeschaltet ist.
3319
+ '
3320
+ )
3321
+ ),
3322
+
3323
+ 'fsSliderThumbDescr' => array(
3324
+ 'prefix' => 'AJAXZOOM',
3325
+ 'category' => 'fullscreen_gallery',
3326
+ 'type' => 'bool',
3327
+ 'isJsObject' => false,
3328
+ 'isJsArray' => false,
3329
+ 'display' => 'switch',
3330
+ 'height' => null,
3331
+ 'default' => false,
3332
+ 'options' => null,
3333
+ 'comment' => array(
3334
+ 'EN' => '
3335
+ Dummy for future implementation (todo).
3336
+ ',
3337
+ 'DE' => '
3338
+ Dummy für künftige Implementierung (todo).
3339
+ '
3340
+ )
3341
+ ),
3342
+
3343
+ 'fsSliderMinSize' => array(
3344
+ 'prefix' => 'AJAXZOOM',
3345
+ 'category' => 'fullscreen_gallery',
3346
+ 'type' => 'int',
3347
+ 'isJsObject' => false,
3348
+ 'isJsArray' => false,
3349
+ 'display' => 'text',
3350
+ 'height' => null,
3351
+ 'default' => 400,
3352
+ 'options' => null,
3353
+ 'comment' => array(
3354
+ 'EN' => '
3355
+ Minimal size of the player for fullscreen gallery to be shown.
3356
+ ',
3357
+ 'DE' => '
3358
+ Minimale Größe des Players, damit die Vollbild Galerie angezeigt wird.
3359
+ '
3360
+ )
3361
+ ),
3362
+
3363
+ 'fsSliderGalleryFadeInAnm' => array(
3364
+ 'prefix' => 'AJAXZOOM',
3365
+ 'category' => 'fullscreen_gallery',
3366
+ 'type' => 'string',
3367
+ 'isJsObject' => false,
3368
+ 'isJsArray' => false,
3369
+ 'display' => 'select',
3370
+ 'height' => null,
3371
+ 'default' => 'Center',
3372
+ 'options' => array(
3373
+ array('Center', 'Center'),
3374
+ array('Top', 'Top'),
3375
+ array('Right', 'Right'),
3376
+ array('Bottom', 'Bottom'),
3377
+ array('Left', 'Left'),
3378
+ array('StretchVert', 'StretchVert'),
3379
+ array('StretchHorz', 'StretchHorz'),
3380
+ array('SwipeHorz', 'SwipeHorz'),
3381
+ array('SwipeVert', 'SwipeVert'),
3382
+ array('Vert', 'Vert'),
3383
+ array('Horz', 'Horz')
3384
+ ),
3385
+ 'comment' => array(
3386
+ 'EN' => '
3387
+ Switching animation between images in fullscreen mode.
3388
+ Possible values: "Center", "Top", "Right", "Bottom", "Left",
3389
+ "StretchVert", "StretchHorz", "SwipeHorz", "SwipeVert", "Vert", "Horz".
3390
+ ',
3391
+ 'DE' => '
3392
+ Animation beim Umschalten zwischen den Bildern.
3393
+ Mögliche Werte sind: "Center", "Top", "Right", "Bottom", "Left",
3394
+ "StretchVert", "StretchHorz", "SwipeHorz", "SwipeVert", "Vert", "Horz".
3395
+ '
3396
+ )
3397
+ ),
3398
+
3399
+ 'fsSliderNotParent' => array(
3400
+ 'prefix' => 'AJAXZOOM',
3401
+ 'category' => 'fullscreen_gallery',
3402
+ 'type' => 'string',
3403
+ 'isJsObject' => false,
3404
+ 'isJsArray' => false,
3405
+ 'display' => 'text',
3406
+ 'height' => null,
3407
+ 'default' => 'axZm_mouseOverSpinWrapper',
3408
+ 'options' => null,
3409
+ 'comment' => array(
3410
+ 'EN' => '
3411
+ Prevent showing fullscreen gallery when the parent container
3412
+ matches the id or CSS class represented as string in this option value,
3413
+ e.g. "az_mouseOverZoomContainer".
3414
+ For more than one value split them with vertical dash.
3415
+ ',
3416
+ 'DE' => '
3417
+ Verhindert das Anzeigen der Vollbild Galerie, wenn
3418
+ übergeordneter Container den Wert dieser Option als ID oder
3419
+ CSS Klasse entspricht, z.B. "az_mouseOverZoomContainer".
3420
+ Für mehrere Werte können diese mit einem vertikalen Strich
3421
+ in einem String getrennt werden.
3422
+ '
3423
+ )
3424
+ ),
3425
+
3426
+ 'onGallerySwitch' => array(
3427
+ 'prefix' => 'AJAXZOOM',
3428
+ 'category' => 'fullscreen_gallery',
3429
+ 'type' => 'function',
3430
+ 'isJsObject' => false,
3431
+ 'isJsArray' => false,
3432
+ 'display' => 'text',
3433
+ 'height' => null,
3434
+ 'default' => null,
3435
+ 'options' => null,
3436
+ 'comment' => array(
3437
+ 'EN' => '
3438
+ Callback function triggered every time an item is switched.
3439
+ The function receives 4 argumets: index of the item, item information as object,
3440
+ mouseover instance and gallery instance.
3441
+ In AJAX-ZOOM modules avoid writing the actual functions, instead pass a reference,
3442
+ e.g. window.myCustomFunc
3443
+ ',
3444
+ 'DE' => '
3445
+ Callback-Funktion ausgelöst, wenn ein Element umgeschaltet wird.
3446
+ Die Funktion erhält 4 Argumete: Index des Items, Item Information als
3447
+ Objekt, Mouseover Instanz und Galerie Instanz.
3448
+ In AJAX-ZOOM Modulen meiden Sie es die Funktion selbst zu schreiben,
3449
+ stattdessen referenzieren Sie einfach, z.B. window.myCustomFunc
3450
+ '
3451
+ )
3452
+ ),
3453
+
3454
+ // mouseover settings
3455
+ 'position' => array(
3456
+ 'prefix' => 'AJAXZOOM_MOZP',
3457
+ 'category' => 'mouseover',
3458
+ 'important' => true,
3459
+ 'type' => 'string',
3460
+ 'isJsObject' => false,
3461
+ 'isJsArray' => false,
3462
+ 'useful' => true,
3463
+ 'display' => 'select',
3464
+ 'height' => null,
3465
+ 'default' => 'right',
3466
+ 'options' => array(
3467
+ array('inside', 'inside'),
3468
+ array('top', 'top'),
3469
+ array('right', 'right'),
3470
+ array('bottom', 'bottom'),
3471
+ array('left', 'left')
3472
+ ),
3473
+ 'comment' => array(
3474
+ 'EN' => '
3475
+ Position of the flyout zoom window, possible values:
3476
+ "inside", "top", "right", "bottom", "left".
3477
+ ',
3478
+ 'DE' => '
3479
+ Position des mouseover Zoom Fensters,
3480
+ mögliche Werte: "inside", "top", "right", "bottom", "left".
3481
+ '
3482
+ )
3483
+ ),
3484
+
3485
+ 'posAutoInside' => array(
3486
+ 'prefix' => 'AJAXZOOM_MOZP',
3487
+ 'category' => 'mouseover',
3488
+ 'type' => 'int',
3489
+ 'isJsObject' => false,
3490
+ 'isJsArray' => false,
3491
+ 'display' => 'text',
3492
+ 'height' => null,
3493
+ 'default' => 150,
3494
+ 'options' => null,
3495
+ 'comment' => array(
3496
+ 'EN' => '
3497
+ Applies when width (left, right) or height (top, bottom)
3498
+ of zoom window are less than this px value
3499
+ (zoomWidth || zoomHeight are set to auto);
3500
+ if zoomWidth || zoomHeight are fixed,
3501
+ applies when zoom window is out of page border.
3502
+ ',
3503
+ 'DE' => '
3504
+ Automatische Umschaltung von "position" Option auf "inside" wenn
3505
+ Breite oder Höhe des Zoom Fensters diesen Wert unterschreitet und
3506
+ (zoomWidth || zoomHeight werden automatisch gesetzt).
3507
+ Wenn zoomWidth || zoomHeight fixe Angaben sind, dann
3508
+ wird diese Unschaltung angewandt, wenn das Zoom Fenster
3509
+ nicht ganz zu sehen wäre.
3510
+ '
3511
+ )
3512
+ ),
3513
+
3514
+ 'touchScroll' => array(
3515
+ 'prefix' => 'AJAXZOOM_MOZP',
3516
+ 'category' => 'mouseover',
3517
+ 'type' => 'float',
3518
+ 'isJsObject' => false,
3519
+ 'isJsArray' => false,
3520
+ 'display' => 'text',
3521
+ 'height' => null,
3522
+ 'default' => 0.8,
3523
+ 'options' => null,
3524
+ 'comment' => array(
3525
+ 'EN' => '
3526
+ If width of the mouseover zoom container is more than 80% (0.8) of the window width,
3527
+ then for touch devises the inner zoom will be not
3528
+ triggered and the user can scroll down.
3529
+ Click for open AJAX-ZOOM remains.
3530
+ Set this value to 0 if you want to enable the slider for touch devices only.
3531
+ ',
3532
+ 'DE' => '
3533
+ Wenn Preview Container breiter ist, als 80% (0.8) des Browser Fensters,
3534
+ dann wird für touch Devices das inner zoom deaktiviert und der user kann
3535
+ runterscrollen. Klick für AJAX-ZOOM bleibt.
3536
+ Wenn dieser Wert 0 ist, dann wird diese Funktion
3537
+ des Sliders nur für Touch-Geräte Aktiviert.
3538
+ '
3539
+ )
3540
+ ),
3541
+
3542
+ 'noMouseOverZoom' => array(
3543
+ 'prefix' => 'AJAXZOOM_MOZP',
3544
+ 'category' => 'mouseover',
3545
+ 'type' => 'bool',
3546
+ 'isJsObject' => false,
3547
+ 'isJsArray' => false,
3548
+ 'display' => 'switch',
3549
+ 'height' => null,
3550
+ 'default' => false,
3551
+ 'options' => null,
3552
+ 'comment' => array(
3553
+ 'EN' => '
3554
+ Disable mouseover zoom for all devices.
3555
+ ',
3556
+ 'DE' => '
3557
+ Mouseover zoom komplett deaktivieren.
3558
+ Wenn Sie dies nur für touch Devices aktivieren wollen, dann setzen Sie
3559
+ "touchScroll" Option auf 0.
3560
+ '
3561
+ )
3562
+ ),
3563
+
3564
+ 'noMouseOverZoomTouch' => array(
3565
+ 'prefix' => 'AJAXZOOM_MOZP',
3566
+ 'category' => 'mouseover',
3567
+ 'type' => 'bool',
3568
+ 'isJsObject' => false,
3569
+ 'isJsArray' => false,
3570
+ 'display' => 'switch',
3571
+ 'height' => null,
3572
+ 'default' => true,
3573
+ 'options' => null,
3574
+ 'comment' => array(
3575
+ 'EN' => '
3576
+ Enable "noMouseOverZoom" only for touch devices
3577
+ (mouseover zoom works for touch devices too but is not very convenient
3578
+ so this option is enabled on default now).
3579
+ ',
3580
+ 'DE' => '
3581
+ Aktivieren der "noMouseOverZoom" Option nur für Touch-Geräte.
3582
+ (Mouseover-Zoom funktioniert auch für Touch-Geräte,
3583
+ es ist aber nicht sehr bequem, so dass diese Option
3584
+ jetzt standardmäßig aktiviert ist).
3585
+ '
3586
+ )
3587
+ ),
3588
+
3589
+ 'noMouseOverZoomInside' => array(
3590
+ 'prefix' => 'AJAXZOOM_MOZP',
3591
+ 'category' => 'mouseover',
3592
+ 'type' => 'bool',
3593
+ 'isJsObject' => false,
3594
+ 'isJsArray' => false,
3595
+ 'display' => 'switch',
3596
+ 'height' => null,
3597
+ 'default' => false,
3598
+ 'options' => null,
3599
+ 'comment' => array(
3600
+ 'EN' => '
3601
+ Disable mouseover zoom if it is \'inside\' (inner zoom).
3602
+ ',
3603
+ 'DE' => '
3604
+ Mouseover-Zoom deaktivieren, wenn es "inside" ist.
3605
+ '
3606
+ )
3607
+ ),
3608
+
3609
+ 'noMouseOverZoomInsideTouch' => array(
3610
+ 'prefix' => 'AJAXZOOM_MOZP',
3611
+ 'category' => 'mouseover',
3612
+ 'type' => 'bool',
3613
+ 'isJsObject' => false,
3614
+ 'isJsArray' => false,
3615
+ 'display' => 'switch',
3616
+ 'height' => null,
3617
+ 'default' => true,
3618
+ 'options' => null,
3619
+ 'comment' => array(
3620
+ 'EN' => '
3621
+ Disable mouseover zoom if it is inside (inner zoom) and touch event.
3622
+ ',
3623
+ 'DE' => '
3624
+ Mouseover-Zoom deaktivieren,
3625
+ wenn es "inside" ist und es sich um Touch-Geräte handelt.
3626
+ '
3627
+ )
3628
+ ),
3629
+
3630
+ 'mouseOverZoomHybrid' => array(
3631
+ 'prefix' => 'AJAXZOOM_MOZP',
3632
+ 'category' => 'mouseover',
3633
+ 'important' => true,
3634
+ 'type' => 'bool',
3635
+ 'isJsObject' => false,
3636
+ 'isJsArray' => false,
3637
+ 'display' => 'switch',
3638
+ 'height' => null,
3639
+ 'default' => true,
3640
+ 'options' => null,
3641
+ 'comment' => array(
3642
+ 'EN' => '
3643
+ Enable mouseover zoom and slider at the same time for not touch devices.
3644
+ ',
3645
+ 'DE' => '
3646
+ Aktivieren des Mouseover-Zoom und Sliders für Vorschaubilder
3647
+ gleichzeitig für nicht Touch-Geräte.
3648
+ '
3649
+ )
3650
+ ),
3651
+
3652
+ 'slideTouchTime' => array(
3653
+ 'prefix' => 'AJAXZOOM_MOZP',
3654
+ 'category' => 'mouseover',
3655
+ 'type' => 'int',
3656
+ 'isJsObject' => false,
3657
+ 'isJsArray' => false,
3658
+ 'display' => 'text',
3659
+ 'height' => null,
3660
+ 'default' => 200,
3661
+ 'options' => null,
3662
+ 'comment' => array(
3663
+ 'EN' => '
3664
+ Slide time in ms after touch and drag.
3665
+ ',
3666
+ 'DE' => '
3667
+ Slide Zeit in ms nach Berühren und ziehen.
3668
+ '
3669
+ )
3670
+ ),
3671
+
3672
+ 'slideTime' => array(
3673
+ 'prefix' => 'AJAXZOOM_MOZP',
3674
+ 'category' => 'mouseover',
3675
+ 'type' => 'int',
3676
+ 'isJsObject' => false,
3677
+ 'isJsArray' => false,
3678
+ 'display' => 'text',
3679
+ 'height' => null,
3680
+ 'default' => 300,
3681
+ 'options' => null,
3682
+ 'comment' => array(
3683
+ 'EN' => '
3684
+ Slide time after clicked on prev / next buttons.
3685
+ ',
3686
+ 'DE' => '
3687
+ Slide Zeit in ms nach klicken auf prev / next Tasten.
3688
+ '
3689
+ )
3690
+ ),
3691
+
3692
+ 'posInsideArea' => array(
3693
+ 'prefix' => 'AJAXZOOM_MOZP',
3694
+ 'category' => 'mouseover',
3695
+ 'type' => 'float',
3696
+ 'isJsObject' => false,
3697
+ 'isJsArray' => false,
3698
+ 'display' => 'text',
3699
+ 'height' => null,
3700
+ 'default' => 0.2,
3701
+ 'options' => null,
3702
+ 'comment' => array(
3703
+ 'EN' => '
3704
+ When "posAutoInside" is enabled and inner zoom fires or "position"
3705
+ option is set to \'inside\' right away - there is no lens.
3706
+ However you will notice that the reaction to mouse movements occure somewhere
3707
+ in the middle of the image;
3708
+ at the edges mostly nothing happens in similar scripts.
3709
+ With this option you can adjust how far from
3710
+ the edge mouse movements should be captured.
3711
+ The range is between 0 and 0.5;
3712
+ ',
3713
+ 'DE' => '
3714
+ Wenn "posAutoInside" eingeschaltet ist und Inner Zoom eingeschaltet wird,
3715
+ bzw. "position" ist bereits auf \'inside\' eingestellt,
3716
+ dann ist die Linse nicht sichtbar. Je nach Größe des Bildes wird man dann merken,
3717
+ dass nur innerhalb des Zentrums des Bildes das Innere Zoom bewegt wird.
3718
+ Mit dieser Option kann dem entgegengewirkt werden.
3719
+ Der Wertebereich liegt zwischen 0 und 0.5;
3720
+ '
3721
+ )
3722
+ ),
3723
+
3724
+ 'autoFlip' => array(
3725
+ 'prefix' => 'AJAXZOOM_MOZP',
3726
+ 'category' => 'mouseover',
3727
+ 'type' => 'int',
3728
+ 'isJsObject' => false,
3729
+ 'isJsArray' => false,
3730
+ 'display' => 'text',
3731
+ 'height' => null,
3732
+ 'default' => 200,
3733
+ 'options' => null,
3734
+ 'comment' => array(
3735
+ 'EN' => '
3736
+ Flip right to left and bottom to top if less than int px value or false to disable.
3737
+ ',
3738
+ 'DE' => '
3739
+ Automatische Umkehren der Position right - left und bottom - top wenn
3740
+ Breite bzw. Höhe kleiner als dieser Wert sind. Setzen Sie diese Option auf false um
3741
+ sie auszuschalten.
3742
+ '
3743
+ )
3744
+ ),
3745
+
3746
+ 'biggestSpace' => array(
3747
+ 'prefix' => 'AJAXZOOM_MOZP',
3748
+ 'category' => 'mouseover',
3749
+ 'type' => 'bool',
3750
+ 'isJsObject' => false,
3751
+ 'isJsArray' => false,
3752
+ 'display' => 'switch',
3753
+ 'height' => null,
3754
+ 'default' => false,
3755
+ 'options' => null,
3756
+ 'comment' => array(
3757
+ 'EN' => '
3758
+ Overrides position option and instantly chooses the direction,
3759
+ disables autoFlip; plays nicely when zoomWidth and zoomHeight are set to \'auto\'.
3760
+ ',
3761
+ 'DE' => '
3762
+ Wenn diese Option aktiviert ist, dann wird das Zoom Fenster im Browser dort angezeigt,
3763
+ wo am meisten Platz ist. Funktioniert gut, wenn "zoomWidth" und "zoomHeight" auf
3764
+ \'auto\' gesetzt sind.
3765
+ '
3766
+ )
3767
+ ),
3768
+
3769
+ 'zoomFullSpace' => array(
3770
+ 'prefix' => 'AJAXZOOM_MOZP',
3771
+ 'category' => 'mouseover',
3772
+ 'type' => 'bool',
3773
+ 'isJsObject' => false,
3774
+ 'isJsArray' => false,
3775
+ 'display' => 'switch',
3776
+ 'height' => null,
3777
+ 'default' => false,
3778
+ 'options' => null,
3779
+ 'comment' => array(
3780
+ 'EN' => '
3781
+ Uses full screen height (does not align to the map / disables adjustY)
3782
+ if position is right or left || uses full screen width
3783
+ (does not align to the map / disables adjustX)
3784
+ if position is top or bottom.
3785
+ ',
3786
+ 'DE' => '
3787
+ Durch die Aktivierung dieser Option wird die volle Breite im Browser ausgenutzt,
3788
+ wenn "position" right oder left ist. Wenn "position" top oder bottom ist,
3789
+ dann wird volle Höhe ausgenutzt.
3790
+ '
3791
+ )
3792
+ ),
3793
+
3794
+ 'zoomWidth' => array(
3795
+ 'prefix' => 'AJAXZOOM_MOZP',
3796
+ 'category' => 'mouseover',
3797
+ 'type' => 'int, string',
3798
+ 'isJsObject' => false,
3799
+ 'isJsArray' => false,
3800
+ 'important' => true,
3801
+ 'display' => 'text',
3802
+ 'height' => null,
3803
+ 'default' => 530,
3804
+ 'options' => null,
3805
+ 'comment' => array(
3806
+ 'EN' => '
3807
+ Width of the zoom window e.g. 540 or \'auto\' or
3808
+ jQuery selector|correction value, e.g. \'#refWidthTest|+20\';
3809
+ so if you want to have a width of the zoom window same as
3810
+ for example a responsive container
3811
+ to the right (so it is fully covered) and max possible height,
3812
+ then define the id of this container to the right,
3813
+ e.g. \'myArticleData\', set "zoomWidth"
3814
+ to \'#myArticleData|+10\' and "zoomHeight" to \'auto\'.
3815
+ If you have a three column design and want to cover both containers to the right,
3816
+ then just define both containers in the jQuery selector,
3817
+ e.g. \'.pb-center-column,.pb-right-column|+20\';
3818
+ the margin between the containers is not taken into account
3819
+ but you can adjust the result with the second value after vertical bar.
3820
+ ',
3821
+ 'DE' => '
3822
+ Breite des Zoom Fensters, z.B. 540 oder \'auto\'.
3823
+ Man kann aber auch einen jQuery Selector selector|correction als Referenz angeben mit
3824
+ zusätzlichen Korrekturwert, z.B. \'#refWidthTest|+20\';
3825
+ wenn Sie also die Breite gleich einem anderen responsiven
3826
+ Container rechts von der Voransicht einstellen wollen,
3827
+ so dass es voll überdeckt wird und möglichst maximale Höhe
3828
+ erreichen wollen, dann definieren Sie am besten eine ID für diesen Container rechts,
3829
+ z.B. \'myArticleData\', setzen dann "zoomWidth" auf \'#myArticleData|+10\'
3830
+ und "zoomHeight" auf \'auto\'. Sie können aber auch mehrere Elemente überdecken,
3831
+ z.B. \'.pb-center-column,.pb-right-column|+20\'.
3832
+ Die Abstände zwischen den beiden Containern werden nicht mitberechnet,
3833
+ können aber meist über Korrekturwert ausgeglichen werden.
3834
+ '
3835
+ )
3836
+ ),
3837
+
3838
+ 'zoomHeight' => array(
3839
+ 'prefix' => 'AJAXZOOM_MOZP',
3840
+ 'category' => 'mouseover',
3841
+ 'type' => 'int, string',
3842
+ 'isJsObject' => false,
3843
+ 'isJsArray' => false,
3844
+ 'important' => true,
3845
+ 'display' => 'text',
3846
+ 'height' => null,
3847
+ 'default' => 450,
3848
+ 'options' => null,
3849
+ 'comment' => array(
3850
+ 'EN' => '
3851
+ Height of the zoom window e.g. 375, or \'auto\' or jQuery selector|correction value,
3852
+ e.g. \'#refWidthTest|+20\'; if your selector matches more than one element,
3853
+ e.g. \'.pb-center-column,.pb-right-column|+20\', then
3854
+ the highest value will be chosen. This is different from
3855
+ the multiple selector in "zoomWidth", where the values are added.
3856
+ ',
3857
+ 'DE' => '
3858
+ Höhe des Zoom Fensters, z.B. 375, \'auto\' oder jQuery selector|correction als Referenz
3859
+ mit zusätzlichen Korrekturwert, z.B. \'#refWidthTest|+20\'.
3860
+ Wenn der Selector mehr als ein Element umfasst, dann wird anderes als bei "zoomWidth"
3861
+ der höchste Höhenwert genommen.
3862
+ '
3863
+ )
3864
+ ),
3865
+
3866
+ 'autoMargin' => array(
3867
+ 'prefix' => 'AJAXZOOM_MOZP',
3868
+ 'category' => 'mouseover',
3869
+ 'type' => 'int',
3870
+ 'isJsObject' => false,
3871
+ 'isJsArray' => false,
3872
+ 'display' => 'text',
3873
+ 'height' => null,
3874
+ 'default' => 15,
3875
+ 'options' => null,
3876
+ 'comment' => array(
3877
+ 'EN' => '
3878
+ If zoomWidth or zoomHeight are set to \'auto\', the margin to the edge of the screen.
3879
+ ',
3880
+ 'DE' => '
3881
+ Wenn "zoomWidth" oder "zoomHeight" auf \'auto\' gesetzt sind,
3882
+ ist dieser Wert der automatische Abstand vom Rand des Browser Fensters.
3883
+ '
3884
+ )
3885
+ ),
3886
+
3887
+ 'adjustX' => array(
3888
+ 'prefix' => 'AJAXZOOM_MOZP',
3889
+ 'category' => 'mouseover',
3890
+ 'type' => 'int',
3891
+ 'isJsObject' => false,
3892
+ 'isJsArray' => false,
3893
+ 'display' => 'text',
3894
+ 'height' => null,
3895
+ 'default' => 15,
3896
+ 'options' => null,
3897
+ 'comment' => array(
3898
+ 'EN' => '
3899
+ Horizontal margin of the zoom window.
3900
+ ',
3901
+ 'DE' => '
3902
+ Horizontaler Versatz zwischen Voransicht und Zoom Fenster.
3903
+ '
3904
+ )
3905
+ ),
3906
+
3907
+ 'adjustY' => array(
3908
+ 'prefix' => 'AJAXZOOM_MOZP',
3909
+ 'category' => 'mouseover',
3910
+ 'type' => 'int',
3911
+ 'isJsObject' => false,
3912
+ 'isJsArray' => false,
3913
+ 'display' => 'text',
3914
+ 'height' => null,
3915
+ 'default' => -1,
3916
+ 'options' => null,
3917
+ 'comment' => array(
3918
+ 'EN' => '
3919
+ Vertical margin of the zoom window.
3920
+ ',
3921
+ 'DE' => '
3922
+ Vertikaler Versatz zwischen Voransicht und Zoom Fenster.
3923
+ '
3924
+ )
3925
+ ),
3926
+
3927
+ 'lensOpacity' => array(
3928
+ 'prefix' => 'AJAXZOOM_MOZP',
3929
+ 'category' => 'mouseover',
3930
+ 'type' => 'float',
3931
+ 'isJsObject' => false,
3932
+ 'isJsArray' => false,
3933
+ 'display' => 'text',
3934
+ 'height' => null,
3935
+ 'default' => 1.0,
3936
+ 'options' => null,
3937
+ 'comment' => array(
3938
+ 'EN' => '
3939
+ Opacity of the selector lens.
3940
+ ',
3941
+ 'DE' => '
3942
+ Durchsichtigkeit der Zoom Linse.
3943
+ '
3944
+ )
3945
+ ),
3946
+
3947
+ 'lensStyle' => array(
3948
+ 'prefix' => 'AJAXZOOM_MOZP',
3949
+ 'category' => 'mouseover',
3950
+ 'type' => 'object',
3951
+ 'isJsObject' => false,
3952
+ 'isJsArray' => false,
3953
+ 'display' => 'textarea',
3954
+ 'height' => 50,
3955
+ 'default' => '{}',
3956
+ 'options' => null,
3957
+ 'comment' => array(
3958
+ 'EN' => '
3959
+ Quickly override CSS of the lens.
3960
+ ',
3961
+ 'DE' => '
3962
+ Hier kann man schnell Inline CSS reinschreiben.
3963
+ '
3964
+ )
3965
+ ),
3966
+
3967
+ 'lensClass' => array(
3968
+ 'prefix' => 'AJAXZOOM_MOZP',
3969
+ 'category' => 'mouseover',
3970
+ 'type' => 'string',
3971
+ 'isJsObject' => false,
3972
+ 'isJsArray' => false,
3973
+ 'display' => 'text',
3974
+ 'height' => null,
3975
+ 'default' => '',
3976
+ 'options' => null,
3977
+ 'comment' => array(
3978
+ 'EN' => '
3979
+ Define CSS class for the lens.
3980
+ ',
3981
+ 'DE' => '
3982
+ Name der CSS Klasse für die Zoom Linse.
3983
+ '
3984
+ )
3985
+ ),
3986
+
3987
+ 'lensMessage' => array(
3988
+ 'prefix' => 'AJAXZOOM_MOZP',
3989
+ 'category' => 'mouseover',
3990
+ 'type' => 'object, string',
3991
+ 'isJsObject' => true,
3992
+ 'isJsArray' => false,
3993
+ 'display' => 'textarea',
3994
+ 'height' => 100,
3995
+ 'default' => '{
3996
+ "en" : "Full screen",
3997
+ "de": "Vollbild",
3998
+ "fr": "Plein écran",
3999
+ "es": "Pantalla completa"
4000
+ }',
4001
+ 'options' => null,
4002
+ 'comment' => array(
4003
+ 'EN' => '
4004
+ Text string on the lens.
4005
+ For more than one language define a js object,
4006
+ e.g. {"en": "english text", "de": "german text"}
4007
+ ',
4008
+ 'DE' => '
4009
+ Text in der Linse.
4010
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
4011
+ z.B. {"en": "english text", "de": "german text"}
4012
+ '
4013
+ )
4014
+ ),
4015
+
4016
+ 'zoomAreaBorderWidth' => array(
4017
+ 'prefix' => 'AJAXZOOM_MOZP',
4018
+ 'category' => 'mouseover',
4019
+ 'type' => 'int',
4020
+ 'isJsObject' => false,
4021
+ 'isJsArray' => false,
4022
+ 'display' => 'text',
4023
+ 'height' => null,
4024
+ 'default' => 1,
4025
+ 'options' => null,
4026
+ 'comment' => array(
4027
+ 'EN' => '
4028
+ Border thickness of the zoom window.
4029
+ ',
4030
+ 'DE' => '
4031
+ Breite des Randes (Border) für das Zoom Fenster.
4032
+ '
4033
+ )
4034
+ ),
4035
+
4036
+ 'galleryFade' => array(
4037
+ 'prefix' => 'AJAXZOOM_MOZP',
4038
+ 'category' => 'mouseover',
4039
+ 'type' => 'int, bool',
4040
+ 'isJsObject' => false,
4041
+ 'isJsArray' => false,
4042
+ 'display' => 'text',
4043
+ 'height' => null,
4044
+ 'default' => 300,
4045
+ 'options' => null,
4046
+ 'comment' => array(
4047
+ 'EN' => '
4048
+ Speed of inner fade or false.
4049
+ ',
4050
+ 'DE' => '
4051
+ Die Geschwindigkeit des Blendvorganges in ms
4052
+ beim Wechsel zwischen den Bildern oder false.
4053
+ '
4054
+ )
4055
+ ),
4056
+
4057
+ 'shutterSpeed' => array(
4058
+ 'prefix' => 'AJAXZOOM_MOZP',
4059
+ 'category' => 'mouseover',
4060
+ 'type' => 'int, bool',
4061
+ 'isJsObject' => false,
4062
+ 'isJsArray' => false,
4063
+ 'display' => 'text',
4064
+ 'height' => null,
4065
+ 'default' => 150,
4066
+ 'options' => null,
4067
+ 'comment' => array(
4068
+ 'EN' => '
4069
+ Speed of shutter fadein or false; applies only
4070
+ if image proportions are different from container.
4071
+ ',
4072
+ 'DE' => '
4073
+ Die Geschwindigkeit der Anpassung von Proportionen
4074
+ während des Überblendvorgangs in ms oder false.
4075
+ '
4076
+ )
4077
+ ),
4078
+
4079
+ 'showFade' => array(
4080
+ 'prefix' => 'AJAXZOOM_MOZP',
4081
+ 'category' => 'mouseover',
4082
+ 'type' => 'int',
4083
+ 'isJsObject' => false,
4084
+ 'isJsArray' => false,
4085
+ 'display' => 'text',
4086
+ 'height' => null,
4087
+ 'default' => 300,
4088
+ 'options' => null,
4089
+ 'comment' => array(
4090
+ 'EN' => '
4091
+ Speed of fade in for mouse over.
4092
+ ',
4093
+ 'DE' => '
4094
+ Geschwindigkeit des Einblendens von Zoom Fenster.
4095
+ '
4096
+ )
4097
+ ),
4098
+
4099
+ 'hideFade' => array(
4100
+ 'prefix' => 'AJAXZOOM_MOZP',
4101
+ 'category' => 'mouseover',
4102
+ 'type' => 'int',
4103
+ 'isJsObject' => false,
4104
+ 'isJsArray' => false,
4105
+ 'display' => 'text',
4106
+ 'height' => null,
4107
+ 'default' => 300,
4108
+ 'options' => null,
4109
+ 'comment' => array(
4110
+ 'EN' => '
4111
+ Speed of fade out for mouse over.
4112
+ ',
4113
+ 'DE' => '
4114
+ Geschwindigkeit des Ausblendens von Zoom Fenster.
4115
+ '
4116
+ )
4117
+ ),
4118
+
4119
+ 'flyOutSpeed' => array(
4120
+ 'prefix' => 'AJAXZOOM_MOZP',
4121
+ 'category' => 'mouseover',
4122
+ 'type' => 'int, bool',
4123
+ 'isJsObject' => false,
4124
+ 'isJsArray' => false,
4125
+ 'display' => 'text',
4126
+ 'height' => null,
4127
+ 'default' => false,
4128
+ 'options' => null,
4129
+ 'comment' => array(
4130
+ 'EN' => '
4131
+ Speed for flyout or false to disable.
4132
+ ',
4133
+ 'DE' => '
4134
+ Geschwindigkeit des "Ausfliegens" des Zoom Fensters in ms
4135
+ oder false zum Deaktivieren.
4136
+ '
4137
+ )
4138
+ ),
4139
+
4140
+ 'flyOutTransition' => array(
4141
+ 'prefix' => 'AJAXZOOM_MOZP',
4142
+ 'category' => 'mouseover',
4143
+ 'type' => 'string',
4144
+ 'isJsObject' => false,
4145
+ 'isJsArray' => false,
4146
+ 'display' => 'text',
4147
+ 'height' => null,
4148
+ 'default' => 'linear',
4149
+ 'options' => null,
4150
+ 'comment' => array(
4151
+ 'EN' => '
4152
+ Transition of the flyout.
4153
+ ',
4154
+ 'DE' => '
4155
+ Typ der Transition für das "Ausfliegen" des Zoom Fensters.
4156
+ '
4157
+ )
4158
+ ),
4159
+
4160
+ 'flyOutOpacity' => array(
4161
+ 'prefix' => 'AJAXZOOM_MOZP',
4162
+ 'category' => 'mouseover',
4163
+ 'type' => 'float',
4164
+ 'isJsObject' => false,
4165
+ 'isJsArray' => false,
4166
+ 'display' => 'text',
4167
+ 'height' => null,
4168
+ 'default' => 0.6,
4169
+ 'options' => null,
4170
+ 'comment' => array(
4171
+ 'EN' => '
4172
+ Initial opacity for flyout.
4173
+ ',
4174
+ 'DE' => '
4175
+ Anfängliche Durchsichtigkeit des Zoom Fensters beim "Ausfliegen".
4176
+ '
4177
+ )
4178
+ ),
4179
+
4180
+ 'flyBackSpeed' => array(
4181
+ 'prefix' => 'AJAXZOOM_MOZP',
4182
+ 'category' => 'mouseover',
4183
+ 'type' => 'int, bool',
4184
+ 'isJsObject' => false,
4185
+ 'isJsArray' => false,
4186
+ 'display' => 'text',
4187
+ 'height' => null,
4188
+ 'default' => false,
4189
+ 'options' => null,
4190
+ 'comment' => array(
4191
+ 'EN' => '
4192
+ Speed for fly back or false to disable.
4193
+ ',
4194
+ 'DE' => '
4195
+ Geschwindigkeit des "Zurückfliegens" des Zoom Fensters in ms
4196
+ oder false zum Deaktivieren.
4197
+ '
4198
+ )
4199
+ ),
4200
+
4201
+ 'flyBackTransition' => array(
4202
+ 'prefix' => 'AJAXZOOM_MOZP',
4203
+ 'category' => 'mouseover',
4204
+ 'type' => 'string',
4205
+ 'isJsObject' => false,
4206
+ 'isJsArray' => false,
4207
+ 'display' => 'text',
4208
+ 'height' => null,
4209
+ 'default' => 'linear',
4210
+ 'options' => null,
4211
+ 'comment' => array(
4212
+ 'EN' => '
4213
+ Transition type of the fly back.
4214
+ ',
4215
+ 'DE' => '
4216
+ Typ der Transition für das "Zurückfliegen" des Zoom Fensters.
4217
+ '
4218
+ )
4219
+ ),
4220
+
4221
+ 'flyBackOpacity' => array(
4222
+ 'prefix' => 'AJAXZOOM_MOZP',
4223
+ 'category' => 'mouseover',
4224
+ 'type' => 'float',
4225
+ 'isJsObject' => false,
4226
+ 'isJsArray' => false,
4227
+ 'display' => 'text',
4228
+ 'height' => null,
4229
+ 'default' => 0.2,
4230
+ 'options' => null,
4231
+ 'comment' => array(
4232
+ 'EN' => '
4233
+ Final opacity of fly back.
4234
+ ',
4235
+ 'DE' => '
4236
+ Finale Durchsichtigkeit nach dem "Zurückfliegen".
4237
+ '
4238
+ )
4239
+ ),
4240
+
4241
+ 'autoScroll' => array(
4242
+ 'prefix' => 'AJAXZOOM_MOZP',
4243
+ 'category' => 'mouseover',
4244
+ 'type' => 'bool',
4245
+ 'isJsObject' => false,
4246
+ 'isJsArray' => false,
4247
+ 'display' => 'switch',
4248
+ 'height' => null,
4249
+ 'default' => false,
4250
+ 'options' => null,
4251
+ 'comment' => array(
4252
+ 'EN' => '
4253
+ Scroll page when clicked on the thumb and the mouse over preview image
4254
+ is not fully visible.
4255
+ ',
4256
+ 'DE' => '
4257
+ Wenn auf die Galerie geklickt wird muss die Voransicht nicht ganz sichtbar sein,
4258
+ weil die Seite zu weit gescrollt wurde.
4259
+ Bei aktivieren dieser Option wird automatisch dorthin gescrollt,
4260
+ wo die Voransicht gänzlich sichtbar ist.
4261
+ '
4262
+ )
4263
+ ),
4264
+
4265
+ 'smoothMove' => array(
4266
+ 'prefix' => 'AJAXZOOM_MOZP',
4267
+ 'category' => 'mouseover',
4268
+ 'type' => 'int',
4269
+ 'isJsObject' => false,
4270
+ 'isJsArray' => false,
4271
+ 'useful' => true,
4272
+ 'display' => 'text',
4273
+ 'height' => null,
4274
+ 'default' => 6,
4275
+ 'options' => null,
4276
+ 'comment' => array(
4277
+ 'EN' => '
4278
+ Integer bigger than 1 indicates smoother movements. Set 0 to disable.
4279
+ ',
4280
+ 'DE' => '
4281
+ Geschmeidigkeit der Transition im Zoom Fenster.
4282
+ Zahl größer als 1 bedeutet mehr Geschmeidigkeit.
4283
+ Beim 0 wird die Geschmeidigkeit abgeschaltet.
4284
+ '
4285
+ )
4286
+ ),
4287
+
4288
+ 'tint' => array(
4289
+ 'prefix' => 'AJAXZOOM_MOZP',
4290
+ 'category' => 'mouseover',
4291
+ 'type' => 'string, bool',
4292
+ 'isJsObject' => false,
4293
+ 'isJsArray' => false,
4294
+ 'display' => 'text',
4295
+ 'height' => null,
4296
+ 'default' => false,
4297
+ 'options' => null,
4298
+ 'comment' => array(
4299
+ 'EN' => '
4300
+ Color value around the lens or false.
4301
+ ',
4302
+ 'DE' => '
4303
+ Farbwert um die Linse herum oder false zum Deaktivieren.
4304
+ '
4305
+ )
4306
+ ),
4307
+
4308
+ 'tintOpacity' => array(
4309
+ 'prefix' => 'AJAXZOOM_MOZP',
4310
+ 'category' => 'mouseover',
4311
+ 'type' => 'float',
4312
+ 'isJsObject' => false,
4313
+ 'isJsArray' => false,
4314
+ 'display' => 'text',
4315
+ 'height' => null,
4316
+ 'default' => 0.3,
4317
+ 'options' => null,
4318
+ 'comment' => array(
4319
+ 'EN' => '
4320
+ Opacity of the area around the lens when "tint" option is set to some color value.
4321
+ ',
4322
+ 'DE' => '
4323
+ Durchsichtigkeit der Fläche um die Linse herum, wenn
4324
+ "tint" Option einen Wert hat.
4325
+ '
4326
+ )
4327
+ ),
4328
+
4329
+ 'tintFilter' => array(
4330
+ 'prefix' => 'AJAXZOOM_MOZP',
4331
+ 'category' => 'mouseover',
4332
+ 'type' => 'string, bool',
4333
+ 'isJsObject' => false,
4334
+ 'isJsArray' => false,
4335
+ 'display' => 'text',
4336
+ 'height' => null,
4337
+ 'default' => false,
4338
+ 'options' => null,
4339
+ 'comment' => array(
4340
+ 'EN' => '
4341
+ Apply filter to the image,
4342
+ e.g. "blur", "grayscale", "sepia", "lighten", "darken", "invert", "saturate";
4343
+ see also .axZm_mouseOverEffect>img CSS.
4344
+ ',
4345
+ 'DE' => '
4346
+ Man kann auch einen CSS Filter für die Fläche um die Linse herum anwenden.
4347
+ z.B. "blur", "grayscale", "sepia", "lighten", "darken", "invert", "saturate";
4348
+ siehe auch .axZm_mouseOverEffect>img CSS.
4349
+ '
4350
+ )
4351
+ ),
4352
+
4353
+ 'tintFilterBack' => array(
4354
+ 'prefix' => 'AJAXZOOM_MOZP',
4355
+ 'category' => 'mouseover',
4356
+ 'type' => 'string',
4357
+ 'isJsObject' => false,
4358
+ 'isJsArray' => false,
4359
+ 'display' => 'text',
4360
+ 'height' => null,
4361
+ 'default' => 'none',
4362
+ 'options' => null,
4363
+ 'comment' => array(
4364
+ 'EN' => '
4365
+ Background-color if some "tintFilter" is enabled, e.g. #FFF
4366
+ ',
4367
+ 'DE' => '
4368
+ Background-color wenn ein "tintFilter" eiingeschaltet ist, z.B. #FFF
4369
+ '
4370
+ )
4371
+ ),
4372
+
4373
+ 'tintLensBack' => array(
4374
+ 'prefix' => 'AJAXZOOM_MOZP',
4375
+ 'category' => 'mouseover',
4376
+ 'type' => 'bool',
4377
+ 'isJsObject' => false,
4378
+ 'isJsArray' => false,
4379
+ 'display' => 'switch',
4380
+ 'height' => null,
4381
+ 'default' => true,
4382
+ 'options' => null,
4383
+ 'comment' => array(
4384
+ 'EN' => '
4385
+ Show background image in the lens.
4386
+ ',
4387
+ 'DE' => '
4388
+ Hintergrundbild in der Linse anzeigen.
4389
+ '
4390
+ )
4391
+ ),
4392
+
4393
+ 'showTitle' => array(
4394
+ 'prefix' => 'AJAXZOOM_MOZP',
4395
+ 'category' => 'mouseover',
4396
+ 'type' => 'bool',
4397
+ 'isJsObject' => false,
4398
+ 'isJsArray' => false,
4399
+ 'display' => 'switch',
4400
+ 'height' => null,
4401
+ 'default' => false,
4402
+ 'options' => null,
4403
+ 'comment' => array(
4404
+ 'EN' => '
4405
+ Enable / disable title on zoom window
4406
+ ',
4407
+ 'DE' => '
4408
+ Titel im Zoom Fenster anzeigen.
4409
+ '
4410
+ )
4411
+ ),
4412
+
4413
+ 'titlePosition' => array(
4414
+ 'prefix' => 'AJAXZOOM_MOZP',
4415
+ 'category' => 'mouseover',
4416
+ 'type' => 'string',
4417
+ 'isJsObject' => false,
4418
+ 'isJsArray' => false,
4419
+ 'display' => 'select',
4420
+ 'height' => null,
4421
+ 'default' => 'top',
4422
+ 'options' => array(
4423
+ array('top', 'top'),
4424
+ array('bottom', 'bottom'),
4425
+ array('above', 'above')
4426
+ ),
4427
+ 'comment' => array(
4428
+ 'EN' => '
4429
+ Position of the title, possible values are: \'top\', \'bottom\' or \'above\'.
4430
+ ',
4431
+ 'DE' => '
4432
+ Position des Titels, mögliche Werte sind \'top\', \'bottom\' (im Zoom Fenster)
4433
+ oder \'above\'.
4434
+ '
4435
+ )
4436
+ ),
4437
+
4438
+ 'titleParentContainer' => array(
4439
+ 'prefix' => 'AJAXZOOM_MOZP',
4440
+ 'category' => 'mouseover',
4441
+ 'type' => 'string',
4442
+ 'isJsObject' => false,
4443
+ 'isJsArray' => false,
4444
+ 'display' => 'text',
4445
+ 'height' => null,
4446
+ 'default' => '',
4447
+ 'options' => null,
4448
+ 'comment' => array(
4449
+ 'EN' => '
4450
+ jQuery selector, e.g. #abc_title,
4451
+ as parent container for title other than inside the lense,
4452
+ can be anywhere.
4453
+ ',
4454
+ 'DE' => '
4455
+ jQuery selector, z.B. #abc_title, als Übergeordneten Container für den Titel / Text,
4456
+ welches sich nicht innerhalb des zoom Fensters befindet.
4457
+ '
4458
+ )
4459
+ ),
4460
+
4461
+ 'titlePermanent' => array(
4462
+ 'prefix' => 'AJAXZOOM_MOZP',
4463
+ 'category' => 'mouseover',
4464
+ 'type' => 'bool',
4465
+ 'isJsObject' => false,
4466
+ 'isJsArray' => false,
4467
+ 'display' => 'switch',
4468
+ 'height' => null,
4469
+ 'default' => false,
4470
+ 'options' => null,
4471
+ 'comment' => array(
4472
+ 'EN' => '
4473
+ When "titleParentContainer" is defined, title (text) will be set after loading /
4474
+ switch of the image.
4475
+ ',
4476
+ 'DE' => '
4477
+ Wenn "titleParentContainer" definiert ist, wird nach dem Laden / Umschalten
4478
+ des Bildes der Titel (Text) sofort gesetzt.
4479
+ '
4480
+ )
4481
+ ),
4482
+
4483
+ 'cursorPositionX' => array(
4484
+ 'prefix' => 'AJAXZOOM_MOZP',
4485
+ 'category' => 'mouseover',
4486
+ 'type' => 'float',
4487
+ 'isJsObject' => false,
4488
+ 'isJsArray' => false,
4489
+ 'display' => 'text',
4490
+ 'height' => null,
4491
+ 'default' => 0.5,
4492
+ 'options' => null,
4493
+ 'comment' => array(
4494
+ 'EN' => '
4495
+ Cursor over lens horizontal offset, 0.5 is middle
4496
+ ',
4497
+ 'DE' => '
4498
+ Horizontaler Versatz des Maus Zeigers in der Linse. 0.5 ist Mitte.
4499
+ '
4500
+ )
4501
+ ),
4502
+
4503
+ 'cursorPositionY' => array(
4504
+ 'prefix' => 'AJAXZOOM_MOZP',
4505
+ 'category' => 'mouseover',
4506
+ 'type' => 'float',
4507
+ 'isJsObject' => false,
4508
+ 'isJsArray' => false,
4509
+ 'display' => 'text',
4510
+ 'height' => null,
4511
+ 'default' => 0.55,
4512
+ 'options' => null,
4513
+ 'comment' => array(
4514
+ 'EN' => '
4515
+ Cursor over lens vertical offset, 0.5 is middle.
4516
+ ',
4517
+ 'DE' => '
4518
+ Vertikaler Versatz des Maus Zeigers in der Linse. 0.5 ist Mitte.
4519
+ '
4520
+ )
4521
+ ),
4522
+
4523
+ 'loading' => array(
4524
+ 'prefix' => 'AJAXZOOM_MOZP',
4525
+ 'category' => 'mouseover',
4526
+ 'type' => 'bool',
4527
+ 'isJsObject' => false,
4528
+ 'isJsArray' => false,
4529
+ 'display' => 'switch',
4530
+ 'height' => null,
4531
+ 'default' => true,
4532
+ 'options' => null,
4533
+ 'comment' => array(
4534
+ 'EN' => '
4535
+ Display loading information, CSS class: .mouseOverLoading;
4536
+ See also "spinner" option.
4537
+ ',
4538
+ 'DE' => '
4539
+ Zeige "loading" Information, CSS .mouseOverLoading;
4540
+ Siehe auch "spinner" option.
4541
+ '
4542
+ )
4543
+ ),
4544
+
4545
+ 'loadingMessage' => array(
4546
+ 'prefix' => 'AJAXZOOM_MOZP',
4547
+ 'category' => 'mouseover',
4548
+ 'type' => 'object, string',
4549
+ 'isJsObject' => true,
4550
+ 'isJsArray' => false,
4551
+ 'display' => 'textarea',
4552
+ 'height' => 100,
4553
+ 'default' => '{
4554
+ "en": "Loading...",
4555
+ "de": "Loading...",
4556
+ "fr": "Loading...",
4557
+ "es": "Loading..."
4558
+ }',
4559
+ 'options' => null,
4560
+ 'comment' => array(
4561
+ 'EN' => '
4562
+ Loading message, not needed, can be just the "spinner" - see below.
4563
+ ',
4564
+ 'DE' => '
4565
+ Loading Nachricht, nicht unbedingt notwendig, kann auch nur der "spinner" sein.
4566
+ '
4567
+ )
4568
+ ),
4569
+
4570
+ 'zoomHintEnable' => array(
4571
+ 'prefix' => 'AJAXZOOM_MOZP',
4572
+ 'category' => 'mouseover',
4573
+ 'type' => 'bool',
4574
+ 'isJsObject' => false,
4575
+ 'isJsArray' => false,
4576
+ 'display' => 'switch',
4577
+ 'height' => null,
4578
+ 'default' => true,
4579
+ 'options' => null,
4580
+ 'comment' => array(
4581
+ 'EN' => '
4582
+ Enable zoom icon which disappears on mouse hover;
4583
+ CSS class: .axZm_mouseOverZoomHint;
4584
+ if you want to change the position or the icon simply modify the CSS class;
4585
+ ',
4586
+ 'DE' => '
4587
+ Einen Icon als Indikator für Zoom Anzeigen. Dieser verschwindet bei mouseover.
4588
+ CSS Klasse: .axZm_mouseOverZoomHint;
4589
+ Wenn Sie eine andere Position wünschen, dann solltet Sie die CSS Klasse überschreiben.
4590
+ '
4591
+ )
4592
+ ),
4593
+
4594
+ 'zoomHintText' => array(
4595
+ 'prefix' => 'AJAXZOOM_MOZP',
4596
+ 'category' => 'mouseover',
4597
+ 'type' => 'object, string',
4598
+ 'isJsObject' => true,
4599
+ 'isJsArray' => false,
4600
+ 'display' => 'textarea',
4601
+ 'height' => 100,
4602
+ 'default' => '{
4603
+ "en" : "Zoom",
4604
+ "de" : "Zoom",
4605
+ "fr" : "Zoom",
4606
+ "es" : "Zoom"
4607
+ }',
4608
+ 'options' => null,
4609
+ 'comment' => array(
4610
+ 'EN' => '
4611
+ Text which will be appended next to the icon enabled by "zoomHintEnable".
4612
+ For more than one language define a js object,
4613
+ e.g. {"en": "english text", "de": "german text"}
4614
+ ',
4615
+ 'DE' => '
4616
+ Text neben dem Icon wenn "zoomHintEnable" Option eingeschaltet ist.
4617
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
4618
+ z.B. {"en": "english text", "de": "german text"}
4619
+ '
4620
+ )
4621
+ ),
4622
+
4623
+ 'zoomMsgHover' => array(
4624
+ 'prefix' => 'AJAXZOOM_MOZP',
4625
+ 'category' => 'mouseover',
4626
+ 'type' => 'object, string',
4627
+ 'isJsObject' => false,
4628
+ 'isJsArray' => false,
4629
+ 'display' => 'textarea',
4630
+ 'height' => 100,
4631
+ 'default' => '{
4632
+ "en" : "Roll over the image to zoom in",
4633
+ "de" : "Für größere Ansicht mit der Maus über das Bild ziehen",
4634
+ "fr" : "Survolez l\'image pour zoomer",
4635
+ "es" : "Pase el cursor sbore la imagen para hacer zoom con la rueda del ratón"
4636
+ }',
4637
+ 'options' => null,
4638
+ 'comment' => array(
4639
+ 'EN' => '
4640
+ Message which can appear under the mouse over zoom, CSS class: .axZm_mouseOverZoomMsg;
4641
+ For more than one language define a js object,
4642
+ e.g. {"en": "english text", "de": "german text"}
4643
+ ',
4644
+ 'DE' => '
4645
+ Textnachricht unter der Voransicht. CSS Klasse: .axZm_mouseOverZoomMsg;
4646
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
4647
+ z.B. {"en": "english text", "de": "german text"}
4648
+ '
4649
+ )
4650
+ ),
4651
+
4652
+ 'zoomMsgHoverTouch' => array(
4653
+ 'prefix' => 'AJAXZOOM_MOZP',
4654
+ 'category' => 'mouseover',
4655
+ 'type' => 'object, string',
4656
+ 'isJsObject' => false,
4657
+ 'isJsArray' => false,
4658
+ 'display' => 'textarea',
4659
+ 'height' => 100,
4660
+ 'default' => '{
4661
+ "en" : "Tap to open expanded view",
4662
+ "de" : "Klicken Sie auf das Bild, um erweiterte Ansicht zu öffnen",
4663
+ "fr" : "Cliquez sur l\'image pour ouvrir la vue élargie",
4664
+ "es" : "Haga clic para ampliar la imagen"
4665
+ }',
4666
+ 'options' => null,
4667
+ 'comment' => array(
4668
+ 'EN' => '
4669
+ Message which can appear under the mouse over zoom for touch devices,
4670
+ CSS class: .axZm_mouseOverZoomMsg;
4671
+ For more than one language define a js object,
4672
+ e.g. {"en": "english text", "de": "german text"}
4673
+ ',
4674
+ 'DE' => '
4675
+ Textnachricht unter der Voransicht für Touch Geräte. CSS Klasse: .axZm_mouseOverZoomMsg;
4676
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
4677
+ z.B. {"en": "english text", "de": "german text"}
4678
+ '
4679
+ )
4680
+ ),
4681
+
4682
+ 'zoomMsgClick' => array(
4683
+ 'prefix' => 'AJAXZOOM_MOZP',
4684
+ 'category' => 'mouseover',
4685
+ 'type' => 'object, string',
4686
+ 'isJsObject' => false,
4687
+ 'isJsArray' => false,
4688
+ 'display' => 'textarea',
4689
+ 'height' => null,
4690
+ 'default' => '{
4691
+ "en" : "Click to open expanded view",
4692
+ "de" : "Klicken Sie auf das Bild, um erweiterte Ansicht zu öffnen",
4693
+ "fr" : "Cliquez sur l\'image pour ouvrir la vue élargie",
4694
+ "es" : "Haga clic para ampliar la imagen"
4695
+ }',
4696
+ 'options' => null,
4697
+ 'comment' => array(
4698
+ 'EN' => '
4699
+ Message which can appear under the mouse over zoom when the mouse enters it,
4700
+ CSS class: .axZm_mouseOverZoomMsg;
4701
+ For more than one language define a js object,
4702
+ e.g. {"en": "english text", "de": "german text"}
4703
+ ',
4704
+ 'DE' => '
4705
+ Textnachricht, welche unter der Voransicht erscheint,
4706
+ wenn der User mit der Maus darüber geht.
4707
+ CSS Klasse: .axZm_mouseOverZoomMsg;
4708
+ Für mehrere Sprachen können Sie ein js Objekt definieren,
4709
+ z.B. {"en": "english text", "de": "german text"}
4710
+ '
4711
+ )
4712
+ ),
4713
+
4714
+ 'slideInTime' => array(
4715
+ 'prefix' => 'AJAXZOOM_MOZP',
4716
+ 'category' => 'mouseover',
4717
+ 'type' => 'int',
4718
+ 'isJsObject' => false,
4719
+ 'isJsArray' => false,
4720
+ 'display' => 'text',
4721
+ 'height' => null,
4722
+ 'default' => 200,
4723
+ 'options' => null,
4724
+ 'comment' => array(
4725
+ 'EN' => '
4726
+ Slide in time if "noMouseOverZoom" is enabled
4727
+ or "touchScroll" option enables for touch devices.
4728
+ ',
4729
+ 'DE' => '
4730
+ Geschwindigkeit des Slideanimation, wenn "noMouseOverZoom" aktiviert ist
4731
+ oder durch "touchScroll" Option dies einschaltet.
4732
+ '
4733
+ )
4734
+ ),
4735
+
4736
+ 'slideInEasingCSS3' => array(
4737
+ 'prefix' => 'AJAXZOOM_MOZP',
4738
+ 'category' => 'mouseover',
4739
+ 'type' => 'string',
4740
+ 'isJsObject' => false,
4741
+ 'isJsArray' => false,
4742
+ 'display' => 'text',
4743
+ 'height' => null,
4744
+ 'default' => 'easeOutExpo',
4745
+ 'options' => null,
4746
+ 'comment' => array(
4747
+ 'EN' => '
4748
+ jQuery equivalent of easing or own function (string),
4749
+ e.g. "cubic-bezier(0.21,0.51,0.4,2.02)", see also cubic-bezier.com
4750
+ ',
4751
+ 'DE' => '
4752
+ jQuery Äquivalent für easing oder eigene Funktion,
4753
+ z.B. "cubic-bezier(0.21,0.51,0.4,2.02)", siehe auch cubic-bezier.com
4754
+ '
4755
+ )
4756
+ ),
4757
+
4758
+ 'slideInEasing' => array(
4759
+ 'prefix' => 'AJAXZOOM_MOZP',
4760
+ 'category' => 'mouseover',
4761
+ 'type' => 'string',
4762
+ 'isJsObject' => false,
4763
+ 'isJsArray' => false,
4764
+ 'display' => 'text',
4765
+ 'height' => null,
4766
+ 'default' => 'easeOutExpo',
4767
+ 'options' => null,
4768
+ 'comment' => array(
4769
+ 'EN' => '
4770
+ jQuery easing function for sliding in (fallback if CSS3 animation is not supported).
4771
+ ',
4772
+ 'DE' => '
4773
+ jQuery easing Funktion für Slide in (Fallback für CSS3 Animationen).
4774
+ '
4775
+ )
4776
+ ),
4777
+
4778
+ 'slideInScale' => array(
4779
+ 'prefix' => 'AJAXZOOM_MOZP',
4780
+ 'category' => 'mouseover',
4781
+ 'type' => 'float',
4782
+ 'isJsObject' => false,
4783
+ 'isJsArray' => false,
4784
+ 'display' => 'text',
4785
+ 'height' => null,
4786
+ 'default' => 0.8,
4787
+ 'options' => null,
4788
+ 'comment' => array(
4789
+ 'EN' => '
4790
+ Scale initial size (goes eventually to 1.0 while animation).
4791
+ ',
4792
+ 'DE' => '
4793
+ Anfängliche Skalierung (geht dann während der Animation bis 1.0).
4794
+ '
4795
+ )
4796
+ ),
4797
+
4798
+ 'slideOutScale' => array(
4799
+ 'prefix' => 'AJAXZOOM_MOZP',
4800
+ 'category' => 'mouseover',
4801
+ 'type' => 'float',
4802
+ 'isJsObject' => false,
4803
+ 'isJsArray' => false,
4804
+ 'display' => 'text',
4805
+ 'height' => null,
4806
+ 'default' => 0.8,
4807
+ 'options' => null,
4808
+ 'comment' => array(
4809
+ 'EN' => '
4810
+ Scale slideout size.
4811
+ ',
4812
+ 'DE' => '
4813
+ Ziel Skalierung.
4814
+ '
4815
+ )
4816
+ ),
4817
+
4818
+ 'slideOutOpacity' => array(
4819
+ 'prefix' => 'AJAXZOOM_MOZP',
4820
+ 'category' => 'mouseover',
4821
+ 'type' => 'float',
4822
+ 'isJsObject' => false,
4823
+ 'isJsArray' => false,
4824
+ 'display' => 'text',
4825
+ 'height' => null,
4826
+ 'default' => 0,
4827
+ 'options' => null,
4828
+ 'comment' => array(
4829
+ 'EN' => '
4830
+ Slideout opacity.
4831
+ ',
4832
+ 'DE' => '
4833
+ Slideout Durchsichtigkeit.
4834
+ '
4835
+ )
4836
+ ),
4837
+
4838
+ 'slideOutDest' => array(
4839
+ 'prefix' => 'AJAXZOOM_MOZP',
4840
+ 'category' => 'mouseover',
4841
+ 'type' => 'integer',
4842
+ 'isJsObject' => false,
4843
+ 'isJsArray' => false,
4844
+ 'display' => 'select',
4845
+ 'height' => null,
4846
+ 'default' => 4,
4847
+ 'options' => array(
4848
+ array('1', '1'),
4849
+ array('2', '2'),
4850
+ array('3', '3'),
4851
+ array('4', '4'),
4852
+ ),
4853
+ 'comment' => array(
4854
+ 'EN' => '
4855
+ Target slideout position, possible values: 1, 2, 3 or 4;
4856
+ ',
4857
+ 'DE' => '
4858
+ Ziel slideout Position. Mögliche Werte sind: 1, 2, 3 oder 4;
4859
+ '
4860
+ )
4861
+ ),
4862
+
4863
+ 'onInit' => array(
4864
+ 'prefix' => 'AJAXZOOM',
4865
+ 'category' => 'mouseover',
4866
+ 'type' => 'function',
4867
+ 'isJsObject' => false,
4868
+ 'isJsArray' => false,
4869
+ 'display' => 'textarea',
4870
+ 'height' => 100,
4871
+ 'default' => false,
4872
+ 'options' => null,
4873
+ 'comment' => array(
4874
+ 'EN' => '
4875
+ Callback JS function or reference ot it.
4876
+ ',
4877
+ 'DE' => '
4878
+ Callback JS Funktion oder Referenz.
4879
+ '
4880
+ )
4881
+ ),
4882
+
4883
+ 'onLoad' => array(
4884
+ 'prefix' => 'AJAXZOOM',
4885
+ 'category' => 'mouseover',
4886
+ 'type' => 'function, null',
4887
+ 'isJsObject' => false,
4888
+ 'isJsArray' => false,
4889
+ 'display' => 'textarea',
4890
+ 'height' => 100,
4891
+ 'default' => false,
4892
+ 'options' => null,
4893
+ 'comment' => array(
4894
+ 'EN' => '
4895
+ Callback JS function or reference ot it.
4896
+ ',
4897
+ 'DE' => '
4898
+ Callback JS Funktion oder Referenz.
4899
+ '
4900
+ )
4901
+ ),
4902
+
4903
+ 'onImageChange' => array(
4904
+ 'prefix' => 'AJAXZOOM',
4905
+ 'category' => 'mouseover',
4906
+ 'type' => 'function, null',
4907
+ 'isJsObject' => false,
4908
+ 'isJsArray' => false,
4909
+ 'display' => 'textarea',
4910
+ 'height' => 100,
4911
+ 'default' => false,
4912
+ 'options' => null,
4913
+ 'comment' => array(
4914
+ 'EN' => '
4915
+ Callback JS function or reference ot it.
4916
+ ',
4917
+ 'DE' => '
4918
+ Callback JS Funktion oder Referenz.
4919
+ '
4920
+ )
4921
+ ),
4922
+
4923
+ 'onMouseOver' => array(
4924
+ 'prefix' => 'AJAXZOOM',
4925
+ 'category' => 'mouseover',
4926
+ 'type' => 'function, null',
4927
+ 'isJsObject' => false,
4928
+ 'isJsArray' => false,
4929
+ 'display' => 'textarea',
4930
+ 'height' => 100,
4931
+ 'default' => false,
4932
+ 'options' => null,
4933
+ 'comment' => array(
4934
+ 'EN' => '
4935
+ Callback JS function or reference ot it.
4936
+ ',
4937
+ 'DE' => '
4938
+ Callback JS Funktion oder Referenz.
4939
+ '
4940
+ )
4941
+ ),
4942
+
4943
+ 'onMouseOut' => array(
4944
+ 'prefix' => 'AJAXZOOM',
4945
+ 'category' => 'mouseover',
4946
+ 'type' => 'function, null',
4947
+ 'isJsObject' => false,
4948
+ 'isJsArray' => false,
4949
+ 'display' => 'textarea',
4950
+ 'height' => 100,
4951
+ 'default' => false,
4952
+ 'options' => null,
4953
+ 'comment' => array(
4954
+ 'EN' => '
4955
+ Callback JS function or reference ot it.
4956
+ ',
4957
+ 'DE' => '
4958
+ Callback JS Funktion oder Referenz.
4959
+ '
4960
+ )
4961
+ ),
4962
+
4963
+ 'spinner' => array(
4964
+ 'prefix' => 'AJAXZOOM',
4965
+ 'category' => 'mouseover',
4966
+ 'type' => 'bool',
4967
+ 'isJsObject' => false,
4968
+ 'isJsArray' => false,
4969
+ 'display' => 'switch',
4970
+ 'height' => null,
4971
+ 'default' => true,
4972
+ 'options' => null,
4973
+ 'comment' => array(
4974
+ 'EN' => '
4975
+ Use ajax loading spinner without gif files etc.
4976
+ Set to false to disable.
4977
+ ',
4978
+ 'DE' => '
4979
+ CSS / JS Spinner für Loading Animation verwenden.
4980
+ '
4981
+ )
4982
+ ),
4983
+
4984
+ 'spinnerParam' => array(
4985
+ 'prefix' => 'AJAXZOOM',
4986
+ 'category' => 'mouseover',
4987
+ 'type' => 'object',
4988
+ 'isJsObject' => false,
4989
+ 'isJsArray' => false,
4990
+ 'display' => 'textarea',
4991
+ 'height' => 150,
4992
+ 'default' => '{
4993
+ "lines": 11,
4994
+ "length": 3,
4995
+ "width": 3,
4996
+ "radius": 4,
4997
+ "corners": 1,
4998
+ "rotate": 0,
4999
+ "color": "#FFFFFF",
5000
+ "speed": 1,
5001
+ "trail": 90,
5002
+ "shadow": false,
5003
+ "hwaccel": false,
5004
+ "className": "spinner",
5005
+ "zIndex": 2e9,
5006
+ "top": 0,
5007
+ "left": 1
5008
+ }',
5009
+ 'options' => null,
5010
+ 'comment' => array(
5011
+ 'EN' => '
5012
+ Spinner options, for more info see:
5013
+ http://fgnass.github.com/spin.js/
5014
+ ',
5015
+ 'DE' => '
5016
+ Optionen für den Spinner, siehe auch http://fgnass.github.com/spin.js/
5017
+ '
5018
+ )
5019
+ ),
5020
+
5021
+ 'imagesVideoFirstToLoad' => array(
5022
+ 'prefix' => 'AJAXZOOM',
5023
+ 'category' => 'video_settings',
5024
+ 'type' => 'bool',
5025
+ 'isJsObject' => false,
5026
+ 'isJsArray' => false,
5027
+ 'display' => 'switch',
5028
+ 'height' => null,
5029
+ 'default' => false,
5030
+ 'options' => null,
5031
+ 'comment' => array(
5032
+ 'EN' => '
5033
+ Load video first if present. See also "images360firstToLoad" option.
5034
+ ',
5035
+ 'DE' => '
5036
+ Videos, wenn vorhanden, zuerst laden. Siehe auch "images360firstToLoad" Option.
5037
+ '
5038
+ )
5039
+ ),
5040
+
5041
+ 'imagesVideoImg' => array(
5042
+ 'prefix' => 'AJAXZOOM',
5043
+ 'category' => 'video_settings',
5044
+ 'type' => 'string',
5045
+ 'isJsObject' => false,
5046
+ 'isJsArray' => false,
5047
+ 'display' => 'text',
5048
+ 'height' => null,
5049
+ 'default' => 'media-play-256.png',
5050
+ 'options' => null,
5051
+ 'comment' => array(
5052
+ 'EN' => '
5053
+ Used as replacement if "imagesVideoThumb"
5054
+ is enabled and poster image is missing.
5055
+ ',
5056
+ 'DE' => '
5057
+ Wird als Ersatz für das nicht Vorhandene Posterbild des Videos genutzt,
5058
+ wenn "imagesVideoThumb" aktiviert ist.
5059
+ '
5060
+ )
5061
+ ),
5062
+
5063
+ 'imagesVideoBroken' => array(
5064
+ 'prefix' => 'AJAXZOOM',
5065
+ 'category' => 'video_settings',
5066
+ 'type' => 'string',
5067
+ 'isJsObject' => false,
5068
+ 'isJsArray' => false,
5069
+ 'display' => 'text',
5070
+ 'height' => null,
5071
+ 'default' => 'media-play-256.png',
5072
+ 'options' => null,
5073
+ 'comment' => array(
5074
+ 'EN' => '
5075
+ Replacement thumbnail image if instant loading of the poster image
5076
+ from youtube, vimeo etc. fails.
5077
+ ',
5078
+ 'DE' => '
5079
+ Ersatz für Posterbild, wenn das Laden von YouTube, Vimeo etc.
5080
+ nicht funktioniert.
5081
+ '
5082
+ )
5083
+ ),
5084
+
5085
+ 'imagesVideoOverlay' => array(
5086
+ 'prefix' => 'AJAXZOOM',
5087
+ 'category' => 'video_settings',
5088
+ 'type' => 'bool',
5089
+ 'isJsObject' => false,
5090
+ 'isJsArray' => false,
5091
+ 'display' => 'switch',
5092
+ 'height' => null,
5093
+ 'default' => false,
5094
+ 'options' => null,
5095
+ 'comment' => array(
5096
+ 'EN' => '
5097
+ Add a div with class "videoOverlImg" or "videoOverl" over the gallery thumb.
5098
+ ',
5099
+ 'DE' => '
5100
+ Fügt einen div Container mit Klasse "videoOverlImg" oder "videoOverl"
5101
+ über die Galerie Miniaturansicht.
5102
+ '
5103
+ )
5104
+ ),
5105
+
5106
+ 'imagesVideoThumb' => array(
5107
+ 'prefix' => 'AJAXZOOM',
5108
+ 'category' => 'video_settings',
5109
+ 'type' => 'bool',
5110
+ 'isJsObject' => false,
5111
+ 'isJsArray' => false,
5112
+ 'display' => 'switch',
5113
+ 'height' => null,
5114
+ 'default' => true,
5115
+ 'options' => null,
5116
+ 'comment' => array(
5117
+ 'EN' => '
5118
+ Show real poster image as thumb in the gallery if defined.
5119
+ ',
5120
+ 'DE' => '
5121
+ Zeigt reales Posterbild als Miniaturansicht in der Galerie, falls definiert.
5122
+ '
5123
+ )
5124
+ ),
5125
+
5126
+ 'imagesVideoBig' => array(
5127
+ 'prefix' => 'AJAXZOOM',
5128
+ 'category' => 'video_settings',
5129
+ 'type' => 'string',
5130
+ 'isJsObject' => false,
5131
+ 'isJsArray' => false,
5132
+ 'display' => 'text',
5133
+ 'height' => null,
5134
+ 'default' => 'media-play-1200.png',
5135
+ 'options' => null,
5136
+ 'comment' => array(
5137
+ 'EN' => '
5138
+ Placeholder image for videos in mouseover.
5139
+ ',
5140
+ 'DE' => '
5141
+ Platzhalter Bild für Videos in Mouseover.
5142
+ '
5143
+ )
5144
+ ),
5145
+
5146
+ 'imagesVideoSmall' => array(
5147
+ 'prefix' => 'AJAXZOOM',
5148
+ 'category' => 'video_settings',
5149
+ 'type' => 'string',
5150
+ 'isJsObject' => false,
5151
+ 'isJsArray' => false,
5152
+ 'display' => 'text',
5153
+ 'height' => null,
5154
+ 'default' => 'media-play-600.png',
5155
+ 'options' => null,
5156
+ 'comment' => array(
5157
+ 'EN' => '
5158
+ Placeholder image for videos in mouseover.
5159
+ ',
5160
+ 'DE' => '
5161
+ Platzhalter Bild für Videos in Mouseover.
5162
+ '
5163
+ )
5164
+ ),
5165
+
5166
+ 'videoThumb' => array(
5167
+ 'prefix' => 'AJAXZOOM',
5168
+ 'category' => 'video_settings',
5169
+ 'type' => 'object',
5170
+ 'isJsObject' => false,
5171
+ 'isJsArray' => false,
5172
+ 'display' => 'textarea',
5173
+ 'height' => 150,
5174
+ 'default' => '{
5175
+ "youtube": {
5176
+ "url": "https://i1.ytimg.com/vi/",
5177
+ "img": "mqdefault"
5178
+ },
5179
+ "vimeo": {
5180
+ "url": "https://vimeo.com/api/v2/video/",
5181
+ "img": "thumbnail_medium"
5182
+ },
5183
+ "dailymotion": {
5184
+ "url": "https://api.dailymotion.com/video/",
5185
+ "img": "thumbnail_480_url"
5186
+ }
5187
+ }',
5188
+ 'options' => null,
5189
+ 'comment' => array(
5190
+ 'EN' => '
5191
+ Settings including sources for poster images for
5192
+ YouTube, Vimeo and Dailymotion.
5193
+ ',
5194
+ 'DE' => '
5195
+ Einstellungen für Quellen, sowie Größe für Posterbilder aus
5196
+ YouTube, Vimeo und Dailymotion.
5197
+ '
5198
+ )
5199
+ ),
5200
+
5201
+ 'videoThumbDefaultPostion' => array(
5202
+ 'prefix' => 'AJAXZOOM',
5203
+ 'category' => 'video_settings',
5204
+ 'type' => 'string',
5205
+ 'isJsObject' => false,
5206
+ 'isJsArray' => false,
5207
+ 'display' => 'select',
5208
+ 'height' => null,
5209
+ 'default' => 'last',
5210
+ 'options' => array(
5211
+ array('first', 'first'),
5212
+ array('afterfirst', 'afterfirst'),
5213
+ array('last', 'last'),
5214
+ ),
5215
+ 'comment' => array(
5216
+ 'EN' => '
5217
+ Default position of the thumbnail representing a video in the gallery.
5218
+ The position can be also defined for each thumb individually.
5219
+ Possible values are: "first", "afterfirst" and "last".
5220
+ See also "images360ThumbDefaultPostion" option.
5221
+ ',
5222
+ 'DE' => '
5223
+ Standardposition der Miniaturansicht, die ein Video in der Galerie darstellt.
5224
+ Die Position kann auch für jedes Video - Miniaturansicht individuell definiert werden.
5225
+ Mögliche Werte sind: "first", "afterfirst" und "last".
5226
+ Siehe auch "images360ThumbDefaultPostion" Option.
5227
+ '
5228
+ )
5229
+ ),
5230
+
5231
+ 'videoUrl' => array(
5232
+ 'prefix' => 'AJAXZOOM',
5233
+ 'category' => 'video_settings',
5234
+ 'type' => 'object',
5235
+ 'isJsObject' => false,
5236
+ 'isJsArray' => false,
5237
+ 'display' => 'textarea',
5238
+ 'height' => 70,
5239
+ 'default' => '{
5240
+ "youtube": "//www.youtube-nocookie.com/embed/",
5241
+ "vimeo": "//player.vimeo.com/video/",
5242
+ "dailymotion": "//www.dailymotion.com/embed/video/"
5243
+ }',
5244
+ 'options' => null,
5245
+ 'comment' => array(
5246
+ 'EN' => '
5247
+ Url of the external players.
5248
+ ',
5249
+ 'DE' => '
5250
+ URL für die externen Player.
5251
+ '
5252
+ )
5253
+ ),
5254
+
5255
+ 'videoSettings' => array(
5256
+ 'prefix' => 'AJAXZOOM',
5257
+ 'category' => 'video_settings',
5258
+ 'type' => 'object',
5259
+ 'isJsObject' => false,
5260
+ 'isJsArray' => false,
5261
+ 'display' => 'textarea',
5262
+ 'height' => 200,
5263
+ 'default' => '{
5264
+ "youtube": {
5265
+ "autoplay": 0,
5266
+ "controls": 1,
5267
+ "showinfo": 0,
5268
+ "loop": 0,
5269
+ "fs": 1,
5270
+ "rel": 0,
5271
+ "modestbranding": 0,
5272
+ "iv_load_policy": 3,
5273
+ "theme": "light"
5274
+ },
5275
+ "vimeo": {
5276
+ "autopause": 1,
5277
+ "autoplay": 0,
5278
+ "badge": 1,
5279
+ "byline": 0,
5280
+ "color": "eaeaea",
5281
+ "loop": 0,
5282
+ "portrait": 0,
5283
+ "title": 0
5284
+ },
5285
+ "dailymotion": {
5286
+ "autoplay": 0,
5287
+ "logo": 0,
5288
+ "quality": 720,
5289
+ "related": 0,
5290
+ "html5": 1
5291
+ },
5292
+ "html5": {
5293
+ "controls": true,
5294
+ "autoplay": false,
5295
+ "loop": false,
5296
+ "muted": false,
5297
+ "preload": "auto"
5298
+ }
5299
+ }',
5300
+ 'options' => null,
5301
+ 'comment' => array(
5302
+ 'EN' => '
5303
+ Api / default parameters for the players.
5304
+ ',
5305
+ 'DE' => '
5306
+ API / Standardeinstellungen für die Video Player.
5307
+ '
5308
+ )
5309
+ ),
5310
+
5311
+ 'videoHtml5ClickPlay' => array(
5312
+ 'prefix' => 'AJAXZOOM',
5313
+ 'category' => 'video_settings',
5314
+ 'type' => 'bool',
5315
+ 'isJsObject' => false,
5316
+ 'isJsArray' => false,
5317
+ 'display' => 'switch',
5318
+ 'height' => null,
5319
+ 'default' => true,
5320
+ 'options' => null,
5321
+ 'comment' => array(
5322
+ 'EN' => '
5323
+ Toggle play/pause for HTML5 players when clicked anywhere on the player.
5324
+ ',
5325
+ 'DE' => '
5326
+ Toggle Play / Pause für HTML5-Player, wenn irgendwo auf dem Player geklickt wird.
5327
+ '
5328
+ )
5329
+ ),
5330
+
5331
+ 'videoHtml5Poster' => array(
5332
+ 'prefix' => 'AJAXZOOM',
5333
+ 'category' => 'video_settings',
5334
+ 'type' => 'string',
5335
+ 'isJsObject' => false,
5336
+ 'isJsArray' => false,
5337
+ 'display' => 'text',
5338
+ 'height' => null,
5339
+ 'default' => 'media-play-1200.png',
5340
+ 'options' => null,
5341
+ 'comment' => array(
5342
+ 'EN' => '
5343
+ Specific default poster image for HTML5 player.
5344
+ ',
5345
+ 'DE' => '
5346
+ Standard Ersatzposter für HTML5 Videos.
5347
+ '
5348
+ )
5349
+ ),
5350
+
5351
+ 'videoHtml5VideoJs' => array(
5352
+ 'prefix' => 'AJAXZOOM',
5353
+ 'category' => 'video_settings',
5354
+ 'type' => 'bool',
5355
+ 'isJsObject' => false,
5356
+ 'isJsArray' => false,
5357
+ 'display' => 'switch',
5358
+ 'height' => null,
5359
+ 'default' => true,
5360
+ 'options' => null,
5361
+ 'comment' => array(
5362
+ 'EN' => '
5363
+ Enable Videojs player for html5 videos.
5364
+ ',
5365
+ 'DE' => '
5366
+ Videojs Player für HTML5 Videos aktivieren.
5367
+ '
5368
+ )
5369
+ ),
5370
+
5371
+ 'videoHtml5VideoJsSkin' => array(
5372
+ 'prefix' => 'AJAXZOOM',
5373
+ 'category' => 'video_settings',
5374
+ 'type' => 'string',
5375
+ 'isJsObject' => false,
5376
+ 'isJsArray' => false,
5377
+ 'display' => 'text',
5378
+ 'height' => null,
5379
+ 'default' => 'vjs-default-skin',
5380
+ 'options' => null,
5381
+ 'comment' => array(
5382
+ 'EN' => '
5383
+ Skin for Videojs player.
5384
+ ',
5385
+ 'DE' => '
5386
+ Skin für Videojs Player.
5387
+ '
5388
+ )
5389
+ ),
5390
+
5391
+ 'videoHtml5VideoJsPoster' => array(
5392
+ 'prefix' => 'AJAXZOOM',
5393
+ 'category' => 'video_settings',
5394
+ 'type' => 'string',
5395
+ 'isJsObject' => false,
5396
+ 'isJsArray' => false,
5397
+ 'display' => 'text',
5398
+ 'height' => null,
5399
+ 'default' => 'media-video-1200.png',
5400
+ 'options' => null,
5401
+ 'comment' => array(
5402
+ 'EN' => '
5403
+ Specific default poster image for HTML5 Videojs player.
5404
+ ',
5405
+ 'DE' => '
5406
+ Standard Ersatzposter für HTML5 - Videojs Players.
5407
+ '
5408
+ )
5409
+ ),
5410
+
5411
+ 'videoHtml5VideoJsOpt' => array(
5412
+ 'prefix' => 'AJAXZOOM',
5413
+ 'category' => 'video_settings',
5414
+ 'type' => 'object',
5415
+ 'isJsObject' => false,
5416
+ 'isJsArray' => false,
5417
+ 'display' => 'textarea',
5418
+ 'height' => 100,
5419
+ 'default' => '{
5420
+ "controlBar": {
5421
+ "muteToggle": false
5422
+ },
5423
+ "techOrder": ["html5", "flash", "other supported tech"]
5424
+ }',
5425
+ 'options' => null,
5426
+ 'comment' => array(
5427
+ 'EN' => '
5428
+ Options for Videojs player.
5429
+ ',
5430
+ 'DE' => '
5431
+ Standard Optionen für Videojs Player.
5432
+ '
5433
+ )
5434
+ )
5435
+
5436
+ );
5437
+ }
5438
+
5439
+ public function extendConfig($after = 'pngModeCssFix')
5440
+ {
5441
+ if (!empty($this->config_extend)) {
5442
+ foreach ($this->config_extend as $k => $v) {
5443
+ $keys = array_keys($this->config);
5444
+ $idx = array_search($after, $keys);
5445
+ if ($idx > 0) {
5446
+ $idx += 1;
5447
+ $v['category'] = 'plugin_settings';
5448
+ $this->config = array_merge(
5449
+ array_slice($this->config, 0, $idx),
5450
+ array($k => $v),
5451
+ array_slice($this->config, $idx)
5452
+ );
5453
+ $after = $k;
5454
+ }
5455
+ }
5456
+ }
5457
+ }
5458
+
5459
+ public function getCategories()
5460
+ {
5461
+ return $this->categories;
5462
+ }
5463
+
5464
+ public function getOptionsList()
5465
+ {
5466
+ $cnf = $this->config;
5467
+ $ret = array();
5468
+
5469
+ foreach ($cnf as $k => $v) {
5470
+ if (in_array($v['category'], $this->exclude_cat_vendor)
5471
+ || in_array($k, $this->exclude_opt_vendor)
5472
+ ) {
5473
+ continue;
5474
+ }
5475
+
5476
+ if ($this->vendor && isset($v['vendor']) && !empty($v['vendor']) && is_array($v['vendor'])) {
5477
+ if (!in_array($this->vendor, $v['vendor'])) {
5478
+ continue;
5479
+ }
5480
+ }
5481
+
5482
+ $ret[$k] = $v['prefix'].'_'.strtoupper($k);
5483
+ }
5484
+
5485
+ return $ret;
5486
+ }
5487
+
5488
+ public function getConfig($plain = false)
5489
+ {
5490
+ $cnf = $this->config;
5491
+ if (!$plain && !empty($this->config_vendor)) {
5492
+ foreach ($this->config_vendor as $k => $v) {
5493
+ if (isset($cnf[$k])) {
5494
+ $cnf[$k]['default'] = $v;
5495
+ }
5496
+ }
5497
+ }
5498
+
5499
+ if (!$plain && $this->vendor) {
5500
+ foreach ($this->exclude_opt_vendor as $v) {
5501
+ if (isset($cnf[$v])) {
5502
+ unset($cnf[$v]);
5503
+ }
5504
+ }
5505
+ }
5506
+
5507
+ if (!$plain && $this->vendor) {
5508
+ foreach ($cnf as $k => $v) {
5509
+ if (!empty($this->exclude_cat_vendor)) {
5510
+ if (in_array($v['category'], $this->exclude_cat_vendor)) {
5511
+ unset($cnf[$k]);
5512
+ }
5513
+ }
5514
+
5515
+ if (isset($cnf[$k]) && isset($v['vendor']) && !empty($v['vendor']) && is_array($v['vendor'])) {
5516
+ if (!in_array($this->vendor, $v['vendor'])) {
5517
+ unset($cnf[$k]);
5518
+ }
5519
+ }
5520
+ }
5521
+ }
5522
+
5523
+ return $cnf;
5524
+ }
5525
+
5526
+ public function cleanJsStr($value)
5527
+ {
5528
+ return $value;
5529
+ //return trim(str_replace(array("\r", "\n", "\t", '\"'), array('', '', '', '&#34;'), $value));
5530
+ }
5531
+
5532
+ public function jsVal($value, $chk = true, $clean = false, $txt = false)
5533
+ {
5534
+ if ($chk === false) {
5535
+ return $value;
5536
+ }
5537
+
5538
+ // $value is / could be saved as string
5539
+ if (!is_bool($value) && !is_null($value)
5540
+ && ($value == 'false' || $value == 'true' || $value == 'null' || is_numeric($value)
5541
+ || substr(trim($value), 0, 1) == '{' || substr(trim($value), 0, 1) == '[')
5542
+ ) {
5543
+ return $value;
5544
+ } elseif (is_bool($value) && $value) {
5545
+ return 'true';
5546
+ } elseif (is_bool($value) && !$value) {
5547
+ return 'false';
5548
+ } elseif (is_null($value) || $value == 'NULL') {
5549
+ return 'null';
5550
+ } else {
5551
+ if ($clean) {
5552
+ return '"' . $this->cleanJsStr($value) . '"';
5553
+ } elseif ($txt) {
5554
+ return $value;
5555
+ } else {
5556
+ return '"' . $value . '"';
5557
+ }
5558
+ }
5559
+ }
5560
+
5561
+ public function jsKeyVal($key, $value, $chk = true)
5562
+ {
5563
+ return '"'.$key.'": '.$this->jsVal($value, $chk);
5564
+ }
5565
+
5566
+ public function jsObjFromArr($array, $chk)
5567
+ {
5568
+ $ret = '{';
5569
+ foreach ($array as $k => $v) {
5570
+ if (is_array($v)) {
5571
+ $ret .= '"'.$k.'": '.$this->jsObjFromArr($v, $chk).', ';
5572
+ } else {
5573
+ $ret .= $this->jsKeyVal($k, $v, $chk) . ', ';
5574
+ }
5575
+ }
5576
+ $ret = trim($ret, ', ');
5577
+ $ret .= '}';
5578
+ return $ret;
5579
+ }
5580
+
5581
+ /* generate init parameters based on passed cfg options */
5582
+ public function getInitJs($c = array())
5583
+ {
5584
+ $cd = array(
5585
+ 'cfg' => array(),
5586
+ 'holder_object' => 'jQuery.axZm_psh',
5587
+ 'exclude_opt' => array(),
5588
+ 'exclude_cat' => array(),
5589
+ 'defaults' => false,
5590
+ 'differ' => false,
5591
+ 'ovrprefix' => false,
5592
+ 'min' => false
5593
+ );
5594
+
5595
+ foreach ($cd as $k => $v) {
5596
+ if (isset($c[$k])) {
5597
+ ${$k} = $c[$k];
5598
+ } else {
5599
+ ${$k} = $v;
5600
+ }
5601
+ }
5602
+
5603
+ if (!is_string($ovrprefix)) {
5604
+ $ovrprefix = false;
5605
+ }
5606
+
5607
+ $mouseover_param = array();
5608
+ $param = array();
5609
+ $return = '';
5610
+
5611
+ foreach ($this->getConfig(true) as $k => $v) {
5612
+ $cat = $v['category'];
5613
+
5614
+ if ($ovrprefix !== false) {
5615
+ $save_var = $ovrprefix.'_'.strtoupper($k);
5616
+ } else {
5617
+ $save_var = $v['prefix'].'_'.strtoupper($k);
5618
+ }
5619
+
5620
+ if ($cat == 'plugin_settings'
5621
+ || $cat == 'license'
5622
+ || (!$defaults && !(isset($cfg[$k])
5623
+ || isset($cfg[$save_var])))
5624
+ || in_array($k, $exclude_opt)
5625
+ || in_array($cat, $exclude_cat)
5626
+ ) {
5627
+ continue;
5628
+ }
5629
+
5630
+ $value = $defaults ? $v['default'] : isset($cfg[$k]) ? $cfg[$k] : $cfg[$save_var];
5631
+
5632
+ if (!$defaults && $differ && $k != 'divID' && $k != 'galleryDivID') {
5633
+ if ($this->jsVal($v['default'], true, true) == $this->jsVal($value, true, true)) {
5634
+ continue;
5635
+ }
5636
+ }
5637
+
5638
+ if ($cat == 'mouseover') {
5639
+ $mouseover_param[$k] = $this->jsKeyVal($k, $value);
5640
+ } else {
5641
+ $param[$k] = $this->jsKeyVal($k, $value);
5642
+ }
5643
+ }
5644
+
5645
+ if (!$defaults) {
5646
+ $param['lang'] = $this->jsKeyVal('lang', $holder_object.'.shopLang.substr(0, 2)', false);
5647
+ $param['axZmPath'] = $this->jsKeyVal('axZmPath', '('.$holder_object.'.axZmPath || \'../axZm/\')', false);
5648
+
5649
+ $param['images'] = $this->jsKeyVal('images', $holder_object.'.IMAGES_JSON', false);
5650
+ $param['images360'] = $this->jsKeyVal('images360', $holder_object.'.IMAGES_360_JSON', false);
5651
+ $param['videos'] = $this->jsKeyVal('videos', $holder_object.'.VIDEOS_JSON', false);
5652
+ }
5653
+
5654
+ if (!empty($mouseover_param)) {
5655
+ $param['mouseOverZoomParam'] = '"mouseOverZoomParam": {'.implode(', ', $mouseover_param).'}';
5656
+ }
5657
+
5658
+ $return = '{'.implode(', ', $param).'}';
5659
+
5660
+ if ($min) {
5661
+ return $this->minifyJs($return);
5662
+ }
5663
+
5664
+ // Could be valid JSON, must not
5665
+ return $return;
5666
+ }
5667
+
5668
+ public function minifyJs($return)
5669
+ {
5670
+ $pattern = '/(?:(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:(?<!\:|\\\|\')\/\/.*))/';
5671
+ $return = preg_replace($pattern, '', $return);
5672
+ $return = trim(str_replace(array("\r", "\n", "\t"), array(' ', ' ', ''), $return));
5673
+ $return = preg_replace('/( )+/', ' ', $return);
5674
+ return $return;
5675
+ }
5676
+
5677
+ public function getConfigFrontJs($c = array())
5678
+ {
5679
+ $cd = array(
5680
+ 'window' => 'window.',
5681
+ 'holder_object' => 'jQuery.axZm_psh',
5682
+ 'exclude_opt' => array(),
5683
+ 'ovrprefix' => false,
5684
+ 'exclude_cat' => array()
5685
+ );
5686
+
5687
+ foreach ($cd as $k => $v) {
5688
+ if (isset($c[$k])) {
5689
+ ${$k} = $c[$k];
5690
+ } else {
5691
+ ${$k} = $v;
5692
+ }
5693
+ }
5694
+
5695
+ if (!is_string($ovrprefix)) {
5696
+ $ovrprefix = false;
5697
+ }
5698
+
5699
+ $js = array();
5700
+ $js['mouseOverZoomParam'] = array();
5701
+
5702
+ foreach ($this->config as $k => $v) {
5703
+ $cat = $v['category'];
5704
+
5705
+ if ($cat == 'plugin_settings'
5706
+ || $cat == 'license'
5707
+ || in_array($k, $exclude_opt)
5708
+ || in_array($cat, $exclude_cat)) {
5709
+ continue;
5710
+ }
5711
+
5712
+ if ($cat == 'mouseover') {
5713
+ if ($ovrprefix !== false) {
5714
+ $js['mouseOverZoomParam'][$k] = $ovrprefix.'_'.strtoupper($k);
5715
+ } else {
5716
+ $js['mouseOverZoomParam'][$k] = $window.$v['prefix'].'_'.strtoupper($k);
5717
+ }
5718
+ } else {
5719
+ if ($ovrprefix !== false) {
5720
+ $js[$k] = $ovrprefix.'_'.strtoupper($k);
5721
+ } else {
5722
+ $js[$k] = $window.$v['prefix'].'_'.strtoupper($k);
5723
+ }
5724
+ }
5725
+ }
5726
+
5727
+ $js['lang'] = $holder_object.'.shopLang.substr(0, 2)';
5728
+ $js['axZmPath'] = '('.$holder_object.'.axZmPath || \'../axZm/\')';
5729
+
5730
+ $js['images'] = $holder_object.'.IMAGES_JSON';
5731
+ $js['images360'] = $holder_object.'.IMAGES_360_JSON';
5732
+ $js['videos'] = $holder_object.'.VIDEOS_JSON';
5733
+
5734
+ return $this->jsObjFromArr($js, false);
5735
+ }
5736
+
5737
+ public function docuLine($l, $k, $v)
5738
+ {
5739
+ $ret = '';
5740
+ $example = array('EN' => 'Example', 'DE' => 'Beispiel');
5741
+ $longdefault = strlen($v['default']) > 30 ? true : false;
5742
+
5743
+ $ret .= '<tr data-az_opt_name="'.$k.'" data-az_opt_cat="'.$v['category'].'"><td>'.$k.'</td><td>';
5744
+
5745
+ if ($longdefault) {
5746
+ $ret .= '{...}';
5747
+ } else {
5748
+ if ($v['default'] === true || $v['default'] === false || $v['default'] === null) {
5749
+ $ret .= strtolower(var_export($v['default'], true));
5750
+ } else {
5751
+ $ret .= $v['default'] ? $v['default'] : '""';
5752
+ }
5753
+ }
5754
+
5755
+ $ret .= '</td><td>';
5756
+ $ret .= '<div class="optionsType">'.$v['type'].'</div>';
5757
+ $ret .= (isset($v['comment'][$l]) && !empty($v['comment'][$l]) ? $v['comment'][$l] : $v['comment']['EN']);
5758
+
5759
+ if ($longdefault) {
5760
+ $ret .= '<div class="optionsDefaultHeading">Default:</div>';
5761
+ $ret .= '<pre class="language-js"><code class="language-js">'.$v['default'].'</code></pre>';
5762
+ } elseif (isset($v['example'])) {
5763
+ $ret .= '<div class="optionsDefaultHeading">'.(isset($example[$l]) ?
5764
+ $example[$l] : $example['EN']).':</div>';
5765
+ $ret .= '<pre class="language-js"><code class="language-js">'.$v['example'].'</code></pre>';
5766
+ }
5767
+
5768
+ $ret .= '</td></tr>';
5769
+
5770
+ return $ret;
5771
+ }
5772
+
5773
+ public function docuCat($l, $key)
5774
+ {
5775
+ return '<tbody data-az_options_head="'.$key.'"><tr><th colspan="3" class="optionsTabCat">'
5776
+ .(isset($this->categories[$key]['title'][$l])
5777
+ ? $this->categories[$key]['title'][$l]
5778
+ : $this->categories[$key]['title']['EN'])
5779
+ . '</th></tr></tbody>';
5780
+ }
5781
+
5782
+ public function getDocu($c = array())
5783
+ {
5784
+ $mouse_over_zoom_param = array(
5785
+ 'EN' => 'All specific options for the mouseover zoom
5786
+ are keys of mouseOverZoomParam object!',
5787
+ 'DE' => 'Alle spezifische optionen für mousever zoom
5788
+ sind Schlüßel des mouseOverZoomParam Objektes!'
5789
+ );
5790
+
5791
+ $cd = array(
5792
+ 'l' => 'EN',
5793
+ 'cls' => 'optionsTable',
5794
+ 'skip_cat' => array(),
5795
+ 'skip_options' => array(),
5796
+ 'contents' => true,
5797
+ 'plugin_settings' => true
5798
+ );
5799
+
5800
+ foreach ($cd as $k => $v) {
5801
+ if (isset($c[$k])) {
5802
+ ${$k} = $c[$k];
5803
+ } else {
5804
+ ${$k} = $v;
5805
+ }
5806
+ }
5807
+
5808
+ $this->defineItemes();
5809
+ $cat = '';
5810
+ $cat_prev = '';
5811
+
5812
+ $ret = '<div id="'.$cls.'Select" style="margin-bottom: 3px; text-align: right;"></div>';
5813
+ $t = '<table class="'.$cls.'">';
5814
+ $h = '<tr><th>Option</th><th>Default</th><th>Description</th></tr>';
5815
+
5816
+ $ret .= $t;
5817
+ $arr = array_merge($this->items, $this->config);
5818
+
5819
+ foreach ($arr as $k => $v) {
5820
+ $cat = $v['category'];
5821
+
5822
+ if (in_array($cat, $skip_cat) || in_array($k, $skip_options)) {
5823
+ continue;
5824
+ }
5825
+
5826
+ if ($cat != $cat_prev) {
5827
+ if (substr($ret, -8) != '</tbody>' && strstr($ret, '<tbody>')) {
5828
+ $ret .= '</tbody>';
5829
+ }
5830
+
5831
+ $ret .= $this->docuCat($l, $cat);
5832
+ $ret .= '<tbody data-az_options_cat="'.$cat.'">';
5833
+
5834
+ if ($cat == 'mouseover') {
5835
+ $ret .= '<tr><td>mouseOverZoomParam</td><td>{... ... ...}<td>'
5836
+ .(isset($mouse_over_zoom_param[$l]) ?
5837
+ $mouse_over_zoom_param[$l] : $mouse_over_zoom_param['EN']).'</td>';
5838
+ }
5839
+
5840
+ $ret .= $h;
5841
+ $cat_prev = $cat;
5842
+ }
5843
+
5844
+ $ret .= $this->docuLine($l, $k, $v);
5845
+ }
5846
+
5847
+ if (substr($ret, -8) != '</tbody>') {
5848
+ $ret .= '</tbody>';
5849
+ }
5850
+
5851
+ $ret .= '</table>';
5852
+ return $ret;
5853
+ }
5854
+
5855
+ public function docuJS($c = array())
5856
+ {
5857
+ $cd = array(
5858
+ 'cls' => 'optionsTable',
5859
+ 'l' => 'EN',
5860
+ 'tag' => false
5861
+ );
5862
+
5863
+ foreach ($cd as $k => $v) {
5864
+ if (isset($c[$k])) {
5865
+ ${$k} = $c[$k];
5866
+ } else {
5867
+ ${$k} = $v;
5868
+ }
5869
+ }
5870
+
5871
+ $js = '';
5872
+
5873
+ if ($tag) {
5874
+ $js .= '<script type="text/javascript">'."\n";
5875
+ }
5876
+
5877
+ $js .= <<<EOT
5878
+ jQuery(function () {
5879
+ var optionsTable = '$cls';
5880
+ var chooseToFind = {'EN': 'Options (Choose to find)', 'DE': 'Optionen (auswählen um zu finden)'};
5881
+ var l = '$l';
5882
+
5883
+ var scrollToAnchor = function(aid, adj, ttt, clb) {
5884
+ var aTag;
5885
+ adj = adj || -30;
5886
+ ttt = ttt || 'slow';
5887
+ clb = clb || function(){};
5888
+
5889
+ if (aid instanceof jQuery) {
5890
+ aTag = aid;
5891
+ } else if (aid && (aid.indexOf('.') != -1 || aid.indexOf('#') != -1)) {
5892
+ aTag = $(aid);
5893
+ } else {
5894
+ aTag = $('a[name="'+ aid +'"]');
5895
+ }
5896
+
5897
+ if (aTag.length == 0){
5898
+ return;
5899
+ }
5900
+
5901
+ var offs = aTag.offset();
5902
+ var naviH = jQuery('#az_topNaviAjaxZoom').height() || 0;
5903
+ var scrollT = offs.top - naviH + (adj || 0);
5904
+ if (offs && offs.top) {
5905
+ jQuery('html, body').animate( {
5906
+ scrollTop: scrollT
5907
+ }, {
5908
+ duration: ttt,
5909
+ queue: false,
5910
+ complete: clb
5911
+ } );
5912
+ }
5913
+ };
5914
+
5915
+ $('.' + optionsTable + ' code').each(function() {
5916
+ var _this = $(this);
5917
+ var c = $(this).html();
5918
+ try {
5919
+ var aaa = JSON.parse(c);
5920
+ var bbb = JSON.stringify(aaa, null, "\t");
5921
+ _this.html(bbb);
5922
+ }
5923
+ catch (e) {
5924
+
5925
+ }
5926
+ } );
5927
+
5928
+ jQuery('.' + optionsTable + ' code').each(function() {
5929
+ var _this = jQuery(this);
5930
+ var c = jQuery(this).html();
5931
+
5932
+ try {
5933
+ var aaa = JSON.parse(c);
5934
+ var bbb = JSON.stringify(aaa, null, "\t");
5935
+ _this.html(bbb);
5936
+ }
5937
+ catch (e) {
5938
+
5939
+ }
5940
+ } );
5941
+
5942
+ jQuery('.' + optionsTable + ':not(.methods) td:nth-child(2)').each(function() {
5943
+ var txt = jQuery.trim(jQuery(this).html());
5944
+ if (txt == 'false' || txt == 'true'){
5945
+ jQuery(this).html('<span style="color: green">'+txt+'</span>');
5946
+ } else if (txt == 'null' || txt == 'NULL') {
5947
+ jQuery(this).html('<span style="color: blue">null</span>');
5948
+ } else if (txt.charAt(0) == '{' || txt.charAt(0) == '[') {
5949
+ jQuery(this).html('<span style="color: #5F6364">'+txt+'</span>');
5950
+ } else if (parseFloat(txt) == txt) {
5951
+ jQuery(this).html('<span style="color: red">'+txt+'</span>');
5952
+ } else if (txt.charAt(0) != '"'){
5953
+ jQuery(this).html('<span>"'+txt+'"</span>');
5954
+ }
5955
+ } );
5956
+
5957
+ jQuery('.' + optionsTable + ' tbody[data-az_options_head]').each(function() {
5958
+ var a = '<i class="glyphicon glyphicon-triangle-right"></i>';
5959
+ jQuery('th', jQuery(this)).prepend(a);
5960
+ } );
5961
+
5962
+ jQuery('.' + optionsTable + ' tbody[data-az_options_head]').on('click', function(e) {
5963
+ var _this = jQuery(this);
5964
+ var val = jQuery(this).attr('data-az_options_head');
5965
+ if (jQuery('.' + optionsTable + ' tbody[data-az_options_cat="'+val+'"]').css('display') == 'none') {
5966
+ jQuery('i', _this).removeClass('glyphicon-triangle-right');
5967
+ jQuery('i', _this).addClass('glyphicon-triangle-bottom');
5968
+ } else {
5969
+ jQuery('i', _this).addClass('glyphicon-triangle-right');
5970
+ jQuery('i', _this).removeClass('glyphicon-triangle-bottom');
5971
+ }
5972
+ jQuery('.' + optionsTable + ' tbody[data-az_options_cat="'+val+'"]').toggle();
5973
+ _this.toggleClass('active');
5974
+ } ).addClass('active').trigger('click');
5975
+
5976
+ var opt = [];
5977
+ jQuery('.' + optionsTable + ' tr[data-az_opt_name]').each(function() {
5978
+ opt.push(jQuery(this).attr('data-az_opt_name'));
5979
+ } );
5980
+ opt.sort();
5981
+
5982
+ var sel = '<select><option value="">'+(chooseToFind[l] || chooseToFind['EN'])+'</option>';
5983
+ jQuery(opt).each(function(k, v) {
5984
+ sel += '<option value="'+v+'">'+v+'</option>';
5985
+ } );
5986
+ sel += '</select>';
5987
+
5988
+ sel = jQuery(sel).on('change', function() {
5989
+ var _this = jQuery(this).blur();
5990
+ var val = _this.blur().val();
5991
+ if (!val) {
5992
+ jQuery('.' + optionsTable + ' tbody[data-az_options_head]').each(function() {
5993
+ var _this = jQuery(this);
5994
+ if (_this.next().css('display') != 'none') {
5995
+ _this.trigger('click');
5996
+ }
5997
+ } );
5998
+ return;
5999
+ }
6000
+ var tr = jQuery('.' + optionsTable + ' tr[data-az_opt_name="'+val+'"]');
6001
+ if (tr.closest('tbody').css('display') == 'none') {
6002
+ var cat = tr.attr('data-az_opt_cat');
6003
+ jQuery('.' + optionsTable + ' tbody[data-az_options_head="'+cat+'"]').trigger('click');
6004
+ }
6005
+ tr.addClass('az_highlight_tr');
6006
+ scrollToAnchor(tr, -120, null, function() {
6007
+ setTimeout(function(){
6008
+ tr.removeClass('az_highlight_tr');
6009
+ }, 2000);
6010
+ } );
6011
+ } ).appendTo('#'+optionsTable+'Select');
6012
+ } );
6013
+ EOT;
6014
+ if ($tag) {
6015
+ $js .= '</script>'."\n";
6016
+ }
6017
+ return $js;
6018
+ }
6019
+
6020
+ public function docuCss($c = array())
6021
+ {
6022
+ $cd = array(
6023
+ 'cls' => 'optionsTable',
6024
+ 'l' => 'EN',
6025
+ 'tag' => false
6026
+ );
6027
+
6028
+ foreach ($cd as $k => $v) {
6029
+ if (isset($c[$k])) {
6030
+ ${$k} = $c[$k];
6031
+ } else {
6032
+ ${$k} = $v;
6033
+ }
6034
+ }
6035
+
6036
+ $description = array(
6037
+ 'EN' => 'Description',
6038
+ 'DE' => 'Beschreibung'
6039
+ );
6040
+
6041
+ $css = '';
6042
+
6043
+ if ($tag) {
6044
+ $css .= '<style type="text/css">'."\n";
6045
+ }
6046
+
6047
+ $css .= '
6048
+ .optionsTable, .optionsTable * {box-sizing: border-box;}
6049
+ .optionsTable {width: 100%; border-spacing: 0; font-size: 10pt;
6050
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}
6051
+ .optionsTable tbody[data-az_options_head].active th{background-color: #337AB7;
6052
+ border-color: #337AB7 !important; color: #FFF;}
6053
+ .optionsTable tbody[data-az_options_head] th i {margin-right: 10px; top: 0px; font-size: 10pt; color: #9E9E9E;}
6054
+ .optionsTable tbody[data-az_options_head].active th i{color: #FFF;}
6055
+ .optionsTable td {transition: background-color .15s ease;}
6056
+ .optionsTable th {white-space: nowrap;}
6057
+ .optionsTable td, .optionsTable th {padding-left: 5px; padding-right: 5px; vertical-align: top; line-height: 1.2em;
6058
+ text-align: left; padding-top: 3px; padding-bottom: 8px; border-bottom: 1px solid #DDD;}
6059
+ .optionsTable th {background-color: #EEE; padding-top: 10px;
6060
+ padding-bottom: 10px; font-size: 10pt; font-weight: bold;}
6061
+ .optionsTable th.optionsTabCat {cursor: pointer; background-color: #EEE; padding-top: 10px; padding-bottom: 10px;
6062
+ font-weight: normal; font-size:14pt; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}
6063
+
6064
+ .optionsTable ul, .optionsTable ol {padding-left: 14px; margin-top: 0;}
6065
+ .optionsTable li {margin-bottom: 5px; padding-left: 14px;}
6066
+ .optionsTable tbody tr:nth-child(odd) { background-color: #F9F9F9;}
6067
+ .optionsTable tbody tr:nth-child(even) { background-color: #FFF;}
6068
+ .optionsTable .removed {text-decoration: line-through;}
6069
+ .optionsTable .optionsType {text-align: right; font-size: 8pt; font-weight: bold; position: relative; color: #777;
6070
+ top: -3px; right: -2px; float: right; margin-left: 20px; margin-bottom: 11pt;min-width: 100px;}
6071
+
6072
+ .optionsTable tr td:last-child{border-right: #DDD 1px solid;}
6073
+ .optionsTable tr th:last-child{border-right: #DDD 1px solid;}
6074
+ .optionsTable tr td:first-child{border-left: #DDD 1px solid;}
6075
+ .optionsTable tr th:first-child{border-left: #DDD 1px solid;}
6076
+ .optionsTable tbody:first-child tr:first-child th{border-top: #DDD 1px solid;}
6077
+
6078
+ .optionsTable .az_highlight_tr, .optionsTable .az_highlight_tr td {background-color: yellow;
6079
+ transition: background-color .15s ease;}
6080
+ .optionsTable .optionsDefaultHeading {font-weight: bold; margin-top: 20px;}
6081
+ .optionsTable pre {border-radius: 0; border-top-width: 0; border-right-width: 0; border-bottom-width: 0;
6082
+ box-shadow: none; margin-top: 0; white-space: pre-wrap;}
6083
+ .optionsTable code{border-top: #DDD 1px solid; border-right: #DDD 1px solid; border-bottom: #DDD 1px solid;
6084
+ white-space: pre-wrap; padding-left: 2px; padding-right: 2px; tab-size: 2;}
6085
+
6086
+ @media only screen and (max-width: 1024px){
6087
+ .optionsTable tbody tr:nth-child(odd) {background-color: #FFF;}
6088
+ .optionsTable,.optionsTable>tbody,.optionsTable>tbody>tr>th,
6089
+ .optionsTable>tbody>tr>td,.optionsTable>tbody>tr {display: block;}
6090
+ .optionsTable>tbody>tr>th:not(.optionsTabCat) {display: none;}
6091
+ .optionsTable>tbody>tr>td {position: relative; padding-left: 100px;}
6092
+ .optionsTable>tbody>tr>td:nth-of-type(1), .optionsTable>tbody>tr>td:nth-of-type(2),
6093
+ .optionsTable>tbody>tr>td:nth-of-type(3) {border-bottom: 1px solid #DDD;}
6094
+ .optionsTable tr[data-az_opt_name]>td:nth-of-type(1){padding-bottom: 5px; padding-top: 5px;}
6095
+ .optionsTable tr[data-az_opt_name]>td:nth-of-type(2){border-bottom: none;
6096
+ border-left: #DDD 1px solid; border-right: #DDD 1px solid;}
6097
+ .optionsTable>tbody>tr.subOpt>td{background-color: #D4D4D4; color: #000;}
6098
+ .optionsTable>tbody>tr>td[colspan="3"] {background-color: #FFF !important;}
6099
+ .optionsTable>tbody>tr>td:before {position: absolute; top: 3px; left: 3px;width: 90px; white-space: nowrap;}
6100
+ .optionsTable tr:nth-child(2n+1) {background-color: #FFF;}
6101
+ .optionsTable>tbody>tr>td:nth-of-type(1) {background-color: #EEE; font-size:14pt;
6102
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6103
+ border-left: #DDD 1px solid; border-right: #DDD 1px solid;}
6104
+ .optionsTable>tbody>tr>td:nth-of-type(3) {overflow-x: hidden; border-left: #DDD 1px solid;}
6105
+ .optionsTable>tbody>tr>td:nth-of-type(1):before { content: "";}
6106
+ .optionsTable>tbody>tr>td:nth-of-type(2):before { content: "Default:";}
6107
+ .optionsTable>tbody>tr>td:nth-of-type(3):before {
6108
+ content: "'.(isset($description[$l]) ? $description[$l] : $description['EN']).':";}
6109
+ }
6110
+ ';
6111
+
6112
+ if ($tag) {
6113
+ $css .= '</style>'."\n";
6114
+ }
6115
+
6116
+ if ($cls != 'optionsTable') {
6117
+ $css = str_replace('.optionsTable', '.'.$cls, $css);
6118
+ }
6119
+
6120
+ return $css;
6121
+ }
6122
+
6123
+ public function arrayToXml($data, $xml_data)
6124
+ {
6125
+ foreach ($data as $key => $value) {
6126
+ if (is_numeric($key)) {
6127
+ $key = 'item'.$key;
6128
+ }
6129
+ if (is_array($value)) {
6130
+ $subnode = $xml_data->addChild($key);
6131
+ if (isset($value['attributes']) && is_array($value['attributes'])) {
6132
+ foreach ($value['attributes'] as $k => $v) {
6133
+ $subnode->addAttribute($k, $v);
6134
+ }
6135
+ unset($value['attributes']);
6136
+ }
6137
+ $this->arrayToXml($value, $subnode);
6138
+ } else {
6139
+ $xml_data->addChild($key, htmlspecialchars($value));
6140
+ }
6141
+ }
6142
+ return $xml_data;
6143
+ }
6144
+
6145
+ public function magento_xml_config()
6146
+ {
6147
+ $data = array();
6148
+ foreach ($this->categories as $k => $v) {
6149
+ if (!empty($this->exclude_cat_vendor) && in_array($k, $this->exclude_cat_vendor)) {
6150
+ continue;
6151
+ }
6152
+
6153
+ $data[$k] = array();
6154
+ }
6155
+
6156
+ $cnf = $this->getConfig();
6157
+
6158
+ foreach ($cnf as $k => $v) {
6159
+ $cat = $v['category'];
6160
+
6161
+ if (!isset($data[$cat]) || in_array($k, $this->exclude_opt_vendor)) {
6162
+ continue;
6163
+ }
6164
+ $data[$cat][$k] = $this->jsVal($v['default'], true, false, true);
6165
+ }
6166
+
6167
+ $xml_data = new SimpleXMLElement('<?xml version="1.0"?><axzoom_options></axzoom_options>');
6168
+ $xml_data = $this->arrayToXml($data, $xml_data);
6169
+ return $xml_data->asXML();
6170
+ }
6171
+
6172
+ public function magento_xml_system()
6173
+ {
6174
+ $l = 'EN';
6175
+ $data = array();
6176
+
6177
+ $data['general'] = array(
6178
+ 'attributes' => array(
6179
+ 'translate' => 'label'
6180
+ ),
6181
+ 'label' => 'About ',
6182
+ 'frontend_type' => 'text',
6183
+ 'sort_order' => 10,
6184
+ 'show_in_default' => 1,
6185
+ 'show_in_website' => 0,
6186
+ 'show_in_store' => 0,
6187
+ 'comment' => '
6188
+ <![CDATA[
6189
+ <style>
6190
+ .importantAZoption{
6191
+ color: #3d6611 !important;
6192
+ font-weight: bolder;
6193
+ background-position: 0 0 !important;
6194
+ padding-left: 24px;
6195
+ background-color: transparent !important;
6196
+ border-width: 0 !important;
6197
+ word-break: break-all;
6198
+ }
6199
+ .comment a{
6200
+ color: #ea7601 !important;
6201
+ }
6202
+ .importantAZcolor{
6203
+ color: #3d6611 !important;
6204
+ font-weight: bolder;
6205
+ }
6206
+ #licType{
6207
+ width: 100px !important;
6208
+ }
6209
+ </style>
6210
+
6211
+ <script>
6212
+ var az_getCoordsEl = function(elem) {
6213
+ var box = elem.getBoundingClientRect();
6214
+ var body = document.body;
6215
+ var docEl = document.documentElement;
6216
+ var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
6217
+ var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;
6218
+ var clientTop = docEl.clientTop || body.clientTop || 0;
6219
+ var clientLeft = docEl.clientLeft || body.clientLeft || 0;
6220
+ var top = box.top + scrollTop - clientTop;
6221
+ var left = box.left + scrollLeft - clientLeft;
6222
+ return { top: Math.round(top), left: Math.round(left) };
6223
+ };
6224
+ // Fieldset.az_open("axzoom_options_mouseOverZoomParam", "axzoom_options_mouseOverZoomParam_zoomWidth");
6225
+ if (Fieldset){
6226
+ Fieldset.az_open = function(containerId, scrollToElId){
6227
+ var test_col = $(containerId + "-state").value;
6228
+ if (test_col == 0){
6229
+ this.toggleCollapse(containerId);
6230
+ }
6231
+ if (scrollToElId){
6232
+ var ell = document.getElementById(scrollToElId);
6233
+ if (ell){
6234
+ var targetY = az_getCoordsEl(ell)["top"] - 50;
6235
+ if (targetY < 0){return;}
6236
+ window.scrollTo(0, targetY);
6237
+ }
6238
+ }
6239
+ }
6240
+ }else{
6241
+ Fieldset = {
6242
+ az_open: function(containerId){
6243
+ return;
6244
+ }
6245
+ };
6246
+ }
6247
+ </script>
6248
+ <p>AJAX-ZOOM is a multipurpose library for displaying (high resolution) images and 360°/3D spins. <br>
6249
+ This Magento extension integrates only one particular implementation (example) from AJAX-ZOOM library into Magento. <br>
6250
+ The independent example can be found here:
6251
+ <a target="_blank" href="http://www.ajax-zoom.com/examples/example32.php">
6252
+ http://www.ajax-zoom.com/examples/example32.php
6253
+ </a><br>
6254
+ There you will also find some subtle details about the options which you can configure below. <br>
6255
+ The options below mainly refer to this one implementation / example. <br><br>
6256
+ <b>However</b> AJAX-ZOOM has many other options which can be set manually in
6257
+ <code>/js/axzoom/axZm/zoomConfigCustom.inc.php</code>
6258
+ after <br> <code>elseif ($_GET[\'example\'] == \'mouseOverExtension360Ver5\')</code>.
6259
+ You can also override any PHP options contained in
6260
+ <code>/js/axzoom/axZm/zoomConfig.inc.php</code> and
6261
+ <code>/js/axzoom/axZm/zoomConfigCustom.inc.php</code> by editing
6262
+ <code>/js/axzoom/zoomConfigCustomAZ.inc.php</code><br>
6263
+ </p>
6264
+ If you do not want to edit PHP files - most of the options can be also set in these
6265
+ formfields as JS plain object:
6266
+ <ol style="margin-left: 25px; list-style: decimal">
6267
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open(\'axzoom_options_general_settings\', \'axzoom_options_general_settings_azOptions\')">azOptions</a> - for 2D zoom</li>
6268
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open(\'axzoom_options_general_settings\', \'axzoom_options_general_settings_azOptions360\')">azOptions360</a> - for 360/3D zoom</li>
6269
+ </ol><br>
6270
+ Depending on the template used you might need to adjust especially these two options:
6271
+ <ol style="margin-left: 25px; list-style: decimal">
6272
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open(\'axzoom_options_mouseover\', \'axzoom_options_mouseover_zoomWidth\')">zoomWidth</a> - width of the mouseover flyout window</li>
6273
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open(\'axzoom_options_mouseover\', \'axzoom_options_mouseover_zoomHeight\')">zoomHeight</a> - height of the mouseover flyout window</li>
6274
+ </ol><br>
6275
+ <p>If you will be not able to adjust these options on your own please
6276
+ <a target="_blank" href="http://www.ajax-zoom.com/index.php?cid=contact">ask for support</a>
6277
+ </p>
6278
+ <p>Other useful / most common options are marked <span class="importantAZcolor">green</span> with this symbol:
6279
+ <span class="notice-msg importantAZoption"></span>
6280
+ </p>
6281
+ ]]>
6282
+ '
6283
+ );
6284
+ $data['actions'] = array(
6285
+ 'attributes' => array(
6286
+ 'translate' => 'label'
6287
+ ),
6288
+ 'label' => 'Actions',
6289
+ 'frontend_type' => 'text',
6290
+ 'sort_order' => 20,
6291
+ 'show_in_default' => 1,
6292
+ 'show_in_website' => 1,
6293
+ 'show_in_store' => 1,
6294
+ 'fields' => array(
6295
+ 'resetbutton' => array(
6296
+ 'label' => 'Reset all options to default values',
6297
+ 'comment' => '<![CDATA[
6298
+ Reset all options except licenses to their default values
6299
+ ]]>',
6300
+ 'frontend_model' => 'zoom/adminhtml_system_config_form_resetbutton',
6301
+ 'sort_order' => 1,
6302
+ 'show_in_default' => 1,
6303
+ 'show_in_website' => 1,
6304
+ 'show_in_store' => 1
6305
+ ),
6306
+ 'numberimages' => array(
6307
+ 'label' => 'Get number images',
6308
+ 'comment' => '<![CDATA[
6309
+ Request total number of images
6310
+ ]]>',
6311
+ 'frontend_model' => 'zoom/adminhtml_system_config_form_numberimages',
6312
+ 'sort_order' => 2,
6313
+ 'show_in_default' => 1,
6314
+ 'show_in_website' => 1,
6315
+ 'show_in_store' => 1
6316
+ )
6317
+ )
6318
+ );
6319
+ $data['license'] = array(
6320
+ 'attributes' => array(
6321
+ 'translate' => 'label'
6322
+ ),
6323
+ 'label' => 'AJAX-ZOOM license(s)',
6324
+ 'frontend_type' => 'text',
6325
+ 'sort_order' => 30,
6326
+ 'show_in_default' => 1,
6327
+ 'show_in_website' => 1,
6328
+ 'show_in_store' => 1,
6329
+ 'fields' => array(
6330
+ 'lic' => array(
6331
+ 'label' => 'License',
6332
+ 'comment' => '<![CDATA[
6333
+ <a href="http://www.ajax-zoom.com/index.php?cid=contact" target="_blank">
6334
+ Ask for support</a>&nbsp;&nbsp;&nbsp;
6335
+ <a href="http://www.ajax-zoom.com/index.php?cid=download#heading_3" target="_blank">
6336
+ Buy a license</a>
6337
+ ]]>',
6338
+ 'frontend_model' => 'zoom/adminhtml_system_config_fieldset_license',
6339
+ 'backend_model' => 'adminhtml/system_config_backend_serialized_array',
6340
+ 'sort_order' => 1,
6341
+ 'show_in_default' => 1,
6342
+ 'show_in_website' => 1,
6343
+ 'show_in_store' => 1
6344
+ )
6345
+ )
6346
+ );
6347
+
6348
+ $n = 0;
6349
+ $cat_sort_start = 40;
6350
+ foreach ($this->categories as $k => $v) {
6351
+ if (!empty($this->exclude_cat_vendor) && in_array($k, $this->exclude_cat_vendor)) {
6352
+ continue;
6353
+ }
6354
+ $data[$k] = array();
6355
+ $data[$k]['attributes'] = array(
6356
+ 'translate' => 'label'
6357
+ );
6358
+ $data[$k]['label'] = $v['title'][$l];
6359
+ $data[$k]['frontend_type'] = 'text';
6360
+ $data[$k]['sort_order'] = $cat_sort_start + 10 * $n;
6361
+ $data[$k]['show_in_default'] = 1;
6362
+ $data[$k]['show_in_website'] = 1;
6363
+ $data[$k]['show_in_store'] = 1;
6364
+ $data[$k]['fields'] = array();
6365
+ $n++;
6366
+ }
6367
+
6368
+ $n = 0;
6369
+ $cat_sort_start = 10;
6370
+ $prev_cat = '';
6371
+ $cnf = $this->getConfig();
6372
+ foreach ($cnf as $k => $v) {
6373
+ $cat = $v['category'];
6374
+
6375
+ if (!isset($data[$cat]) || in_array($k, $this->exclude_opt_vendor)) {
6376
+ continue;
6377
+ }
6378
+
6379
+ if ($prev_cat != $cat) {
6380
+ $n = 0;
6381
+ }
6382
+
6383
+ $arr = array();
6384
+ if (isset($v['important']) && $v['important'] === true) {
6385
+ $arr['label'] = '<![CDATA[<div class="notice-msg importantAZoption">'.$k.'</div>]]>';
6386
+ } else {
6387
+ $arr['label'] = $k;
6388
+ }
6389
+
6390
+ $v['comment'][$l] = trim($v['comment'][$l]);
6391
+
6392
+ if (isset($v['isJsObject']) && $v['isJsObject'] === true) {
6393
+ $arr['comment'] = '<![CDATA[
6394
+ <div class="validation-advice">Attention: you are editing JavaScript object!
6395
+ Errors will lead to AJAX-ZOOM not working properly.</div>
6396
+ '.$v['comment'][$l].'
6397
+ ]]>';
6398
+ } elseif (isset($v['isJsArray']) && $v['isJsArray'] === true) {
6399
+ $arr['comment'] = '<![CDATA[
6400
+ <div class="validation-advice">Attention: you are editing JavaScript array!
6401
+ Errors will lead to AJAX-ZOOM not working properly.</div>
6402
+ '.$v['comment'][$l].'
6403
+ ]]>';
6404
+ } else {
6405
+ $arr['comment'] = '<![CDATA['.$v['comment'][$l].']]>';
6406
+ }
6407
+
6408
+ if ($v['display'] == 'switch') {
6409
+ $arr['frontend_type'] = 'select';
6410
+ $arr['source_model'] = 'axzoom/azsettings::yesno';
6411
+ } elseif ($v['display'] == 'select') {
6412
+ $arr['frontend_type'] = 'select';
6413
+ $arr['source_model'] = 'axzoom/azsettings::'.$k;
6414
+ } elseif ($v['display'] == 'textarea') {
6415
+ $arr['frontend_type'] = 'textarea';
6416
+ } elseif ($v['display'] == 'text') {
6417
+ $arr['frontend_type'] = 'text';
6418
+ }
6419
+
6420
+ $arr['sort_order'] = $cat_sort_start + 10 * $n;
6421
+ $arr['show_in_default'] = 1;
6422
+ $arr['show_in_website'] = 1;
6423
+ $arr['show_in_store'] = 1;
6424
+ $data[$cat]['fields'][$k] = $arr;
6425
+ $prev_cat = $cat;
6426
+ $n++;
6427
+ }
6428
+
6429
+ $xml_data = new SimpleXMLElement('<?xml version="1.0"?><groups></groups>');
6430
+ $xml_data = $this->arrayToXml($data, $xml_data);
6431
+ return $xml_data->asXML();
6432
+ }
6433
+ }
6434
+ }
app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Fieldset/License.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Fieldset/License.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -22,6 +22,7 @@ class Ax_Zoom_Block_Adminhtml_System_Config_Fieldset_License extends Mage_Adminh
22
  'label' => Mage::helper('axzoom')->__('Domain'),
23
  'style' => 'width:200px'
24
  ));
 
25
  $this->addColumn('type', array(
26
  'label' => Mage::helper('axzoom')->__('License Type'),
27
  'renderer' => 'bla'
@@ -41,16 +42,16 @@ class Ax_Zoom_Block_Adminhtml_System_Config_Fieldset_License extends Mage_Adminh
41
  'label' => Mage::helper('axzoom')->__('Error300'),
42
  'style' => 'width:100px'
43
  ));
44
-
45
  $this->_addAfter = false;
46
  $this->_addButtonLabel = Mage::helper('axzoom')->__('Add');
47
  }
48
 
49
  protected function _renderCellTemplate($columnName)
50
- {
51
  if ($columnName == 'type') {
52
  $el = $this->getElement();
53
-
54
  $inputName = $this->getElement()->getName() . '[#{_id}][' . $columnName . ']';
55
  $rendered = '<select id="licType" name="' . $inputName . '">';
56
  $rendered .= '<option value="evaluation" #{option_extra_attr_evaluation}>evaluation</option>';
@@ -62,7 +63,7 @@ class Ax_Zoom_Block_Adminhtml_System_Config_Fieldset_License extends Mage_Adminh
62
  $rendered .= '<option value="enterprise" #{option_extra_attr_enterprise}>enterprise</option>';
63
  $rendered .= '<option value="unlimited" #{option_extra_attr_unlimited}>unlimited</option>';
64
  $rendered .= '</select>';
65
-
66
  return $rendered;
67
  }
68
  return parent::_renderCellTemplate($columnName);
@@ -74,6 +75,5 @@ class Ax_Zoom_Block_Adminhtml_System_Config_Fieldset_License extends Mage_Adminh
74
  'option_extra_attr_' . $row->getData('type'),
75
  'selected="selected"'
76
  );
77
- }
78
  }
79
- ?>
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Fieldset/License.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
22
  'label' => Mage::helper('axzoom')->__('Domain'),
23
  'style' => 'width:200px'
24
  ));
25
+
26
  $this->addColumn('type', array(
27
  'label' => Mage::helper('axzoom')->__('License Type'),
28
  'renderer' => 'bla'
42
  'label' => Mage::helper('axzoom')->__('Error300'),
43
  'style' => 'width:100px'
44
  ));
45
+
46
  $this->_addAfter = false;
47
  $this->_addButtonLabel = Mage::helper('axzoom')->__('Add');
48
  }
49
 
50
  protected function _renderCellTemplate($columnName)
51
+ {
52
  if ($columnName == 'type') {
53
  $el = $this->getElement();
54
+
55
  $inputName = $this->getElement()->getName() . '[#{_id}][' . $columnName . ']';
56
  $rendered = '<select id="licType" name="' . $inputName . '">';
57
  $rendered .= '<option value="evaluation" #{option_extra_attr_evaluation}>evaluation</option>';
63
  $rendered .= '<option value="enterprise" #{option_extra_attr_enterprise}>enterprise</option>';
64
  $rendered .= '<option value="unlimited" #{option_extra_attr_unlimited}>unlimited</option>';
65
  $rendered .= '</select>';
66
+
67
  return $rendered;
68
  }
69
  return parent::_renderCellTemplate($columnName);
75
  'option_extra_attr_' . $row->getData('type'),
76
  'selected="selected"'
77
  );
78
+ }
79
  }
 
app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Numberimages.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Numberimages.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ class Ax_Zoom_Block_Adminhtml_System_Config_Form_Numberimages extends Mage_Adminhtml_Block_System_Config_Form_Field
18
+ {
19
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
20
+ {
21
+ //$html = parent::_getElementHtml($element);
22
+ $html = '';
23
+ $html .= '<script src="'.Mage::getModel('axzoom/ax360')->rootFolder().'js/axzoom/check_jquery_admin.js"></script>';
24
+ $html .= '<table><tr><td style="padding-right: 20px;">Unique images: </td><td><span id="axzoom_getnumberimages_2d"> ? </span> (from DB)</td></tr>';
25
+ $html .= '<tr><td>Images 360° / 3D: </td><td><span id="axzoom_getnumberimages_360"> ? </span></td></tr>';
26
+ $html .= '<tr><td>Sum: </td><td><span id="axzoom_getnumberimages_sum"> 0 </span></td></tr></table>';
27
+ $html .= '<button type="button" onsubmit="return false;" id="axzoom_getnumberimages" style="width: 100%;"><span></span>Get number images</button>';
28
+ $html .= '<script>
29
+ jQuery("#axzoom_getnumberimages")
30
+ .bind("click", function() {
31
+ jQuery("#axzoom_getnumberimages_2d, #axzoom_getnumberimages_360").html("&#8986;");
32
+ jQuery.ajax( {
33
+ url: "'.Mage::helper("adminhtml")->getUrl("adminhtml/axzoom/GetNumberImages").'",
34
+ success: function(data) {
35
+ if (typeof data == "string") {
36
+ data = JSON.parse(data);
37
+ }
38
+ jQuery("#axzoom_getnumberimages_2d").html(data.images2d);
39
+ jQuery("#axzoom_getnumberimages_360").html(data.images360);
40
+ jQuery("#axzoom_getnumberimages_sum").html(parseInt(data.images360) + parseInt(data.images2d));
41
+ },
42
+ error: function(data) {
43
+ alert("[TECHNICAL ERROR]");
44
+ }
45
+ });
46
+ });
47
+ </script>';
48
+ return $html;
49
+ }
50
+ }
app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Resetbutton.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/System/Config/Form/Button.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ class Ax_Zoom_Block_Adminhtml_System_Config_Form_Resetbutton extends Mage_Adminhtml_Block_System_Config_Form_Field
18
+ {
19
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
20
+ {
21
+ //$html = parent::_getElementHtml($element);
22
+ $html = '';
23
+ $html .= '<script src="'.Mage::getModel('axzoom/ax360')->rootFolder().'js/axzoom/check_jquery_admin.js"></script>';
24
+ $html .= '<button type="button" onsubmit="return false;" id="axzoom_reset_options" class="delete" style="width: 100%;"><span></span>Reset options</button>';
25
+ $html .= '<script>
26
+ jQuery("#axzoom_reset_options")
27
+ .bind("click", function() {
28
+ var result = confirm("Are you sure you want to reset all AJAX-ZOOM plugin options to their defaults?");
29
+ if (result) {
30
+ jQuery.ajax( {
31
+ url : "'.Mage::helper("adminhtml")->getUrl("adminhtml/axzoom/ResetAzExtension").'",
32
+ success : function(data) {
33
+ window.location.reload(true);
34
+ },
35
+ error : function(data) {
36
+ alert("[TECHNICAL ERROR]");
37
+ }
38
+ });
39
+ }
40
+ });
41
+ </script>';
42
+ return $html;
43
+ }
44
+ }
app/code/local/Ax/Zoom/Block/Adminhtml/Tabs/Tabid.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/Tabs/Tabid.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -20,30 +20,30 @@ class Ax_Zoom_Block_Adminhtml_Tabs_Tabid extends Mage_Adminhtml_Block_Widget
20
  {
21
  parent::__construct();
22
 
23
- $productId = Mage::app()->getRequest()->getParam('id');
24
-
25
  if (!empty($productId)) {
26
- $this->assign(array(
27
- 'files' => $this->getArcList()
28
- ));
29
- $this->setTemplate('axzoom/tab.phtml');
30
- }
31
  }
32
 
33
- public function getArcList() {
34
-
35
- $baseDir = Mage::getBaseDir();
36
- $files = array();
37
-
38
- if ($handle = opendir($baseDir . '/js/axzoom/zip/')) {
39
- while (false !== ($entry = readdir($handle))) {
40
- if ($entry != '.' && $entry != '..' && (strtolower(substr($entry, -3)) == 'zip' || is_dir($baseDir . '/js/axzoom/zip/' . $entry)) ) {
41
- array_push($files, $entry);
42
- }
43
- }
44
- closedir($handle);
45
- }
46
-
47
- return $files;
48
- }
49
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Block/Adminhtml/Tabs/Tabid.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
20
  {
21
  parent::__construct();
22
 
23
+ $productId = Mage::app()->getRequest()->getParam('id');
24
+
25
  if (!empty($productId)) {
26
+ $this->assign(array(
27
+ 'files' => $this->getArcList()
28
+ ));
29
+ $this->setTemplate('axzoom/tab.phtml');
30
+ }
31
  }
32
 
33
+ public function getArcList()
34
+ {
35
+ $baseDir = Mage::getBaseDir();
36
+ $files = array();
37
+
38
+ if ($handle = opendir($baseDir . '/js/axzoom/zip/')) {
39
+ while (false !== ($entry = readdir($handle))) {
40
+ if ($entry != '.' && $entry != '..' && (strtolower(substr($entry, -3)) == 'zip' || is_dir($baseDir . '/js/axzoom/zip/' . $entry)) ) {
41
+ array_push($files, $entry);
42
+ }
43
+ }
44
+ closedir($handle);
45
+ }
46
+
47
+ return $files;
48
+ }
49
+ }
app/code/local/Ax/Zoom/Helper/Data.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Helper/Data.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Helper/Data.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
app/code/local/Ax/Zoom/Helper/Head.php CHANGED
@@ -1,49 +1,57 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Helper/Head.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  class Ax_Zoom_Helper_Head extends Mage_Core_Helper_Abstract
18
  {
19
- public function getFancyboxCSS()
20
- {
21
- if (Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancyboxFullscreen' || Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancybox') {
22
- return 'axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css';
23
- }
24
- }
25
- public function getFancyboxJS()
26
- {
27
- if (Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancyboxFullscreen' || Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancybox') {
28
- return 'axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js';
29
- }
30
- }
31
- public function getFancyboxJSAX()
32
- {
33
- if (Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancyboxFullscreen' || Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'fancybox') {
34
- return 'axzoom/axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js';
35
- }
36
- }
37
- public function getColorboxCSS()
38
- {
39
- if (Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'colorbox') {
40
- return 'axzoom/axZm/plugins/demo/colorbox/example2/colorbox.css';
41
- }
42
- }
43
- public function getColorboxJS()
44
- {
45
- if (Mage::getStoreConfig('axzoom_options/main/ajaxZoomOpenMode') == 'colorbox') {
46
- return 'axzoom/axZm/plugins/demo/colorbox/jquery.colorbox-min.js';
47
- }
48
- }
49
- }
 
 
 
 
 
 
 
 
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Helper/Head.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  class Ax_Zoom_Helper_Head extends Mage_Core_Helper_Abstract
18
  {
19
+ public function getFancyboxCSS()
20
+ {
21
+ return 'axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css';
22
+ }
23
+
24
+ public function getFancyboxJS()
25
+ {
26
+ return 'axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js';
27
+ }
28
+
29
+ public function getFancyboxJSAX()
30
+ {
31
+ return 'axzoom/axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js';
32
+ }
33
+
34
+ public function getColorboxCSS()
35
+ {
36
+ return '';
37
+ }
38
+
39
+ public function getColorboxJS()
40
+ {
41
+ return '';
42
+ }
43
+
44
+ public function getSpinnerJS()
45
+ {
46
+ if (Mage::getStoreConfig('axzoom_options/mouseover/spinner') == 'true') {
47
+ return 'axzoom/axZm/plugins/spin/spin.min.js';
48
+ }
49
+ }
50
+
51
+ public function getPngModeCssFix()
52
+ {
53
+ if (Mage::getStoreConfig('axzoom_options/plugin_settings/pngModeCssFix') == 'true') {
54
+ return 'axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoomPng.5.css';
55
+ }
56
+ }
57
+ }
app/code/local/Ax/Zoom/Model/Ax360.php CHANGED
@@ -1,23 +1,23 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Ax360.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.3
7
- * Date: 2016-08-12
8
- * Review: 2016-08-12
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  class Ax_Zoom_Model_Ax360 extends Mage_Core_Model_Abstract
18
  {
19
- static $axZmH;
20
- static $zoom;
21
 
22
  protected function _construct()
23
  {
@@ -27,271 +27,307 @@ class Ax_Zoom_Model_Ax360 extends Mage_Core_Model_Abstract
27
 
28
  public function getSetsGroups($productId)
29
  {
30
- $tblItems = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360set');
31
- $collection = Mage::getModel('axzoom/ax360')->getCollection();
32
- $collection->getSelect()->join(array('i' => $tblItems),
33
- 'main_table.id_360 = i.id_360',
34
- array('qty' => 'COUNT(i.id_360)', 'id_360set' => 'id_360set'));
35
-
36
- $collection->getSelect()->group('main_table.id_360');
37
- return $collection->addFieldToFilter('id_product', $productId)->getData();
38
  }
39
 
40
  public function getSetsGroup($id360)
41
  {
42
- $tblItems = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360set');
43
- $collection = Mage::getModel('axzoom/ax360')->getCollection();
44
- $collection->getSelect()->join(array('i' => $tblItems),
45
- 'main_table.id_360 = i.id_360',
46
- array('qty' => 'COUNT(i.id_360)', 'id_360set' => 'id_360set'));
47
-
48
- $collection->getSelect()->group('main_table.id_360');
49
- return $collection->addFieldToFilter('main_table.id_360', $id360)->getData();
50
  }
51
 
52
- public function images360Json($productId, $extraGroups = array())
53
- {
54
-
55
- $extraGroups = array_unique($extraGroups);
56
-
57
- $json = '{';
58
- $cnt = 1;
59
-
60
- if (!is_array($productId)) {
61
- $products = array($productId);
62
- } else {
63
- $products = $productId;
64
- }
65
-
66
- foreach ($products as $productId) {
67
- $setsGroups = $this->getSetsGroups($productId);
68
- foreach ($setsGroups as $group) {
69
-
70
- if ($group['status'] == 0){
71
- continue;
72
- }
73
-
74
- $settings = $this->prepareSettings($group['settings']);
75
- if (!empty($settings)) $settings = ", $settings";
76
-
77
- if ($group['qty'] > 0) {
78
-
79
- $crop = empty($group['crop']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['crop']));
80
- $hotspot = empty($group['hotspot']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['hotspot']));
81
- /*if ($group['qty'] == 1) {
82
- $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $productId . "/" . $group['id_360'] . "/" . $group['id_360set'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
83
- } else {
84
- $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $productId . "/" . $group['id_360'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
85
- }*/
86
-
87
- if ($group['qty'] == 1) {
88
- $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $group['id_360'] . '/' . $group['id_360set'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
89
- } else {
90
- $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $group['id_360'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
91
- }
92
-
93
- if ($crop && $crop != '[]') {
94
- // this goes over parseJson
95
- $crop = str_replace('\\', '\\\\', $crop);
96
- $json .= ', "crop": '.$crop;
97
- }
98
-
99
- if ($hotspot && $hotspot != '{}') {
100
- // this goes over parseJson
101
- $hotspot = str_replace('\\', '\\\\', $hotspot);
102
- $json .= ', "hotspotFilePath": '.$hotspot;
103
- }
104
-
105
-
106
- $json .= '}';
107
-
108
- $cnt++;
109
- if ($cnt != count($setsGroups)+1) $json .= ',';
110
- }
111
- }
112
- }
113
-
114
- $cnt = 1;
115
- if ($extraGroups) {
116
- foreach ($extraGroups as $id360) {
117
-
118
- $setsGroup = $this->getSetsGroup($id360);
119
- $group = $setsGroup[0];
120
-
121
- if ($group['status'] == 0){
122
- continue;
123
- }
124
-
125
- $settings = $this->prepareSettings($group['settings']);
126
- if (!empty($settings)) $settings = ", $settings";
127
-
128
- if ($group['qty'] > 0) {
129
-
130
- $crop = empty($group['crop']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['crop']));
131
- $hotspot = empty($group['hotspot']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['hotspot']));
132
-
133
- /*if ($group['qty'] == 1) {
134
- $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $group['id_product'] . "/" . $group['id_360'] . "/" . $group['id_360set'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
135
- } else {
136
- $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $group['id_product'] . "/" . $group['id_360'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
137
- }*/
138
-
139
- if ($group['qty'] == 1) {
140
- $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $group['id_product'] . '/' . $group['id_360'] . '/' . $group['id_360set'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
141
- } else {
142
- $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $group['id_product'] . '/' . $group['id_360'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
143
- }
144
-
145
- if ($crop && $crop != '[]') {
146
- // this goes over parseJson
147
- $crop = str_replace('\\', '\\\\', $crop);
148
- $json .= ', "crop": '.$crop;
149
- }
150
-
151
- if ($hotspot && $hotspot != '{}') {
152
- // this goes over parseJson
153
- $hotspot = str_replace('\\', '\\\\', $hotspot);
154
- $json .= ', "hotspotFilePath": '.$hotspot;
155
- }
156
-
157
- $json .= '}';
158
-
159
- $cnt++;
160
- if ($cnt != count($extraGroups)+1) $json .= ',';
161
- }
162
- }
163
- }
164
-
165
- $json .= '}';
166
- $json = str_replace('\\n', '', $json);
167
- return $json;
168
- }
169
-
170
- public function prepareSettings($str)
171
- {
172
- $res = array();
173
- $settings = (array)Mage::helper('core')->jsonDecode($str);
174
- foreach ($settings as $key => $value) {
175
- if ($value == 'false' || $value == 'true' || $value == 'null' || is_numeric($value) || substr($value, 0, 1) == '{' || substr($value, 0, 1) == '[') {
176
- $res[] = '"'.$key.'": '.$value;
177
- } else {
178
- $res[] = '"'.$key.'": "'.$value.'"';
179
- }
180
- }
181
- return implode(', ', $res);
182
- }
183
-
184
- public function get360Images($productId, $id360set = '')
185
- {
186
- $files = array();
187
- $id360 = Mage::getModel('axzoom/ax360set')->load($id360set)->getId_360();
188
-
189
- $dir = Mage::getBaseDir() . '/js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set;
190
- if (file_exists($dir) && $handle = opendir($dir)) {
191
- while (false !== ($entry = readdir($handle))) {
192
- if ($entry != "." && $entry != "..") {
193
- $files[] = $entry;
194
- }
195
- }
196
- closedir($handle);
197
- }
198
- sort($files);
199
-
200
- $res = array();
201
- foreach ($files as $entry) {
202
- $tmp = explode('.', $entry);
203
- $ext = end($tmp);
204
- $name = preg_replace('|\.' . $ext . '$|', '', $entry);
205
- $res[] = array(
206
- 'thumb' => Mage::getBaseUrl('js') . 'axzoom/axZm/zoomLoad.php?azImg=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '/' . $entry . '&width=100&height=100&qual=90',
207
- 'filename' => $entry,
208
- 'id' => $name,
209
- 'ext' => $ext
210
- );
211
- }
212
-
213
- return $res;
214
- }
215
-
216
- public function deleteImageAZcache($file)
217
- {
218
-
219
- // Include all classes
220
- include_once (Mage::getBaseDir() . '/js/axzoom/axZm/zoomInc.inc.php');
221
- //error_reporting(E_ALL);
222
- if (!Ax_Zoom_Model_Ax360::$axZmH){
223
- Ax_Zoom_Model_Ax360::$axZmH = $axZmH;
224
- Ax_Zoom_Model_Ax360::$zoom = $zoom;
225
- }
226
-
227
- // What to delete
228
- $arrDel = array('In' => true, 'Th' => true, 'tC' => true, 'mO' => true, 'Ti' => true);
229
-
230
- // Remove all cache
231
- Ax_Zoom_Model_Ax360::$axZmH->removeAxZm(Ax_Zoom_Model_Ax360::$zoom, $file, $arrDel, false);
232
- }
233
 
234
  public function rootFolder()
235
  {
236
  return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
237
  }
238
 
239
- public function isProductActive($productId)
240
- {
241
- return !Mage::getModel('axzoom/axproducts')->getCollection()->addFieldToFilter('id_product', $productId)->count();
242
- }
243
-
244
- public function getCSV($input, $delimiter = ",", $enclosure = '"', $escape = "\\")
245
- {
246
- if (function_exists('str_getcsv')) {
247
- return str_getcsv($input, $delimiter, $enclosure, $escape);
248
- }
249
- else {
250
- $temp = fopen('php://memory', 'rw');
251
- fwrite($temp, $input);
252
- fseek($temp, 0);
253
- $r = fgetcsv($temp, 0, $delimiter, $enclosure);
254
- fclose($temp);
255
- return $r;
256
- }
257
- }
258
-
259
- public function isOnlyProductActive($productId)
260
- {
261
-
262
- $products = Mage::getStoreConfig('axzoom_options/products/displayOnlyForThisProductID');
263
-
264
- if (empty($products)) {
265
- return true;
266
- }
267
-
268
- $arr = $this->getCSV($products);
269
- if (in_array($productId, $arr)) {
270
- return true;
271
- }
272
- return false;
273
- }
274
-
275
- public function imagesJsonAll($arr)
276
- {
277
- $imagesJson = array();
278
- foreach ($arr as $k=>$v){
279
- array_push($imagesJson, '{img: "' .$v . '", title: ""}');
280
- }
281
- return '[' .implode(', ', $imagesJson). ']';
282
- }
283
-
284
- public function findDefaultLabelValue($arr, $key)
285
- {
286
- if (!is_array($arr)){return false;}
287
- foreach ($arr as $k=>$v){
288
- if (isset($v['value']) && $v['value'] == $key && isset($v['label'])){
289
- return $v['label'];
290
- }
291
- }
292
- return false;
293
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  }
295
 
296
  Ax_Zoom_Model_Ax360::$axZmH;
297
- Ax_Zoom_Model_Ax360::$zoom;
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Ax360.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  class Ax_Zoom_Model_Ax360 extends Mage_Core_Model_Abstract
18
  {
19
+ static $axZmH;
20
+ static $zoom;
21
 
22
  protected function _construct()
23
  {
27
 
28
  public function getSetsGroups($productId)
29
  {
30
+ $tblItems = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360set');
31
+ $collection = Mage::getModel('axzoom/ax360')->getCollection();
32
+ $collection->getSelect()->join(array('i' => $tblItems),
33
+ 'main_table.id_360 = i.id_360',
34
+ array('qty' => 'COUNT(i.id_360)', 'id_360set' => 'id_360set'));
35
+
36
+ $collection->getSelect()->group('main_table.id_360');
37
+ return $collection->addFieldToFilter('id_product', $productId)->getData();
38
  }
39
 
40
  public function getSetsGroup($id360)
41
  {
42
+ $tblItems = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360set');
43
+ $collection = Mage::getModel('axzoom/ax360')->getCollection();
44
+ $collection->getSelect()->join(array('i' => $tblItems),
45
+ 'main_table.id_360 = i.id_360',
46
+ array('qty' => 'COUNT(i.id_360)', 'id_360set' => 'id_360set'));
47
+
48
+ $collection->getSelect()->group('main_table.id_360');
49
+ return $collection->addFieldToFilter('main_table.id_360', $id360)->getData();
50
  }
51
 
52
+ public function images360Json($productId, $extraGroups = array())
53
+ {
54
+ $extraGroups = array_unique($extraGroups);
55
+
56
+ $json = '{';
57
+ $cnt = 1;
58
+
59
+ if (!is_array($productId)) {
60
+ $products = array($productId);
61
+ } else {
62
+ $products = $productId;
63
+ }
64
+
65
+ foreach ($products as $productId) {
66
+ $setsGroups = $this->getSetsGroups($productId);
67
+ foreach ($setsGroups as $group) {
68
+
69
+ if ($group['status'] == 0) {
70
+ continue;
71
+ }
72
+
73
+ $settings = $this->prepareSettings($group['settings']);
74
+ if (!empty($settings)) $settings = ", $settings";
75
+
76
+ if ($group['qty'] > 0) {
77
+
78
+ $crop = empty($group['crop']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['crop']));
79
+ $hotspot = empty($group['hotspot']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['hotspot']));
80
+ /*if ($group['qty'] == 1) {
81
+ $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $productId . "/" . $group['id_360'] . "/" . $group['id_360set'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
82
+ } else {
83
+ $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $productId . "/" . $group['id_360'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
84
+ }*/
85
+
86
+ if ($group['qty'] == 1) {
87
+ $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $group['id_360'] . '/' . $group['id_360set'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
88
+ } else {
89
+ $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $group['id_360'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
90
+ }
91
+
92
+ if ($crop && $crop != '[]') {
93
+ // this goes over parseJson
94
+ $crop = str_replace('\\', '\\\\', $crop);
95
+ $json .= ', "crop": '.$crop;
96
+ }
97
+
98
+ if ($hotspot && $hotspot != '{}') {
99
+ // this goes over parseJson
100
+ $hotspot = str_replace('\\', '\\\\', $hotspot);
101
+ $json .= ', "hotspotFilePath": '.$hotspot;
102
+ }
103
+
104
+ $json .= '}';
105
+
106
+ $cnt++;
107
+ if ($cnt != count($setsGroups)+1) $json .= ',';
108
+ }
109
+ }
110
+ }
111
+
112
+ $cnt = 1;
113
+ if ($extraGroups) {
114
+ foreach ($extraGroups as $id360) {
115
+
116
+ $setsGroup = $this->getSetsGroup($id360);
117
+ $group = $setsGroup[0];
118
+
119
+ if ($group['status'] == 0) {
120
+ continue;
121
+ }
122
+
123
+ $settings = $this->prepareSettings($group['settings']);
124
+ if (!empty($settings)) $settings = ", $settings";
125
+
126
+ if ($group['qty'] > 0) {
127
+
128
+ $crop = empty($group['crop']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['crop']));
129
+ $hotspot = empty($group['hotspot']) ? '[]' : trim(preg_replace('/\s+/', ' ', $group['hotspot']));
130
+
131
+ /*if ($group['qty'] == 1) {
132
+ $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $group['id_product'] . "/" . $group['id_360'] . "/" . $group['id_360set'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
133
+ } else {
134
+ $json .= "'" . $group['id_360'] . "'" . ": {'path': '" . $this->rootFolder() . "js/axzoom/pic/360/" . $group['id_product'] . "/" . $group['id_360'] . "'" . $settings . ", 'combinations': [" . $group['combinations'] . "]";
135
+ }*/
136
+
137
+ if ($group['qty'] == 1) {
138
+ $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $group['id_product'] . '/' . $group['id_360'] . '/' . $group['id_360set'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
139
+ } else {
140
+ $json .= '"' . $group['id_360'] . '"' . ': {"path": "' . $this->rootFolder() . 'js/axzoom/pic/360/' . $group['id_product'] . '/' . $group['id_360'] . '"' . $settings . ', "combinations": [' . $group['combinations'] . ']';
141
+ }
142
+
143
+ if ($crop && $crop != '[]') {
144
+ // this goes over parseJson
145
+ $crop = str_replace('\\', '\\\\', $crop);
146
+ $json .= ', "crop": '.$crop;
147
+ }
148
+
149
+ if ($hotspot && $hotspot != '{}') {
150
+ // this goes over parseJson
151
+ $hotspot = str_replace('\\', '\\\\', $hotspot);
152
+ $json .= ', "hotspotFilePath": '.$hotspot;
153
+ }
154
+
155
+ $json .= '}';
156
+
157
+ $cnt++;
158
+ if ($cnt != count($extraGroups)+1) $json .= ',';
159
+ }
160
+ }
161
+ }
162
+
163
+ $json .= '}';
164
+ $json = str_replace('\\n', '', $json);
165
+ return $json;
166
+ }
167
+
168
+ public function prepareSettings($str)
169
+ {
170
+ $res = array();
171
+ $settings = (array)Mage::helper('core')->jsonDecode($str);
172
+ foreach ($settings as $key => $value) {
173
+ if ($value == 'false' || $value == 'true' || $value == 'null' || is_numeric($value) || substr($value, 0, 1) == '{' || substr($value, 0, 1) == '[') {
174
+ $res[] = '"'.$key.'": '.$value;
175
+ } else {
176
+ $res[] = '"'.$key.'": "'.$value.'"';
177
+ }
178
+ }
179
+ return implode(', ', $res);
180
+ }
181
+
182
+ public function get360Images($productId, $id360set = '')
183
+ {
184
+ $files = array();
185
+ $id360 = Mage::getModel('axzoom/ax360set')->load($id360set)->getId_360();
186
+
187
+ $dir = Mage::getBaseDir() . '/js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set;
188
+ if (file_exists($dir) && $handle = opendir($dir)) {
189
+ while (false !== ($entry = readdir($handle))) {
190
+ if ($entry != "." && $entry != "..") {
191
+ $files[] = $entry;
192
+ }
193
+ }
194
+ closedir($handle);
195
+ }
196
+ sort($files);
197
+
198
+ $res = array();
199
+ foreach ($files as $entry) {
200
+ $tmp = explode('.', $entry);
201
+ $ext = end($tmp);
202
+ $name = preg_replace('|\.' . $ext . '$|', '', $entry);
203
+ $res[] = array(
204
+ 'thumb' => Mage::getBaseUrl('js') . 'axzoom/axZm/zoomLoad.php?azImg=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '/' . $entry . '&width=100&height=100&qual=90',
205
+ 'filename' => $entry,
206
+ 'id' => $name,
207
+ 'ext' => $ext
208
+ );
209
+ }
210
+
211
+ return $res;
212
+ }
213
+
214
+ public function deleteImageAZcache($file)
215
+ {
216
+ // Include all classes
217
+ include_once (Mage::getBaseDir() . '/js/axzoom/axZm/zoomInc.inc.php');
218
+
219
+ //error_reporting(E_ALL);
220
+
221
+ if (!Ax_Zoom_Model_Ax360::$axZmH) {
222
+ Ax_Zoom_Model_Ax360::$axZmH = $axZmH;
223
+ Ax_Zoom_Model_Ax360::$zoom = $zoom;
224
+ }
225
+
226
+ // What to delete
227
+ $arrDel = array('In' => true, 'Th' => true, 'tC' => true, 'mO' => true, 'Ti' => true);
228
+
229
+ // Remove all cache
230
+ Ax_Zoom_Model_Ax360::$axZmH->removeAxZm(Ax_Zoom_Model_Ax360::$zoom, $file, $arrDel, false);
231
+ }
 
232
 
233
  public function rootFolder()
234
  {
235
  return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
236
  }
237
 
238
+ public function isProductActive($productId)
239
+ {
240
+ return !Mage::getModel('axzoom/axproducts')->getCollection()->addFieldToFilter('id_product', $productId)->count();
241
+ }
242
+
243
+ public function getCSV($input, $delimiter = ",", $enclosure = '"', $escape = "\\")
244
+ {
245
+ if (function_exists('str_getcsv')) {
246
+ return str_getcsv($input, $delimiter, $enclosure, $escape);
247
+ } else {
248
+ $temp = fopen('php://memory', 'rw');
249
+ fwrite($temp, $input);
250
+ fseek($temp, 0);
251
+ $r = fgetcsv($temp, 0, $delimiter, $enclosure);
252
+ fclose($temp);
253
+ return $r;
254
+ }
255
+ }
256
+
257
+ public function isOnlyProductActive($productId)
258
+ {
259
+ $products = Mage::getStoreConfig('axzoom_options/plugin_settings/displayOnlyForThisProductID');
260
+ $enableInFrontDetail = Mage::getStoreConfig('axzoom_options/plugin_settings/enableInFrontDetail');
261
+
262
+ if ($enableInFrontDetail == 'false') {
263
+ return false;
264
+ }
265
+
266
+ if (empty($products)) {
267
+ return true;
268
+ }
269
+
270
+ $arr = $this->getCSV($products);
271
+ if (in_array($productId, $arr)) {
272
+ return true;
273
+ }
274
+ return false;
275
+ }
276
+
277
+ public function imagesJsonAll($arr)
278
+ {
279
+ $imagesJson = array();
280
+ foreach ($arr as $k => $v) {
281
+ array_push($imagesJson, '{img: "' .$v . '", title: ""}');
282
+ }
283
+ return '[' .implode(', ', $imagesJson). ']';
284
+ }
285
+
286
+ public function findDefaultLabelValue($arr, $key)
287
+ {
288
+ if (!is_array($arr)) {
289
+ return false;
290
+ }
291
+ foreach ($arr as $k => $v) {
292
+ if (isset($v['value']) && $v['value'] == $key && isset($v['label'])) {
293
+ return $v['label'];
294
+ }
295
+ }
296
+ return false;
297
+ }
298
+
299
+ public function normalizeConfig($conf, $prefix = '')
300
+ {
301
+ $ret = array();
302
+ foreach ($conf as $cat => $items) {
303
+ foreach ($items as $k => $v) {
304
+ $ret[strtoupper($prefix).'_'.strtoupper($k)] = $v;
305
+ }
306
+ }
307
+ return $ret;
308
+ }
309
+
310
+ public function prepareInitParamFront($conf = array())
311
+ {
312
+ require_once dirname(dirname(__FILE__)).'/AzMouseoverSettings.php';
313
+ require dirname(dirname(__FILE__)).'/AzMouseoverConfig.php';
314
+ $mouseover_settings = new AzMouseoverSettings($az_mouseover_config_magento);
315
+ if (empty($conf)) {
316
+ $conf = Mage::getStoreConfig('axzoom_options');
317
+ }
318
+
319
+ return $mouseover_settings->getInitJs(array(
320
+ 'cfg' => $this->normalizeConfig($conf, 'AJAXZOOM'),
321
+ 'window' => 'window.',
322
+ 'holder_object' => 'jQuery.axZm_psh',
323
+ 'exclude_opt' => array(),
324
+ 'exclude_cat' => array('video_settings'),
325
+ 'ovrprefix' => 'AJAXZOOM',
326
+ 'differ' => true,
327
+ 'min' => true
328
+ ));
329
+ }
330
  }
331
 
332
  Ax_Zoom_Model_Ax360::$axZmH;
333
+ Ax_Zoom_Model_Ax360::$zoom;
app/code/local/Ax/Zoom/Model/Ax360set.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Ax360set.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -25,29 +25,29 @@ class Ax_Zoom_Model_Ax360set extends Mage_Core_Model_Abstract
25
  public function getSets($productId)
26
  {
27
 
28
- $model = Mage::getModel('axzoom/ax360set');
29
- $setsCollection = $model->getCollection();
30
-
31
- $tbl_set_group = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360');
32
- $setsCollection->getSelect()->join(array('t2' => $tbl_set_group), 'main_table.id_360 = t2.id_360 AND t2.id_product = ' . $productId, array('t2.name', 't2.status'));
33
- $sets = $setsCollection->getData();
34
-
35
- $baseDir = Mage::getBaseDir();
36
- $baseUrlJs = Mage::getBaseUrl('js');
37
-
38
- foreach ($sets as &$set) {
39
- if (file_exists($baseDir . '/js/axzoom/pic/360/' . $productId . '/' . $set['id_360'] . '/' . $set['id_360set'])) {
40
- $set['path'] = $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $set['id_360'] . '/' . $set['id_360set'] . '&width=100&height=100&thumbMode=contain';
41
- } else {
42
- $set['path'] = $baseUrlJs . 'axzoom/no_image-100x100.jpg';
43
- }
44
- }
45
-
46
- return $sets;
47
  }
48
 
49
  public function rootFolder()
50
  {
51
- return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
52
  }
53
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Ax360set.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
25
  public function getSets($productId)
26
  {
27
 
28
+ $model = Mage::getModel('axzoom/ax360set');
29
+ $setsCollection = $model->getCollection();
30
+
31
+ $tbl_set_group = Mage::getSingleton('core/resource')->getTableName('ajaxzoom360');
32
+ $setsCollection->getSelect()->join(array('t2' => $tbl_set_group), 'main_table.id_360 = t2.id_360 AND t2.id_product = ' . $productId, array('t2.name', 't2.status'));
33
+ $sets = $setsCollection->getData();
34
+
35
+ $baseDir = Mage::getBaseDir();
36
+ $baseUrlJs = Mage::getBaseUrl('js');
37
+
38
+ foreach ($sets as &$set) {
39
+ if (file_exists($baseDir . '/js/axzoom/pic/360/' . $productId . '/' . $set['id_360'] . '/' . $set['id_360set'])) {
40
+ $set['path'] = $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $set['id_360'] . '/' . $set['id_360set'] . '&width=100&height=100&thumbMode=contain';
41
+ } else {
42
+ $set['path'] = $baseUrlJs . 'axzoom/no_image-100x100.jpg';
43
+ }
44
+ }
45
+
46
+ return $sets;
47
  }
48
 
49
  public function rootFolder()
50
  {
51
+ return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
52
  }
53
+ }
app/code/local/Ax/Zoom/Model/Axproducts.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Axproducts.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -21,4 +21,4 @@ class Ax_Zoom_Model_Axproducts extends Mage_Core_Model_Abstract
21
  parent::_construct();
22
  $this->_init('axzoom/axproducts');
23
  }
24
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Axproducts.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
21
  parent::_construct();
22
  $this->_init('axzoom/axproducts');
23
  }
24
+ }
app/code/local/Ax/Zoom/Model/Azsettings.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Azsettings.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ class Ax_Zoom_Model_Azsettings
18
+ {
19
+ public static $mouseover_settings;
20
+ public static $mouseover_cfg;
21
+
22
+ public function __call($func, $params)
23
+ {
24
+ $this->initAzOpt();
25
+ if ($func == 'yesno') {
26
+ return array(
27
+ 'false' => Mage::helper('axzoom')->__('No'),
28
+ 'true' => Mage::helper('axzoom')->__('Yes')
29
+ );
30
+ } elseif (isset(self::$mouseover_cfg[$func]) && is_array(self::$mouseover_cfg[$func]['options'])) {
31
+ return $this->retOptArr(self::$mouseover_cfg[$func]['options']);
32
+ } else {
33
+ return array();
34
+ }
35
+ }
36
+
37
+ public function initAzOpt()
38
+ {
39
+ if (!class_exists('AzMouseoverSettings', false) || !self::$mouseover_settings) {
40
+ require_once dirname(dirname(__FILE__)).'/AzMouseoverSettings.php';
41
+ require dirname(dirname(__FILE__)).'/AzMouseoverConfig.php';
42
+ self::$mouseover_settings = new AzMouseoverSettings($az_mouseover_config_magento);
43
+ self::$mouseover_cfg = self::$mouseover_settings->getConfig();
44
+ }
45
+ }
46
+
47
+ public function retOptArr($arr)
48
+ {
49
+ $ret = array();
50
+
51
+ foreach ($arr as $v) {
52
+ $ret[$v[0]] = Mage::helper('axzoom')->__($v[1]);
53
+ }
54
+
55
+ return $ret;
56
+ }
57
+ }
app/code/local/Ax/Zoom/Model/Galleryposition.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Galleryposition.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- class Ax_Zoom_Model_Galleryposition
18
- {
19
- public function toOptionArray()
20
- {
21
- return array(
22
- array('value'=>'top', 'label'=>Mage::helper('axzoom')->__('top')),
23
- array('value'=>'right', 'label'=>Mage::helper('axzoom')->__('right')),
24
- array('value'=>'bottom', 'label'=>Mage::helper('axzoom')->__('bottom')),
25
- array('value'=>'left', 'label'=>Mage::helper('axzoom')->__('left'))
26
- );
27
- }
28
-
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/Model/Observer.php CHANGED
@@ -1,38 +1,37 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Observer.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
- class Ax_Zoom_Model_Observer {
 
18
  public function coreBlockBefore($observer)
19
  {
20
-
21
  if ($observer->getBlock() instanceof Mage_Catalog_Block_Product_View_Media) {
22
 
23
  // if AJAX ZOOM is enabled for exact product then replace the product/view/media block
24
  $productId = Mage::app()->getRequest()->getParam('id');
25
-
26
  $ax = Mage::getModel('axzoom/ax360');
27
  $active = $ax->isProductActive($productId);
28
 
29
- if($active && $ax->isOnlyProductActive($productId)) {
30
  $observer->getBlock()->setTemplate('ax_zoom/catalog/product/view/media.phtml');
31
  }
32
  }
33
  }
34
 
35
-
36
  public function productBefore($observer)
37
  {
38
  }
@@ -43,7 +42,7 @@ class Ax_Zoom_Model_Observer {
43
 
44
  public function productSaveAfter($observer)
45
  {
46
- }
47
 
48
  public function deleteProduct($observer)
49
  {
@@ -68,8 +67,8 @@ class Ax_Zoom_Model_Observer {
68
  public function save360($observer)
69
  {
70
  $productId = $observer->product->entity_id;
71
- $postData = Mage::app()->getRequest()->getPost();
72
-
73
  // remove images from Ax cache if image checked as remove
74
  $images = Mage::helper('core')->jsonDecode($postData['product']['media_gallery']['images']);
75
  foreach ($images as $image) {
@@ -77,30 +76,30 @@ class Ax_Zoom_Model_Observer {
77
  Mage::getModel('axzoom/ax360')->deleteImageAZcache(basename($image['file']));
78
  }
79
  }
80
-
81
- // save status
82
- if (isset($postData['az_active']) && $postData['az_active'] == 1) {
83
- $this->activateAx($productId);
84
- } else {
85
- Mage::getModel('axzoom/axproducts')->setData(array('id_product' => $productId))->save();
86
- }
87
-
88
- // save settings
89
- if(isset($postData['settings'])) foreach ($postData['settings'] as $id_360 => $string) {
90
-
91
- Mage::getModel('axzoom/ax360')->load($id_360)->addData(array(
92
  'settings' => urldecode($string),
93
  'combinations' => urldecode($postData['comb'][$id_360])
94
- ))->setId($id_360)->save();
95
- }
96
  }
97
-
98
  public function activateAx($productId)
99
  {
100
- $res = Mage::getSingleton('core/resource');
101
- $con = $res->getConnection('core_write');
102
- $table = $res->getTableName('axzoom/table_axproducts');
103
- $query = "DELETE FROM {$table} WHERE id_product = " . (int)$productId;
104
- $con->query($query);
105
  }
106
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Observer.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
+ class Ax_Zoom_Model_Observer
18
+ {
19
  public function coreBlockBefore($observer)
20
  {
 
21
  if ($observer->getBlock() instanceof Mage_Catalog_Block_Product_View_Media) {
22
 
23
  // if AJAX ZOOM is enabled for exact product then replace the product/view/media block
24
  $productId = Mage::app()->getRequest()->getParam('id');
25
+
26
  $ax = Mage::getModel('axzoom/ax360');
27
  $active = $ax->isProductActive($productId);
28
 
29
+ if ($active && $ax->isOnlyProductActive($productId)) {
30
  $observer->getBlock()->setTemplate('ax_zoom/catalog/product/view/media.phtml');
31
  }
32
  }
33
  }
34
 
 
35
  public function productBefore($observer)
36
  {
37
  }
42
 
43
  public function productSaveAfter($observer)
44
  {
45
+ }
46
 
47
  public function deleteProduct($observer)
48
  {
67
  public function save360($observer)
68
  {
69
  $productId = $observer->product->entity_id;
70
+ $postData = Mage::app()->getRequest()->getPost();
71
+
72
  // remove images from Ax cache if image checked as remove
73
  $images = Mage::helper('core')->jsonDecode($postData['product']['media_gallery']['images']);
74
  foreach ($images as $image) {
76
  Mage::getModel('axzoom/ax360')->deleteImageAZcache(basename($image['file']));
77
  }
78
  }
79
+
80
+ // save status
81
+ if (isset($postData['az_active']) && $postData['az_active'] == 1) {
82
+ $this->activateAx($productId);
83
+ } else {
84
+ Mage::getModel('axzoom/axproducts')->setData(array('id_product' => $productId))->save();
85
+ }
86
+
87
+ // save settings
88
+ if (isset($postData['settings'])) foreach ($postData['settings'] as $id_360 => $string) {
89
+
90
+ Mage::getModel('axzoom/ax360')->load($id_360)->addData(array(
91
  'settings' => urldecode($string),
92
  'combinations' => urldecode($postData['comb'][$id_360])
93
+ ))->setId($id_360)->save();
94
+ }
95
  }
96
+
97
  public function activateAx($productId)
98
  {
99
+ $res = Mage::getSingleton('core/resource');
100
+ $con = $res->getConnection('core_write');
101
+ $table = $res->getTableName('axzoom/table_axproducts');
102
+ $query = "DELETE FROM {$table} WHERE id_product = " . (int)$productId;
103
+ $con->query($query);
104
  }
105
+ }
app/code/local/Ax/Zoom/Model/Position.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Position.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- class Ax_Zoom_Model_Position
18
- {
19
- public function toOptionArray()
20
- {
21
- return array(
22
- array('value'=>'inside', 'label'=>Mage::helper('axzoom')->__('inside')),
23
- array('value'=>'top', 'label'=>Mage::helper('axzoom')->__('top')),
24
- array('value'=>'right', 'label'=>Mage::helper('axzoom')->__('right')),
25
- array('value'=>'bottom', 'label'=>Mage::helper('axzoom')->__('bottom')),
26
- array('value'=>'left', 'label'=>Mage::helper('axzoom')->__('left'))
27
- );
28
- }
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/Model/Position4.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Position4.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- class Ax_Zoom_Model_Position4
18
- {
19
- public function toOptionArray()
20
- {
21
- return array(
22
- array('value'=>'top', 'label'=>Mage::helper('axzoom')->__('top')),
23
- array('value'=>'right', 'label'=>Mage::helper('axzoom')->__('right')),
24
- array('value'=>'bottom', 'label'=>Mage::helper('axzoom')->__('bottom')),
25
- array('value'=>'left', 'label'=>Mage::helper('axzoom')->__('left'))
26
- );
27
- }
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/Model/Resource/Ax360.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -20,4 +20,4 @@ class Ax_Zoom_Model_Resource_Ax360 extends Mage_Core_Model_Mysql4_Abstract
20
  {
21
  $this->_init('axzoom/table_ax360', 'id_360');
22
  }
23
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
20
  {
21
  $this->_init('axzoom/table_ax360', 'id_360');
22
  }
23
+ }
app/code/local/Ax/Zoom/Model/Resource/Ax360/Collection.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360/Collection.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -21,4 +21,4 @@ class Ax_Zoom_Model_Resource_Ax360_Collection extends Mage_Core_Model_Mysql4_Col
21
  parent::_construct();
22
  $this->_init('axzoom/ax360');
23
  }
24
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360/Collection.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
21
  parent::_construct();
22
  $this->_init('axzoom/ax360');
23
  }
24
+ }
app/code/local/Ax/Zoom/Model/Resource/Ax360set.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360set.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -20,4 +20,4 @@ class Ax_Zoom_Model_Resource_Ax360set extends Mage_Core_Model_Mysql4_Abstract
20
  {
21
  $this->_init('axzoom/table_ax360set', 'id_360set');
22
  }
23
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360set.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
20
  {
21
  $this->_init('axzoom/table_ax360set', 'id_360set');
22
  }
23
+ }
app/code/local/Ax/Zoom/Model/Resource/Ax360set/Collection.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360set/Collection.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -21,4 +21,4 @@ class Ax_Zoom_Model_Resource_Ax360set_Collection extends Mage_Core_Model_Mysql4_
21
  parent::_construct();
22
  $this->_init('axzoom/ax360set');
23
  }
24
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Ax360set/Collection.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
21
  parent::_construct();
22
  $this->_init('axzoom/ax360set');
23
  }
24
+ }
app/code/local/Ax/Zoom/Model/Resource/Axproducts.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Axproducts.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -20,4 +20,4 @@ class Ax_Zoom_Model_Resource_Axproducts extends Mage_Core_Model_Mysql4_Abstract
20
  {
21
  $this->_init('axzoom/table_axproducts', null);
22
  }
23
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Axproducts.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
20
  {
21
  $this->_init('axzoom/table_axproducts', null);
22
  }
23
+ }
app/code/local/Ax/Zoom/Model/Resource/Axproducts/Collection.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Axproducts/Collection.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -21,4 +21,4 @@ class Ax_Zoom_Model_Resource_Axproducts_Collection extends Mage_Core_Model_Mysql
21
  parent::_construct();
22
  $this->_init('axzoom/axproducts');
23
  }
24
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Resource/Axproducts/Collection.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
21
  parent::_construct();
22
  $this->_init('axzoom/axproducts');
23
  }
24
+ }
app/code/local/Ax/Zoom/Model/Words.php DELETED
@@ -1,29 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Words.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- class Ax_Zoom_Model_Words
18
- {
19
- public function toOptionArray()
20
- {
21
- return array(
22
- array('value'=>1, 'label'=>Mage::helper('axzoom')->__('Hello')),
23
- array('value'=>2, 'label'=>Mage::helper('axzoom')->__('Goodbye')),
24
- array('value'=>3, 'label'=>Mage::helper('axzoom')->__('Yes')),
25
- array('value'=>4, 'label'=>Mage::helper('axzoom')->__('No')),
26
- );
27
- }
28
-
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/Model/Yesno.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/Model/Yesno.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- class Ax_Zoom_Model_Yesno
18
- {
19
- public function toOptionArray()
20
- {
21
- return array(
22
- array('value'=>'false', 'label'=>Mage::helper('axzoom')->__('No')),
23
- array('value'=>'true', 'label'=>Mage::helper('axzoom')->__('Yes'))
24
- );
25
- }
26
-
27
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/controllers/AxzoomController.php CHANGED
@@ -1,21 +1,60 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/controllers/IndexController.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-08-22
8
- * Review: 2016-08-22
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
- class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
18
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  public function AddProductImage360Action()
20
  {
21
  $productId = Mage::app()->getRequest()->getParam('id_product');
@@ -25,18 +64,18 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
25
 
26
  if (isset($_FILES['file360']['name'][0]) && $_FILES['file360']['name'][0] != '') {
27
  try {
28
- $fileName = $_FILES['file360']['name'][0];
29
- $fileExt = strtolower(substr(strrchr($fileName, '.'), 1));
30
- $fileNamewoe = $productId . '_' . $id360set . '_' . $this->imgNameFilter(rtrim($fileName, '.' . $fileExt));
31
- $fileName = $fileNamewoe . '.' . $fileExt;
32
-
33
- $uploader = new Varien_File_Uploader(array(
34
- 'name' => $_FILES['file360']['name'][0],
35
- 'type' => $_FILES['file360']['type'][0],
36
- 'tmp_name' => $_FILES['file360']['tmp_name'][0],
37
- 'error' => $_FILES['file360']['error'][0],
38
- 'size' => $_FILES['file360']['size'][0]
39
- ));
40
  $uploader->setAllowedExtensions(array('png', 'jpg')); //allowed extensions
41
  $uploader->setAllowRenameFiles(false);
42
  $uploader->setFilesDispersion(false);
@@ -50,14 +89,14 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
50
 
51
  die(Mage::helper('core')->jsonEncode(array(
52
  'file360' => array(array(
53
- 'status' => 'ok',
54
- 'name' => $fileName,
55
- 'id' => $fileNamewoe,
56
- 'id_product' => $productId,
57
- 'id_360' => $id360,
58
- 'id_360set' => $id360set,
59
- 'path' => Mage::getBaseUrl('js') . 'axzoom/axZm/zoomLoad.php?qq=1&azImg=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '/' . $fileName . '&width=100&height=100&qual=90'
60
- )))));
61
  exit;
62
  }
63
 
@@ -81,7 +120,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
81
  'status' => 'ok',
82
  'content' => (object)array('id' => $imageId),
83
  'confirmations' => array('The image was successfully deleted.')
84
- )));
85
  }
86
 
87
  public function ClearAzImageCacheAction()
@@ -91,7 +130,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
91
  die(Mage::helper('core')->jsonEncode(array(
92
  'status' => 'ok',
93
  'confirmations' => array('AJAX-ZOOM cache has been deleted for image with ID ' . (int)(Mage::app()->getRequest()->getParam('deletedImgID')))
94
- )));
95
  }
96
 
97
  public function GetImagesAction()
@@ -106,7 +145,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
106
  'id_product' => $productId,
107
  'id_360set' => $id360set,
108
  'images' => $images
109
- )));
110
  }
111
 
112
  public function DeleteSetAction()
@@ -124,11 +163,11 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
124
  }
125
 
126
  Mage::getModel('axzoom/ax360set')->setId($id360set)->delete();
127
-
128
  if (!Mage::getModel('axzoom/ax360set')->getCollection()->addFieldToFilter('id_360', $id360)->getData()) {
129
  Mage::getModel('axzoom/ax360')->setId($id360)->delete();
130
  }
131
-
132
  $path = Mage::getBaseDir() . '/js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set;
133
  $this->deleteDirectory($path);
134
 
@@ -138,7 +177,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
138
  'path' => $path,
139
  'removed' => (!Mage::getModel('axzoom/ax360')->load($id360)->getData() ? 1 : 0),
140
  'confirmations' => array('The 360 image set was successfully removed.')
141
- )));
142
  }
143
 
144
  public function Set360StatusAction()
@@ -153,91 +192,91 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
153
  die(Mage::helper('core')->jsonEncode(array(
154
  'status' => 'ok',
155
  'confirmations' => array('The status has been updated.' . $status . '-' . $id360)
156
- )));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
-
159
- public function GetCropJsonAction()
160
- {
161
- $get = Mage::app()->getRequest();
162
- $id_360 = $get->getParam('id_360');
163
-
164
- $db = Mage::getSingleton('core/resource')->getConnection('core_write');
165
- $db_prefix = (string)Mage::getConfig()->getTablePrefix();
166
- $check_crop_field = $db->query('SHOW FIELDS FROM `'.$db_prefix.'ajaxzoom360`');
167
- if ($check_crop_field){
168
- $check_crop_field_fetch = $check_crop_field->fetchAll(PDO::FETCH_COLUMN);
169
- // Update table
170
- if (!in_array('crop', $check_crop_field_fetch)){
171
- $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `crop` TEXT NOT NULL');
172
- }
173
- if (!in_array('hotspot', $check_crop_field_fetch)){
174
- $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `hotspot` TEXT NOT NULL');
175
- }
176
- }
177
-
178
- $row = $db->fetchAll('SELECT * FROM `'.$db_prefix.'ajaxzoom360` WHERE id_360 = '.(int)$id_360.' LIMIT 1');
179
- if ($row[0]['crop']){
180
- die(stripslashes($row[0]['crop']));
181
- }else{
182
- die('[]');
183
- }
184
- }
185
-
186
- public function SetCropJsonAction()
187
- {
188
- $json = $this->getRequest()->getPost('json');
189
- $id_360 = Mage::app()->getRequest()->getParam('id_360');
190
- $db_prefix = (string)Mage::getConfig()->getTablePrefix();
191
- $db = Mage::getSingleton('core/resource')->getConnection('core_write');
192
- $query = 'UPDATE `'.$db_prefix.'ajaxzoom360` SET crop = \''.addslashes($json).'\' WHERE id_360 = '.(int)$id_360;
193
- $result = $db->query($query);
194
-
195
- die(Mage::helper('core')->jsonEncode(array(
196
- 'status' => $result->rowCount()
197
- )));
198
- }
199
-
200
- public function GetHotspotJsonAction()
201
- {
202
- $get = Mage::app()->getRequest();
203
- $id_360 = $get->getParam('id_360');
204
-
205
- $db = Mage::getSingleton('core/resource')->getConnection('core_write');
206
- $db_prefix = (string)Mage::getConfig()->getTablePrefix();
207
-
208
- $check_crop_field = $db->query('SHOW FIELDS FROM `'.$db_prefix.'ajaxzoom360`');
209
- if ($check_crop_field){
210
- $check_crop_field_fetch = $check_crop_field->fetchAll(PDO::FETCH_COLUMN);
211
- // Update table
212
- if (!in_array('crop', $check_crop_field_fetch)){
213
- $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `crop` TEXT NOT NULL');
214
- }
215
- if (!in_array('hotspot', $check_crop_field_fetch)){
216
- $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `hotspot` TEXT NOT NULL');
217
- }
218
- }
219
-
220
- $row = $db->fetchAll('SELECT * FROM `'.$db_prefix.'ajaxzoom360` WHERE id_360 = '.(int)$id_360.' LIMIT 1');
221
- if ($row[0]['hotspot']){
222
- die(stripslashes($row[0]['hotspot']));
223
- }else{
224
- die('{}');
225
- }
226
- }
227
-
228
- public function SetHotspotJsonAction()
229
- {
230
- $json = $this->getRequest()->getPost('json');
231
- $id_360 = Mage::app()->getRequest()->getParam('id_360');
232
- $db_prefix = (string)Mage::getConfig()->getTablePrefix();
233
- $db = Mage::getSingleton('core/resource')->getConnection('core_write');
234
- $query = 'UPDATE `'.$db_prefix.'ajaxzoom360` SET hotspot = \''.addslashes($json).'\' WHERE id_360 = '.(int)$id_360;
235
- $result = $db->query($query);
236
-
237
- die(Mage::helper('core')->jsonEncode(array(
238
- 'status' => $result->rowCount()
239
- )));
240
- }
241
 
242
  public function AddSetAction()
243
  {
@@ -257,25 +296,29 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
257
  $id360 = $existing;
258
  $name = Mage::getModel('axzoom/ax360')->load($id360)->getName();
259
  } else {
260
- $newSettings = $settings = '{"position":"first","spinReverse":"true","spinBounce":"false","spinDemoRounds":"3","spinDemoTime":"4500"}';
 
 
 
 
261
  $data = array(
262
  'id_product' => $productId,
263
  'name' => $name,
264
  'settings' => $settings,
265
  'status' => $status
266
- );
267
  $id360 = $newId = Mage::getModel('axzoom/ax360')->setData($data)->save()->getId();
268
  $newName = $name;
269
  }
270
-
271
  $id360set = Mage::getModel('axzoom/ax360set')->setData(array('id_360' => $id360, 'sort_order' => 0))->save()->getId();
272
 
273
  $sets = array();
274
-
275
  if ($zip == 'true') {
276
  $sets = $this->addImagesArc($arcfile, $productId, $id360, $id360set, $delete);
277
  }
278
-
279
  die(Mage::helper('core')->jsonEncode(array(
280
  'status' => $status,
281
  'name' => $name,
@@ -288,7 +331,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
288
  'new_id' => $newId,
289
  'new_name' => $newName,
290
  'new_settings' => urlencode($newSettings)
291
- )));
292
  }
293
 
294
  public function addImagesArc($arcfile, $productId, $id360, $id360set, $delete = '')
@@ -300,18 +343,25 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
300
 
301
  $path = $baseDir . '/js/axzoom/zip/' . $arcfile;
302
  $dst = is_dir($path) ? $path : $this->extractArc($path);
 
 
 
 
 
 
 
303
  @chmod($dst, 0777);
304
  $data = $this->getFolderData($dst);
305
-
306
  $name = Mage::getModel('axzoom/ax360')->load($id360)->getName();
307
 
308
  $sets = array(array(
309
- 'name' => $name,
310
- 'path' => $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '&width=100&height=100&thumbMode=contain',
311
- 'id_360set' => $id360set,
312
- 'id_360' => $id360,
313
- 'status' => '1'
314
- ));
315
 
316
  $move = is_dir($path) ? false : true;
317
 
@@ -321,7 +371,8 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
321
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][0], $move);
322
  } else { // 3d
323
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][0], $move);
324
- for ($i=1; $i < count($data['folders']); $i++) {
 
325
  $id360set = Mage::getModel('axzoom/ax360set')->setData(array('id_360' => $id360, 'sort_order' => 0))->save()->getId();
326
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][$i], $move);
327
 
@@ -330,34 +381,36 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
330
  'name' => $name,
331
  'path' => $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '&width=100&height=100&thumbMode=contain',
332
  'id_360set' => $id360set
333
- );
334
  }
335
  }
336
 
337
  // delete temp directory which was created when zip extracted
338
- if(!is_dir($path)) {
339
  $this->deleteDirectory($dst);
340
  }
341
 
342
  // delete the sourece file (zip/dir) if checkbox is checked
343
- if($delete == 'true') {
344
- if(is_dir($path)) {
345
- $this->deleteDirectory($dst);
 
 
346
  } else {
347
  @unlink($path);
348
  }
349
- }
 
350
  return $sets;
351
  }
352
 
353
  public function extractArc($file)
354
  {
355
-
356
  $baseDir = Mage::getBaseDir();
357
 
358
  $zip = new ZipArchive;
359
  $res = $zip->open($file);
360
- if ($res === TRUE) {
361
  $folder = uniqid(getmypid());
362
  $path = $baseDir . '/js/axzoom/tmp/' . $folder;
363
  mkdir($path, 0777);
@@ -385,14 +438,14 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
385
  }
386
  closedir($handle);
387
  }
388
-
389
  sort($folders);
390
  sort($files);
391
 
392
  return array(
393
  'folders' => $folders,
394
  'files' => $files
395
- );
396
  }
397
 
398
  public function copyImages($productId, $id360, $id360set, $path, $move)
@@ -400,8 +453,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
400
  $files = $this->getFilesFromFolder($path);
401
  $folder = $this->createProduct360Folder($productId, $id360set);
402
 
403
- foreach ($files as $file)
404
- {
405
  $name = $productId . '_' . $id360set . '_' . $this->imgNameFilter($file);
406
  $tmp = explode('.', $name);
407
  $ext = end($tmp);
@@ -428,7 +480,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
428
  }
429
  closedir($handle);
430
  }
431
-
432
  return $files;
433
  }
434
 
@@ -437,7 +489,7 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
437
  $productId = (int)($productId);
438
  $id360set = (int)($id360set);
439
  $id360 = Mage::getModel('axzoom/ax360set')->load($id360set)->getId_360();
440
-
441
  $imgPath = Mage::getBaseDir() . '/js/axzoom/pic/360/';
442
  @chmod(rtrim($imgPath, '/'), 0777);
443
 
@@ -466,44 +518,43 @@ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
466
 
467
  public function deleteDirectory($dirname, $delete_self = true)
468
  {
469
- if(empty($dirname) || strpos($dirname, 'axzoom') === FALSE) {
470
  return false;
471
  }
472
 
473
  $dirname = rtrim($dirname, '/') . '/';
474
- if (file_exists($dirname))
475
- if ($files = scandir($dirname))
476
- {
477
- foreach ($files as $file)
478
- if ($file != '.' && $file != '..' && $file != '.svn')
479
- {
480
- if (is_dir($dirname.$file))
481
  $this->deleteDirectory($dirname.$file, true);
482
- elseif (file_exists($dirname.$file))
483
- {
484
  @chmod($dirname.$file, 0777); // NT ?
485
  unlink($dirname.$file);
486
  }
487
  }
488
- if ($delete_self && file_exists($dirname))
489
- if (!rmdir($dirname))
490
- {
491
  @chmod($dirname, 0777); // NT ?
492
  return false;
493
  }
 
494
  return true;
 
495
  }
496
- return false;
 
497
  }
498
-
499
  public function imgNameFilter($filename)
500
  {
501
  $filename = preg_replace('/[^A-Za-z0-9_\.-]/', '-', $filename);
502
  return $filename;
503
  }
504
-
505
  public function rootFolder()
506
  {
507
  return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
508
  }
509
- }
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/controllers/IndexController.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
+ class Ax_Zoom_AxzoomController extends Mage_Adminhtml_Controller_Action
18
  {
19
+ public function rSearch($folder, $pattern)
20
+ {
21
+ $dir = new RecursiveDirectoryIterator($folder);
22
+ $ite = new RecursiveIteratorIterator($dir);
23
+ $files = new RegexIterator($ite, $pattern, RegexIterator::GET_MATCH);
24
+ $fileList = array();
25
+
26
+ foreach ($files as $file) {
27
+ $fileList = array_merge($fileList, $file);
28
+ }
29
+
30
+ return $fileList;
31
+ }
32
+
33
+ public function GetNumberImagesAction()
34
+ {
35
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
36
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
37
+ $q = $db->fetchAll('SELECT count(DISTINCT value) as numImg FROM `'.$db_prefix.'catalog_product_entity_media_gallery`');
38
+ $dst = Mage::getBaseDir() . '/js/axzoom/pic/360/';
39
+ $img360 = count($this->rSearch($dst, '/\.(jpeg|jpg|png|gif|bmp|tif|tiff)/i'))/2;
40
+
41
+ die(Mage::helper('core')->jsonEncode(array(
42
+ 'images2d' => $q[0]['numImg'],
43
+ 'images360' => $img360
44
+ )));
45
+ }
46
+
47
+ public function ResetAzExtensionAction()
48
+ {
49
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
50
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
51
+ $db->query('DELETE FROM `'.$db_prefix.'core_config_data` WHERE `path` LIKE \'axzoom_options/%\' AND path != \'axzoom_options/license/lic\'');
52
+
53
+ die(Mage::helper('core')->jsonEncode(array(
54
+ 'status' => 'ok'
55
+ )));
56
+ }
57
+
58
  public function AddProductImage360Action()
59
  {
60
  $productId = Mage::app()->getRequest()->getParam('id_product');
64
 
65
  if (isset($_FILES['file360']['name'][0]) && $_FILES['file360']['name'][0] != '') {
66
  try {
67
+ $fileName = $_FILES['file360']['name'][0];
68
+ $fileExt = strtolower(substr(strrchr($fileName, '.'), 1));
69
+ $fileNamewoe = $productId . '_' . $id360set . '_' . $this->imgNameFilter(rtrim($fileName, '.' . $fileExt));
70
+ $fileName = $fileNamewoe . '.' . $fileExt;
71
+
72
+ $uploader = new Varien_File_Uploader(array(
73
+ 'name' => $_FILES['file360']['name'][0],
74
+ 'type' => $_FILES['file360']['type'][0],
75
+ 'tmp_name' => $_FILES['file360']['tmp_name'][0],
76
+ 'error' => $_FILES['file360']['error'][0],
77
+ 'size' => $_FILES['file360']['size'][0]
78
+ ));
79
  $uploader->setAllowedExtensions(array('png', 'jpg')); //allowed extensions
80
  $uploader->setAllowRenameFiles(false);
81
  $uploader->setFilesDispersion(false);
89
 
90
  die(Mage::helper('core')->jsonEncode(array(
91
  'file360' => array(array(
92
+ 'status' => 'ok',
93
+ 'name' => $fileName,
94
+ 'id' => $fileNamewoe,
95
+ 'id_product' => $productId,
96
+ 'id_360' => $id360,
97
+ 'id_360set' => $id360set,
98
+ 'path' => Mage::getBaseUrl('js') . 'axzoom/axZm/zoomLoad.php?qq=1&azImg=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '/' . $fileName . '&width=100&height=100&qual=90'
99
+ )))));
100
  exit;
101
  }
102
 
120
  'status' => 'ok',
121
  'content' => (object)array('id' => $imageId),
122
  'confirmations' => array('The image was successfully deleted.')
123
+ )));
124
  }
125
 
126
  public function ClearAzImageCacheAction()
130
  die(Mage::helper('core')->jsonEncode(array(
131
  'status' => 'ok',
132
  'confirmations' => array('AJAX-ZOOM cache has been deleted for image with ID ' . (int)(Mage::app()->getRequest()->getParam('deletedImgID')))
133
+ )));
134
  }
135
 
136
  public function GetImagesAction()
145
  'id_product' => $productId,
146
  'id_360set' => $id360set,
147
  'images' => $images
148
+ )));
149
  }
150
 
151
  public function DeleteSetAction()
163
  }
164
 
165
  Mage::getModel('axzoom/ax360set')->setId($id360set)->delete();
166
+
167
  if (!Mage::getModel('axzoom/ax360set')->getCollection()->addFieldToFilter('id_360', $id360)->getData()) {
168
  Mage::getModel('axzoom/ax360')->setId($id360)->delete();
169
  }
170
+
171
  $path = Mage::getBaseDir() . '/js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set;
172
  $this->deleteDirectory($path);
173
 
177
  'path' => $path,
178
  'removed' => (!Mage::getModel('axzoom/ax360')->load($id360)->getData() ? 1 : 0),
179
  'confirmations' => array('The 360 image set was successfully removed.')
180
+ )));
181
  }
182
 
183
  public function Set360StatusAction()
192
  die(Mage::helper('core')->jsonEncode(array(
193
  'status' => 'ok',
194
  'confirmations' => array('The status has been updated.' . $status . '-' . $id360)
195
+ )));
196
+ }
197
+
198
+ public function GetCropJsonAction()
199
+ {
200
+ $get = Mage::app()->getRequest();
201
+ $id_360 = $get->getParam('id_360');
202
+
203
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
204
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
205
+ $check_crop_field = $db->query('SHOW FIELDS FROM `'.$db_prefix.'ajaxzoom360`');
206
+ if ($check_crop_field){
207
+ $check_crop_field_fetch = $check_crop_field->fetchAll(PDO::FETCH_COLUMN);
208
+ // Update table
209
+ if (!in_array('crop', $check_crop_field_fetch)){
210
+ $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `crop` TEXT NOT NULL');
211
+ }
212
+ if (!in_array('hotspot', $check_crop_field_fetch)){
213
+ $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `hotspot` TEXT NOT NULL');
214
+ }
215
+ }
216
+
217
+ $row = $db->fetchAll('SELECT * FROM `'.$db_prefix.'ajaxzoom360` WHERE id_360 = '.(int)$id_360.' LIMIT 1');
218
+ if ($row[0]['crop']){
219
+ die(stripslashes($row[0]['crop']));
220
+ }else{
221
+ die('[]');
222
+ }
223
+ }
224
+
225
+ public function SetCropJsonAction()
226
+ {
227
+ $json = $this->getRequest()->getPost('json');
228
+ $id_360 = Mage::app()->getRequest()->getParam('id_360');
229
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
230
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
231
+ $query = 'UPDATE `'.$db_prefix.'ajaxzoom360` SET crop = \''.addslashes($json).'\' WHERE id_360 = '.(int)$id_360;
232
+ $result = $db->query($query);
233
+
234
+ die(Mage::helper('core')->jsonEncode(array(
235
+ 'status' => $result->rowCount()
236
+ )));
237
+ }
238
+
239
+ public function GetHotspotJsonAction()
240
+ {
241
+ $get = Mage::app()->getRequest();
242
+ $id_360 = $get->getParam('id_360');
243
+
244
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
245
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
246
+
247
+ $check_crop_field = $db->query('SHOW FIELDS FROM `'.$db_prefix.'ajaxzoom360`');
248
+ if ($check_crop_field){
249
+ $check_crop_field_fetch = $check_crop_field->fetchAll(PDO::FETCH_COLUMN);
250
+ // Update table
251
+ if (!in_array('crop', $check_crop_field_fetch)){
252
+ $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `crop` TEXT NOT NULL');
253
+ }
254
+ if (!in_array('hotspot', $check_crop_field_fetch)){
255
+ $db->query('ALTER TABLE `'.$db_prefix.'ajaxzoom360` ADD `hotspot` TEXT NOT NULL');
256
+ }
257
+ }
258
+
259
+ $row = $db->fetchAll('SELECT * FROM `'.$db_prefix.'ajaxzoom360` WHERE id_360 = '.(int)$id_360.' LIMIT 1');
260
+ if ($row[0]['hotspot']){
261
+ die(stripslashes($row[0]['hotspot']));
262
+ }else{
263
+ die('{}');
264
+ }
265
+ }
266
+
267
+ public function SetHotspotJsonAction()
268
+ {
269
+ $json = $this->getRequest()->getPost('json');
270
+ $id_360 = Mage::app()->getRequest()->getParam('id_360');
271
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
272
+ $db = Mage::getSingleton('core/resource')->getConnection('core_write');
273
+ $query = 'UPDATE `'.$db_prefix.'ajaxzoom360` SET hotspot = \''.addslashes($json).'\' WHERE id_360 = '.(int)$id_360;
274
+ $result = $db->query($query);
275
+
276
+ die(Mage::helper('core')->jsonEncode(array(
277
+ 'status' => $result->rowCount()
278
+ )));
279
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
 
281
  public function AddSetAction()
282
  {
296
  $id360 = $existing;
297
  $name = Mage::getModel('axzoom/ax360')->load($id360)->getName();
298
  } else {
299
+ $default360settings = Mage::getStoreConfig('axzoom_options/plugin_settings/default360settings');
300
+ $default360settings = str_replace(array("\r", "\n", "\t"), '', $default360settings);
301
+ $default360settings = preg_replace('/\s+/', '', $default360settings);
302
+ //$newSettings = $settings = '{"position":"first","spinReverse":"true","spinBounce":"false","spinDemoRounds":"3","spinDemoTime":"4500"}';
303
+ $newSettings = $settings = $default360settings;
304
  $data = array(
305
  'id_product' => $productId,
306
  'name' => $name,
307
  'settings' => $settings,
308
  'status' => $status
309
+ );
310
  $id360 = $newId = Mage::getModel('axzoom/ax360')->setData($data)->save()->getId();
311
  $newName = $name;
312
  }
313
+
314
  $id360set = Mage::getModel('axzoom/ax360set')->setData(array('id_360' => $id360, 'sort_order' => 0))->save()->getId();
315
 
316
  $sets = array();
317
+
318
  if ($zip == 'true') {
319
  $sets = $this->addImagesArc($arcfile, $productId, $id360, $id360set, $delete);
320
  }
321
+
322
  die(Mage::helper('core')->jsonEncode(array(
323
  'status' => $status,
324
  'name' => $name,
331
  'new_id' => $newId,
332
  'new_name' => $newName,
333
  'new_settings' => urlencode($newSettings)
334
+ )));
335
  }
336
 
337
  public function addImagesArc($arcfile, $productId, $id360, $id360set, $delete = '')
343
 
344
  $path = $baseDir . '/js/axzoom/zip/' . $arcfile;
345
  $dst = is_dir($path) ? $path : $this->extractArc($path);
346
+
347
+ if (!$dst) {
348
+ return array(
349
+ 'status' => '0'
350
+ );
351
+ }
352
+
353
  @chmod($dst, 0777);
354
  $data = $this->getFolderData($dst);
355
+
356
  $name = Mage::getModel('axzoom/ax360')->load($id360)->getName();
357
 
358
  $sets = array(array(
359
+ 'name' => $name,
360
+ 'path' => $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '&width=100&height=100&thumbMode=contain',
361
+ 'id_360set' => $id360set,
362
+ 'id_360' => $id360,
363
+ 'status' => '1'
364
+ ));
365
 
366
  $move = is_dir($path) ? false : true;
367
 
371
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][0], $move);
372
  } else { // 3d
373
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][0], $move);
374
+
375
+ for ($i = 1; $i < count($data['folders']); $i++) {
376
  $id360set = Mage::getModel('axzoom/ax360set')->setData(array('id_360' => $id360, 'sort_order' => 0))->save()->getId();
377
  $this->copyImages($productId, $id360, $id360set, $dst . '/' . $data['folders'][$i], $move);
378
 
381
  'name' => $name,
382
  'path' => $baseUrlJs . 'axzoom/axZm/zoomLoad.php?qq=1&azImg360=' . $this->rootFolder() . 'js/axzoom/pic/360/' . $productId . '/' . $id360 . '/' . $id360set . '&width=100&height=100&thumbMode=contain',
383
  'id_360set' => $id360set
384
+ );
385
  }
386
  }
387
 
388
  // delete temp directory which was created when zip extracted
389
+ if (!is_dir($path)) {
390
  $this->deleteDirectory($dst);
391
  }
392
 
393
  // delete the sourece file (zip/dir) if checkbox is checked
394
+ if ($delete == 'true') {
395
+ if (is_dir($path)) {
396
+ if (strstr($path, '/js/axzoom/')) {
397
+ $this->deleteDirectory($dst);
398
+ }
399
  } else {
400
  @unlink($path);
401
  }
402
+ }
403
+
404
  return $sets;
405
  }
406
 
407
  public function extractArc($file)
408
  {
 
409
  $baseDir = Mage::getBaseDir();
410
 
411
  $zip = new ZipArchive;
412
  $res = $zip->open($file);
413
+ if ($res === true) {
414
  $folder = uniqid(getmypid());
415
  $path = $baseDir . '/js/axzoom/tmp/' . $folder;
416
  mkdir($path, 0777);
438
  }
439
  closedir($handle);
440
  }
441
+
442
  sort($folders);
443
  sort($files);
444
 
445
  return array(
446
  'folders' => $folders,
447
  'files' => $files
448
+ );
449
  }
450
 
451
  public function copyImages($productId, $id360, $id360set, $path, $move)
453
  $files = $this->getFilesFromFolder($path);
454
  $folder = $this->createProduct360Folder($productId, $id360set);
455
 
456
+ foreach ($files as $file) {
 
457
  $name = $productId . '_' . $id360set . '_' . $this->imgNameFilter($file);
458
  $tmp = explode('.', $name);
459
  $ext = end($tmp);
480
  }
481
  closedir($handle);
482
  }
483
+
484
  return $files;
485
  }
486
 
489
  $productId = (int)($productId);
490
  $id360set = (int)($id360set);
491
  $id360 = Mage::getModel('axzoom/ax360set')->load($id360set)->getId_360();
492
+
493
  $imgPath = Mage::getBaseDir() . '/js/axzoom/pic/360/';
494
  @chmod(rtrim($imgPath, '/'), 0777);
495
 
518
 
519
  public function deleteDirectory($dirname, $delete_self = true)
520
  {
521
+ if(empty($dirname) || strpos($dirname, 'axzoom') === false) {
522
  return false;
523
  }
524
 
525
  $dirname = rtrim($dirname, '/') . '/';
526
+ if (file_exists($dirname)) {
527
+ if ($files = scandir($dirname)) {
528
+ foreach ($files as $file) {
529
+ if ($file != '.' && $file != '..' && $file != '.svn') {
530
+ if (is_dir($dirname.$file)) {
 
 
531
  $this->deleteDirectory($dirname.$file, true);
532
+ } elseif (file_exists($dirname.$file)) {
 
533
  @chmod($dirname.$file, 0777); // NT ?
534
  unlink($dirname.$file);
535
  }
536
  }
537
+ if ($delete_self && file_exists($dirname)) {
538
+ if (!rmdir($dirname)) {
 
539
  @chmod($dirname, 0777); // NT ?
540
  return false;
541
  }
542
+ }
543
  return true;
544
+ }
545
  }
546
+ return false;
547
+ }
548
  }
549
+
550
  public function imgNameFilter($filename)
551
  {
552
  $filename = preg_replace('/[^A-Za-z0-9_\.-]/', '-', $filename);
553
  return $filename;
554
  }
555
+
556
  public function rootFolder()
557
  {
558
  return preg_replace('|js/$|', '', parse_url(Mage::getBaseUrl('js'), PHP_URL_PATH));
559
  }
560
+ }
app/code/local/Ax/Zoom/etc/config.xml CHANGED
@@ -2,40 +2,40 @@
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/etc/config.xml
5
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
- * Version: 1.2.4
8
- * Date: 2016-08-22
9
- * Review: 2016-08-22
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
 
19
  <config>
20
 
21
- <modules>
22
- <Ax_Zoom>
23
- <version>1.2.4</version>
24
- </Ax_Zoom>
25
- </modules>
26
 
27
- <global>
28
- <helpers>
29
- <axzoom>
30
- <class>Ax_Zoom_Helper</class>
31
- </axzoom>
32
- </helpers>
33
- <models>
34
- <axzoom>
35
- <class>Ax_Zoom_Model</class>
36
- <resourceModel>axzoom_resource</resourceModel>
37
- </axzoom>
38
- <axzoom_resource>
39
  <class>Ax_Zoom_Model_Resource</class>
40
  <entities>
41
  <table_ax360set>
@@ -48,47 +48,47 @@
48
  <table>ajaxzoomproducts</table>
49
  </table_axproducts>
50
  </entities>
51
- </axzoom_resource>
52
- </models>
53
- <blocks>
54
- <zoom>
55
- <class>Ax_Zoom_Block</class>
56
- </zoom>
57
- <adminhtml>
58
- <rewrite>
59
- <catalog_product_edit_tabs>Ax_Zoom_Block_Adminhtml_Tabs</catalog_product_edit_tabs>
60
- </rewrite>
61
- </adminhtml>
62
- </blocks>
63
  <resources>
64
  <axzoom_setup>
65
  <setup>
66
  <module>Ax_Zoom</module>
67
  </setup>
68
  </axzoom_setup>
69
- </resources>
70
- </global>
71
 
72
- <frontend>
73
- <translate>
74
- <modules>
75
- <Ax_Zoom>
76
- <files>
77
- <default>Ax_Zoom.csv</default>
78
- </files>
79
- </Ax_Zoom>
80
- </modules>
81
- </translate>
82
 
83
- <layout>
84
- <updates>
85
- <ax_zoom>
86
- <file>axzoom.xml</file>
87
- </ax_zoom>
88
- </updates>
89
- </layout>
90
 
91
- <events>
92
  <catalog_controller_product_init>
93
  <observers>
94
  <ax_zoom_model_observer>
@@ -108,9 +108,9 @@
108
  </ax_zoom_model_observer>
109
  </observers>
110
  </core_block_abstract_to_html_before>
111
- </events>
112
- </frontend>
113
-
114
  <admin>
115
  <routers>
116
  <adminhtml>
@@ -121,26 +121,26 @@
121
  </args>
122
  </adminhtml>
123
  </routers>
124
- </admin>
125
 
126
- <adminhtml>
127
- <translate>
128
- <modules>
129
- <Ax_Zoom>
130
- <files>
131
- <default>Ax_Zoom.csv</default>
132
- </files>
133
- </Ax_Zoom>
134
- </modules>
135
- </translate>
136
 
137
- <layout>
138
- <updates>
139
- <ax_zoom>
140
- <file>axzoom.xml</file>
141
- </ax_zoom>
142
- </updates>
143
- </layout>
144
 
145
  <events>
146
  <catalog_product_prepare_save>
@@ -161,7 +161,7 @@
161
  <method>deleteProduct</method>
162
  </ax_zoom_model_observer>
163
  </observers>
164
- </catalog_product_delete_before>
165
 
166
  <catalog_product_save_before>
167
  <observers>
@@ -172,7 +172,7 @@
172
  </ax_zoom_model_observer>
173
  </observers>
174
  </catalog_product_save_before>
175
-
176
  <catalog_product_save_after>
177
  <observers>
178
  <ax_zoom_model_observer>
@@ -182,358 +182,331 @@
182
  </ax_zoom_model_observer>
183
  </observers>
184
  </catalog_product_save_after>
185
-
186
  </events>
187
-
188
- <acl>
189
- <resources>
190
- <admin>
191
- <children>
192
- <system>
193
- <children>
194
- <config>
195
- <children>
196
- <axzoom_options>
197
- <title>AJAX ZOOM Settings</title>
198
- </axzoom_options>
199
- </children>
200
- </config>
201
- </children>
202
- </system>
203
- </children>
204
- </admin>
205
- </resources>
206
- </acl>
207
-
208
- </adminhtml>
209
 
210
- <default>
211
- <axzoom_options>
212
- <main>
213
- <divid>az_mouseOverZoomContainer</divid>
214
- <galleryDivID>az_mouseOverZoomGallery</galleryDivID>
215
- <galleryPosition>bottom</galleryPosition>
216
- <hideGalleryOneImage>true</hideGalleryOneImage>
217
- <hideGalleryAddClass>axZm_mouseOverNoMargin</hideGalleryAddClass>
218
- <galleryHover>false</galleryHover>
219
- <galleryAxZmThumbSlider>true</galleryAxZmThumbSlider>
220
- <galleryAxZmThumbSliderParam>
221
- {
222
- orientation: "horizontal",
223
- scrollBy: 1,
224
- btn: true,
225
- btnClass: "axZmThumbSlider_button_new",
226
- btnBwdStyle: {
227
- marginLeft: 0,
228
- marginRight: 0
229
- },
230
- btnFwdStyle: {
231
- marginLeft: 0,
232
- marginRight: 0
233
- },
234
- btnLeftText: null,
235
- btnRightText: null,
236
- btnHidden: true,
237
- pressScrollSnap: true,
238
- centerNoScroll: true,
239
- wrapStyle: {
240
- borderWidth: 0
241
- },
242
- thumbImgStyle: {
243
- maxHeight: "58px",
244
- maxWidth: "58px"
245
- },
246
- thumbLiStyle: {
247
- width: 58,
248
- height: 58,
249
- lineHeight: "56px",
250
- marginBottom: 2,
251
- marginLeft: 3,
252
- marginRight: 3,
253
- borderRadius: 3
254
- }
255
- }
256
- </galleryAxZmThumbSliderParam>
257
- <galleryAxZmThumbSliderParam_vertical>
258
- {
259
- orientation: "vertical",
260
- scrollBy: 3,
261
- smoothMove: 6,
262
- quickerStop: true,
263
- pressScrollSnap: true,
264
- btn: true,
265
- btnClass: "axZmThumbSlider_button_new",
266
- btnBwdStyle: {marginTop: 0, marginBottom: 0},
267
- btnFwdStyle: {marginTop: 0, marginBottom: 0},
268
- btnLeftText: null,
269
- btnRightText: null,
270
- btnTopText: null,
271
- btnBottomText: null,
272
- btnHidden: true,
273
- mouseWheelScrollBy: 1,
274
- wrapStyle: {
275
- borderLeftWidth: 0,
276
- borderRightWidth: 0
277
- },
278
- scrollbar: false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
 
280
- thumbLiSubClass: {
281
- first: null,
282
- last: null
283
- },
284
- thumbImgStyle:{
285
- maxHeight: "58px",
286
- maxWidth: "58px",
287
- borderRadius: 3
288
- },
289
- thumbLiStyle: {
290
- width: 58,
291
- height: 58,
292
- lineHeight: "56px",
293
- marginBottom: 2,
294
- marginLeft: 3,
295
- marginRight: 3,
296
- borderRadius: 3
297
- }
298
- }
299
- </galleryAxZmThumbSliderParam_vertical>
300
- <thumbW>58</thumbW>
301
- <thumbH>58</thumbH>
302
- <thumbRetina>true</thumbRetina>
303
- <qualityThumb>100</qualityThumb>
304
- <quality>90</quality>
305
- <qualityZoom>80</qualityZoom>
306
- <firstImageToLoad>1</firstImageToLoad>
307
- <disableAllMsg>false</disableAllMsg>
308
- <images360firstToLoad>false</images360firstToLoad>
309
- <images360Thumb>true</images360Thumb>
310
- <images360Overlay>true</images360Overlay>
311
- <images360Preview>true</images360Preview>
312
- <images360PreviewResponsive>true</images360PreviewResponsive>
313
- <images360examplePreview>mouseOverExtension360</images360examplePreview>
314
- <zoomMsg360>
315
- {
316
- "en" : "Drag to spin 360°, scroll to zoom in and out, right click and drag to pan",
317
- "de" : "Ziehen um 360° zu drehen, zoomen mit dem mausrad, rechte maustaste ziehen verschiebt die Ansicht",
318
- "fr" : "Faites glisser pour tourner à 360 °, faites défiler pour zoomer dans et hors, cliquer et faire glisser à droite pour vous déplacer",
319
- "es" : "Arrastrar para girar en 360º, Rueda del ratón para utilizar el Zoom, botón derecho para mover la imagen"
320
- }
321
- </zoomMsg360>
322
- <zoomMsg360_touch>
323
- {
324
- "en" : "Drag to spin 360°, pinch to zoom in and out",
325
- "de" : "Ziehen um 360° zu drehen, zoomen mit zwei fingern",
326
- "fr" : "Faites glisser pour tourner à 360 °, pincer pour zoomer et dézoomer",
327
- "es" : "Arrastrar para girar en 360º, pellizcar para ampliar y reducir"
328
- }
329
- </zoomMsg360_touch>
330
- <preloadMouseOverImages>oneByOne</preloadMouseOverImages>
331
- <noImageAvailableClass>axZm_mouseOverNoImage</noImageAvailableClass>
332
- <width>auto</width>
333
- <height>auto</height>
334
- <responsive>true</responsive>
335
- <oneSrcImg>false</oneSrcImg>
336
- <heightRatio>1.0</heightRatio>
337
- <heightMaxWidthRatio>["960|0.8", "700|0.7"]</heightMaxWidthRatio>
338
- <widthRatio>false</widthRatio>
339
- <widthMaxHeightRatio>false</widthMaxHeightRatio>
340
- <maxSizePrc>1.0</maxSizePrc>
341
- <mouseOverZoomWidth>1200</mouseOverZoomWidth>
342
- <mouseOverZoomHeight>1200</mouseOverZoomHeight>
343
- <ajaxZoomOpenMode>fancyboxFullscreen</ajaxZoomOpenMode>
344
- <fancyBoxParam>
345
- {
346
- boxMargin: 0,
347
- boxPadding: 10,
348
- boxCenterOnScroll: true,
349
- boxOverlayShow: true,
350
- boxOverlayOpacity: 0.75,
351
- boxOverlayColor: "#777",
352
- boxTransitionIn: "fade",
353
- boxTransitionOut: "fade",
354
- boxSpeedIn: 300,
355
- boxSpeedOut: 300,
356
- boxEasingIn: "swing",
357
- boxEasingOut: "swing",
358
- boxShowCloseButton: true,
359
- boxEnableEscapeButton: true,
360
- boxOnComplete: function(){},
361
- boxTitleShow: false,
362
- boxTitlePosition: "float",
363
- boxTitleFormat: null
364
- }
365
- </fancyBoxParam>
366
- <colorBoxParam>
367
- {
368
- transition: "elastic",
369
- speed: 300,
370
- scrolling: true,
371
- title: true,
372
- opacity: 0.9,
373
- className: false,
374
- current: "image {current} of {total}",
375
- previous: "previous",
376
- next: "next",
377
- close: "close",
378
- onOpen: false,
379
- onLoad: false,
380
- onComplete: false,
381
- onClosed: false,
382
- overlayClose: true,
383
- escKey: true
384
- }
385
- </colorBoxParam>
386
- <example>mouseOverExtension</example>
387
- <exampleFancyboxFullscreen>mouseOverExtension</exampleFancyboxFullscreen>
388
- <exampleFancybox>modal</exampleFancybox>
389
- <exampleColorbox>modal</exampleColorbox>
390
- <enforceFullScreenRes>768</enforceFullScreenRes>
391
- <prevNextArrows>false</prevNextArrows>
392
- <disableScrollAnm>true</disableScrollAnm>
393
- <fullScreenApi>true</fullScreenApi>
394
- <axZmCallBacks>{}</axZmCallBacks>
395
- <azOptions>{}</azOptions>
396
- <azOptions360>{}</azOptions360>
397
- <postMode>true</postMode>
398
- </main>
399
- <pinterest>
400
- <enabled>false</enabled>
401
- <build>parsePinBtns</build>
402
- <wrapClass>axZm_mouseOverPinterest</wrapClass>
403
- <href>//en.pinterest.com/pin/create/button/</href>
404
- <description>null</description>
405
- <url>null</url>
406
- <media>null</media>
407
- <btnSrc>//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_gray_20.png</btnSrc>
408
- <data>{}</data>
409
- </pinterest>
410
- <producttour>
411
- <cropAxZmThumbSliderParam></cropAxZmThumbSliderParam>
412
- <cropSliderPosition>left</cropSliderPosition>
413
- <cropSliderDimension>86</cropSliderDimension>
414
- <cropSliderThumbAutoSize>true</cropSliderThumbAutoSize>
415
- <cropSliderThumbAutoMargin>7</cropSliderThumbAutoMargin>
416
- <cropSliderThumbDescr>true</cropSliderThumbDescr>
417
- </producttour>
418
- <mouseOverZoomParam>
419
- <position>right</position>
420
- <posAutoInside>150</posAutoInside>
421
- <posInsideArea>0.2</posInsideArea>
422
- <touchScroll>0.8</touchScroll>
423
- <noMouseOverZoom>false</noMouseOverZoom>
424
- <autoFlip>120</autoFlip>
425
- <biggestSpace>false</biggestSpace>
426
- <zoomFullSpace>false</zoomFullSpace>
427
- <zoomWidth>.product-shop|+2</zoomWidth>
428
- <zoomHeight>.product-img-box</zoomHeight>
429
- <autoMargin>15</autoMargin>
430
- <adjustX>13</adjustX>
431
- <adjustY>-1</adjustY>
432
- <lensOpacity>1</lensOpacity>
433
- <lensStyle>{}</lensStyle>
434
- <lensClass>false</lensClass>
435
- <zoomAreaBorderWidth>1</zoomAreaBorderWidth>
436
- <galleryFade>300</galleryFade>
437
- <shutterSpeed>150</shutterSpeed>
438
- <showFade>300</showFade>
439
- <hideFade>300</hideFade>
440
- <flyOutSpeed>false</flyOutSpeed>
441
- <flyOutTransition>linear</flyOutTransition>
442
- <flyOutOpacity>0.6</flyOutOpacity>
443
- <flyBackSpeed>false</flyBackSpeed>
444
- <flyBackTransition>linear</flyBackTransition>
445
- <flyBackOpacity>0.2</flyBackOpacity>
446
- <autoScroll>false</autoScroll>
447
- <smoothMove>6</smoothMove>
448
- <tint>false</tint>
449
- <tintOpacity>0.3</tintOpacity>
450
- <tintFilter>false</tintFilter>
451
- <tintLensBack>true</tintLensBack>
452
- <showTitle>true</showTitle>
453
- <titleOpacity>0.5</titleOpacity>
454
- <titlePosition>top</titlePosition>
455
- <cursorPositionX>0.5</cursorPositionX>
456
- <cursorPositionY>0.55</cursorPositionY>
457
- <touchClickAbort>500</touchClickAbort>
458
- <loading>true</loading>
459
- <loadingMessage>
460
- {
461
- "en" : "Loading...",
462
- "de": "Loading...",
463
- "fr" : "Loading...",
464
- "es" : "Loading..."
465
- }
466
- </loadingMessage>
467
- <loadingWidth>90</loadingWidth>
468
- <loadingHeight>20</loadingHeight>
469
- <loadingOpacity>1.0</loadingOpacity>
470
- <zoomHintEnable>1</zoomHintEnable>
471
- <zoomHintText>
472
- {
473
- "en" : "Zoom",
474
- "de" : "Zoom",
475
- "fr" : "Zoom",
476
- "es" : "Zoom"
477
- }
478
- </zoomHintText>
479
- <zoomMsgHover>
480
- {
481
- "en" : "Roll over the image to zoom in",
482
- "de" : "Für größere Ansicht mit der Maus über das Bild ziehen",
483
- "fr" : "Survolez l'image pour zoomer",
484
- "es" : "Pase el cursor sbore la imagen para hacer zoom con la rueda del ratón"
485
- }
486
- </zoomMsgHover>
487
- <zoomMsgClick>
488
- {
489
- "en" : "Click to open expanded view",
490
- "de" : "Klicken Sie auf das Bild, um erweiterte Ansicht zu öffnen",
491
- "fr" : "Cliquez sur l'image pour ouvrir la vue élargie",
492
- "es" : "Haga clic para ampliar la imagen"
493
- }
494
- </zoomMsgClick>
495
- <slideInTime>200</slideInTime>
496
- <slideInEasingCSS3>easeOutExpo</slideInEasingCSS3>
497
- <slideInEasing>easeOutExpo</slideInEasing>
498
- <slideInScale>0.8</slideInScale>
499
- <slideOutScale>0.8</slideOutScale>
500
- <slideOutOpacity>0.5</slideOutOpacity>
501
- <slideOutDest>1</slideOutDest>
502
- <onInit>null</onInit>
503
- <onLoad>null</onLoad>
504
- <onImageChange>null</onImageChange>
505
- <onMouseOver>null</onMouseOver>
506
- <onMouseOut>null</onMouseOut>
507
- <spinner>true</spinner>
508
- <spinnerParam>
509
- {
510
- lines: 11,
511
- length: 3,
512
- width: 3,
513
- radius: 4,
514
- corners: 1,
515
- rotate: 0,
516
- color: "#FFFFFF",
517
- speed: 1,
518
- trail: 90,
519
- shadow: false,
520
- hwaccel: false,
521
- className: "spinner",
522
- zIndex: 2e9,
523
- top: 0,
524
- left: 1
525
- }
526
- </spinnerParam>
527
- </mouseOverZoomParam>
528
- <products>
529
- <displayOnlyForThisProductID></displayOnlyForThisProductID>
530
- </products>
531
- <magento>
532
- <magentoAllImagesStart>false</magentoAllImagesStart>
533
- <magentoNoImage>false</magentoNoImage>
534
- <magentoAdminThumb>false</magentoAdminThumb>
535
- </magento>
536
- </axzoom_options>
537
- </default>
538
-
539
  </config>
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/etc/config.xml
5
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
+ * Version: 1.3.0
8
+ * Date: 2017-06-25
9
+ * Review: 2017-06-25
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
 
19
  <config>
20
 
21
+ <modules>
22
+ <Ax_Zoom>
23
+ <version>1.3.0</version>
24
+ </Ax_Zoom>
25
+ </modules>
26
 
27
+ <global>
28
+ <helpers>
29
+ <axzoom>
30
+ <class>Ax_Zoom_Helper</class>
31
+ </axzoom>
32
+ </helpers>
33
+ <models>
34
+ <axzoom>
35
+ <class>Ax_Zoom_Model</class>
36
+ <resourceModel>axzoom_resource</resourceModel>
37
+ </axzoom>
38
+ <axzoom_resource>
39
  <class>Ax_Zoom_Model_Resource</class>
40
  <entities>
41
  <table_ax360set>
48
  <table>ajaxzoomproducts</table>
49
  </table_axproducts>
50
  </entities>
51
+ </axzoom_resource>
52
+ </models>
53
+ <blocks>
54
+ <zoom>
55
+ <class>Ax_Zoom_Block</class>
56
+ </zoom>
57
+ <adminhtml>
58
+ <rewrite>
59
+ <catalog_product_edit_tabs>Ax_Zoom_Block_Adminhtml_Tabs</catalog_product_edit_tabs>
60
+ </rewrite>
61
+ </adminhtml>
62
+ </blocks>
63
  <resources>
64
  <axzoom_setup>
65
  <setup>
66
  <module>Ax_Zoom</module>
67
  </setup>
68
  </axzoom_setup>
69
+ </resources>
70
+ </global>
71
 
72
+ <frontend>
73
+ <translate>
74
+ <modules>
75
+ <Ax_Zoom>
76
+ <files>
77
+ <default>Ax_Zoom.csv</default>
78
+ </files>
79
+ </Ax_Zoom>
80
+ </modules>
81
+ </translate>
82
 
83
+ <layout>
84
+ <updates>
85
+ <ax_zoom>
86
+ <file>axzoom.xml</file>
87
+ </ax_zoom>
88
+ </updates>
89
+ </layout>
90
 
91
+ <events>
92
  <catalog_controller_product_init>
93
  <observers>
94
  <ax_zoom_model_observer>
108
  </ax_zoom_model_observer>
109
  </observers>
110
  </core_block_abstract_to_html_before>
111
+ </events>
112
+ </frontend>
113
+
114
  <admin>
115
  <routers>
116
  <adminhtml>
121
  </args>
122
  </adminhtml>
123
  </routers>
124
+ </admin>
125
 
126
+ <adminhtml>
127
+ <translate>
128
+ <modules>
129
+ <Ax_Zoom>
130
+ <files>
131
+ <default>Ax_Zoom.csv</default>
132
+ </files>
133
+ </Ax_Zoom>
134
+ </modules>
135
+ </translate>
136
 
137
+ <layout>
138
+ <updates>
139
+ <ax_zoom>
140
+ <file>axzoom.xml</file>
141
+ </ax_zoom>
142
+ </updates>
143
+ </layout>
144
 
145
  <events>
146
  <catalog_product_prepare_save>
161
  <method>deleteProduct</method>
162
  </ax_zoom_model_observer>
163
  </observers>
164
+ </catalog_product_delete_before>
165
 
166
  <catalog_product_save_before>
167
  <observers>
172
  </ax_zoom_model_observer>
173
  </observers>
174
  </catalog_product_save_before>
175
+
176
  <catalog_product_save_after>
177
  <observers>
178
  <ax_zoom_model_observer>
182
  </ax_zoom_model_observer>
183
  </observers>
184
  </catalog_product_save_after>
185
+
186
  </events>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
 
188
+ <acl>
189
+ <resources>
190
+ <admin>
191
+ <children>
192
+ <system>
193
+ <children>
194
+ <config>
195
+ <children>
196
+ <axzoom_options>
197
+ <title>AJAX ZOOM Settings</title>
198
+ </axzoom_options>
199
+ </children>
200
+ </config>
201
+ </children>
202
+ </system>
203
+ </children>
204
+ </admin>
205
+ </resources>
206
+ </acl>
207
+
208
+ </adminhtml>
209
+
210
+ <default>
211
+
212
+ <axzoom_options>
213
+ <plugin_settings>
214
+ <enableInFrontDetail>true</enableInFrontDetail>
215
+ <displayOnlyForThisProductID/>
216
+ <default360settings>{
217
+ "position": "first",
218
+ "spinReverse": "true",
219
+ "spinBounce": "false",
220
+ "spinDemoRounds": "3",
221
+ "spinDemoTime": "4500"
222
+ }</default360settings>
223
+ <pngModeCssFix>false</pngModeCssFix>
224
+ <magentoAllImages>false</magentoAllImages>
225
+ <magentoNoImage>false</magentoNoImage>
226
+ <magentoAdminThumb>false</magentoAdminThumb>
227
+ </plugin_settings>
228
+ <general_settings>
229
+ <divID>az_mouseOverZoomContainer</divID>
230
+ <galleryDivID>az_mouseOverZoomGallery</galleryDivID>
231
+ <disableAllMsg>false</disableAllMsg>
232
+ <dotNavigation>400</dotNavigation>
233
+ <floorWidth>true</floorWidth>
234
+ <pngMode>null</pngMode>
235
+ <hideGalleryOneImage>true</hideGalleryOneImage>
236
+ <hideGalleryAddClass>axZm_mouseOverNoMargin</hideGalleryAddClass>
237
+ <galleryHover>false</galleryHover>
238
+ <gallerySwitchSlide>false</gallerySwitchSlide>
239
+ <galleryAxZmThumbSlider>true</galleryAxZmThumbSlider>
240
+ <galleryAxZmThumbSliderParamHorz>{}</galleryAxZmThumbSliderParamHorz>
241
+ <galleryAxZmThumbSliderParamVert>{}</galleryAxZmThumbSliderParamVert>
242
+ <thumbSliderPosition>left-bottom</thumbSliderPosition>
243
+ <thumbSliderPositionSwitch>auto</thumbSliderPositionSwitch>
244
+ <thumbSliderMinSize>400</thumbSliderMinSize>
245
+ <thumbSliderDimensionHorz>80</thumbSliderDimensionHorz>
246
+ <thumbSliderDimensionVert>80</thumbSliderDimensionVert>
247
+ <thumbSliderAutoSizeHorz>true</thumbSliderAutoSizeHorz>
248
+ <thumbSliderAutoSizeVert>true</thumbSliderAutoSizeVert>
249
+ <thumbSliderAutoMarginHorz>7</thumbSliderAutoMarginHorz>
250
+ <thumbSliderAutoMarginVert>7</thumbSliderAutoMarginVert>
251
+ <thumbSliderAutoExtendHorz>0</thumbSliderAutoExtendHorz>
252
+ <thumbSliderAutoExtendVert>0</thumbSliderAutoExtendVert>
253
+ <thumbSliderHorzMargin>10</thumbSliderHorzMargin>
254
+ <thumbsFadeIn>200</thumbsFadeIn>
255
+ <thumbW>64</thumbW>
256
+ <thumbH>64</thumbH>
257
+ <thumbRetina>true</thumbRetina>
258
+ <thumbMode>false</thumbMode>
259
+ <qualityThumb>100</qualityThumb>
260
+ <thumbIcon>true</thumbIcon>
261
+ <thumbIconFile>{
262
+ "360": "360_1.png",
263
+ "3D": "3d_1.png",
264
+ "youtube": "youtube_icon_30.png",
265
+ "vimeo": "vimeo_icon_30.png",
266
+ "dailymotion": "video_icon-30.png",
267
+ "html5": "video_icon-30.png"
268
+ }</thumbIconFile>
269
+ <thumbWfs>64</thumbWfs>
270
+ <thumbHfs>64</thumbHfs>
271
+ <thumbRetinaFs>true</thumbRetinaFs>
272
+ <thumbModeFs>false</thumbModeFs>
273
+ <qualityThumbFs>100</qualityThumbFs>
274
+ <quality>90</quality>
275
+ <qualityZoom>80</qualityZoom>
276
+ <firstImageToLoad>1</firstImageToLoad>
277
+ <images360firstToLoad>false</images360firstToLoad>
278
+ <images360Thumb>true</images360Thumb>
279
+ <images360ThumbDefaultPostion>first</images360ThumbDefaultPostion>
280
+ <images360ThumbBeforeVideo>true</images360ThumbBeforeVideo>
281
+ <images360Overlay>false</images360Overlay>
282
+ <images360Small>media-360-600.png</images360Small>
283
+ <images360Big>media-360-1200.png</images360Big>
284
+ <images360example>mouseOverExtension360Ver5</images360example>
285
+ <zoomMsg360>{
286
+ "en" : "Drag to spin 360°, scroll to zoom in and out, right click and drag to pan",
287
+ "de" : "Ziehen um 360° zu drehen, zoomen mit dem mausrad, rechte maustaste ziehen verschiebt die Ansicht",
288
+ "fr" : "Faites glisser pour tourner à 360 °, faites défiler pour zoomer dans et hors, cliquer et faire glisser à droite pour vous déplacer",
289
+ "es" : "Arrastrar para girar en 360º, Rueda del ratón para utilizar el Zoom, botón derecho para mover la imagen"
290
+ }</zoomMsg360>
291
+ <zoomMsg360_touch>{
292
+ "en" : "Drag to spin 360°, pinch to zoom in and out",
293
+ "de" : "Ziehen um 360° zu drehen, zoomen mit zwei fingern",
294
+ "fr" : "Faites glisser pour tourner à 360 °, pincer pour zoomer et dézoomer",
295
+ "es" : "Arrastrar para girar en 360º, pellizcar para ampliar y reducir"
296
+ }</zoomMsg360_touch>
297
+ <preloadMouseOverImages>true</preloadMouseOverImages>
298
+ <noImageAvailableClass>axZm_mouseOverNoImage</noImageAvailableClass>
299
+ <width>800</width>
300
+ <height>800</height>
301
+ <oneSrcImg>true</oneSrcImg>
302
+ <heightRatio>1</heightRatio>
303
+ <heightRatioOneImg>1</heightRatioOneImg>
304
+ <heightMaxWidthRatio>[]</heightMaxWidthRatio>
305
+ <widthRatio>false</widthRatio>
306
+ <widthMaxHeightRatio>[]</widthMaxHeightRatio>
307
+ <maxSizePrc>1.0|-120</maxSizePrc>
308
+ <mouseOverZoomWidth>1200</mouseOverZoomWidth>
309
+ <mouseOverZoomHeight>1200</mouseOverZoomHeight>
310
+ <mouseOverContain>false</mouseOverContain>
311
+ <ajaxZoomOpenMode>fancyboxFullscreen</ajaxZoomOpenMode>
312
+ <ajaxZoomOpenModeTouch>fullscreen</ajaxZoomOpenModeTouch>
313
+ <fancyBoxFullscreenParam>{
314
+ "boxMargin": 30,
315
+ "boxPadding": 10,
316
+ "boxCenterOnScroll": true,
317
+ "boxOverlayShow": true,
318
+ "boxOverlayOpacity": 0.85,
319
+ "boxOverlayColor": "#777",
320
+ "boxTransitionIn": "fade",
321
+ "boxTransitionOut": "fade",
322
+ "boxSpeedIn": 300,
323
+ "boxSpeedOut": 300,
324
+ "boxEasingIn": "swing",
325
+ "boxEasingOut": "swing",
326
+ "boxShowCloseButton": true,
327
+ "boxEnableEscapeButton": true,
328
+ "boxOnComplete": function(){}
329
+ }</fancyBoxFullscreenParam>
330
+ <example>mouseOverExtension360Ver5</example>
331
+ <exampleFancyboxFullscreen>mouseOverExtension360Ver5</exampleFancyboxFullscreen>
332
+ <enforceFullScreenRes>768</enforceFullScreenRes>
333
+ <prevNextArrows>false</prevNextArrows>
334
+ <prevNextArrowsTouch>true</prevNextArrowsTouch>
335
+ <prevNextArrowsSlide>true</prevNextArrowsSlide>
336
+ <disableScrollAnm>true</disableScrollAnm>
337
+ <fullScreenApi>false</fullScreenApi>
338
+ <axZmCallBacks>{}</axZmCallBacks>
339
+ <azOptions>{}</azOptions>
340
+ <azOptions360>{}</azOptions360>
341
+ <postMode>false</postMode>
342
+ </general_settings>
343
+ <product_tour>
344
+ <cropAxZmThumbSliderParam>{}</cropAxZmThumbSliderParam>
345
+ <cropSliderPosition>bottom</cropSliderPosition>
346
+ <cropSliderPositionSwitch>auto</cropSliderPositionSwitch>
347
+ <cropSliderPosPriority>true</cropSliderPosPriority>
348
+ <cropSliderReposition>right-bottom</cropSliderReposition>
349
+ <cropSliderDimension>86</cropSliderDimension>
350
+ <cropSliderThumbAutoSize>true</cropSliderThumbAutoSize>
351
+ <cropSliderThumbAutoMargin>10</cropSliderThumbAutoMargin>
352
+ <cropSliderThumbDescr>true</cropSliderThumbDescr>
353
+ <cropSliderMinSize>400</cropSliderMinSize>
354
+ <cropSliderNotParent/>
355
+ <cropAxZmEbOpt>{
356
+ "marginX": 5,
357
+ "marginY": 5,
358
+ "openSpeed": 300,
359
+ "closeSpeed": 300,
360
+ "fadeInSpeed": 200,
361
+ "autoOpen": false,
362
+ "arrow": true,
363
+ "thumbSlider": true,
364
+ "parO": "#axZm_zoomLayer",
365
+ "dynText": true,
366
+ "dynTextBtn": [
367
+ {"base": 0.016, "min": 12, "max": 24, "important": true}
368
+ ],
369
+ "dynTextTitle": [
370
+ {"base": 0.016, "min": 18, "max": 28, "important": true}
371
+ ],
372
+ "dynTextDescr": [
373
+ ["*", {"base": 0.012, "min": 12, "max": 24, "important": true}],
374
+ ["h3", {"base": 0.016, "min": 16, "max": 32, "important": true}]
375
+ ]
376
+ }</cropAxZmEbOpt>
377
+ </product_tour>
378
+ <fullscreen_gallery>
379
+ <fsAxZmThumbSliderParam>{}</fsAxZmThumbSliderParam>
380
+ <fsSliderPosition>right-bottom</fsSliderPosition>
381
+ <fsSliderReposition>right-bottom</fsSliderReposition>
382
+ <fsSliderPositionSwitch>auto</fsSliderPositionSwitch>
383
+ <fsSliderDimension>80</fsSliderDimension>
384
+ <fsSliderThumbAutoSize>true</fsSliderThumbAutoSize>
385
+ <fsSliderThumbAutoMargin>7</fsSliderThumbAutoMargin>
386
+ <fsSliderThumbAutoExtend>0</fsSliderThumbAutoExtend>
387
+ <fsSliderThumbDescr>false</fsSliderThumbDescr>
388
+ <fsSliderMinSize>400</fsSliderMinSize>
389
+ <fsSliderGalleryFadeInAnm>Center</fsSliderGalleryFadeInAnm>
390
+ <fsSliderNotParent>axZm_mouseOverSpinWrapper</fsSliderNotParent>
391
+ <onGallerySwitch>null</onGallerySwitch>
392
+ </fullscreen_gallery>
393
+ <mouseover>
394
+ <position>right</position>
395
+ <posAutoInside>150</posAutoInside>
396
+ <touchScroll>0.8</touchScroll>
397
+ <noMouseOverZoom>false</noMouseOverZoom>
398
+ <noMouseOverZoomTouch>true</noMouseOverZoomTouch>
399
+ <noMouseOverZoomInside>false</noMouseOverZoomInside>
400
+ <noMouseOverZoomInsideTouch>true</noMouseOverZoomInsideTouch>
401
+ <mouseOverZoomHybrid>true</mouseOverZoomHybrid>
402
+ <slideTouchTime>200</slideTouchTime>
403
+ <slideTime>300</slideTime>
404
+ <posInsideArea>0.2</posInsideArea>
405
+ <autoFlip>200</autoFlip>
406
+ <biggestSpace>false</biggestSpace>
407
+ <zoomFullSpace>false</zoomFullSpace>
408
+ <zoomWidth>.product-shop|+1</zoomWidth>
409
+ <zoomHeight>.product-essential</zoomHeight>
410
+ <autoMargin>15</autoMargin>
411
+ <adjustX>15</adjustX>
412
+ <adjustY>-1</adjustY>
413
+ <lensOpacity>1</lensOpacity>
414
+ <lensStyle>{}</lensStyle>
415
+ <lensClass/>
416
+ <lensMessage>{
417
+ "en" : "Full screen",
418
+ "de": "Vollbild",
419
+ "fr": "Plein écran",
420
+ "es": "Pantalla completa"
421
+ }</lensMessage>
422
+ <zoomAreaBorderWidth>1</zoomAreaBorderWidth>
423
+ <galleryFade>300</galleryFade>
424
+ <shutterSpeed>150</shutterSpeed>
425
+ <showFade>300</showFade>
426
+ <hideFade>300</hideFade>
427
+ <flyOutSpeed>false</flyOutSpeed>
428
+ <flyOutTransition>linear</flyOutTransition>
429
+ <flyOutOpacity>0.6</flyOutOpacity>
430
+ <flyBackSpeed>false</flyBackSpeed>
431
+ <flyBackTransition>linear</flyBackTransition>
432
+ <flyBackOpacity>0.2</flyBackOpacity>
433
+ <autoScroll>false</autoScroll>
434
+ <smoothMove>6</smoothMove>
435
+ <tint>false</tint>
436
+ <tintOpacity>0.3</tintOpacity>
437
+ <tintFilter>false</tintFilter>
438
+ <tintFilterBack>none</tintFilterBack>
439
+ <tintLensBack>true</tintLensBack>
440
+ <showTitle>false</showTitle>
441
+ <titlePosition>top</titlePosition>
442
+ <titleParentContainer/>
443
+ <titlePermanent>false</titlePermanent>
444
+ <cursorPositionX>0.5</cursorPositionX>
445
+ <cursorPositionY>0.55</cursorPositionY>
446
+ <loading>true</loading>
447
+ <loadingMessage>{
448
+ "en": "Loading...",
449
+ "de": "Loading...",
450
+ "fr": "Loading...",
451
+ "es": "Loading..."
452
+ }</loadingMessage>
453
+ <zoomHintEnable>true</zoomHintEnable>
454
+ <zoomHintText>{
455
+ "en" : "Zoom",
456
+ "de" : "Zoom",
457
+ "fr" : "Zoom",
458
+ "es" : "Zoom"
459
+ }</zoomHintText>
460
+ <zoomMsgHover>{
461
+ "en" : "Roll over the image to zoom in",
462
+ "de" : "Für größere Ansicht mit der Maus über das Bild ziehen",
463
+ "fr" : "Survolez l'image pour zoomer",
464
+ "es" : "Pase el cursor sbore la imagen para hacer zoom con la rueda del ratón"
465
+ }</zoomMsgHover>
466
+ <zoomMsgHoverTouch>{
467
+ "en" : "Tap to open expanded view",
468
+ "de" : "Klicken Sie auf das Bild, um erweiterte Ansicht zu öffnen",
469
+ "fr" : "Cliquez sur l'image pour ouvrir la vue élargie",
470
+ "es" : "Haga clic para ampliar la imagen"
471
+ }</zoomMsgHoverTouch>
472
+ <zoomMsgClick>{
473
+ "en" : "Click to open expanded view",
474
+ "de" : "Klicken Sie auf das Bild, um erweiterte Ansicht zu öffnen",
475
+ "fr" : "Cliquez sur l'image pour ouvrir la vue élargie",
476
+ "es" : "Haga clic para ampliar la imagen"
477
+ }</zoomMsgClick>
478
+ <slideInTime>200</slideInTime>
479
+ <slideInEasingCSS3>easeOutExpo</slideInEasingCSS3>
480
+ <slideInEasing>easeOutExpo</slideInEasing>
481
+ <slideInScale>0.8</slideInScale>
482
+ <slideOutScale>0.8</slideOutScale>
483
+ <slideOutOpacity>0</slideOutOpacity>
484
+ <slideOutDest>4</slideOutDest>
485
+ <onInit>false</onInit>
486
+ <onLoad>false</onLoad>
487
+ <onImageChange>false</onImageChange>
488
+ <onMouseOver>false</onMouseOver>
489
+ <onMouseOut>false</onMouseOut>
490
+ <spinner>true</spinner>
491
+ <spinnerParam>{
492
+ "lines": 11,
493
+ "length": 3,
494
+ "width": 3,
495
+ "radius": 4,
496
+ "corners": 1,
497
+ "rotate": 0,
498
+ "color": "#FFFFFF",
499
+ "speed": 1,
500
+ "trail": 90,
501
+ "shadow": false,
502
+ "hwaccel": false,
503
+ "className": "spinner",
504
+ "zIndex": 2e9,
505
+ "top": 0,
506
+ "left": 1
507
+ }</spinnerParam>
508
+ </mouseover>
509
+ </axzoom_options>
510
 
511
+ </default>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  </config>
app/code/local/Ax/Zoom/etc/system.xml CHANGED
@@ -16,1489 +16,2251 @@
16
  */
17
  -->
18
  <config>
19
- <sections>
20
- <axzoom_options translate="label" module="axzoom">
21
- <label>AJAX-ZOOM</label>
22
- <tab>catalog</tab>
23
- <frontend_type>text</frontend_type>
24
- <sort_order>30</sort_order>
25
- <show_in_default>1</show_in_default>
26
- <show_in_website>1</show_in_website>
27
- <show_in_store>1</show_in_store>
28
- <groups>
29
-
30
- <general translate="label">
31
- <label>About</label>
32
- <sort_order>10</sort_order>
33
- <show_in_default>1</show_in_default>
34
- <show_in_website>1</show_in_website>
35
- <show_in_store>1</show_in_store>
36
- <comment>
37
- <![CDATA[
38
- <style>
39
- .importantAZoption{
40
- color: #3d6611 !important;
41
- font-weight: bolder;
42
- background-position: 0 0 !important;
43
- padding-left: 24px;
44
- background-color: transparent !important;
45
- border-width: 0 !important;
46
- word-break: break-all;
47
- }
48
- .comment a{
49
- color: #ea7601 !important;
50
- }
51
- .importantAZcolor{
52
- color: #3d6611 !important;
53
- font-weight: bolder;
54
- }
55
- #licType{
56
- width: 100px !important;
57
- }
58
- </style>
59
- <script>
60
- var az_getCoordsEl = function(elem) { var box = elem.getBoundingClientRect(); var body = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop; var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft; var clientTop = docEl.clientTop || body.clientTop || 0; var clientLeft = docEl.clientLeft || body.clientLeft || 0;var top = box.top + scrollTop - clientTop; var left = box.left + scrollLeft - clientLeft; return { top: Math.round(top), left: Math.round(left) }; }
61
-
62
- // Fieldset.az_open('axzoom_options_mouseOverZoomParam', 'axzoom_options_mouseOverZoomParam_zoomWidth');
63
- if (Fieldset){
64
- Fieldset.az_open = function(containerId, scrollToElId){
65
- var test_col = $(containerId + '-state').value;
66
- if (test_col == 0){
67
- this.toggleCollapse(containerId);
68
- }
69
- if (scrollToElId){
70
- var ell = document.getElementById(scrollToElId);
71
- if (ell){
72
- var targetY = az_getCoordsEl(ell)['top'] - 50;
73
- if (targetY < 0){return;}
74
- window.scrollTo(0, targetY);
75
- }
76
- }
77
- }
78
- }else{
79
- Fieldset = {
80
- az_open: function(containerId){
81
- return;
82
- }
83
- };
84
- }
85
- </script>
86
 
87
- <ul style="list-style: square">
88
- <li>AJAX-ZOOM is a multipurpose library for displaying (high resolution) images and 360°/3D spins. <br>
89
- This Magento module integrates only one particular implementation (example) from AJAX-ZOOM library into Magento. <br>
90
- In raw form this example can be found here:
91
- <a target="_blank" href="http://www.ajax-zoom.com/examples/example32_responsive.php">
92
- http://www.ajax-zoom.com/examples/example32_responsive.php
93
- </a> <br>
94
- There you will also find some subtle details about the options which you can configure below. <br>
95
- The options below mainly refer to this one implementation / example. <br><br>
96
- <b>However</b> AJAX-ZOOM has many other options which can be set manually in /js/axzoom/axZm/zoomConfigCustom.inc.php
97
- after <br> <code>elseif ($_GET['example'] == 'mouseOverExtension360')</code> for 360° views and
98
- <br><code>elseif ($_GET['example'] == 'mouseOverExtension')</code>
99
- for regular images views <br> or if you do not want to edit PHP files - most of the options can be also set in these
100
- formfields as JS plain object:
101
- <ol style="margin-left: 25px; list-style: decimal">
102
- <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_main', 'axzoom_options_main_azOptions')">azOptions</a> - for 2D zoom</li>
103
- <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_main', 'axzoom_options_main_azOptions360')">azOptions360</a> - for 360/3D zoom</li>
104
- </ol>
105
- </li>
106
- <li>Depending on the template used you might need to adjust especially these two options:
107
- <ol style="margin-left: 25px; list-style: decimal">
108
- <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_mouseOverZoomParam', 'axzoom_options_mouseOverZoomParam_zoomWidth')">zoomWidth</a> - width of the mouseover flyout window</li>
109
- <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_mouseOverZoomParam', 'axzoom_options_mouseOverZoomParam_zoomHeight')">zoomHeight</a> - height of the mouseover flyout window</li>
110
- </ol>
111
- If you will be not able to adjust these options on your own please
112
- <a target="_blank" href="http://www.ajax-zoom.com/index.php?cid=contact">ask for support</a>
113
- </li>
114
- <li>Other useful / most common options are marked <span class="importantAZcolor">green</span> with this symbol: <span class="notice-msg importantAZoption"></span>
115
- </li>
116
- </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  ]]>
118
- </comment>
119
- </general>
120
-
121
- <license translate="label">
122
- <label>AJAX-ZOOM license(s)</label>
123
- <frontend_type>text</frontend_type>
124
- <sort_order>20</sort_order>
125
- <show_in_default>1</show_in_default>
126
- <show_in_website>1</show_in_website>
127
- <show_in_store>1</show_in_store>
128
- <fields>
129
- <lic>
130
- <label>License</label>
131
- <comment><![CDATA[<a href="http://www.ajax-zoom.com/index.php?cid=contact" target="_blank">Ask for support</a>&nbsp;&nbsp;&nbsp;<a href="http://www.ajax-zoom.com/index.php?cid=download#heading_3" target="_blank">Buy a license</a>]]></comment>
132
-
133
- <frontend_model>zoom/adminhtml_system_config_fieldset_license</frontend_model>
134
- <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
135
-
136
- <sort_order>1</sort_order>
137
- <show_in_default>1</show_in_default>
138
- <show_in_website>1</show_in_website>
139
- <show_in_store>1</show_in_store>
140
- </lic>
141
- </fields>
142
- </license>
143
-
144
- <mouseOverZoomParam translate="label">
145
- <label>Specific options for mouseover zoom</label>
146
- <frontend_type>text</frontend_type>
147
- <sort_order>30</sort_order>
148
- <show_in_default>1</show_in_default>
149
- <show_in_website>1</show_in_website>
150
- <show_in_store>1</show_in_store>
151
- <fields>
152
- <position>
153
- <label><![CDATA[<div class="notice-msg importantAZoption">position</div>]]></label>
154
- <comment>Position of the flyout zoom window, possible values: 'inside', 'top', 'right', 'bottom', 'left'</comment>
155
- <frontend_type>select</frontend_type>
156
- <source_model>axzoom/position</source_model>
157
- <sort_order>10</sort_order>
158
- <show_in_default>1</show_in_default>
159
- <show_in_website>1</show_in_website>
160
- <show_in_store>1</show_in_store>
161
- </position>
162
- <posAutoInside>
163
- <label>posAutoInside</label>
164
- <comment>applies when width (left, right) or height (top, bottom) of zoom window are less than this px value (zoomWidth || zoomHeight are set to auto); if zoomWidth || zoomHeight are fixed, applies when zoom window is out of page border</comment>
165
- <frontend_type>text</frontend_type>
166
- <sort_order>20</sort_order>
167
- <show_in_default>1</show_in_default>
168
- <show_in_website>1</show_in_website>
169
- <show_in_store>1</show_in_store>
170
- </posAutoInside>
171
- <posInsideArea>
172
- <label>posInsideArea</label>
173
- <comment>When "posAutoInside" is enabled and inner zoom fires or "position" option is set to 'inside' right away - there is no lens. However you will notice that the reaction to mouse movements occure somewhere in the middle of the image; at the edges mostly nothing happens in simmilar scripts. With this option you can adjust how far from the edge mouse movements should be captured. The range is between 0 and 0.5;</comment>
174
- <frontend_type>text</frontend_type>
175
- <sort_order>30</sort_order>
176
- <show_in_default>1</show_in_default>
177
- <show_in_website>1</show_in_website>
178
- <show_in_store>1</show_in_store>
179
- </posInsideArea>
180
- <touchScroll>
181
- <label><![CDATA[<div class="notice-msg importantAZoption">touchScroll</div>]]></label>
182
- <comment>If width of the mouseover zoom container is more than 80% (0.8) of the widnow width, than for touch devises the inner zoom will be not triggered and the user can scroll down. Click for open AJAX-ZOOM remains. Set this value to 0 if you want to enable the slider for touch devices only. </comment>
183
- <frontend_type>text</frontend_type>
184
- <sort_order>40</sort_order>
185
- <show_in_default>1</show_in_default>
186
- <show_in_website>1</show_in_website>
187
- <show_in_store>1</show_in_store>
188
- </touchScroll>
189
- <noMouseOverZoom>
190
- <label><![CDATA[<div class="notice-msg importantAZoption">noMouseOverZoom</div>]]></label>
191
- <comment>Disable mouseover zoom completly for touch and none touch devices. If you want to disable it only for touch devices, set "touchScroll" option above to 0 </comment>
192
- <frontend_type>select</frontend_type>
193
- <source_model>axzoom/yesno</source_model>
194
- <sort_order>50</sort_order>
195
- <show_in_default>1</show_in_default>
196
- <show_in_website>1</show_in_website>
197
- <show_in_store>1</show_in_store>
198
- </noMouseOverZoom>
199
- <autoFlip>
200
- <label>autoFlip</label>
201
- <comment>Flip right to left and bottom to top if less than int px value or false to disable</comment>
202
- <frontend_type>text</frontend_type>
203
- <sort_order>60</sort_order>
204
- <show_in_default>1</show_in_default>
205
- <show_in_website>1</show_in_website>
206
- <show_in_store>1</show_in_store>
207
- </autoFlip>
208
- <biggestSpace>
209
- <label>biggestSpace</label>
210
- <comment>Overrides position option and instantly chooses the direction, disables autoFlip; playes nicely when zoomWidth and zoomHeight are set to 'auto'</comment>
211
- <frontend_type>select</frontend_type>
212
- <source_model>axzoom/yesno</source_model>
213
- <sort_order>70</sort_order>
214
- <show_in_default>1</show_in_default>
215
- <show_in_website>1</show_in_website>
216
- <show_in_store>1</show_in_store>
217
- </biggestSpace>
218
- <zoomFullSpace>
219
- <label>zoomFullSpace</label>
220
- <comment>Uses full screen height (does not align to the map / disables adjustY) if position is right or left || uses full screen width (does not align to the map / disables adjustX) if position is top or bottom</comment>
221
- <frontend_type>select</frontend_type>
222
- <source_model>axzoom/yesno</source_model>
223
- <sort_order>80</sort_order>
224
- <show_in_default>1</show_in_default>
225
- <show_in_website>1</show_in_website>
226
- <show_in_store>1</show_in_store>
227
- </zoomFullSpace>
228
- <zoomWidth>
229
- <label><![CDATA[<div class="notice-msg importantAZoption">zoomWidth</div>]]></label>
230
- <comment>Width of the zoom window e.g. 540 or 'auto' or jQuery selector|correction value, e.g. '#refWidthTest|+20';
231
- so if you want to have a width of the zoom window same as for example a responsive container to the right
232
- (so it is fully covered) and max possible height, then define the id of this container to the right,
233
- e.g. 'myArticleData', set "zoomWidth" to '#myArticleData|+10' and "zoomHeight" to 'auto'.
234
- New in Ver. b4: if you have a three column design and want to cover both containers to the right,
235
- then just define both containers in the jQuery selector, e.g. '.pb-center-column,.pb-right-column|+20';
236
- the margin between the containers is not taken into account but you can adjust the result with the second value after vertical bar.
237
- </comment>
238
- <frontend_type>text</frontend_type>
239
- <sort_order>90</sort_order>
240
- <show_in_default>1</show_in_default>
241
- <show_in_website>1</show_in_website>
242
- <show_in_store>1</show_in_store>
243
- </zoomWidth>
244
- <zoomHeight>
245
- <label><![CDATA[<div class="notice-msg importantAZoption">zoomHeight</div>]]></label>
246
- <comment>Height of the zoom window e.g. 375, or 'auto' or jQuery selector|correction value,
247
- e.g. '#refWidthTest|+20'; if your selector matches more than one element, e.g. '.pb-center-column,.pb-right-column|+20',
248
- then the highest value will be choosen. This is different from the multiple selector in "zoomWidth", where the values are added.
249
- </comment>
250
- <frontend_type>text</frontend_type>
251
- <sort_order>100</sort_order>
252
- <show_in_default>1</show_in_default>
253
- <show_in_website>1</show_in_website>
254
- <show_in_store>1</show_in_store>
255
- </zoomHeight>
256
- <autoMargin>
257
- <label>autoMargin</label>
258
- <comment>If zoomWidth or zoomHeight are set to 'auto', the margin to the edge of the screen</comment>
259
- <frontend_type>text</frontend_type>
260
- <sort_order>110</sort_order>
261
- <show_in_default>1</show_in_default>
262
- <show_in_website>1</show_in_website>
263
- <show_in_store>1</show_in_store>
264
- </autoMargin>
265
- <adjustX>
266
- <label><![CDATA[<div class="notice-msg importantAZoption">adjustX</div>]]></label>
267
- <comment>Horizontal margin of the zoom window</comment>
268
- <frontend_type>text</frontend_type>
269
- <sort_order>120</sort_order>
270
- <show_in_default>1</show_in_default>
271
- <show_in_website>1</show_in_website>
272
- <show_in_store>1</show_in_store>
273
- </adjustX>
274
- <adjustY>
275
- <label><![CDATA[<div class="notice-msg importantAZoption">adjustY</div>]]></label>
276
- <comment>Vertical margin of the zoom window</comment>
277
- <frontend_type>text</frontend_type>
278
- <sort_order>130</sort_order>
279
- <show_in_default>1</show_in_default>
280
- <show_in_website>1</show_in_website>
281
- <show_in_store>1</show_in_store>
282
- </adjustY>
283
- <lensOpacity>
284
- <label><![CDATA[<div class="notice-msg importantAZoption">lensOpacity</div>]]></label>
285
- <comment>Opacity of the selector lens</comment>
286
- <frontend_type>text</frontend_type>
287
- <sort_order>140</sort_order>
288
- <show_in_default>1</show_in_default>
289
- <show_in_website>1</show_in_website>
290
- <show_in_store>1</show_in_store>
291
- </lensOpacity>
292
- <lensStyle>
293
- <label>lensStyle</label>
294
- <comment>Quickly override css of the lens</comment>
295
- <frontend_type>textarea</frontend_type>
296
- <sort_order>150</sort_order>
297
- <show_in_default>1</show_in_default>
298
- <show_in_website>1</show_in_website>
299
- <show_in_store>1</show_in_store>
300
- </lensStyle>
301
- <lensClass>
302
- <label>lensClass</label>
303
- <comment>Set css class for the lens</comment>
304
- <frontend_type>text</frontend_type>
305
- <sort_order>160</sort_order>
306
- <show_in_default>1</show_in_default>
307
- <show_in_website>1</show_in_website>
308
- <show_in_store>1</show_in_store>
309
- </lensClass>
310
- <zoomAreaBorderWidth>
311
- <label>zoomAreaBorderWidth</label>
312
- <comment>Border thickness of the zoom window</comment>
313
- <frontend_type>text</frontend_type>
314
- <sort_order>170</sort_order>
315
- <show_in_default>1</show_in_default>
316
- <show_in_website>1</show_in_website>
317
- <show_in_store>1</show_in_store>
318
- </zoomAreaBorderWidth>
319
- <galleryFade>
320
- <label>galleryFade</label>
321
- <comment>Speed of inner fade or false</comment>
322
- <frontend_type>text</frontend_type>
323
- <sort_order>180</sort_order>
324
- <show_in_default>1</show_in_default>
325
- <show_in_website>1</show_in_website>
326
- <show_in_store>1</show_in_store>
327
- </galleryFade>
328
- <shutterSpeed>
329
- <label>shutterSpeed</label>
330
- <comment>Speed of shutter fadein or false; applies only if image proportions are different from container</comment>
331
- <frontend_type>text</frontend_type>
332
- <sort_order>190</sort_order>
333
- <show_in_default>1</show_in_default>
334
- <show_in_website>1</show_in_website>
335
- <show_in_store>1</show_in_store>
336
- </shutterSpeed>
337
- <showFade>
338
- <label>showFade</label>
339
- <comment>Speed of fade in for mouse over</comment>
340
- <frontend_type>text</frontend_type>
341
- <sort_order>200</sort_order>
342
- <show_in_default>1</show_in_default>
343
- <show_in_website>1</show_in_website>
344
- <show_in_store>1</show_in_store>
345
- </showFade>
346
- <hideFade>
347
- <label>hideFade</label>
348
- <comment>Speed of fade out for mouse over</comment>
349
- <frontend_type>text</frontend_type>
350
- <sort_order>210</sort_order>
351
- <show_in_default>1</show_in_default>
352
- <show_in_website>1</show_in_website>
353
- <show_in_store>1</show_in_store>
354
- </hideFade>
355
- <flyOutSpeed>
356
- <label>flyOutSpeed</label>
357
- <comment>Speed for flyout or false to disable</comment>
358
- <frontend_type>text</frontend_type>
359
- <sort_order>220</sort_order>
360
- <show_in_default>1</show_in_default>
361
- <show_in_website>1</show_in_website>
362
- <show_in_store>1</show_in_store>
363
- </flyOutSpeed>
364
- <flyOutTransition>
365
- <label>flyOutTransition</label>
366
- <comment>Transition of the flyout</comment>
367
- <frontend_type>text</frontend_type>
368
- <sort_order>230</sort_order>
369
- <show_in_default>1</show_in_default>
370
- <show_in_website>1</show_in_website>
371
- <show_in_store>1</show_in_store>
372
- </flyOutTransition>
373
- <flyOutOpacity>
374
- <label>flyOutOpacity</label>
375
- <comment>Initial opacity for flyout</comment>
376
- <frontend_type>text</frontend_type>
377
- <sort_order>240</sort_order>
378
- <show_in_default>1</show_in_default>
379
- <show_in_website>1</show_in_website>
380
- <show_in_store>1</show_in_store>
381
- </flyOutOpacity>
382
- <flyBackSpeed>
383
- <label>flyBackSpeed</label>
384
- <comment>Speed for fly back or false to disable</comment>
385
- <frontend_type>text</frontend_type>
386
- <sort_order>250</sort_order>
387
- <show_in_default>1</show_in_default>
388
- <show_in_website>1</show_in_website>
389
- <show_in_store>1</show_in_store>
390
- </flyBackSpeed>
391
- <flyBackTransition>
392
- <label>flyBackTransition</label>
393
- <comment>Transition type of the fly back</comment>
394
- <frontend_type>text</frontend_type>
395
- <sort_order>260</sort_order>
396
- <show_in_default>1</show_in_default>
397
- <show_in_website>1</show_in_website>
398
- <show_in_store>1</show_in_store>
399
- </flyBackTransition>
400
- <flyBackOpacity>
401
- <label>flyBackOpacity</label>
402
- <comment>Final opacity of fly back</comment>
403
- <frontend_type>text</frontend_type>
404
- <sort_order>270</sort_order>
405
- <show_in_default>1</show_in_default>
406
- <show_in_website>1</show_in_website>
407
- <show_in_store>1</show_in_store>
408
- </flyBackOpacity>
409
- <autoScroll>
410
- <label>autoScroll</label>
411
- <comment>Scroll page when clicked on the thumb and the mouse over preview image is not fully visible</comment>
412
- <frontend_type>select</frontend_type>
413
- <source_model>axzoom/yesno</source_model>
414
- <sort_order>280</sort_order>
415
- <show_in_default>1</show_in_default>
416
- <show_in_website>1</show_in_website>
417
- <show_in_store>1</show_in_store>
418
- </autoScroll>
419
- <smoothMove>
420
- <label><![CDATA[<div class="notice-msg importantAZoption">smoothMove</div>]]></label>
421
- <comment>Integer bigger than 1 indicates smoother movements; set 0 to disable</comment>
422
- <frontend_type>text</frontend_type>
423
- <sort_order>290</sort_order>
424
- <show_in_default>1</show_in_default>
425
- <show_in_website>1</show_in_website>
426
- <show_in_store>1</show_in_store>
427
- </smoothMove>
428
- <tint>
429
- <label>tint</label>
430
- <comment>Color value around the lens or false</comment>
431
- <frontend_type>text</frontend_type>
432
- <sort_order>300</sort_order>
433
- <show_in_default>1</show_in_default>
434
- <show_in_website>1</show_in_website>
435
- <show_in_store>1</show_in_store>
436
- </tint>
437
- <tintOpacity>
438
- <label>tintOpacity</label>
439
- <comment>Opacity of the area around the lens when "tint" option is set to some color value</comment>
440
- <frontend_type>text</frontend_type>
441
- <sort_order>310</sort_order>
442
- <show_in_default>1</show_in_default>
443
- <show_in_website>1</show_in_website>
444
- <show_in_store>1</show_in_store>
445
- </tintOpacity>
446
- <tintFilter>
447
- <label>tintFilter</label>
448
- <comment>Apply filter to the image, e.g. "blur", "grayscale", "sepia", "invert", "saturate"; see also .axZm_mouseOverEffect>img CSS</comment>
449
- <frontend_type>text</frontend_type>
450
- <sort_order>320</sort_order>
451
- <show_in_default>1</show_in_default>
452
- <show_in_website>1</show_in_website>
453
- <show_in_store>1</show_in_store>
454
- </tintFilter>
455
- <tintLensBack>
456
- <label>tintLensBack</label>
457
- <comment>Show background image in the lens</comment>
458
- <frontend_type>select</frontend_type>
459
- <source_model>axzoom/yesno</source_model>
460
- <sort_order>330</sort_order>
461
- <show_in_default>1</show_in_default>
462
- <show_in_website>1</show_in_website>
463
- <show_in_store>1</show_in_store>
464
- </tintLensBack>
465
- <showTitle>
466
- <label>showTitle</label>
467
- <comment>Enable / disable title on zoom window</comment>
468
- <frontend_type>select</frontend_type>
469
- <source_model>axzoom/yesno</source_model>
470
- <sort_order>340</sort_order>
471
- <show_in_default>1</show_in_default>
472
- <show_in_website>1</show_in_website>
473
- <show_in_store>1</show_in_store>
474
- </showTitle>
475
- <titleOpacity>
476
- <label>titleOpacity</label>
477
- <comment>Opacity of the title container</comment>
478
- <frontend_type>text</frontend_type>
479
- <sort_order>350</sort_order>
480
- <show_in_default>1</show_in_default>
481
- <show_in_website>1</show_in_website>
482
- <show_in_store>1</show_in_store>
483
- </titleOpacity>
484
- <titlePosition>
485
- <label>titlePosition</label>
486
- <comment>Position of the title, top or bottom</comment>
487
- <frontend_type>text</frontend_type>
488
- <sort_order>360</sort_order>
489
- <show_in_default>1</show_in_default>
490
- <show_in_website>1</show_in_website>
491
- <show_in_store>1</show_in_store>
492
- </titlePosition>
493
- <cursorPositionX>
494
- <label>cursorPositionX</label>
495
- <comment>Cursor over lens horizontal offset, 0.5 is middle</comment>
496
- <frontend_type>text</frontend_type>
497
- <sort_order>370</sort_order>
498
- <show_in_default>1</show_in_default>
499
- <show_in_website>1</show_in_website>
500
- <show_in_store>1</show_in_store>
501
- </cursorPositionX>
502
- <cursorPositionY>
503
- <label>cursorPositionY</label>
504
- <comment>Cursor over lens vertical offset, 0.5 is middle</comment>
505
- <frontend_type>text</frontend_type>
506
- <sort_order>380</sort_order>
507
- <show_in_default>1</show_in_default>
508
- <show_in_website>1</show_in_website>
509
- <show_in_store>1</show_in_store>
510
- </cursorPositionY>
511
- <touchClickAbort>
512
- <label>touchClickAbort</label>
513
- <comment>Time in ms after which click is aborted without touch movement and mousehover is initialized</comment>
514
- <frontend_type>text</frontend_type>
515
- <sort_order>390</sort_order>
516
- <show_in_default>1</show_in_default>
517
- <show_in_website>1</show_in_website>
518
- <show_in_store>1</show_in_store>
519
- </touchClickAbort>
520
- <loading>
521
- <label>loading</label>
522
- <comment>Display loading information, CSS .mouseOverLoading</comment>
523
- <frontend_type>select</frontend_type>
524
- <source_model>axzoom/yesno</source_model>
525
- <sort_order>400</sort_order>
526
- <show_in_default>1</show_in_default>
527
- <show_in_website>1</show_in_website>
528
- <show_in_store>1</show_in_store>
529
- </loading>
530
- <loadingMessage>
531
- <label>loadingMessage</label>
532
- <comment>Loading message, not needed, can be just the spinner - see below</comment>
533
- <frontend_type>textarea</frontend_type>
534
- <sort_order>410</sort_order>
535
- <show_in_default>1</show_in_default>
536
- <show_in_website>1</show_in_website>
537
- <show_in_store>1</show_in_store>
538
- </loadingMessage>
539
- <loadingWidth>
540
- <label>loadingWidth</label>
541
- <comment>Width of loading container</comment>
542
- <frontend_type>text</frontend_type>
543
- <sort_order>420</sort_order>
544
- <show_in_default>1</show_in_default>
545
- <show_in_website>1</show_in_website>
546
- <show_in_store>1</show_in_store>
547
- </loadingWidth>
548
- <loadingHeight>
549
- <label>loadingHeight</label>
550
- <comment>Height of loading container</comment>
551
- <frontend_type>text</frontend_type>
552
- <sort_order>430</sort_order>
553
- <show_in_default>1</show_in_default>
554
- <show_in_website>1</show_in_website>
555
- <show_in_store>1</show_in_store>
556
- </loadingHeight>
557
- <loadingOpacity>
558
- <label>loadingOpacity</label>
559
- <comment>Opacity of the loading container (the transparent background is set via png image on default, see css class)</comment>
560
- <frontend_type>text</frontend_type>
561
- <sort_order>440</sort_order>
562
- <show_in_default>1</show_in_default>
563
- <show_in_website>1</show_in_website>
564
- <show_in_store>1</show_in_store>
565
- </loadingOpacity>
566
- <zoomHintEnable>
567
- <label>zoomHintEnable</label>
568
- <comment>Enable zoom icon which disappears on mouse hover; css class: .axZm_mouseOverZoomHint; If you want to change the position or the icon simply change the css class;</comment>
569
- <frontend_type>select</frontend_type>
570
- <source_model>axzoom/yesno</source_model>
571
- <sort_order>450</sort_order>
572
- <show_in_default>1</show_in_default>
573
- <show_in_website>1</show_in_website>
574
- <show_in_store>1</show_in_store>
575
- </zoomHintEnable>
576
- <zoomHintText>
577
- <label>zoomHintText</label>
578
- <comment>Text which will be appended next to the icon enabled by "zoomHintEnable"</comment>
579
- <frontend_type>text</frontend_type>
580
- <sort_order>460</sort_order>
581
- <show_in_default>1</show_in_default>
582
- <show_in_website>1</show_in_website>
583
- <show_in_store>1</show_in_store>
584
- </zoomHintText>
585
- <zoomMsgHover>
586
- <label>zoomMsgHover</label>
587
- <comment>Message which can appear under the mouse over zoom, css class: .axZm_mouseOverZoomMsg</comment>
588
- <frontend_type>textarea</frontend_type>
589
- <sort_order>470</sort_order>
590
- <show_in_default>1</show_in_default>
591
- <show_in_website>1</show_in_website>
592
- <show_in_store>1</show_in_store>
593
- </zoomMsgHover>
594
- <zoomMsgClick>
595
- <label>zoomMsgClick</label>
596
- <comment>Message which can appear under the mouse over zoom when the mouse enters it.</comment>
597
- <frontend_type>text</frontend_type>
598
- <sort_order>480</sort_order>
599
- <show_in_default>1</show_in_default>
600
- <show_in_website>1</show_in_website>
601
- <show_in_store>1</show_in_store>
602
- </zoomMsgClick>
603
- <slideInTime>
604
- <label>slideInTime</label>
605
- <comment>Slide in time if "noMouseOverZoom" is enabled or "touchScroll" option enables for touch devices</comment>
606
- <frontend_type>text</frontend_type>
607
- <sort_order>490</sort_order>
608
- <show_in_default>1</show_in_default>
609
- <show_in_website>1</show_in_website>
610
- <show_in_store>1</show_in_store>
611
- </slideInTime>
612
- <slideInEasingCSS3>
613
- <label>slideInEasingCSS3</label>
614
- <comment>jQuery equivalent of easing or own function (string), e.g. "cubic-bezier(0.21,0.51,0.4,2.02)", see also cubic-bezier.com </comment>
615
- <frontend_type>text</frontend_type>
616
- <sort_order>500</sort_order>
617
- <show_in_default>1</show_in_default>
618
- <show_in_website>1</show_in_website>
619
- <show_in_store>1</show_in_store>
620
- </slideInEasingCSS3>
621
- <slideInEasing>
622
- <label>slideInEasing</label>
623
- <comment>jQuery easing function for sliding in (fallback if CSS3 animation is not supported)</comment>
624
- <frontend_type>text</frontend_type>
625
- <sort_order>510</sort_order>
626
- <show_in_default>1</show_in_default>
627
- <show_in_website>1</show_in_website>
628
- <show_in_store>1</show_in_store>
629
- </slideInEasing>
630
- <slideInScale>
631
- <label>slideInScale</label>
632
- <comment>Scale initial size (goes to 1.0 while animation)</comment>
633
- <frontend_type>text</frontend_type>
634
- <sort_order>520</sort_order>
635
- <show_in_default>1</show_in_default>
636
- <show_in_website>1</show_in_website>
637
- <show_in_store>1</show_in_store>
638
- </slideInScale>
639
- <slideOutScale>
640
- <label>slideOutScale</label>
641
- <comment>Scale slideout size</comment>
642
- <frontend_type>text</frontend_type>
643
- <sort_order>530</sort_order>
644
- <show_in_default>1</show_in_default>
645
- <show_in_website>1</show_in_website>
646
- <show_in_store>1</show_in_store>
647
- </slideOutScale>
648
- <slideOutOpacity>
649
- <label>slideOutOpacity</label>
650
- <comment>Slideout opacity</comment>
651
- <frontend_type>text</frontend_type>
652
- <sort_order>540</sort_order>
653
- <show_in_default>1</show_in_default>
654
- <show_in_website>1</show_in_website>
655
- <show_in_store>1</show_in_store>
656
- </slideOutOpacity>
657
- <slideOutDest>
658
- <label>slideOutDest</label>
659
- <comment>Target slideout position, possible values: 1, 2 or 3</comment>
660
- <frontend_type>text</frontend_type>
661
- <sort_order>550</sort_order>
662
- <show_in_default>1</show_in_default>
663
- <show_in_website>1</show_in_website>
664
- <show_in_store>1</show_in_store>
665
- </slideOutDest>
666
- <onInit>
667
- <label>onInit</label>
668
- <comment>Callback function</comment>
669
- <frontend_type>textarea</frontend_type>
670
- <sort_order>560</sort_order>
671
- <show_in_default>1</show_in_default>
672
- <show_in_website>1</show_in_website>
673
- <show_in_store>1</show_in_store>
674
- </onInit>
675
- <onLoad>
676
- <label>onLoad</label>
677
- <comment>Callback function</comment>
678
- <frontend_type>textarea</frontend_type>
679
- <sort_order>570</sort_order>
680
- <show_in_default>1</show_in_default>
681
- <show_in_website>1</show_in_website>
682
- <show_in_store>1</show_in_store>
683
- </onLoad>
684
- <onImageChange>
685
- <label>onImageChange</label>
686
- <comment>Callback function</comment>
687
- <frontend_type>textarea</frontend_type>
688
- <sort_order>580</sort_order>
689
- <show_in_default>1</show_in_default>
690
- <show_in_website>1</show_in_website>
691
- <show_in_store>1</show_in_store>
692
- </onImageChange>
693
- <onMouseOver>
694
- <label>onMouseOver</label>
695
- <comment>Callback function</comment>
696
- <frontend_type>textarea</frontend_type>
697
- <sort_order>590</sort_order>
698
- <show_in_default>1</show_in_default>
699
- <show_in_website>1</show_in_website>
700
- <show_in_store>1</show_in_store>
701
- </onMouseOver>
702
- <onMouseOut>
703
- <label>onMouseOut</label>
704
- <comment>Callback function</comment>
705
- <frontend_type>textarea</frontend_type>
706
- <sort_order>600</sort_order>
707
- <show_in_default>1</show_in_default>
708
- <show_in_website>1</show_in_website>
709
- <show_in_store>1</show_in_store>
710
- </onMouseOut>
711
- <spinner>
712
- <label>spinner</label>
713
- <comment>Use ajax loading spinner without gif files etc</comment>
714
- <frontend_type>select</frontend_type>
715
- <source_model>axzoom/yesno</source_model>
716
- <sort_order>610</sort_order>
717
- <show_in_default>1</show_in_default>
718
- <show_in_website>1</show_in_website>
719
- <show_in_store>1</show_in_store>
720
- </spinner>
721
- <spinnerParam>
722
- <label>spinnerParam</label>
723
- <comment>Spinner options, for more info see: http://fgnass.github.com/spin.js/</comment>
724
- <frontend_type>textarea</frontend_type>
725
- <sort_order>620</sort_order>
726
- <show_in_default>1</show_in_default>
727
- <show_in_website>1</show_in_website>
728
- <show_in_store>1</show_in_store>
729
- </spinnerParam>
730
-
731
- </fields>
732
- </mouseOverZoomParam>
733
-
734
- <main translate="label">
735
- <label>General Settings</label>
736
- <frontend_type>text</frontend_type>
737
- <sort_order>40</sort_order>
738
- <show_in_default>1</show_in_default>
739
- <show_in_website>1</show_in_website>
740
- <show_in_store>1</show_in_store>
741
- <fields>
742
- <disableAllMsg>
743
- <label><![CDATA[<div class="notice-msg importantAZoption">disableAllMsg</div>]]></label>
744
- <comment>AJAX-ZOOM produces some notifications within the player telling that image tiles or other files are generating
745
- and returns the result. This happens only when an image or 360 images are opened for the first time.
746
- This is also the reason why preloading is slow at first.
747
- With this switch you can disable these notifications in the front office.
748
- </comment>
749
- <frontend_type>select</frontend_type>
750
- <source_model>axzoom/yesno</source_model>
751
- <sort_order>10</sort_order>
752
- <show_in_default>1</show_in_default>
753
- <show_in_website>1</show_in_website>
754
- <show_in_store>1</show_in_store>
755
- </disableAllMsg>
756
- <divid>
757
- <label>divID</label>
758
- <comment>DIV (container) ID for mouseover zoom</comment>
759
- <frontend_type>text</frontend_type>
760
- <sort_order>20</sort_order>
761
- <show_in_default>1</show_in_default>
762
- <show_in_website>1</show_in_website>
763
- <show_in_store>1</show_in_store>
764
- </divid>
765
- <galleryDivID>
766
- <label>galleryDivID</label>
767
- <comment>DIV (container) id of the gallery, set to false to disable gallery</comment>
768
- <frontend_type>text</frontend_type>
769
- <sort_order>30</sort_order>
770
- <show_in_default>1</show_in_default>
771
- <show_in_website>1</show_in_website>
772
- <show_in_store>1</show_in_store>
773
- </galleryDivID>
774
- <galleryPosition>
775
- <label><![CDATA[<div class="notice-msg importantAZoption">galleryPosition</div>]]></label>
776
- <comment>Position of the gallery in the template, possible values: "top", "right", "bottom", "left"; "left" and "right" will instantly change the gallery to vertical! </comment>
777
- <frontend_type>select</frontend_type>
778
- <source_model>axzoom/galleryposition</source_model>
779
- <sort_order>31</sort_order>
780
- <show_in_default>1</show_in_default>
781
- <show_in_website>1</show_in_website>
782
- <show_in_store>1</show_in_store>
783
- </galleryPosition>
784
- <hideGalleryOneImage>
785
- <label><![CDATA[<div class="notice-msg importantAZoption">hideGalleryOneImage</div>]]></label>
786
- <comment>Instantly hide gallery if there is only one image or one 360/3D</comment>
787
- <frontend_type>select</frontend_type>
788
- <source_model>axzoom/yesno</source_model>
789
- <sort_order>40</sort_order>
790
- <show_in_default>1</show_in_default>
791
- <show_in_website>1</show_in_website>
792
- <show_in_store>1</show_in_store>
793
- </hideGalleryOneImage>
794
- <hideGalleryAddClass>
795
- <label>hideGalleryAddClass</label>
796
- <comment>This option is mainly for the layout with vertical gallery which is located next (left or right) to mouseover area.
797
- The most solid css layout for vertical gallery is when "divID" is wrapped by a div which has a left or right margin.
798
- This margin corresponds to vertical gallery width + some space inbetween. So if "hideGalleryOneImage"
799
- option is activated and there is only one image, only one 360 or no images / 360's at all,
800
- then the container represented by "galleryDivID" option is hidden and there is more space which can be filled.
801
- To do that we simply add a css class with margin 0 to the parent of "divID"
802
- overriding the left or right margin which is not needed for the gallery.
803
- You can change the "hideGalleryAddClass" to your own class name or set it to false to prevent this action.
804
- </comment>
805
- <frontend_type>text</frontend_type>
806
- <sort_order>50</sort_order>
807
- <show_in_default>1</show_in_default>
808
- <show_in_website>1</show_in_website>
809
- <show_in_store>1</show_in_store>
810
- </hideGalleryAddClass>
811
- <galleryHover>
812
- <label>galleryHover</label>
813
- <comment>Use mouseenter (mouseover) for switching between images.
814
- You can specify an integer which will represent the time in ms to wait for switching after the mouse enters the thumb;
815
- true defaults to 200
816
- </comment>
817
- <frontend_type>text</frontend_type>
818
- <sort_order>60</sort_order>
819
- <show_in_default>1</show_in_default>
820
- <show_in_website>1</show_in_website>
821
- <show_in_store>1</show_in_store>
822
- </galleryHover>
823
- <galleryAxZmThumbSlider>
824
- <label><![CDATA[<div class="notice-msg importantAZoption">galleryAxZmThumbSlider</div>]]></label>
825
- <comment>Use $.axZmThumbSlider on gallery thumbnails or not</comment>
826
- <frontend_type>select</frontend_type>
827
- <source_model>axzoom/yesno</source_model>
828
- <sort_order>70</sort_order>
829
- <show_in_default>1</show_in_default>
830
- <show_in_website>1</show_in_website>
831
- <show_in_store>1</show_in_store>
832
- </galleryAxZmThumbSlider>
833
- <galleryAxZmThumbSliderParam>
834
- <label><![CDATA[<div class="notice-msg importantAZoption">galleryAxZmThumbSliderParam</div>]]></label>
835
- <comment>
836
- <![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div>
837
- <p class="preference_description note">$.axZmThumbSlider parametrs if "galleryAxZmThumbSlider" is enabled; for full list of options see under:
838
- <a href="http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/" target="_blank">http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/</a></p>
839
- ]]>
840
- </comment>
841
- <frontend_type>textarea</frontend_type>
842
- <sort_order>80</sort_order>
843
- <show_in_default>1</show_in_default>
844
- <show_in_website>1</show_in_website>
845
- <show_in_store>1</show_in_store>
846
- </galleryAxZmThumbSliderParam>
847
- <galleryAxZmThumbSliderParam_vertical>
848
- <label><![CDATA[<div class="notice-msg importantAZoption">galleryAxZmThumbSliderParam_vertical</div>]]></label>
849
- <comment>
850
- <![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div>
851
- <p class="preference_description note">$.axZmThumbSlider parametrs if "galleryAxZmThumbSlider" is enabled; for full list of options see under:
852
- <a href="http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/" target="_blank">http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/</a></p>
853
- ]]>
854
- </comment>
855
- <frontend_type>textarea</frontend_type>
856
- <sort_order>81</sort_order>
857
- <show_in_default>1</show_in_default>
858
- <show_in_website>1</show_in_website>
859
- <show_in_store>1</show_in_store>
860
- </galleryAxZmThumbSliderParam_vertical>
861
-
862
- <thumbW>
863
- <label><![CDATA[<div class="notice-msg importantAZoption">thumbW</div>]]></label>
864
- <comment>Gallery thumb width</comment>
865
- <frontend_type>text</frontend_type>
866
- <sort_order>90</sort_order>
867
- <show_in_default>1</show_in_default>
868
- <show_in_website>1</show_in_website>
869
- <show_in_store>1</show_in_store>
870
- </thumbW>
871
- <thumbH>
872
- <label><![CDATA[<div class="notice-msg importantAZoption">thumbH</div>]]></label>
873
- <comment>Gallery thumb height</comment>
874
- <frontend_type>text</frontend_type>
875
- <sort_order>100</sort_order>
876
- <show_in_default>1</show_in_default>
877
- <show_in_website>1</show_in_website>
878
- <show_in_store>1</show_in_store>
879
- </thumbH>
880
- <thumbRetina>
881
- <label>thumbRetina</label>
882
- <comment>Double resolution of the thumb image</comment>
883
- <frontend_type>select</frontend_type>
884
- <source_model>axzoom/yesno</source_model>
885
- <sort_order>110</sort_order>
886
- <show_in_default>1</show_in_default>
887
- <show_in_website>1</show_in_website>
888
- <show_in_store>1</show_in_store>
889
- </thumbRetina>
890
- <qualityThumb>
891
- <label>qualityThumb</label>
892
- <comment>Jpeg quality of the gallery thumbs</comment>
893
- <frontend_type>text</frontend_type>
894
- <sort_order>120</sort_order>
895
- <show_in_default>1</show_in_default>
896
- <show_in_website>1</show_in_website>
897
- <show_in_store>1</show_in_store>
898
- </qualityThumb>
899
- <quality>
900
- <label>quality</label>
901
- <comment>Jpeg quality of the preview image</comment>
902
- <frontend_type>text</frontend_type>
903
- <sort_order>130</sort_order>
904
- <show_in_default>1</show_in_default>
905
- <show_in_website>1</show_in_website>
906
- <show_in_store>1</show_in_store>
907
- </quality>
908
- <qualityZoom>
909
- <label>qualityZoom</label>
910
- <comment>Jpeg quality of the zoom image shown in the flyout window</comment>
911
- <frontend_type>text</frontend_type>
912
- <sort_order>140</sort_order>
913
- <show_in_default>1</show_in_default>
914
- <show_in_website>1</show_in_website>
915
- <show_in_store>1</show_in_store>
916
- </qualityZoom>
917
-
918
- <firstImageToLoad>
919
- <label>firstImageToLoad</label>
920
- <comment>Image from "images" option which should be loaded at first; see also "images360firstToLoad" option below</comment>
921
- <frontend_type>text</frontend_type>
922
- <sort_order>150</sort_order>
923
- <show_in_default>1</show_in_default>
924
- <show_in_website>1</show_in_website>
925
- <show_in_store>1</show_in_store>
926
- </firstImageToLoad>
927
-
928
- <images360firstToLoad>
929
- <label><![CDATA[<div class="notice-msg importantAZoption">images360firstToLoad</div>]]></label>
930
- <comment>In case present load 360 from "images360" first and not an image from "images"</comment>
931
- <frontend_type>select</frontend_type>
932
- <source_model>axzoom/yesno</source_model>
933
- <sort_order>160</sort_order>
934
- <show_in_default>1</show_in_default>
935
- <show_in_website>1</show_in_website>
936
- <show_in_store>1</show_in_store>
937
- </images360firstToLoad>
938
- <images360Thumb>
939
- <label>images360Thumb</label>
940
- <comment>Show first image of the spin as thumb</comment>
941
- <frontend_type>select</frontend_type>
942
- <source_model>axzoom/yesno</source_model>
943
- <sort_order>170</sort_order>
944
- <show_in_default>1</show_in_default>
945
- <show_in_website>1</show_in_website>
946
- <show_in_store>1</show_in_store>
947
- </images360Thumb>
948
- <images360Overlay>
949
- <label>images360Overlay</label>
950
- <comment>Add a div with class "spinOverlImg" or "spinOverl" over the gallery thumb. On default it has a 360 icon as background. </comment>
951
- <frontend_type>select</frontend_type>
952
- <source_model>axzoom/yesno</source_model>
953
- <sort_order>180</sort_order>
954
- <show_in_default>1</show_in_default>
955
- <show_in_website>1</show_in_website>
956
- <show_in_store>1</show_in_store>
957
- </images360Overlay>
958
- <images360Preview>
959
- <label><![CDATA[<div class="notice-msg importantAZoption">images360Preview</div>]]></label>
960
- <comment>Normally plain images are opened in some kind of lightbox or fullscreen; By setting this option to true the 360's will load into "divID" at first and can be expanded to fullscreen.</comment>
961
- <frontend_type>select</frontend_type>
962
- <source_model>axzoom/yesno</source_model>
963
- <sort_order>190</sort_order>
964
- <show_in_default>1</show_in_default>
965
- <show_in_website>1</show_in_website>
966
- <show_in_store>1</show_in_store>
967
- </images360Preview>
968
- <images360PreviewResponsive>
969
- <label>images360PreviewResponsive</label>
970
- <comment>This option is set to true for convinience reasons; In case your "divID" has fixed width and height, set $zoom['config']['picDim'] option in '/axZm/zoomConfigCustom.inc.php' after elseif ($_GET['example'] == 'mouseOverExtension360')</comment>
971
- <frontend_type>select</frontend_type>
972
- <source_model>axzoom/yesno</source_model>
973
- <sort_order>200</sort_order>
974
- <show_in_default>1</show_in_default>
975
- <show_in_website>1</show_in_website>
976
- <show_in_store>1</show_in_store>
977
- </images360PreviewResponsive>
978
- <images360examplePreview>
979
- <label>images360examplePreview</label>
980
- <comment>In case "images360Preview" is set to true, the value of this parameter will be sent to AJAX-ZOOM as "options set" (example=mouseOverExtension360)</comment>
981
- <frontend_type>text</frontend_type>
982
- <sort_order>210</sort_order>
983
- <show_in_default>1</show_in_default>
984
- <show_in_website>1</show_in_website>
985
- <show_in_store>1</show_in_store>
986
- </images360examplePreview>
987
- <zoomMsg360>
988
- <label>zoomMsg360</label>
989
- <comment>Message displayed under mouse over zoom when 360 is loaded, e.g. "Drag to spin 360, scroll to zoom"; can be Javascript object e.g. {"en": "text english...", "de": "text german...", "fr":"text french..."}</comment>
990
- <frontend_type>textarea</frontend_type>
991
- <sort_order>220</sort_order>
992
- <show_in_default>1</show_in_default>
993
- <show_in_website>1</show_in_website>
994
- <show_in_store>1</show_in_store>
995
- </zoomMsg360>
996
- <zoomMsg360_touch>
997
- <label>zoomMsg360_touch</label>
998
- <comment>Message displayed under mouse over zoom when 360 is loaded on touch devices, default: 'Drag to spin 360°, pinch to zoom in and out'. Can be Javascript object e.g. {"en": "text english...", "de": "text german...", "fr":"text french..."}</comment>
999
- <frontend_type>textarea</frontend_type>
1000
- <sort_order>230</sort_order>
1001
- <show_in_default>1</show_in_default>
1002
- <show_in_website>1</show_in_website>
1003
- <show_in_store>1</show_in_store>
1004
- </zoomMsg360_touch>
1005
- <preloadMouseOverImages>
1006
- <label><![CDATA[<div class="notice-msg importantAZoption">preloadMouseOverImages</div>]]></label>
1007
- <comment>Preload all preview and mouseover images, possible values: false, true, 'oneByOne'</comment>
1008
- <frontend_type>text</frontend_type>
1009
- <sort_order>240</sort_order>
1010
- <show_in_default>1</show_in_default>
1011
- <show_in_website>1</show_in_website>
1012
- <show_in_store>1</show_in_store>
1013
- </preloadMouseOverImages>
1014
- <noImageAvailableClass>
1015
- <label>noImageAvailableClass</label>
1016
- <comment>In case there are no images in "images", nor there are any in "images360", a div with some image as background can be appended to the container and receive this options value as css class</comment>
1017
- <frontend_type>text</frontend_type>
1018
- <sort_order>250</sort_order>
1019
- <show_in_default>1</show_in_default>
1020
- <show_in_website>1</show_in_website>
1021
- <show_in_store>1</show_in_store>
1022
- </noImageAvailableClass>
1023
- <width>
1024
- <label>width</label>
1025
- <comment>Width of the preview image or 'auto' (depending on parent container size - "divID", see above); this is also the value which will be passed to your AJAX-ZOOM imaging server to generate this image on-the-fly.</comment>
1026
- <frontend_type>text</frontend_type>
1027
- <sort_order>260</sort_order>
1028
- <show_in_default>1</show_in_default>
1029
- <show_in_website>1</show_in_website>
1030
- <show_in_store>1</show_in_store>
1031
- </width>
1032
- <height>
1033
- <label>height</label>
1034
- <comment>Height of the preview image or 'auto' (depending on parent container size - "divID", see above); this is also the value which will be passed to your AJAX-ZOOM imaging server to generate this image on-the-fly.</comment>
1035
- <frontend_type>text</frontend_type>
1036
- <sort_order>270</sort_order>
1037
- <show_in_default>1</show_in_default>
1038
- <show_in_website>1</show_in_website>
1039
- <show_in_store>1</show_in_store>
1040
- </height>
1041
- <responsive>
1042
- <label>responsive</label>
1043
- <comment>Set this to true for responsive layouts</comment>
1044
- <frontend_type>select</frontend_type>
1045
- <source_model>axzoom/yesno</source_model>
1046
- <sort_order>280</sort_order>
1047
- <show_in_default>1</show_in_default>
1048
- <show_in_website>1</show_in_website>
1049
- <show_in_store>1</show_in_store>
1050
- </responsive>
1051
- <oneSrcImg>
1052
- <label><![CDATA[<div class="notice-msg importantAZoption">oneSrcImg</div>]]></label>
1053
- <comment>Use single image as "preview image" - the image which is hovered and the big "flyout image".</comment>
1054
- <frontend_type>select</frontend_type>
1055
- <source_model>axzoom/yesno</source_model>
1056
- <sort_order>290</sort_order>
1057
- <show_in_default>1</show_in_default>
1058
- <show_in_website>1</show_in_website>
1059
- <show_in_store>1</show_in_store>
1060
- </oneSrcImg>
1061
- <heightRatio>
1062
- <label><![CDATA[<div class="notice-msg importantAZoption">heightRatio</div>]]></label>
1063
- <comment>If "responsive" option is enabled, "heightRatio" with instantly adjust the height of mouseover container depending on width calculated by the browser, e.g. 1.0 will always (only limited by "maxSizePrc" option) make height same as width; a value of 1.5 will make the preview like a portrait. You can also set "heightRatio" to 'auto'. In this case the height will be adjusted to cover available space instantly! Please note that when your images are not always same proportion, then the container will also change the size when the user switches to a different image.</comment>
1064
- <frontend_type>text</frontend_type>
1065
- <sort_order>300</sort_order>
1066
- <show_in_default>1</show_in_default>
1067
- <show_in_website>1</show_in_website>
1068
- <show_in_store>1</show_in_store>
1069
- </heightRatio>
1070
- <heightMaxWidthRatio>
1071
- <label><![CDATA[<div class="notice-msg importantAZoption">heightMaxWidthRatio</div>]]></label>
1072
- <comment>Similar as you would set max-width: someValue @media only screen condition you can define "heightRatio" depending on the width of the browser, e.g. ["960|0.8", "700|0.7"]</comment>
1073
- <frontend_type>text</frontend_type>
1074
- <sort_order>310</sort_order>
1075
- <show_in_default>1</show_in_default>
1076
- <show_in_website>1</show_in_website>
1077
- <show_in_store>1</show_in_store>
1078
- </heightMaxWidthRatio>
1079
- <widthRatio>
1080
- <label>widthRatio</label>
1081
- <comment>Oposit of "heightRatio"</comment>
1082
- <frontend_type>text</frontend_type>
1083
- <sort_order>320</sort_order>
1084
- <show_in_default>1</show_in_default>
1085
- <show_in_website>1</show_in_website>
1086
- <show_in_store>1</show_in_store>
1087
- </widthRatio>
1088
- <widthMaxHeightRatio>
1089
- <label>widthMaxHeightRatio</label>
1090
- <comment>Oposit of "heightMaxWidthRatio"</comment>
1091
- <frontend_type>text</frontend_type>
1092
- <sort_order>330</sort_order>
1093
- <show_in_default>1</show_in_default>
1094
- <show_in_website>1</show_in_website>
1095
- <show_in_store>1</show_in_store>
1096
- </widthMaxHeightRatio>
1097
- <maxSizePrc>
1098
- <label><![CDATA[<div class="notice-msg importantAZoption">maxSizePrc</div>]]></label>
1099
- <comment>Limit the height if "responsive" and "heightRatio" options are set. Setting "heightRatio" option may result in that the height of the mouseover zoom is bigger than window height and the image is not fully visible. To prevent this you can limit the calculated height with this "maxSizePrc" option. The value of 1.0 would limit the height to 100% of window height; a value of 0.8 to 80% of window height; you can also define two values, e.g. '1.0|-120' which would be window height minus 120px.</comment>
1100
- <frontend_type>text</frontend_type>
1101
- <sort_order>340</sort_order>
1102
- <show_in_default>1</show_in_default>
1103
- <show_in_website>1</show_in_website>
1104
- <show_in_store>1</show_in_store>
1105
- </maxSizePrc>
1106
- <mouseOverZoomWidth>
1107
- <label><![CDATA[<div class="notice-msg importantAZoption">mouseOverZoomWidth</div>]]></label>
1108
- <comment>Max width of the image that will be shown in the zoom window; this is the value which will be passed to your AJAX-ZOOM imaging server to generate this image on-the-fly. Please note that the size is limited by $zoom['config']['allowDynamicThumbsMaxSize'] which is can be set in '/axZm/zoomConfig.inc.php'. You can also specify a link to the image, see "images" option above. To set the width of the fly out window see "zoomWidth" under "mouseOverZoomParam".</comment>
1109
- <frontend_type>text</frontend_type>
1110
- <sort_order>350</sort_order>
1111
- <show_in_default>1</show_in_default>
1112
- <show_in_website>1</show_in_website>
1113
- <show_in_store>1</show_in_store>
1114
- </mouseOverZoomWidth>
1115
- <mouseOverZoomHeight>
1116
- <label><![CDATA[<div class="notice-msg importantAZoption">mouseOverZoomHeight</div>]]></label>
1117
- <comment>Max height of the image that will be shown in the zoom window; this is the value which will be passed to your AJAX-ZOOM imaging server to generate this image on-the-fly. Please note that the size is limited by $zoom['config']['allowDynamicThumbsMaxSize'] which is can be set in '/axZm/zoomConfig.inc.php'. You can also specify a link to the image, see "images" option above. To set the height of the fly out window see "zoomHeight" under "mouseOverZoomParam".</comment>
1118
- <frontend_type>text</frontend_type>
1119
- <sort_order>360</sort_order>
1120
- <show_in_default>1</show_in_default>
1121
- <show_in_website>1</show_in_website>
1122
- <show_in_store>1</show_in_store>
1123
- </mouseOverZoomHeight>
1124
- <ajaxZoomOpenMode>
1125
- <label><![CDATA[<div class="notice-msg importantAZoption">ajaxZoomOpenMode</div>]]></label>
1126
- <comment>Determines how AJAX-ZOOM is opened when the user clicks on preview images / lens, possible values: 'fullscreen' (see also "fullScreenApi" option below), 'fancyboxFullscreen', 'fancybox', 'colorbox'; By editing $.mouseOverZoomInit you can extend the plugin to be used with different types of modal boxes to load AJAX-ZOOM into.</comment>
1127
- <frontend_type>text</frontend_type>
1128
- <sort_order>370</sort_order>
1129
- <show_in_default>1</show_in_default>
1130
- <show_in_website>1</show_in_website>
1131
- <show_in_store>1</show_in_store>
1132
- </ajaxZoomOpenMode>
1133
- <fancyBoxParam>
1134
- <label>fancyBoxParam</label>
1135
- <comment>If fancybox is used in "ajaxZoomOpenMode" option, Fancybox options</comment>
1136
- <frontend_type>textarea</frontend_type>
1137
- <sort_order>380</sort_order>
1138
- <show_in_default>1</show_in_default>
1139
- <show_in_website>1</show_in_website>
1140
- <show_in_store>1</show_in_store>
1141
- </fancyBoxParam>
1142
- <colorBoxParam>
1143
- <label>colorBoxParam</label>
1144
- <comment>If colorbox is used in "ajaxZoomOpenMode" option, Colorbox options</comment>
1145
- <frontend_type>textarea</frontend_type>
1146
- <sort_order>390</sort_order>
1147
- <show_in_default>1</show_in_default>
1148
- <show_in_website>1</show_in_website>
1149
- <show_in_store>1</show_in_store>
1150
- </colorBoxParam>
1151
- <example>
1152
- <label>example</label>
1153
- <comment>Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode is 'fullscreen'</comment>
1154
- <frontend_type>text</frontend_type>
1155
- <sort_order>400</sort_order>
1156
- <show_in_default>1</show_in_default>
1157
- <show_in_website>1</show_in_website>
1158
- <show_in_store>1</show_in_store>
1159
- </example>
1160
- <exampleFancyboxFullscreen>
1161
- <label>exampleFancyboxFullscreen</label>
1162
- <comment>Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode is 'fancyboxFullscreen'</comment>
1163
- <frontend_type>text</frontend_type>
1164
- <sort_order>410</sort_order>
1165
- <show_in_default>1</show_in_default>
1166
- <show_in_website>1</show_in_website>
1167
- <show_in_store>1</show_in_store>
1168
- </exampleFancyboxFullscreen>
1169
- <exampleFancybox>
1170
- <label>exampleFancybox</label>
1171
- <comment>Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode is 'fancybox'</comment>
1172
- <frontend_type>text</frontend_type>
1173
- <sort_order>420</sort_order>
1174
- <show_in_default>1</show_in_default>
1175
- <show_in_website>1</show_in_website>
1176
- <show_in_store>1</show_in_store>
1177
- </exampleFancybox>
1178
- <exampleColorbox>
1179
- <label>exampleColorbox</label>
1180
- <comment>Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode is 'colorbox'</comment>
1181
- <frontend_type>text</frontend_type>
1182
- <sort_order>430</sort_order>
1183
- <show_in_default>1</show_in_default>
1184
- <show_in_website>1</show_in_website>
1185
- <show_in_store>1</show_in_store>
1186
- </exampleColorbox>
1187
-
1188
- <enforceFullScreenRes>
1189
- <label>enforceFullScreenRes</label>
1190
- <comment>Enforce "ajaxZoomOpenMode" to be "fullscreen" if screen width is less than this value</comment>
1191
- <frontend_type>text</frontend_type>
1192
- <sort_order>440</sort_order>
1193
- <show_in_default>1</show_in_default>
1194
- <show_in_website>1</show_in_website>
1195
- <show_in_store>1</show_in_store>
1196
- </enforceFullScreenRes>
1197
-
1198
- <prevNextArrows>
1199
- <label>prevNextArrows</label>
1200
- <comment>Put prev / next buttons over mouseover zoom. CSS: .axZm_mouseOverPrevNextArrows </comment>
1201
- <frontend_type>select</frontend_type>
1202
- <source_model>axzoom/yesno</source_model>
1203
- <sort_order>450</sort_order>
1204
- <show_in_default>1</show_in_default>
1205
- <show_in_website>1</show_in_website>
1206
- <show_in_store>1</show_in_store>
1207
- </prevNextArrows>
1208
-
1209
- <disableScrollAnm>
1210
- <label>disableScrollAnm</label>
1211
- <comment>Disable animation while zooming with AJAX-ZOOM</comment>
1212
- <frontend_type>select</frontend_type>
1213
- <source_model>axzoom/yesno</source_model>
1214
- <sort_order>460</sort_order>
1215
- <show_in_default>1</show_in_default>
1216
- <show_in_website>1</show_in_website>
1217
- <show_in_store>1</show_in_store>
1218
- </disableScrollAnm>
1219
-
1220
- <fullScreenApi>
1221
- <label>fullScreenApi</label>
1222
- <comment>Try to open AJAX-ZOOM at browsers fullscreen mode, possible on modern browsers except IE &lt; 10 and mobile</comment>
1223
- <frontend_type>select</frontend_type>
1224
- <source_model>axzoom/yesno</source_model>
1225
- <sort_order>470</sort_order>
1226
- <show_in_default>1</show_in_default>
1227
- <show_in_website>1</show_in_website>
1228
- <show_in_store>1</show_in_store>
1229
- </fullScreenApi>
1230
-
1231
- <axZmCallBacks>
1232
- <label>axZmCallBacks</label>
1233
- <comment><![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div><p class="note">AJAX-ZOOM has several callbacks, http://www.ajax-zoom.com/index.php?cid=docs#onBeforeStart</p>]]></comment>
1234
- <frontend_type>textarea</frontend_type>
1235
- <sort_order>480</sort_order>
1236
- <show_in_default>1</show_in_default>
1237
- <show_in_website>1</show_in_website>
1238
- <show_in_store>1</show_in_store>
1239
- </axZmCallBacks>
1240
- <azOptions>
1241
- <label><![CDATA[<div class="notice-msg importantAZoption">azOptions</div>]]></label>
1242
- <comment><![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div><p class="note">AJAX-ZOOM options can be set with JS when AJAX-ZOOM is inited. Normally you would be defining them in /axZm/zoomConfig.inc.php or /axZm/zoomConfigCustom.inc.php; this field is for convinience reasons. Example: {fullScreenCornerButton: false} - this would disable the button for fullscreen</p>]]></comment>
1243
- <frontend_type>textarea</frontend_type>
1244
- <sort_order>490</sort_order>
1245
- <show_in_default>1</show_in_default>
1246
- <show_in_website>1</show_in_website>
1247
- <show_in_store>1</show_in_store>
1248
- </azOptions>
1249
- <azOptions360>
1250
- <label><![CDATA[<div class="notice-msg importantAZoption">azOptions360</div>]]></label>
1251
- <comment><![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div><p class="note">Same as above but specifically for 360/3D</p>]]></comment>
1252
- <frontend_type>textarea</frontend_type>
1253
- <sort_order>500</sort_order>
1254
- <show_in_default>1</show_in_default>
1255
- <show_in_website>1</show_in_website>
1256
- <show_in_store>1</show_in_store>
1257
- </azOptions360>
1258
- <postMode>
1259
- <label>postMode</label>
1260
- <comment>Set AJAX-ZOOM to use POST instead of GET</comment>
1261
- <frontend_type>select</frontend_type>
1262
- <source_model>axzoom/yesno</source_model>
1263
- <sort_order>510</sort_order>
1264
- <show_in_default>1</show_in_default>
1265
- <show_in_website>1</show_in_website>
1266
- <show_in_store>1</show_in_store>
1267
- </postMode>
1268
-
1269
- </fields>
1270
- </main>
1271
-
1272
- <pinterest translate="label">
1273
- <label>Settings for pinterest button</label>
1274
- <frontend_type>text</frontend_type>
1275
- <sort_order>50</sort_order>
1276
- <show_in_default>1</show_in_default>
1277
- <show_in_website>1</show_in_website>
1278
- <show_in_store>1</show_in_store>
1279
- <fields>
1280
- <enabled>
1281
- <label><![CDATA[<div class="notice-msg importantAZoption">enabled</div>]]></label>
1282
- <comment>Pinterest button should be disabled till it is reimplemented!
1283
- Experimental feature - enable Pinterest button.
1284
- Pinterest allows to collect visual bookmarks in the form of images collected on the internet.
1285
- </comment>
1286
- <frontend_type>select</frontend_type>
1287
- <source_model>axzoom/yesno</source_model>
1288
- <sort_order>50</sort_order>
1289
- <show_in_default>1</show_in_default>
1290
- <show_in_website>1</show_in_website>
1291
- <show_in_store>1</show_in_store>
1292
- </enabled>
1293
- <build>
1294
- <label>build</label>
1295
- <comment>Since images are changed the button needs to be repainted [...] In order to accomplish this the Pinterest API should be exposed to window object. This is done by setting data-pin-build attribute value in the script tag when pinterest JavaScript is included. &lt;script data-pin-build="parsePinBtns" type="text/javascript" src="//assets.pinterest.com/js/pinit.js"&gt;&lt;/script&gt; So if you do not have the data-pin-build, please add it to the script tag and if it is different from default ('parsePinBtns'), then change this "build" value. Otherwise the pinterest button will not work.</comment>
1296
- <frontend_type>text</frontend_type>
1297
- <sort_order>51</sort_order>
1298
- <show_in_default>1</show_in_default>
1299
- <show_in_website>1</show_in_website>
1300
- <show_in_store>1</show_in_store>
1301
- </build>
1302
- <wrapClass>
1303
- <label>wrapClass</label>
1304
- <comment>This is the class of the container where the button will be put into. On default it is at bottom right. To place the button somewhere else you can either change the css of the default class or define a different class.</comment>
1305
- <frontend_type>text</frontend_type>
1306
- <sort_order>52</sort_order>
1307
- <show_in_default>1</show_in_default>
1308
- <show_in_website>1</show_in_website>
1309
- <show_in_store>1</show_in_store>
1310
- </wrapClass>
1311
- <href>
1312
- <label>href</label>
1313
- <comment>href attribute before the button is build.</comment>
1314
- <frontend_type>text</frontend_type>
1315
- <sort_order>53</sort_order>
1316
- <show_in_default>1</show_in_default>
1317
- <show_in_website>1</show_in_website>
1318
- <show_in_store>1</show_in_store>
1319
- </href>
1320
- <description>
1321
- <label>description</label>
1322
- <comment>Page title if null</comment>
1323
- <frontend_type>text</frontend_type>
1324
- <sort_order>54</sort_order>
1325
- <show_in_default>1</show_in_default>
1326
- <show_in_website>1</show_in_website>
1327
- <show_in_store>1</show_in_store>
1328
- </description>
1329
- <url>
1330
- <label>url</label>
1331
- <comment>Will be set instantly if null</comment>
1332
- <frontend_type>text</frontend_type>
1333
- <sort_order>55</sort_order>
1334
- <show_in_default>1</show_in_default>
1335
- <show_in_website>1</show_in_website>
1336
- <show_in_store>1</show_in_store>
1337
- </url>
1338
- <media>
1339
- <label>media</label>
1340
- <comment>Will be set to current selected image if null</comment>
1341
- <frontend_type>text</frontend_type>
1342
- <sort_order>56</sort_order>
1343
- <show_in_default>1</show_in_default>
1344
- <show_in_website>1</show_in_website>
1345
- <show_in_store>1</show_in_store>
1346
- </media>
1347
- <btnSrc>
1348
- <label>btnSrc</label>
1349
- <comment>Source for the button</comment>
1350
- <frontend_type>text</frontend_type>
1351
- <sort_order>57</sort_order>
1352
- <show_in_default>1</show_in_default>
1353
- <show_in_website>1</show_in_website>
1354
- <show_in_store>1</show_in_store>
1355
- </btnSrc>
1356
- <data>
1357
- <label>data</label>
1358
- <comment>Data attributes attached to the button before it is built. See pinterest API...</comment>
1359
- <frontend_type>text</frontend_type>
1360
- <sort_order>58</sort_order>
1361
- <show_in_default>1</show_in_default>
1362
- <show_in_website>1</show_in_website>
1363
- <show_in_store>1</show_in_store>
1364
- </data>
1365
- </fields>
1366
- </pinterest>
1367
-
1368
- <producttour translate="label">
1369
- <label>New: 360° Product Tour</label>
1370
- <frontend_type>text</frontend_type>
1371
- <sort_order>51</sort_order>
1372
- <show_in_default>1</show_in_default>
1373
- <show_in_website>1</show_in_website>
1374
- <show_in_store>1</show_in_store>
1375
- <fields>
1376
- <cropAxZmThumbSliderParam>
1377
- <label>cropAxZmThumbSliderParam</label>
1378
- <comment>
1379
- <![CDATA[<div class="validation-advice">Attention: you are editing JavaScript object! Errors will lead to AJAX-ZOOM not working properly.</div>
1380
- Slider settings for 360° "Product Tour". Can be kept empty. See also "galleryAxZmThumbSliderParam" option for more info.
1381
- ]]>
1382
- </comment>
1383
- <frontend_type>textarea</frontend_type>
1384
- <sort_order>10</sort_order>
1385
- <show_in_default>1</show_in_default>
1386
- <show_in_website>1</show_in_website>
1387
- <show_in_store>1</show_in_store>
1388
- </cropAxZmThumbSliderParam>
1389
- <cropSliderPosition>
1390
- <label><![CDATA[<div class="notice-msg importantAZoption">cropSliderPosition</div>]]></label>
1391
- <comment>Position of the crop slider, possible values: "top", "right", "bottom", "left".</comment>
1392
- <frontend_type>select</frontend_type>
1393
- <source_model>axzoom/position4</source_model>
1394
- <sort_order>20</sort_order>
1395
- <show_in_default>1</show_in_default>
1396
- <show_in_website>1</show_in_website>
1397
- <show_in_store>1</show_in_store>
1398
- </cropSliderPosition>
1399
- <cropSliderDimension>
1400
- <label><![CDATA[<div class="notice-msg importantAZoption">cropSliderDimension</div>]]></label>
1401
- <comment>Width or height (depending on position) of the instantly created container for the 360° "Product Tour" thumb slider.</comment>
1402
- <frontend_type>text</frontend_type>
1403
- <sort_order>30</sort_order>
1404
- <show_in_default>1</show_in_default>
1405
- <show_in_website>1</show_in_website>
1406
- <show_in_store>1</show_in_store>
1407
- </cropSliderDimension>
1408
- <cropSliderThumbAutoSize>
1409
- <label>cropSliderThumbAutoSize</label>
1410
- <comment>Thumb CSS size will be set instantly depending on "cropSliderDimension" option</comment>
1411
- <frontend_type>select</frontend_type>
1412
- <source_model>axzoom/yesno</source_model>
1413
- <sort_order>40</sort_order>
1414
- <show_in_default>1</show_in_default>
1415
- <show_in_website>1</show_in_website>
1416
- <show_in_store>1</show_in_store>
1417
- </cropSliderThumbAutoSize>
1418
- <cropSliderThumbAutoMargin>
1419
- <label>cropSliderThumbAutoMargin</label>
1420
- <comment>Thumb margin when set instantly.</comment>
1421
- <frontend_type>text</frontend_type>
1422
- <sort_order>50</sort_order>
1423
- <show_in_default>1</show_in_default>
1424
- <show_in_website>1</show_in_website>
1425
- <show_in_store>1</show_in_store>
1426
- </cropSliderThumbAutoMargin>
1427
- <cropSliderThumbDescr>
1428
- <label>cropSliderThumbDescr</label>
1429
- <comment>Enable descriptions for the thumbs in the slider for 360° "Product Tour"</comment>
1430
- <frontend_type>select</frontend_type>
1431
- <source_model>axzoom/yesno</source_model>
1432
- <sort_order>60</sort_order>
1433
- <show_in_default>1</show_in_default>
1434
- <show_in_website>1</show_in_website>
1435
- <show_in_store>1</show_in_store>
1436
- </cropSliderThumbDescr>
1437
- </fields>
1438
- </producttour>
1439
-
1440
- <magento translate="label">
1441
- <label>Magento specific settings</label>
1442
- <frontend_type>text</frontend_type>
1443
- <sort_order>60</sort_order>
1444
- <show_in_default>1</show_in_default>
1445
- <show_in_website>1</show_in_website>
1446
- <show_in_store>1</show_in_store>
1447
- <fields>
1448
- <magentoAllImagesStart>
1449
- <label>magentoAllImages</label>
1450
- <comment>Load all images independent on label (color), also from "Simple Products" which are bind to Configurable Product on start.</comment>
1451
- <frontend_type>select</frontend_type>
1452
- <source_model>axzoom/yesno</source_model>
1453
- <sort_order>10</sort_order>
1454
- <show_in_default>1</show_in_default>
1455
- <show_in_website>1</show_in_website>
1456
- <show_in_store>1</show_in_store>
1457
- </magentoAllImagesStart>
1458
- <magentoNoImage>
1459
- <label>magentoNoImage</label>
1460
- <comment>Show magento no image available, if no AJAX-ZOOM no image available will be shown</comment>
1461
- <frontend_type>select</frontend_type>
1462
- <source_model>axzoom/yesno</source_model>
1463
- <sort_order>20</sort_order>
1464
- <show_in_default>1</show_in_default>
1465
- <show_in_website>1</show_in_website>
1466
- <show_in_store>1</show_in_store>
1467
- </magentoNoImage>
1468
- <magentoAdminThumb>
1469
- <label>magentoAdminThumb</label>
1470
- <comment>Replace normal images in admin area with dynamically generated thumbs of these images</comment>
1471
- <frontend_type>select</frontend_type>
1472
- <source_model>axzoom/yesno</source_model>
1473
- <sort_order>30</sort_order>
1474
- <show_in_default>1</show_in_default>
1475
- <show_in_website>1</show_in_website>
1476
- <show_in_store>1</show_in_store>
1477
- </magentoAdminThumb>
1478
- </fields>
1479
- </magento>
1480
-
1481
- <products translate="label">
1482
- <label>Enable only for these products</label>
1483
- <frontend_type>text</frontend_type>
1484
- <sort_order>70</sort_order>
1485
- <show_in_default>1</show_in_default>
1486
- <show_in_website>1</show_in_website>
1487
- <show_in_store>1</show_in_store>
1488
- <fields>
1489
- <displayOnlyForThisProductID>
1490
- <label>displayOnlyForThisProductID</label>
1491
- <comment>CSV with product IDs for which AJAX-ZOOM will be only enabled. Leave blank to have it enabled for all products! This option can be usefull e.g. if you want to make A/B tests and enable AJAX-ZOOM only for certain products, e.g. 7,15 would enable AJAX-ZOOM only for products with ID 7 and 15</comment>
1492
- <frontend_type>textarea</frontend_type>
1493
- <sort_order>10</sort_order>
1494
- <show_in_default>1</show_in_default>
1495
- <show_in_website>1</show_in_website>
1496
- <show_in_store>1</show_in_store>
1497
- </displayOnlyForThisProductID>
1498
- </fields>
1499
- </products>
1500
-
1501
- </groups>
1502
- </axzoom_options>
1503
- </sections>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1504
  </config>
16
  */
17
  -->
18
  <config>
19
+ <sections>
20
+ <axzoom_options translate="label" module="axzoom">
21
+ <label>AJAX-ZOOM</label>
22
+ <tab>catalog</tab>
23
+ <frontend_type>text</frontend_type>
24
+ <sort_order>30</sort_order>
25
+ <show_in_default>1</show_in_default>
26
+ <show_in_website>1</show_in_website>
27
+ <show_in_store>1</show_in_store>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
+ <groups>
30
+ <general translate="label">
31
+ <label>About </label>
32
+ <frontend_type>text</frontend_type>
33
+ <sort_order>10</sort_order>
34
+ <show_in_default>1</show_in_default>
35
+ <show_in_website>0</show_in_website>
36
+ <show_in_store>0</show_in_store>
37
+ <comment>
38
+ <![CDATA[
39
+ <style>
40
+ .importantAZoption{
41
+ color: #3d6611 !important;
42
+ font-weight: bolder;
43
+ background-position: 0 0 !important;
44
+ padding-left: 24px;
45
+ background-color: transparent !important;
46
+ border-width: 0 !important;
47
+ word-break: break-all;
48
+ }
49
+ .comment a{
50
+ color: #ea7601 !important;
51
+ }
52
+ .importantAZcolor{
53
+ color: #3d6611 !important;
54
+ font-weight: bolder;
55
+ }
56
+ #licType{
57
+ width: 100px !important;
58
+ }
59
+ </style>
60
+
61
+ <script>
62
+ var az_getCoordsEl = function(elem) {
63
+ var box = elem.getBoundingClientRect();
64
+ var body = document.body;
65
+ var docEl = document.documentElement;
66
+ var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
67
+ var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;
68
+ var clientTop = docEl.clientTop || body.clientTop || 0;
69
+ var clientLeft = docEl.clientLeft || body.clientLeft || 0;
70
+ var top = box.top + scrollTop - clientTop;
71
+ var left = box.left + scrollLeft - clientLeft;
72
+ return { top: Math.round(top), left: Math.round(left) };
73
+ };
74
+ // Fieldset.az_open("axzoom_options_mouseOverZoomParam", "axzoom_options_mouseOverZoomParam_zoomWidth");
75
+ if (Fieldset){
76
+ Fieldset.az_open = function(containerId, scrollToElId){
77
+ var test_col = $(containerId + "-state").value;
78
+ if (test_col == 0){
79
+ this.toggleCollapse(containerId);
80
+ }
81
+ if (scrollToElId){
82
+ var ell = document.getElementById(scrollToElId);
83
+ if (ell){
84
+ var targetY = az_getCoordsEl(ell)["top"] - 50;
85
+ if (targetY < 0){return;}
86
+ window.scrollTo(0, targetY);
87
+ }
88
+ }
89
+ }
90
+ }else{
91
+ Fieldset = {
92
+ az_open: function(containerId){
93
+ return;
94
+ }
95
+ };
96
+ }
97
+ </script>
98
+ <p>AJAX-ZOOM is a multipurpose library for displaying (high resolution) images and 360°/3D spins. <br>
99
+ This Magento extension integrates only one particular implementation (example) from AJAX-ZOOM library into Magento. <br>
100
+ The independent example can be found here:
101
+ <a target="_blank" href="http://www.ajax-zoom.com/examples/example32.php">
102
+ http://www.ajax-zoom.com/examples/example32.php
103
+ </a><br>
104
+ There you will also find some subtle details about the options which you can configure below. <br>
105
+ The options below mainly refer to this one implementation / example. <br><br>
106
+ <b>However</b> AJAX-ZOOM has many other options which can be set manually in
107
+ <code>/js/axzoom/axZm/zoomConfigCustom.inc.php</code>
108
+ after <br> <code>elseif ($_GET['example'] == 'mouseOverExtension360Ver5')</code>.
109
+ You can also override any PHP options contained in
110
+ <code>/js/axzoom/axZm/zoomConfig.inc.php</code> and
111
+ <code>/js/axzoom/axZm/zoomConfigCustom.inc.php</code> by editing
112
+ <code>/js/axzoom/zoomConfigCustomAZ.inc.php</code><br>
113
+ </p>
114
+ If you do not want to edit PHP files - most of the options can be also set in these
115
+ formfields as JS plain object:
116
+ <ol style="margin-left: 25px; list-style: decimal">
117
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_general_settings', 'axzoom_options_general_settings_azOptions')">azOptions</a> - for 2D zoom</li>
118
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_general_settings', 'axzoom_options_general_settings_azOptions360')">azOptions360</a> - for 360/3D zoom</li>
119
+ </ol><br>
120
+ Depending on the template used you might need to adjust especially these two options:
121
+ <ol style="margin-left: 25px; list-style: decimal">
122
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_mouseover', 'axzoom_options_mouseover_zoomWidth')">zoomWidth</a> - width of the mouseover flyout window</li>
123
+ <li><a href="javascript:void(0)" onclick="Fieldset.az_open('axzoom_options_mouseover', 'axzoom_options_mouseover_zoomHeight')">zoomHeight</a> - height of the mouseover flyout window</li>
124
+ </ol><br>
125
+ <p>If you will be not able to adjust these options on your own please
126
+ <a target="_blank" href="http://www.ajax-zoom.com/index.php?cid=contact">ask for support</a>
127
+ </p>
128
+ <p>Other useful / most common options are marked <span class="importantAZcolor">green</span> with this symbol:
129
+ <span class="notice-msg importantAZoption"></span>
130
+ </p>
131
  ]]>
132
+ </comment>
133
+ </general>
134
+ <actions translate="label">
135
+ <label>Actions</label>
136
+ <frontend_type>text</frontend_type>
137
+ <sort_order>20</sort_order>
138
+ <show_in_default>1</show_in_default>
139
+ <show_in_website>1</show_in_website>
140
+ <show_in_store>1</show_in_store>
141
+ <fields>
142
+ <resetbutton>
143
+ <label>Reset all options to default values</label>
144
+ <comment><![CDATA[
145
+ Reset all options except licenses to their default values
146
+ ]]></comment>
147
+ <frontend_model>zoom/adminhtml_system_config_form_resetbutton</frontend_model>
148
+ <sort_order>1</sort_order>
149
+ <show_in_default>1</show_in_default>
150
+ <show_in_website>1</show_in_website>
151
+ <show_in_store>1</show_in_store>
152
+ </resetbutton>
153
+ <numberimages>
154
+ <label>Get number images</label>
155
+ <comment><![CDATA[
156
+ Request total number of images
157
+ ]]></comment>
158
+ <frontend_model>zoom/adminhtml_system_config_form_numberimages</frontend_model>
159
+ <sort_order>2</sort_order>
160
+ <show_in_default>1</show_in_default>
161
+ <show_in_website>1</show_in_website>
162
+ <show_in_store>1</show_in_store>
163
+ </numberimages>
164
+ </fields>
165
+ </actions>
166
+ <license translate="label">
167
+ <label>AJAX-ZOOM license(s)</label>
168
+ <frontend_type>text</frontend_type>
169
+ <sort_order>30</sort_order>
170
+ <show_in_default>1</show_in_default>
171
+ <show_in_website>1</show_in_website>
172
+ <show_in_store>1</show_in_store>
173
+ <fields>
174
+ <lic>
175
+ <label>License</label>
176
+ <comment><![CDATA[
177
+ <a href="http://www.ajax-zoom.com/index.php?cid=contact" target="_blank">
178
+ Ask for support</a>&nbsp;&nbsp;&nbsp;
179
+ <a href="http://www.ajax-zoom.com/index.php?cid=download#heading_3" target="_blank">
180
+ Buy a license</a>
181
+ ]]></comment>
182
+ <frontend_model>zoom/adminhtml_system_config_fieldset_license</frontend_model>
183
+ <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
184
+ <sort_order>1</sort_order>
185
+ <show_in_default>1</show_in_default>
186
+ <show_in_website>1</show_in_website>
187
+ <show_in_store>1</show_in_store>
188
+ </lic>
189
+ </fields>
190
+ </license>
191
+ <plugin_settings translate="label">
192
+ <label>Plugin settings for Magento</label>
193
+ <frontend_type>text</frontend_type>
194
+ <sort_order>40</sort_order>
195
+ <show_in_default>1</show_in_default>
196
+ <show_in_website>1</show_in_website>
197
+ <show_in_store>1</show_in_store>
198
+ <fields>
199
+ <enableInFrontDetail>
200
+ <label>enableInFrontDetail</label>
201
+ <comment><![CDATA[Eneable / disable AJAX-ZOOM output in product detail view.]]></comment>
202
+ <frontend_type>select</frontend_type>
203
+ <source_model>axzoom/azsettings::yesno</source_model>
204
+ <sort_order>10</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </enableInFrontDetail>
209
+ <displayOnlyForThisProductID>
210
+ <label>displayOnlyForThisProductID</label>
211
+ <comment><![CDATA[CSV with product IDs for which AJAX-ZOOM will be <b>only</b> enabled.
212
+ Leave blank to have it enabled for all products!
213
+ This option can be useful e.g. if you want to make A/B tests and enable
214
+ AJAX-ZOOM only for certain products, e.g. 7,15 would
215
+ enable AJAX-ZOOM only for products with ID 7 and 15.]]></comment>
216
+ <frontend_type>textarea</frontend_type>
217
+ <sort_order>20</sort_order>
218
+ <show_in_default>1</show_in_default>
219
+ <show_in_website>1</show_in_website>
220
+ <show_in_store>1</show_in_store>
221
+ </displayOnlyForThisProductID>
222
+ <default360settings>
223
+ <label>default360settings</label>
224
+ <comment><![CDATA[
225
+ <div class="validation-advice">Attention: you are editing JavaScript object!
226
+ Errors will lead to AJAX-ZOOM not working properly.</div>
227
+ Default configuration settings when importing / creating new 360 over backend.
228
+ ]]></comment>
229
+ <frontend_type>textarea</frontend_type>
230
+ <sort_order>30</sort_order>
231
+ <show_in_default>1</show_in_default>
232
+ <show_in_website>1</show_in_website>
233
+ <show_in_store>1</show_in_store>
234
+ </default360settings>
235
+ <pngModeCssFix>
236
+ <label>pngModeCssFix</label>
237
+ <comment><![CDATA[Include CSS file for making
238
+ some areas of the player transparent which only makes sense
239
+ if pngMode option is set to auto or true and you are
240
+ really using transparent png images.]]></comment>
241
+ <frontend_type>select</frontend_type>
242
+ <source_model>axzoom/azsettings::yesno</source_model>
243
+ <sort_order>40</sort_order>
244
+ <show_in_default>1</show_in_default>
245
+ <show_in_website>1</show_in_website>
246
+ <show_in_store>1</show_in_store>
247
+ </pngModeCssFix>
248
+ <magentoAllImages>
249
+ <label>magentoAllImages</label>
250
+ <comment><![CDATA[Load all images independent on label (color),
251
+ also from "Simple Products" which are bind
252
+ to Configurable Product on start.]]></comment>
253
+ <frontend_type>select</frontend_type>
254
+ <source_model>axzoom/azsettings::yesno</source_model>
255
+ <sort_order>50</sort_order>
256
+ <show_in_default>1</show_in_default>
257
+ <show_in_website>1</show_in_website>
258
+ <show_in_store>1</show_in_store>
259
+ </magentoAllImages>
260
+ <magentoNoImage>
261
+ <label>magentoNoImage</label>
262
+ <comment><![CDATA[Show magento no image available,
263
+ if no AJAX-ZOOM no image available will be shown.]]></comment>
264
+ <frontend_type>select</frontend_type>
265
+ <source_model>axzoom/azsettings::yesno</source_model>
266
+ <sort_order>60</sort_order>
267
+ <show_in_default>1</show_in_default>
268
+ <show_in_website>1</show_in_website>
269
+ <show_in_store>1</show_in_store>
270
+ </magentoNoImage>
271
+ <magentoAdminThumb>
272
+ <label>magentoAdminThumb</label>
273
+ <comment><![CDATA[Replace normal images in admin area with dynamically generated thumbs of these images]]></comment>
274
+ <frontend_type>select</frontend_type>
275
+ <source_model>axzoom/azsettings::yesno</source_model>
276
+ <sort_order>70</sort_order>
277
+ <show_in_default>1</show_in_default>
278
+ <show_in_website>1</show_in_website>
279
+ <show_in_store>1</show_in_store>
280
+ </magentoAdminThumb>
281
+ </fields>
282
+ </plugin_settings>
283
+ <general_settings translate="label">
284
+ <label>General settings</label>
285
+ <frontend_type>text</frontend_type>
286
+ <sort_order>50</sort_order>
287
+ <show_in_default>1</show_in_default>
288
+ <show_in_website>1</show_in_website>
289
+ <show_in_store>1</show_in_store>
290
+ <fields>
291
+ <divID>
292
+ <label>divID</label>
293
+ <comment><![CDATA[DIV (container) ID for mouseover zoom :-)]]></comment>
294
+ <frontend_type>text</frontend_type>
295
+ <sort_order>10</sort_order>
296
+ <show_in_default>1</show_in_default>
297
+ <show_in_website>1</show_in_website>
298
+ <show_in_store>1</show_in_store>
299
+ </divID>
300
+ <galleryDivID>
301
+ <label>galleryDivID</label>
302
+ <comment><![CDATA[DIV (container) id of the gallery, set to false to disable gallery.]]></comment>
303
+ <frontend_type>text</frontend_type>
304
+ <sort_order>20</sort_order>
305
+ <show_in_default>1</show_in_default>
306
+ <show_in_website>1</show_in_website>
307
+ <show_in_store>1</show_in_store>
308
+ </galleryDivID>
309
+ <disableAllMsg>
310
+ <label>disableAllMsg</label>
311
+ <comment><![CDATA[AJAX-ZOOM produces some notifications within the player
312
+ telling that image tiles or other files are generating and returns the result.
313
+ This happens only when an image or 360 images are opened for the first time.
314
+ This is also the reason why preloading is slow at first.
315
+ With this switch you can disable these notifications in the frontend.]]></comment>
316
+ <frontend_type>select</frontend_type>
317
+ <source_model>axzoom/azsettings::yesno</source_model>
318
+ <sort_order>30</sort_order>
319
+ <show_in_default>1</show_in_default>
320
+ <show_in_website>1</show_in_website>
321
+ <show_in_store>1</show_in_store>
322
+ </disableAllMsg>
323
+ <dotNavigation>
324
+ <label>dotNavigation</label>
325
+ <comment><![CDATA[Enable dot navigation if browser / device resolution is less than this value.
326
+ See also "thumbSliderMinSize" option. Setting both
327
+ - "dotNavigation" and "thumbSliderMinSize"
328
+ to same value will result in dot navigation replacing
329
+ gallery on devices with small resolution. Set to 0 to disable.]]></comment>
330
+ <frontend_type>text</frontend_type>
331
+ <sort_order>40</sort_order>
332
+ <show_in_default>1</show_in_default>
333
+ <show_in_website>1</show_in_website>
334
+ <show_in_store>1</show_in_store>
335
+ </dotNavigation>
336
+ <floorWidth>
337
+ <label>floorWidth</label>
338
+ <comment><![CDATA[Prevent browser computed width with decimals for AJAX-ZOOM containers.]]></comment>
339
+ <frontend_type>select</frontend_type>
340
+ <source_model>axzoom/azsettings::yesno</source_model>
341
+ <sort_order>50</sort_order>
342
+ <show_in_default>1</show_in_default>
343
+ <show_in_website>1</show_in_website>
344
+ <show_in_store>1</show_in_store>
345
+ </floorWidth>
346
+ <pngMode>
347
+ <label>pngMode</label>
348
+ <comment><![CDATA[Enable PNG mode in different ways:
349
+ null will not change the configuration set in zoomConfig.inc.php or
350
+ other php configuration files at all;
351
+ auto, true and false will set pngMode setting in PHP.
352
+ Auto means that cached thumbnails, image tiles etc. will be only kept as PNG
353
+ if source images are PNG too. Transparancy is also preserved.
354
+ If true, all cached images will be converted to PNG, even if they are JPG.
355
+ If false, all cached images will be converted to JPG.]]></comment>
356
+ <frontend_type>select</frontend_type>
357
+ <source_model>axzoom/azsettings::pngMode</source_model>
358
+ <sort_order>60</sort_order>
359
+ <show_in_default>1</show_in_default>
360
+ <show_in_website>1</show_in_website>
361
+ <show_in_store>1</show_in_store>
362
+ </pngMode>
363
+ <hideGalleryOneImage>
364
+ <label>hideGalleryOneImage</label>
365
+ <comment><![CDATA[Instantly hide gallery if there is only one image, one video or one 360/3D.]]></comment>
366
+ <frontend_type>select</frontend_type>
367
+ <source_model>axzoom/azsettings::yesno</source_model>
368
+ <sort_order>70</sort_order>
369
+ <show_in_default>1</show_in_default>
370
+ <show_in_website>1</show_in_website>
371
+ <show_in_store>1</show_in_store>
372
+ </hideGalleryOneImage>
373
+ <hideGalleryAddClass>
374
+ <label>hideGalleryAddClass</label>
375
+ <comment><![CDATA[This option is mainly for the layout with vertical gallery
376
+ which is located next (left or right) to mouseover area.
377
+ The most solid CSS layout for vertical gallery is when "divID" is wrapped by a div
378
+ which has a left or right margin. This margin corresponds to vertical gallery width +
379
+ some space in between. So if "hideGalleryOneImage" option is activated
380
+ and there is only one image,
381
+ only one 360 or no images / 360s at all, then the container
382
+ represented by "galleryDivID" option is hidden
383
+ and there is more space which can be filled.
384
+ To do that we simply add a CSS class with margin 0 to the parent of "divID"
385
+ overriding the left or right margin which is not needed for the gallery.
386
+ You can change the "hideGalleryAddClass"
387
+ to your own class name or set it to false to prevent this action.]]></comment>
388
+ <frontend_type>text</frontend_type>
389
+ <sort_order>80</sort_order>
390
+ <show_in_default>1</show_in_default>
391
+ <show_in_website>1</show_in_website>
392
+ <show_in_store>1</show_in_store>
393
+ </hideGalleryAddClass>
394
+ <galleryHover>
395
+ <label>galleryHover</label>
396
+ <comment><![CDATA[Use mouseenter (mouseover) for switching between images.
397
+ You can specify an integer which will represent the time in ms to wait
398
+ for switching after the mouse enters the thumb; true defaults to 200.]]></comment>
399
+ <frontend_type>text</frontend_type>
400
+ <sort_order>90</sort_order>
401
+ <show_in_default>1</show_in_default>
402
+ <show_in_website>1</show_in_website>
403
+ <show_in_store>1</show_in_store>
404
+ </galleryHover>
405
+ <gallerySwitchSlide>
406
+ <label>gallerySwitchSlide</label>
407
+ <comment><![CDATA[Placeholder, not finished yet (todo).]]></comment>
408
+ <frontend_type>select</frontend_type>
409
+ <source_model>axzoom/azsettings::yesno</source_model>
410
+ <sort_order>100</sort_order>
411
+ <show_in_default>1</show_in_default>
412
+ <show_in_website>1</show_in_website>
413
+ <show_in_store>1</show_in_store>
414
+ </gallerySwitchSlide>
415
+ <galleryAxZmThumbSlider>
416
+ <label>galleryAxZmThumbSlider</label>
417
+ <comment><![CDATA[Use $.axZmThumbSlider on gallery thumbnails or not.]]></comment>
418
+ <frontend_type>select</frontend_type>
419
+ <source_model>axzoom/azsettings::yesno</source_model>
420
+ <sort_order>110</sort_order>
421
+ <show_in_default>1</show_in_default>
422
+ <show_in_website>1</show_in_website>
423
+ <show_in_store>1</show_in_store>
424
+ </galleryAxZmThumbSlider>
425
+ <galleryAxZmThumbSliderParamHorz>
426
+ <label>galleryAxZmThumbSliderParamHorz</label>
427
+ <comment><![CDATA[
428
+ <div class="validation-advice">Attention: you are editing JavaScript object!
429
+ Errors will lead to AJAX-ZOOM not working properly.</div>
430
+ $.axZmThumbSlider options if "galleryAxZmThumbSlider" is enabled
431
+ and gallery is horizontal. For full list of options see under:
432
+ http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/
433
+ ]]></comment>
434
+ <frontend_type>textarea</frontend_type>
435
+ <sort_order>120</sort_order>
436
+ <show_in_default>1</show_in_default>
437
+ <show_in_website>1</show_in_website>
438
+ <show_in_store>1</show_in_store>
439
+ </galleryAxZmThumbSliderParamHorz>
440
+ <galleryAxZmThumbSliderParamVert>
441
+ <label>galleryAxZmThumbSliderParamVert</label>
442
+ <comment><![CDATA[
443
+ <div class="validation-advice">Attention: you are editing JavaScript object!
444
+ Errors will lead to AJAX-ZOOM not working properly.</div>
445
+ $.axZmThumbSlider options if "galleryAxZmThumbSlider" is enabled
446
+ and gallery is vertical. For full list of options see under:
447
+ http://www.ajax-zoom.com/axZm/extensions/axZmThumbSlider/
448
+ ]]></comment>
449
+ <frontend_type>textarea</frontend_type>
450
+ <sort_order>130</sort_order>
451
+ <show_in_default>1</show_in_default>
452
+ <show_in_website>1</show_in_website>
453
+ <show_in_store>1</show_in_store>
454
+ </galleryAxZmThumbSliderParamVert>
455
+ <thumbSliderPosition>
456
+ <label>thumbSliderPosition</label>
457
+ <comment><![CDATA[Position of the thumb slider. Possible values are
458
+ left, top, right, bottom, as well as any combination of these separated
459
+ with the dash, e.g. left-bottom.]]></comment>
460
+ <frontend_type>select</frontend_type>
461
+ <source_model>axzoom/azsettings::thumbSliderPosition</source_model>
462
+ <sort_order>140</sort_order>
463
+ <show_in_default>1</show_in_default>
464
+ <show_in_website>1</show_in_website>
465
+ <show_in_store>1</show_in_store>
466
+ </thumbSliderPosition>
467
+ <thumbSliderPositionSwitch>
468
+ <label>thumbSliderPositionSwitch</label>
469
+ <comment><![CDATA[Possible values: "auto" as string or integer.
470
+ Auto means depending on whether the screen is in portrait or
471
+ landscape mode the first or second value of "thumbSliderPosition"
472
+ suited for the resolution will be chosen. For the value set as
473
+ integer the second position from "thumbSliderPosition" will be
474
+ chosen if width of the screen is less than this integer and
475
+ the position suits for current resolution.]]></comment>
476
+ <frontend_type>text</frontend_type>
477
+ <sort_order>150</sort_order>
478
+ <show_in_default>1</show_in_default>
479
+ <show_in_website>1</show_in_website>
480
+ <show_in_store>1</show_in_store>
481
+ </thumbSliderPositionSwitch>
482
+ <thumbSliderMinSize>
483
+ <label>thumbSliderMinSize</label>
484
+ <comment><![CDATA[Minimal browser width for the gallery to be displayed.
485
+ See also "dotNavigation" option!]]></comment>
486
+ <frontend_type>text</frontend_type>
487
+ <sort_order>160</sort_order>
488
+ <show_in_default>1</show_in_default>
489
+ <show_in_website>1</show_in_website>
490
+ <show_in_store>1</show_in_store>
491
+ </thumbSliderMinSize>
492
+ <thumbSliderDimensionHorz>
493
+ <label>thumbSliderDimensionHorz</label>
494
+ <comment><![CDATA[Height of the container for the gallery when placed horizontally.]]></comment>
495
+ <frontend_type>text</frontend_type>
496
+ <sort_order>170</sort_order>
497
+ <show_in_default>1</show_in_default>
498
+ <show_in_website>1</show_in_website>
499
+ <show_in_store>1</show_in_store>
500
+ </thumbSliderDimensionHorz>
501
+ <thumbSliderDimensionVert>
502
+ <label>thumbSliderDimensionVert</label>
503
+ <comment><![CDATA[Width of the container for the gallery when placed vertically.]]></comment>
504
+ <frontend_type>text</frontend_type>
505
+ <sort_order>180</sort_order>
506
+ <show_in_default>1</show_in_default>
507
+ <show_in_website>1</show_in_website>
508
+ <show_in_store>1</show_in_store>
509
+ </thumbSliderDimensionVert>
510
+ <thumbSliderAutoSizeHorz>
511
+ <label>thumbSliderAutoSizeHorz</label>
512
+ <comment><![CDATA[Thumb CSS size will be set instantly depending on
513
+ "thumbSliderDimensionHorz" and other options.]]></comment>
514
+ <frontend_type>select</frontend_type>
515
+ <source_model>axzoom/azsettings::yesno</source_model>
516
+ <sort_order>190</sort_order>
517
+ <show_in_default>1</show_in_default>
518
+ <show_in_website>1</show_in_website>
519
+ <show_in_store>1</show_in_store>
520
+ </thumbSliderAutoSizeHorz>
521
+ <thumbSliderAutoSizeVert>
522
+ <label>thumbSliderAutoSizeVert</label>
523
+ <comment><![CDATA[Thumb CSS size will be set instantly depending on
524
+ "thumbSliderDimensionVert" and other options.]]></comment>
525
+ <frontend_type>select</frontend_type>
526
+ <source_model>axzoom/azsettings::yesno</source_model>
527
+ <sort_order>200</sort_order>
528
+ <show_in_default>1</show_in_default>
529
+ <show_in_website>1</show_in_website>
530
+ <show_in_store>1</show_in_store>
531
+ </thumbSliderAutoSizeVert>
532
+ <thumbSliderAutoMarginHorz>
533
+ <label>thumbSliderAutoMarginHorz</label>
534
+ <comment><![CDATA[Thumb margin when set instantly for horizontal gallery.]]></comment>
535
+ <frontend_type>text</frontend_type>
536
+ <sort_order>210</sort_order>
537
+ <show_in_default>1</show_in_default>
538
+ <show_in_website>1</show_in_website>
539
+ <show_in_store>1</show_in_store>
540
+ </thumbSliderAutoMarginHorz>
541
+ <thumbSliderAutoMarginVert>
542
+ <label>thumbSliderAutoMarginVert</label>
543
+ <comment><![CDATA[Thumb margin when set instantly for vertical gallery.]]></comment>
544
+ <frontend_type>text</frontend_type>
545
+ <sort_order>220</sort_order>
546
+ <show_in_default>1</show_in_default>
547
+ <show_in_website>1</show_in_website>
548
+ <show_in_store>1</show_in_store>
549
+ </thumbSliderAutoMarginVert>
550
+ <thumbSliderAutoExtendHorz>
551
+ <label>thumbSliderAutoExtendHorz</label>
552
+ <comment><![CDATA[Extend slider height by a fixed value
553
+ when set instantly for horizontal gallery - "thumbSliderAutoSizeHorz".]]></comment>
554
+ <frontend_type>text</frontend_type>
555
+ <sort_order>230</sort_order>
556
+ <show_in_default>1</show_in_default>
557
+ <show_in_website>1</show_in_website>
558
+ <show_in_store>1</show_in_store>
559
+ </thumbSliderAutoExtendHorz>
560
+ <thumbSliderAutoExtendVert>
561
+ <label>thumbSliderAutoExtendVert</label>
562
+ <comment><![CDATA[Extend slider width by a fixed value
563
+ when set instantly for vertical gallery - "thumbSliderAutoSizeVert"]]></comment>
564
+ <frontend_type>text</frontend_type>
565
+ <sort_order>240</sort_order>
566
+ <show_in_default>1</show_in_default>
567
+ <show_in_website>1</show_in_website>
568
+ <show_in_store>1</show_in_store>
569
+ </thumbSliderAutoExtendVert>
570
+ <thumbSliderHorzMargin>
571
+ <label>thumbSliderHorzMargin</label>
572
+ <comment><![CDATA[Horizontal margin of the vertical gallery to mouseover container.]]></comment>
573
+ <frontend_type>text</frontend_type>
574
+ <sort_order>250</sort_order>
575
+ <show_in_default>1</show_in_default>
576
+ <show_in_website>1</show_in_website>
577
+ <show_in_store>1</show_in_store>
578
+ </thumbSliderHorzMargin>
579
+ <thumbsFadeIn>
580
+ <label>thumbsFadeIn</label>
581
+ <comment><![CDATA[Fadein duration / speed of the thumbnails added to the gallery.]]></comment>
582
+ <frontend_type>text</frontend_type>
583
+ <sort_order>260</sort_order>
584
+ <show_in_default>1</show_in_default>
585
+ <show_in_website>1</show_in_website>
586
+ <show_in_store>1</show_in_store>
587
+ </thumbsFadeIn>
588
+ <thumbW>
589
+ <label>thumbW</label>
590
+ <comment><![CDATA[Gallery image thumb width. Please note that when "galleryAxZmThumbSlider" is enabled,
591
+ the final thumbnail width and height are determined by CSS
592
+ set over "galleryAxZmThumbSliderParam".]]></comment>
593
+ <frontend_type>text</frontend_type>
594
+ <sort_order>270</sort_order>
595
+ <show_in_default>1</show_in_default>
596
+ <show_in_website>1</show_in_website>
597
+ <show_in_store>1</show_in_store>
598
+ </thumbW>
599
+ <thumbH>
600
+ <label>thumbH</label>
601
+ <comment><![CDATA[Gallery image thumb height. Please note that when "galleryAxZmThumbSlider" is enabled,
602
+ the final thumbnail width and height are determined by CSS
603
+ set over "galleryAxZmThumbSliderParam".]]></comment>
604
+ <frontend_type>text</frontend_type>
605
+ <sort_order>280</sort_order>
606
+ <show_in_default>1</show_in_default>
607
+ <show_in_website>1</show_in_website>
608
+ <show_in_store>1</show_in_store>
609
+ </thumbH>
610
+ <thumbRetina>
611
+ <label>thumbRetina</label>
612
+ <comment><![CDATA[Double resolution of the thumb image.]]></comment>
613
+ <frontend_type>select</frontend_type>
614
+ <source_model>axzoom/azsettings::yesno</source_model>
615
+ <sort_order>290</sort_order>
616
+ <show_in_default>1</show_in_default>
617
+ <show_in_website>1</show_in_website>
618
+ <show_in_store>1</show_in_store>
619
+ </thumbRetina>
620
+ <thumbMode>
621
+ <label>thumbMode</label>
622
+ <comment><![CDATA[Create thumbnails in a way similar to css background values cover and contain.]]></comment>
623
+ <frontend_type>select</frontend_type>
624
+ <source_model>axzoom/azsettings::thumbMode</source_model>
625
+ <sort_order>300</sort_order>
626
+ <show_in_default>1</show_in_default>
627
+ <show_in_website>1</show_in_website>
628
+ <show_in_store>1</show_in_store>
629
+ </thumbMode>
630
+ <qualityThumb>
631
+ <label>qualityThumb</label>
632
+ <comment><![CDATA[Jpeg quality of the gallery thumbs.]]></comment>
633
+ <frontend_type>text</frontend_type>
634
+ <sort_order>310</sort_order>
635
+ <show_in_default>1</show_in_default>
636
+ <show_in_website>1</show_in_website>
637
+ <show_in_store>1</show_in_store>
638
+ </qualityThumb>
639
+ <thumbIcon>
640
+ <label>thumbIcon</label>
641
+ <comment><![CDATA[Place an icon over gallery thumbnail depending on media type.
642
+ The icon has CSS class axZmThumbSliderIcon and the source is defined in
643
+ "thumbIconFile" option.]]></comment>
644
+ <frontend_type>select</frontend_type>
645
+ <source_model>axzoom/azsettings::yesno</source_model>
646
+ <sort_order>320</sort_order>
647
+ <show_in_default>1</show_in_default>
648
+ <show_in_website>1</show_in_website>
649
+ <show_in_store>1</show_in_store>
650
+ </thumbIcon>
651
+ <thumbIconFile>
652
+ <label>thumbIconFile</label>
653
+ <comment><![CDATA[
654
+ <div class="validation-advice">Attention: you are editing JavaScript object!
655
+ Errors will lead to AJAX-ZOOM not working properly.</div>
656
+ Source for icons placed over the thumbnails in the gallery.
657
+ If only filename without path is defined the path presumed to be the
658
+ /axZm/icons folder. You can also set complete different paths including the image
659
+ filename instead.
660
+ ]]></comment>
661
+ <frontend_type>textarea</frontend_type>
662
+ <sort_order>330</sort_order>
663
+ <show_in_default>1</show_in_default>
664
+ <show_in_website>1</show_in_website>
665
+ <show_in_store>1</show_in_store>
666
+ </thumbIconFile>
667
+ <thumbWfs>
668
+ <label>thumbWfs</label>
669
+ <comment><![CDATA[Fullscreen gallery image thumb width.]]></comment>
670
+ <frontend_type>text</frontend_type>
671
+ <sort_order>340</sort_order>
672
+ <show_in_default>1</show_in_default>
673
+ <show_in_website>1</show_in_website>
674
+ <show_in_store>1</show_in_store>
675
+ </thumbWfs>
676
+ <thumbHfs>
677
+ <label>thumbHfs</label>
678
+ <comment><![CDATA[Fullscreen gallery image thumb height.]]></comment>
679
+ <frontend_type>text</frontend_type>
680
+ <sort_order>350</sort_order>
681
+ <show_in_default>1</show_in_default>
682
+ <show_in_website>1</show_in_website>
683
+ <show_in_store>1</show_in_store>
684
+ </thumbHfs>
685
+ <thumbRetinaFs>
686
+ <label>thumbRetinaFs</label>
687
+ <comment><![CDATA[Double the resolution of fullscreen gallery image thumbs.]]></comment>
688
+ <frontend_type>select</frontend_type>
689
+ <source_model>axzoom/azsettings::yesno</source_model>
690
+ <sort_order>360</sort_order>
691
+ <show_in_default>1</show_in_default>
692
+ <show_in_website>1</show_in_website>
693
+ <show_in_store>1</show_in_store>
694
+ </thumbRetinaFs>
695
+ <thumbModeFs>
696
+ <label>thumbModeFs</label>
697
+ <comment><![CDATA[Create thumbnails in a way similar to css background values cover and contain.]]></comment>
698
+ <frontend_type>select</frontend_type>
699
+ <source_model>axzoom/azsettings::thumbModeFs</source_model>
700
+ <sort_order>370</sort_order>
701
+ <show_in_default>1</show_in_default>
702
+ <show_in_website>1</show_in_website>
703
+ <show_in_store>1</show_in_store>
704
+ </thumbModeFs>
705
+ <qualityThumbFs>
706
+ <label>qualityThumbFs</label>
707
+ <comment><![CDATA[Jpeg Quality of the thumbnails in fullscreen gallery.]]></comment>
708
+ <frontend_type>text</frontend_type>
709
+ <sort_order>380</sort_order>
710
+ <show_in_default>1</show_in_default>
711
+ <show_in_website>1</show_in_website>
712
+ <show_in_store>1</show_in_store>
713
+ </qualityThumbFs>
714
+ <quality>
715
+ <label>quality</label>
716
+ <comment><![CDATA[Jpeg quality of the preview image.]]></comment>
717
+ <frontend_type>text</frontend_type>
718
+ <sort_order>390</sort_order>
719
+ <show_in_default>1</show_in_default>
720
+ <show_in_website>1</show_in_website>
721
+ <show_in_store>1</show_in_store>
722
+ </quality>
723
+ <qualityZoom>
724
+ <label>qualityZoom</label>
725
+ <comment><![CDATA[Jpeg quality of the zoom image shown in the flyout window.]]></comment>
726
+ <frontend_type>text</frontend_type>
727
+ <sort_order>400</sort_order>
728
+ <show_in_default>1</show_in_default>
729
+ <show_in_website>1</show_in_website>
730
+ <show_in_store>1</show_in_store>
731
+ </qualityZoom>
732
+ <firstImageToLoad>
733
+ <label>firstImageToLoad</label>
734
+ <comment><![CDATA[Image from "images" option which should be loaded at first.
735
+ See also "images360firstToLoad" option below.
736
+ The "images" option does not exist as defineable option
737
+ in AJAX-ZOOM modules / plugins for
738
+ ecommerce systems because obviously the purpose of the modules is to set it instantly.]]></comment>
739
+ <frontend_type>text</frontend_type>
740
+ <sort_order>410</sort_order>
741
+ <show_in_default>1</show_in_default>
742
+ <show_in_website>1</show_in_website>
743
+ <show_in_store>1</show_in_store>
744
+ </firstImageToLoad>
745
+ <images360firstToLoad>
746
+ <label><![CDATA[<div class="notice-msg importantAZoption">images360firstToLoad</div>]]></label>
747
+ <comment><![CDATA[In case present load 360 from "images360" first and not an image from "images".]]></comment>
748
+ <frontend_type>select</frontend_type>
749
+ <source_model>axzoom/azsettings::yesno</source_model>
750
+ <sort_order>420</sort_order>
751
+ <show_in_default>1</show_in_default>
752
+ <show_in_website>1</show_in_website>
753
+ <show_in_store>1</show_in_store>
754
+ </images360firstToLoad>
755
+ <images360Thumb>
756
+ <label>images360Thumb</label>
757
+ <comment><![CDATA[Show first image of the spin as thumb.]]></comment>
758
+ <frontend_type>select</frontend_type>
759
+ <source_model>axzoom/azsettings::yesno</source_model>
760
+ <sort_order>430</sort_order>
761
+ <show_in_default>1</show_in_default>
762
+ <show_in_website>1</show_in_website>
763
+ <show_in_store>1</show_in_store>
764
+ </images360Thumb>
765
+ <images360ThumbDefaultPostion>
766
+ <label>images360ThumbDefaultPostion</label>
767
+ <comment><![CDATA[Default position of the thumbnail representing a 360/3D in the gallery.
768
+ The position can be also defined for each thumb individually.
769
+ Possible values are: "first", "afterfirst" and "last".
770
+ See also "videoThumbDefaultPostion" option.]]></comment>
771
+ <frontend_type>select</frontend_type>
772
+ <source_model>axzoom/azsettings::images360ThumbDefaultPostion</source_model>
773
+ <sort_order>440</sort_order>
774
+ <show_in_default>1</show_in_default>
775
+ <show_in_website>1</show_in_website>
776
+ <show_in_store>1</show_in_store>
777
+ </images360ThumbDefaultPostion>
778
+ <images360ThumbBeforeVideo>
779
+ <label>images360ThumbBeforeVideo</label>
780
+ <comment><![CDATA[If activated thumbnails in the gallery representing a 360/3D will be
781
+ appended before thumbnails representing videos.]]></comment>
782
+ <frontend_type>select</frontend_type>
783
+ <source_model>axzoom/azsettings::yesno</source_model>
784
+ <sort_order>450</sort_order>
785
+ <show_in_default>1</show_in_default>
786
+ <show_in_website>1</show_in_website>
787
+ <show_in_store>1</show_in_store>
788
+ </images360ThumbBeforeVideo>
789
+ <images360Overlay>
790
+ <label>images360Overlay</label>
791
+ <comment><![CDATA[Add a div with class "spinOverlImg" or "spinOverl" over the gallery thumb.
792
+ On default it has a 360 icon as background.]]></comment>
793
+ <frontend_type>select</frontend_type>
794
+ <source_model>axzoom/azsettings::yesno</source_model>
795
+ <sort_order>460</sort_order>
796
+ <show_in_default>1</show_in_default>
797
+ <show_in_website>1</show_in_website>
798
+ <show_in_store>1</show_in_store>
799
+ </images360Overlay>
800
+ <images360Small>
801
+ <label>images360Small</label>
802
+ <comment><![CDATA[Placeholder image when 360 is slided.
803
+ If only filename without path is defined the path presumed to be the
804
+ /axZm/icons folder. You can also set complete different paths including the image
805
+ filename instead.]]></comment>
806
+ <frontend_type>text</frontend_type>
807
+ <sort_order>470</sort_order>
808
+ <show_in_default>1</show_in_default>
809
+ <show_in_website>1</show_in_website>
810
+ <show_in_store>1</show_in_store>
811
+ </images360Small>
812
+ <images360Big>
813
+ <label>images360Big</label>
814
+ <comment><![CDATA[Placeholder image when 360 is slided.
815
+ If only filename without path is defined the path presumed to be the
816
+ /axZm/icons folder. You can also set complete different paths including the image
817
+ filename instead.]]></comment>
818
+ <frontend_type>text</frontend_type>
819
+ <sort_order>480</sort_order>
820
+ <show_in_default>1</show_in_default>
821
+ <show_in_website>1</show_in_website>
822
+ <show_in_store>1</show_in_store>
823
+ </images360Big>
824
+ <images360example>
825
+ <label>images360example</label>
826
+ <comment><![CDATA[Configuration set which is passed to ajax-zoom when opening a 360/3D.
827
+ The configuration set can be found in /axZm/zoomConfigCustom.inc.php]]></comment>
828
+ <frontend_type>text</frontend_type>
829
+ <sort_order>490</sort_order>
830
+ <show_in_default>1</show_in_default>
831
+ <show_in_website>1</show_in_website>
832
+ <show_in_store>1</show_in_store>
833
+ </images360example>
834
+ <zoomMsg360>
835
+ <label>zoomMsg360</label>
836
+ <comment><![CDATA[
837
+ <div class="validation-advice">Attention: you are editing JavaScript object!
838
+ Errors will lead to AJAX-ZOOM not working properly.</div>
839
+ Message displayed under mouse over zoom when 360 is loaded,
840
+ e.g. "Drag to spin 360, scroll to zoom".
841
+ For more than one language define a js object, e.g.
842
+ {"en": "english text", "de": "german text"}
843
+ ]]></comment>
844
+ <frontend_type>textarea</frontend_type>
845
+ <sort_order>500</sort_order>
846
+ <show_in_default>1</show_in_default>
847
+ <show_in_website>1</show_in_website>
848
+ <show_in_store>1</show_in_store>
849
+ </zoomMsg360>
850
+ <zoomMsg360_touch>
851
+ <label>zoomMsg360_touch</label>
852
+ <comment><![CDATA[
853
+ <div class="validation-advice">Attention: you are editing JavaScript object!
854
+ Errors will lead to AJAX-ZOOM not working properly.</div>
855
+ Message displayed under mouse over zoom when 360 is loaded on touch devices.
856
+ For more than one language define a js object,
857
+ e.g. {"en": "english text", "de": "german text"}
858
+ ]]></comment>
859
+ <frontend_type>textarea</frontend_type>
860
+ <sort_order>510</sort_order>
861
+ <show_in_default>1</show_in_default>
862
+ <show_in_website>1</show_in_website>
863
+ <show_in_store>1</show_in_store>
864
+ </zoomMsg360_touch>
865
+ <preloadMouseOverImages>
866
+ <label>preloadMouseOverImages</label>
867
+ <comment><![CDATA[Preload all preview and mouseover images, possible values: false, true oder "oneByOne".]]></comment>
868
+ <frontend_type>select</frontend_type>
869
+ <source_model>axzoom/azsettings::preloadMouseOverImages</source_model>
870
+ <sort_order>520</sort_order>
871
+ <show_in_default>1</show_in_default>
872
+ <show_in_website>1</show_in_website>
873
+ <show_in_store>1</show_in_store>
874
+ </preloadMouseOverImages>
875
+ <noImageAvailableClass>
876
+ <label>noImageAvailableClass</label>
877
+ <comment><![CDATA[
878
+ <div class="validation-advice">Attention: you are editing JavaScript object!
879
+ Errors will lead to AJAX-ZOOM not working properly.</div>
880
+ In case there are no images in "images", nor there are any in "images360",
881
+ a div with some image as background can be appended to the
882
+ container and receive this options value as CSS class.
883
+ For more than one language define a js object,
884
+ e.g. {"en": "axZm_mouseOverNoImage_en", "de": "axZm_mouseOverNoImage_de"}
885
+ ]]></comment>
886
+ <frontend_type>textarea</frontend_type>
887
+ <sort_order>530</sort_order>
888
+ <show_in_default>1</show_in_default>
889
+ <show_in_website>1</show_in_website>
890
+ <show_in_store>1</show_in_store>
891
+ </noImageAvailableClass>
892
+ <width>
893
+ <label>width</label>
894
+ <comment><![CDATA[Width of the preview image or "auto"
895
+ (depending on parent container size - "divID", see above).
896
+ This is also the value which will be passed to your AJAX-ZOOM imaging server
897
+ to generate this image on-the-fly.
898
+ If width or height are set to "auto", both: width and height of the preview image
899
+ are set to 50% of the value taken from "mouseOverZoomWidth", so on default it is 600px]]></comment>
900
+ <frontend_type>text</frontend_type>
901
+ <sort_order>540</sort_order>
902
+ <show_in_default>1</show_in_default>
903
+ <show_in_website>1</show_in_website>
904
+ <show_in_store>1</show_in_store>
905
+ </width>
906
+ <height>
907
+ <label>height</label>
908
+ <comment><![CDATA[Height of the preview image or "auto"
909
+ (depending on parent container size - "divID", see above).
910
+ This is also the value which will be passed to your AJAX-ZOOM imaging server
911
+ to generate this image on-the-fly.
912
+ If width or height are set to "auto", both: width and height of the preview image
913
+ are set to 50% of the value taken from "mouseOverZoomWidth", so on default it is 600px]]></comment>
914
+ <frontend_type>text</frontend_type>
915
+ <sort_order>550</sort_order>
916
+ <show_in_default>1</show_in_default>
917
+ <show_in_website>1</show_in_website>
918
+ <show_in_store>1</show_in_store>
919
+ </height>
920
+ <oneSrcImg>
921
+ <label>oneSrcImg</label>
922
+ <comment><![CDATA[Use same image for "preview image" -
923
+ the image which is hovered and the big "flyout image".]]></comment>
924
+ <frontend_type>select</frontend_type>
925
+ <source_model>axzoom/azsettings::yesno</source_model>
926
+ <sort_order>560</sort_order>
927
+ <show_in_default>1</show_in_default>
928
+ <show_in_website>1</show_in_website>
929
+ <show_in_store>1</show_in_store>
930
+ </oneSrcImg>
931
+ <heightRatio>
932
+ <label>heightRatio</label>
933
+ <comment><![CDATA["heightRatio" with instantly adjust the height of mouseover
934
+ container depending on width calculated by the browser, e.g. 1.0 will always
935
+ (only limited by "maxSizePrc" option) make height same as width;
936
+ a value of 1.5 will make the preview like a portrait.
937
+ You can also set "heightRatio" to "auto".
938
+ In this case the height will be adjusted to cover available space instantly!
939
+ Please note that when your images are not always same proportion,
940
+ then the container will also change the size when the user switches to a different image.]]></comment>
941
+ <frontend_type>text</frontend_type>
942
+ <sort_order>570</sort_order>
943
+ <show_in_default>1</show_in_default>
944
+ <show_in_website>1</show_in_website>
945
+ <show_in_store>1</show_in_store>
946
+ </heightRatio>
947
+ <heightRatioOneImg>
948
+ <label>heightRatioOneImg</label>
949
+ <comment><![CDATA[Overwrites "heightRatio" if only one image / 360 is present and
950
+ e.g. gallery is instantly disabled. Set to
951
+ "same" in order to prevent any impact on "heightRatio" option.]]></comment>
952
+ <frontend_type>text</frontend_type>
953
+ <sort_order>580</sort_order>
954
+ <show_in_default>1</show_in_default>
955
+ <show_in_website>1</show_in_website>
956
+ <show_in_store>1</show_in_store>
957
+ </heightRatioOneImg>
958
+ <heightMaxWidthRatio>
959
+ <label>heightMaxWidthRatio</label>
960
+ <comment><![CDATA[
961
+ <div class="validation-advice">Attention: you are editing JavaScript array!
962
+ Errors will lead to AJAX-ZOOM not working properly.</div>
963
+ Similar as you would set max-width: someValue @media only screen condition
964
+ you can define "heightRatio"
965
+ depending on the width of the browser, e.g. ["960|0.8", "700|0.7"].
966
+ You can define a string or js array with more than one conditions.
967
+ ]]></comment>
968
+ <frontend_type>text</frontend_type>
969
+ <sort_order>590</sort_order>
970
+ <show_in_default>1</show_in_default>
971
+ <show_in_website>1</show_in_website>
972
+ <show_in_store>1</show_in_store>
973
+ </heightMaxWidthRatio>
974
+ <widthRatio>
975
+ <label>widthRatio</label>
976
+ <comment><![CDATA[
977
+ <div class="validation-advice">Attention: you are editing JavaScript array!
978
+ Errors will lead to AJAX-ZOOM not working properly.</div>
979
+ Oposit of "heightRatio".
980
+ ]]></comment>
981
+ <frontend_type>text</frontend_type>
982
+ <sort_order>600</sort_order>
983
+ <show_in_default>1</show_in_default>
984
+ <show_in_website>1</show_in_website>
985
+ <show_in_store>1</show_in_store>
986
+ </widthRatio>
987
+ <widthMaxHeightRatio>
988
+ <label>widthMaxHeightRatio</label>
989
+ <comment><![CDATA[
990
+ <div class="validation-advice">Attention: you are editing JavaScript array!
991
+ Errors will lead to AJAX-ZOOM not working properly.</div>
992
+ Oposit of "heightMaxWidthRatio"
993
+ ]]></comment>
994
+ <frontend_type>text</frontend_type>
995
+ <sort_order>610</sort_order>
996
+ <show_in_default>1</show_in_default>
997
+ <show_in_website>1</show_in_website>
998
+ <show_in_store>1</show_in_store>
999
+ </widthMaxHeightRatio>
1000
+ <maxSizePrc>
1001
+ <label>maxSizePrc</label>
1002
+ <comment><![CDATA[Limit the actual height if "heightRatio" option is set.
1003
+ Setting "heightRatio" option may result in that the height of the mouseover zoom
1004
+ is bigger than window height and the image is not fully visible.
1005
+ To prevent this you can limit the calculated height with this "maxSizePrc" option.
1006
+ The value of 1.0 would limit the height to 100% of window height;
1007
+ a value of 0.8 to 80% of window height;
1008
+ you can also define two values, e.g. '1.0|-120'
1009
+ which would be window height minus 120px.]]></comment>
1010
+ <frontend_type>text</frontend_type>
1011
+ <sort_order>620</sort_order>
1012
+ <show_in_default>1</show_in_default>
1013
+ <show_in_website>1</show_in_website>
1014
+ <show_in_store>1</show_in_store>
1015
+ </maxSizePrc>
1016
+ <mouseOverZoomWidth>
1017
+ <label><![CDATA[<div class="notice-msg importantAZoption">mouseOverZoomWidth</div>]]></label>
1018
+ <comment><![CDATA[Max width of the image that will be shown in the zoom window;
1019
+ this is the value which will be passed to your AJAX-ZOOM imaging server
1020
+ to generate this image on-the-fly.
1021
+ Please note that the size is limited by $zoom['config']['allowDynamicThumbsMaxSize']
1022
+ which is can be set in '/axZm/zoomConfig.inc.php'.
1023
+ You can also specify a link to the image, see "images" option above.
1024
+ To set the width of the fly out window see "zoomWidth" under "mouseOverZoomParam".]]></comment>
1025
+ <frontend_type>text</frontend_type>
1026
+ <sort_order>630</sort_order>
1027
+ <show_in_default>1</show_in_default>
1028
+ <show_in_website>1</show_in_website>
1029
+ <show_in_store>1</show_in_store>
1030
+ </mouseOverZoomWidth>
1031
+ <mouseOverZoomHeight>
1032
+ <label><![CDATA[<div class="notice-msg importantAZoption">mouseOverZoomHeight</div>]]></label>
1033
+ <comment><![CDATA[Max height of the image that will be shown in the zoom window;
1034
+ this is the value which will be passed to your AJAX-ZOOM imaging server
1035
+ to generate this image on-the-fly.
1036
+ Please note that the size is limited by $zoom['config']['allowDynamicThumbsMaxSize']
1037
+ which is can be set in '/axZm/zoomConfig.inc.php'.
1038
+ You can also specify a link to the image, see "images" option above.
1039
+ To set the height of the fly out window see "zoomHeight" under "mouseOverZoomParam".]]></comment>
1040
+ <frontend_type>text</frontend_type>
1041
+ <sort_order>640</sort_order>
1042
+ <show_in_default>1</show_in_default>
1043
+ <show_in_website>1</show_in_website>
1044
+ <show_in_store>1</show_in_store>
1045
+ </mouseOverZoomHeight>
1046
+ <mouseOverContain>
1047
+ <label>mouseOverContain</label>
1048
+ <comment><![CDATA[Create preview and the image, which is shown in the zoom window,
1049
+ with the same size / proportion
1050
+ as it is set in "mouseOverZoomWidth" and "mouseOverZoomHeight" options.
1051
+ Empty space will be filled with white color or kept transparent for png images.]]></comment>
1052
+ <frontend_type>select</frontend_type>
1053
+ <source_model>axzoom/azsettings::yesno</source_model>
1054
+ <sort_order>650</sort_order>
1055
+ <show_in_default>1</show_in_default>
1056
+ <show_in_website>1</show_in_website>
1057
+ <show_in_store>1</show_in_store>
1058
+ </mouseOverContain>
1059
+ <ajaxZoomOpenMode>
1060
+ <label>ajaxZoomOpenMode</label>
1061
+ <comment><![CDATA[Determines how AJAX-ZOOM is opened when the user clicks on preview images / lens,
1062
+ possible values: 'fullscreen' (see also "fullScreenApi" option below)
1063
+ or 'fancyboxFullscreen'.]]></comment>
1064
+ <frontend_type>select</frontend_type>
1065
+ <source_model>axzoom/azsettings::ajaxZoomOpenMode</source_model>
1066
+ <sort_order>660</sort_order>
1067
+ <show_in_default>1</show_in_default>
1068
+ <show_in_website>1</show_in_website>
1069
+ <show_in_store>1</show_in_store>
1070
+ </ajaxZoomOpenMode>
1071
+ <ajaxZoomOpenModeTouch>
1072
+ <label>ajaxZoomOpenModeTouch</label>
1073
+ <comment><![CDATA[Determines how AJAX-ZOOM is opened when the user touch - clicks on
1074
+ preview images / lens, possible values: 'fullscreen' and 'fancyboxFullscreen'.]]></comment>
1075
+ <frontend_type>select</frontend_type>
1076
+ <source_model>axzoom/azsettings::ajaxZoomOpenModeTouch</source_model>
1077
+ <sort_order>670</sort_order>
1078
+ <show_in_default>1</show_in_default>
1079
+ <show_in_website>1</show_in_website>
1080
+ <show_in_store>1</show_in_store>
1081
+ </ajaxZoomOpenModeTouch>
1082
+ <fancyBoxFullscreenParam>
1083
+ <label>fancyBoxFullscreenParam</label>
1084
+ <comment><![CDATA[
1085
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1086
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1087
+ If fancyboxFullscreen is used in "ajaxZoomOpenMode" option, Fancybox options.
1088
+ Prefixed with box and capitalized first letter!
1089
+ ]]></comment>
1090
+ <frontend_type>textarea</frontend_type>
1091
+ <sort_order>680</sort_order>
1092
+ <show_in_default>1</show_in_default>
1093
+ <show_in_website>1</show_in_website>
1094
+ <show_in_store>1</show_in_store>
1095
+ </fancyBoxFullscreenParam>
1096
+ <example>
1097
+ <label>example</label>
1098
+ <comment><![CDATA[Configuration set which is passed to ajax-zoom when opening a 2D image.
1099
+ The configuration set can be found in /axZm/zoomConfigCustom.inc.php]]></comment>
1100
+ <frontend_type>text</frontend_type>
1101
+ <sort_order>690</sort_order>
1102
+ <show_in_default>1</show_in_default>
1103
+ <show_in_website>1</show_in_website>
1104
+ <show_in_store>1</show_in_store>
1105
+ </example>
1106
+ <exampleFancyboxFullscreen>
1107
+ <label>exampleFancyboxFullscreen</label>
1108
+ <comment><![CDATA[Configuration set which is passed to ajax-zoom when ajaxZoomOpenMode
1109
+ is 'fancyboxFullscreen'.]]></comment>
1110
+ <frontend_type>text</frontend_type>
1111
+ <sort_order>700</sort_order>
1112
+ <show_in_default>1</show_in_default>
1113
+ <show_in_website>1</show_in_website>
1114
+ <show_in_store>1</show_in_store>
1115
+ </exampleFancyboxFullscreen>
1116
+ <enforceFullScreenRes>
1117
+ <label>enforceFullScreenRes</label>
1118
+ <comment><![CDATA[Enforce "ajaxZoomOpenMode" to be "fullscreen" if screen width is less than this value.]]></comment>
1119
+ <frontend_type>text</frontend_type>
1120
+ <sort_order>710</sort_order>
1121
+ <show_in_default>1</show_in_default>
1122
+ <show_in_website>1</show_in_website>
1123
+ <show_in_store>1</show_in_store>
1124
+ </enforceFullScreenRes>
1125
+ <prevNextArrows>
1126
+ <label>prevNextArrows</label>
1127
+ <comment><![CDATA[Put prev / next buttons over mouseover zoom. CSS: .axZm_mouseOverPrevNextArrows;]]></comment>
1128
+ <frontend_type>select</frontend_type>
1129
+ <source_model>axzoom/azsettings::yesno</source_model>
1130
+ <sort_order>720</sort_order>
1131
+ <show_in_default>1</show_in_default>
1132
+ <show_in_website>1</show_in_website>
1133
+ <show_in_store>1</show_in_store>
1134
+ </prevNextArrows>
1135
+ <prevNextArrowsTouch>
1136
+ <label>prevNextArrowsTouch</label>
1137
+ <comment><![CDATA[Put prev / next buttons over mouseover zoom for touch devices.
1138
+ CSS: .axZm_mouseOverPrevNextArrows;]]></comment>
1139
+ <frontend_type>select</frontend_type>
1140
+ <source_model>axzoom/azsettings::yesno</source_model>
1141
+ <sort_order>730</sort_order>
1142
+ <show_in_default>1</show_in_default>
1143
+ <show_in_website>1</show_in_website>
1144
+ <show_in_store>1</show_in_store>
1145
+ </prevNextArrowsTouch>
1146
+ <prevNextArrowsSlide>
1147
+ <label>prevNextArrowsSlide</label>
1148
+ <comment><![CDATA[Slide images to right or left when clicked on the prev / next buttons.]]></comment>
1149
+ <frontend_type>select</frontend_type>
1150
+ <source_model>axzoom/azsettings::yesno</source_model>
1151
+ <sort_order>740</sort_order>
1152
+ <show_in_default>1</show_in_default>
1153
+ <show_in_website>1</show_in_website>
1154
+ <show_in_store>1</show_in_store>
1155
+ </prevNextArrowsSlide>
1156
+ <disableScrollAnm>
1157
+ <label>disableScrollAnm</label>
1158
+ <comment><![CDATA[Disable animation while zooming with AJAX-ZOOM and using mousewheel.]]></comment>
1159
+ <frontend_type>select</frontend_type>
1160
+ <source_model>axzoom/azsettings::yesno</source_model>
1161
+ <sort_order>750</sort_order>
1162
+ <show_in_default>1</show_in_default>
1163
+ <show_in_website>1</show_in_website>
1164
+ <show_in_store>1</show_in_store>
1165
+ </disableScrollAnm>
1166
+ <fullScreenApi>
1167
+ <label>fullScreenApi</label>
1168
+ <comment><![CDATA[Try to open AJAX-ZOOM at browsers fullscreen mode,
1169
+ possible on modern browsers except IE < 10 and mobile.]]></comment>
1170
+ <frontend_type>select</frontend_type>
1171
+ <source_model>axzoom/azsettings::yesno</source_model>
1172
+ <sort_order>760</sort_order>
1173
+ <show_in_default>1</show_in_default>
1174
+ <show_in_website>1</show_in_website>
1175
+ <show_in_store>1</show_in_store>
1176
+ </fullScreenApi>
1177
+ <axZmCallBacks>
1178
+ <label>axZmCallBacks</label>
1179
+ <comment><![CDATA[AJAX-ZOOM has several callbacks / hooks,
1180
+ http://www.ajax-zoom.com/index.php?cid=docs#onBeforeStart]]></comment>
1181
+ <frontend_type>textarea</frontend_type>
1182
+ <sort_order>770</sort_order>
1183
+ <show_in_default>1</show_in_default>
1184
+ <show_in_website>1</show_in_website>
1185
+ <show_in_store>1</show_in_store>
1186
+ </axZmCallBacks>
1187
+ <azOptions>
1188
+ <label>azOptions</label>
1189
+ <comment><![CDATA[
1190
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1191
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1192
+ Some AJAX-ZOOM options can be set with JS when AJAX-ZOOM is inited.
1193
+ Normally you would be defining them in /axZm/zoomConfig.inc.php
1194
+ or /axZm/zoomConfigCustom.inc.php; this field is for convenience reasons. Example:
1195
+ {"fullScreenCornerButton": false} - this would disable the button for fullscreen.
1196
+ ]]></comment>
1197
+ <frontend_type>textarea</frontend_type>
1198
+ <sort_order>780</sort_order>
1199
+ <show_in_default>1</show_in_default>
1200
+ <show_in_website>1</show_in_website>
1201
+ <show_in_store>1</show_in_store>
1202
+ </azOptions>
1203
+ <azOptions360>
1204
+ <label>azOptions360</label>
1205
+ <comment><![CDATA[
1206
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1207
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1208
+ Same as above but specifically for 360/3D.
1209
+ In AJAX-ZOOM modules for ecommerce systems you can also set these options
1210
+ for each 360 individually...
1211
+ As an example for setting this option manually would be such an object:
1212
+ {"mouseScrollEnable": true,
1213
+ "mNavi": {"enabled": true, "gravity": "bottomLeft",
1214
+ "order": {"mZoomOut": 5, "mZoomIn": 15}}}
1215
+ ]]></comment>
1216
+ <frontend_type>textarea</frontend_type>
1217
+ <sort_order>790</sort_order>
1218
+ <show_in_default>1</show_in_default>
1219
+ <show_in_website>1</show_in_website>
1220
+ <show_in_store>1</show_in_store>
1221
+ </azOptions360>
1222
+ <postMode>
1223
+ <label>postMode</label>
1224
+ <comment><![CDATA[Set AJAX-ZOOM to use POST instead of GET.]]></comment>
1225
+ <frontend_type>select</frontend_type>
1226
+ <source_model>axzoom/azsettings::yesno</source_model>
1227
+ <sort_order>800</sort_order>
1228
+ <show_in_default>1</show_in_default>
1229
+ <show_in_website>1</show_in_website>
1230
+ <show_in_store>1</show_in_store>
1231
+ </postMode>
1232
+ </fields>
1233
+ </general_settings>
1234
+ <product_tour translate="label">
1235
+ <label>360 "Product tour"</label>
1236
+ <frontend_type>text</frontend_type>
1237
+ <sort_order>60</sort_order>
1238
+ <show_in_default>1</show_in_default>
1239
+ <show_in_website>1</show_in_website>
1240
+ <show_in_store>1</show_in_store>
1241
+ <fields>
1242
+ <cropAxZmThumbSliderParam>
1243
+ <label>cropAxZmThumbSliderParam</label>
1244
+ <comment><![CDATA[
1245
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1246
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1247
+ Slider settings for 360° "Product Tour". Can be kept empty.
1248
+ See also "galleryAxZmThumbSliderParam" option for more info.
1249
+ ]]></comment>
1250
+ <frontend_type>textarea</frontend_type>
1251
+ <sort_order>10</sort_order>
1252
+ <show_in_default>1</show_in_default>
1253
+ <show_in_website>1</show_in_website>
1254
+ <show_in_store>1</show_in_store>
1255
+ </cropAxZmThumbSliderParam>
1256
+ <cropSliderPosition>
1257
+ <label>cropSliderPosition</label>
1258
+ <comment><![CDATA[Position of the 360° "Product Tour" slider,
1259
+ possible values: "top", "right", "bottom", "left" and any combination
1260
+ between those separated with dash.]]></comment>
1261
+ <frontend_type>select</frontend_type>
1262
+ <source_model>axzoom/azsettings::cropSliderPosition</source_model>
1263
+ <sort_order>20</sort_order>
1264
+ <show_in_default>1</show_in_default>
1265
+ <show_in_website>1</show_in_website>
1266
+ <show_in_store>1</show_in_store>
1267
+ </cropSliderPosition>
1268
+ <cropSliderPositionSwitch>
1269
+ <label>cropSliderPositionSwitch</label>
1270
+ <comment><![CDATA[Possible values: "auto" as string or integer.
1271
+ Auto means depending on whether the screen is in portrait or
1272
+ landscape mode the first or second value of "cropSliderPosition"
1273
+ suited for the resolution will be chosen. For the value set as
1274
+ integer the second position from "cropSliderPosition" will be
1275
+ chosen if width of the screen is less than this integer and
1276
+ the position suits for current resolution.]]></comment>
1277
+ <frontend_type>text</frontend_type>
1278
+ <sort_order>30</sort_order>
1279
+ <show_in_default>1</show_in_default>
1280
+ <show_in_website>1</show_in_website>
1281
+ <show_in_store>1</show_in_store>
1282
+ </cropSliderPositionSwitch>
1283
+ <cropSliderPosPriority>
1284
+ <label>cropSliderPosPriority</label>
1285
+ <comment><![CDATA[Prioritize placing 360° "Product Tour" slider,
1286
+ defined in "cropSliderPosition", before positioning fullscreen thumbnail slider,
1287
+ defined in "fsSliderPosition".]]></comment>
1288
+ <frontend_type>select</frontend_type>
1289
+ <source_model>axzoom/azsettings::yesno</source_model>
1290
+ <sort_order>40</sort_order>
1291
+ <show_in_default>1</show_in_default>
1292
+ <show_in_website>1</show_in_website>
1293
+ <show_in_store>1</show_in_store>
1294
+ </cropSliderPosPriority>
1295
+ <cropSliderReposition>
1296
+ <label>cropSliderReposition</label>
1297
+ <comment><![CDATA[In case the positions of the gallery slider and the slider for 360 Product tour collude,
1298
+ the alternative position.
1299
+ Possible values: "left-bottom", "left-top", "right-bottom", "right-top" and "opposite".]]></comment>
1300
+ <frontend_type>select</frontend_type>
1301
+ <source_model>axzoom/azsettings::cropSliderReposition</source_model>
1302
+ <sort_order>50</sort_order>
1303
+ <show_in_default>1</show_in_default>
1304
+ <show_in_website>1</show_in_website>
1305
+ <show_in_store>1</show_in_store>
1306
+ </cropSliderReposition>
1307
+ <cropSliderDimension>
1308
+ <label>cropSliderDimension</label>
1309
+ <comment><![CDATA[Width or height (depending on position) of the instantly
1310
+ created container for the 360° "Product Tour" thumb slider.]]></comment>
1311
+ <frontend_type>text</frontend_type>
1312
+ <sort_order>60</sort_order>
1313
+ <show_in_default>1</show_in_default>
1314
+ <show_in_website>1</show_in_website>
1315
+ <show_in_store>1</show_in_store>
1316
+ </cropSliderDimension>
1317
+ <cropSliderThumbAutoSize>
1318
+ <label>cropSliderThumbAutoSize</label>
1319
+ <comment><![CDATA[Thumb CSS size will be set instantly depending on "cropSliderDimension" option.]]></comment>
1320
+ <frontend_type>select</frontend_type>
1321
+ <source_model>axzoom/azsettings::yesno</source_model>
1322
+ <sort_order>70</sort_order>
1323
+ <show_in_default>1</show_in_default>
1324
+ <show_in_website>1</show_in_website>
1325
+ <show_in_store>1</show_in_store>
1326
+ </cropSliderThumbAutoSize>
1327
+ <cropSliderThumbAutoMargin>
1328
+ <label>cropSliderThumbAutoMargin</label>
1329
+ <comment><![CDATA[Thumb margin when set instantly.]]></comment>
1330
+ <frontend_type>text</frontend_type>
1331
+ <sort_order>80</sort_order>
1332
+ <show_in_default>1</show_in_default>
1333
+ <show_in_website>1</show_in_website>
1334
+ <show_in_store>1</show_in_store>
1335
+ </cropSliderThumbAutoMargin>
1336
+ <cropSliderThumbDescr>
1337
+ <label>cropSliderThumbDescr</label>
1338
+ <comment><![CDATA[Enable descriptions for the thumbs in the slider for 360° "Product Tour"]]></comment>
1339
+ <frontend_type>select</frontend_type>
1340
+ <source_model>axzoom/azsettings::yesno</source_model>
1341
+ <sort_order>90</sort_order>
1342
+ <show_in_default>1</show_in_default>
1343
+ <show_in_website>1</show_in_website>
1344
+ <show_in_store>1</show_in_store>
1345
+ </cropSliderThumbDescr>
1346
+ <cropSliderMinSize>
1347
+ <label>cropSliderMinSize</label>
1348
+ <comment><![CDATA[Minimal size of the player (width or height) for 360° "Product Tour" gallery
1349
+ (if present) to be shown.]]></comment>
1350
+ <frontend_type>text</frontend_type>
1351
+ <sort_order>100</sort_order>
1352
+ <show_in_default>1</show_in_default>
1353
+ <show_in_website>1</show_in_website>
1354
+ <show_in_store>1</show_in_store>
1355
+ </cropSliderMinSize>
1356
+ <cropSliderNotParent>
1357
+ <label>cropSliderNotParent</label>
1358
+ <comment><![CDATA[Prevent showing 360° "Product Tour" gallery when the parent container
1359
+ matches the id or CSS class represented as string in this option value,
1360
+ e.g. "az_mouseOverZoomContainer".
1361
+ For more than one value split them with vertical dash.]]></comment>
1362
+ <frontend_type>text</frontend_type>
1363
+ <sort_order>110</sort_order>
1364
+ <show_in_default>1</show_in_default>
1365
+ <show_in_website>1</show_in_website>
1366
+ <show_in_store>1</show_in_store>
1367
+ </cropSliderNotParent>
1368
+ <cropAxZmEbOpt>
1369
+ <label>cropAxZmEbOpt</label>
1370
+ <comment><![CDATA[
1371
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1372
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1373
+ Options for $.axZmEb function which is used for descriptions for
1374
+ 360° "Product Tour". Documentation to be updated...
1375
+ ]]></comment>
1376
+ <frontend_type>textarea</frontend_type>
1377
+ <sort_order>120</sort_order>
1378
+ <show_in_default>1</show_in_default>
1379
+ <show_in_website>1</show_in_website>
1380
+ <show_in_store>1</show_in_store>
1381
+ </cropAxZmEbOpt>
1382
+ </fields>
1383
+ </product_tour>
1384
+ <fullscreen_gallery translate="label">
1385
+ <label>Fullscreen gallery</label>
1386
+ <frontend_type>text</frontend_type>
1387
+ <sort_order>70</sort_order>
1388
+ <show_in_default>1</show_in_default>
1389
+ <show_in_website>1</show_in_website>
1390
+ <show_in_store>1</show_in_store>
1391
+ <fields>
1392
+ <fsAxZmThumbSliderParam>
1393
+ <label>fsAxZmThumbSliderParam</label>
1394
+ <comment><![CDATA[
1395
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1396
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1397
+ $.axZmThumbSlider options for fullscreen gallery.
1398
+ For full list of options see under:
1399
+ /modules/ajaxzoom/axZm/extensions/axZmThumbSlider/
1400
+ ]]></comment>
1401
+ <frontend_type>textarea</frontend_type>
1402
+ <sort_order>10</sort_order>
1403
+ <show_in_default>1</show_in_default>
1404
+ <show_in_website>1</show_in_website>
1405
+ <show_in_store>1</show_in_store>
1406
+ </fsAxZmThumbSliderParam>
1407
+ <fsSliderPosition>
1408
+ <label>fsSliderPosition</label>
1409
+ <comment><![CDATA[Position of the fullscreen thumbnail slider.
1410
+ Possible values are:
1411
+ "top", "right", "bottom", "left" and any combination between those separated with dash,
1412
+ e.g. "right-bottom". Positions with dash mean that the second after dash
1413
+ is the alternative position which could be switched instantly depending on the logic
1414
+ described in "fsSliderPositionSwitch" option.]]></comment>
1415
+ <frontend_type>select</frontend_type>
1416
+ <source_model>axzoom/azsettings::fsSliderPosition</source_model>
1417
+ <sort_order>20</sort_order>
1418
+ <show_in_default>1</show_in_default>
1419
+ <show_in_website>1</show_in_website>
1420
+ <show_in_store>1</show_in_store>
1421
+ </fsSliderPosition>
1422
+ <fsSliderReposition>
1423
+ <label>fsSliderReposition</label>
1424
+ <comment><![CDATA[In case sliders position collude, the alternative position.
1425
+ Possible values: "left-bottom", "left-top", "right-bottom", "right-top", "opposite".]]></comment>
1426
+ <frontend_type>select</frontend_type>
1427
+ <source_model>axzoom/azsettings::fsSliderReposition</source_model>
1428
+ <sort_order>30</sort_order>
1429
+ <show_in_default>1</show_in_default>
1430
+ <show_in_website>1</show_in_website>
1431
+ <show_in_store>1</show_in_store>
1432
+ </fsSliderReposition>
1433
+ <fsSliderPositionSwitch>
1434
+ <label>fsSliderPositionSwitch</label>
1435
+ <comment><![CDATA[Switch fsSliderPosition instantly depending on certain conditions.
1436
+ This switch is only applied when fsSliderPosition value is
1437
+ "top-left", "top-right", "bottom-left" or "bottom-right".
1438
+ Possible values are "auto" or integer;
1439
+ When "auto" is enabled an alternative position will be chosen depending
1440
+ on screen being in portrait or landscape mode. If value of
1441
+ fsSliderPositionSwitch is integer, alternative position will be
1442
+ only chosen if screen width (or height - depending on first value
1443
+ of fsSliderPosition before dash) is less than fsSliderPositionSwitch value.]]></comment>
1444
+ <frontend_type>text</frontend_type>
1445
+ <sort_order>40</sort_order>
1446
+ <show_in_default>1</show_in_default>
1447
+ <show_in_website>1</show_in_website>
1448
+ <show_in_store>1</show_in_store>
1449
+ </fsSliderPositionSwitch>
1450
+ <fsSliderDimension>
1451
+ <label>fsSliderDimension</label>
1452
+ <comment><![CDATA[Width or height of the container for fullscreen slider
1453
+ (depends on if it is vertical or horizontal).]]></comment>
1454
+ <frontend_type>text</frontend_type>
1455
+ <sort_order>50</sort_order>
1456
+ <show_in_default>1</show_in_default>
1457
+ <show_in_website>1</show_in_website>
1458
+ <show_in_store>1</show_in_store>
1459
+ </fsSliderDimension>
1460
+ <fsSliderThumbAutoSize>
1461
+ <label>fsSliderThumbAutoSize</label>
1462
+ <comment><![CDATA[Adjust fsSliderDimension depending on
1463
+ fsAxZmThumbSliderParam instantly (to be improved).]]></comment>
1464
+ <frontend_type>select</frontend_type>
1465
+ <source_model>axzoom/azsettings::yesno</source_model>
1466
+ <sort_order>60</sort_order>
1467
+ <show_in_default>1</show_in_default>
1468
+ <show_in_website>1</show_in_website>
1469
+ <show_in_store>1</show_in_store>
1470
+ </fsSliderThumbAutoSize>
1471
+ <fsSliderThumbAutoMargin>
1472
+ <label>fsSliderThumbAutoMargin</label>
1473
+ <comment><![CDATA[Thumbnails margin when fsSliderThumbAutoSize is enabled.]]></comment>
1474
+ <frontend_type>text</frontend_type>
1475
+ <sort_order>70</sort_order>
1476
+ <show_in_default>1</show_in_default>
1477
+ <show_in_website>1</show_in_website>
1478
+ <show_in_store>1</show_in_store>
1479
+ </fsSliderThumbAutoMargin>
1480
+ <fsSliderThumbAutoExtend>
1481
+ <label>fsSliderThumbAutoExtend</label>
1482
+ <comment><![CDATA[Extend slider width / height by this pixel value when set instantly.]]></comment>
1483
+ <frontend_type>text</frontend_type>
1484
+ <sort_order>80</sort_order>
1485
+ <show_in_default>1</show_in_default>
1486
+ <show_in_website>1</show_in_website>
1487
+ <show_in_store>1</show_in_store>
1488
+ </fsSliderThumbAutoExtend>
1489
+ <fsSliderThumbDescr>
1490
+ <label>fsSliderThumbDescr</label>
1491
+ <comment><![CDATA[Dummy for future implementation (todo).]]></comment>
1492
+ <frontend_type>select</frontend_type>
1493
+ <source_model>axzoom/azsettings::yesno</source_model>
1494
+ <sort_order>90</sort_order>
1495
+ <show_in_default>1</show_in_default>
1496
+ <show_in_website>1</show_in_website>
1497
+ <show_in_store>1</show_in_store>
1498
+ </fsSliderThumbDescr>
1499
+ <fsSliderMinSize>
1500
+ <label>fsSliderMinSize</label>
1501
+ <comment><![CDATA[Minimal size of the player for fullscreen gallery to be shown.]]></comment>
1502
+ <frontend_type>text</frontend_type>
1503
+ <sort_order>100</sort_order>
1504
+ <show_in_default>1</show_in_default>
1505
+ <show_in_website>1</show_in_website>
1506
+ <show_in_store>1</show_in_store>
1507
+ </fsSliderMinSize>
1508
+ <fsSliderGalleryFadeInAnm>
1509
+ <label>fsSliderGalleryFadeInAnm</label>
1510
+ <comment><![CDATA[Switching animation between images in fullscreen mode.
1511
+ Possible values: "Center", "Top", "Right", "Bottom", "Left",
1512
+ "StretchVert", "StretchHorz", "SwipeHorz", "SwipeVert", "Vert", "Horz".]]></comment>
1513
+ <frontend_type>select</frontend_type>
1514
+ <source_model>axzoom/azsettings::fsSliderGalleryFadeInAnm</source_model>
1515
+ <sort_order>110</sort_order>
1516
+ <show_in_default>1</show_in_default>
1517
+ <show_in_website>1</show_in_website>
1518
+ <show_in_store>1</show_in_store>
1519
+ </fsSliderGalleryFadeInAnm>
1520
+ <fsSliderNotParent>
1521
+ <label>fsSliderNotParent</label>
1522
+ <comment><![CDATA[Prevent showing fullscreen gallery when the parent container
1523
+ matches the id or CSS class represented as string in this option value,
1524
+ e.g. "az_mouseOverZoomContainer".
1525
+ For more than one value split them with vertical dash.]]></comment>
1526
+ <frontend_type>text</frontend_type>
1527
+ <sort_order>120</sort_order>
1528
+ <show_in_default>1</show_in_default>
1529
+ <show_in_website>1</show_in_website>
1530
+ <show_in_store>1</show_in_store>
1531
+ </fsSliderNotParent>
1532
+ <onGallerySwitch>
1533
+ <label>onGallerySwitch</label>
1534
+ <comment><![CDATA[Callback function triggered every time an item is switched.
1535
+ The function receives 4 argumets: index of the item, item information as object,
1536
+ mouseover instance and gallery instance.
1537
+ In AJAX-ZOOM modules avoid writing the actual functions, instead pass a reference,
1538
+ e.g. window.myCustomFunc]]></comment>
1539
+ <frontend_type>text</frontend_type>
1540
+ <sort_order>130</sort_order>
1541
+ <show_in_default>1</show_in_default>
1542
+ <show_in_website>1</show_in_website>
1543
+ <show_in_store>1</show_in_store>
1544
+ </onGallerySwitch>
1545
+ </fields>
1546
+ </fullscreen_gallery>
1547
+ <mouseover translate="label">
1548
+ <label>Specific options for the mouseover zoom</label>
1549
+ <frontend_type>text</frontend_type>
1550
+ <sort_order>80</sort_order>
1551
+ <show_in_default>1</show_in_default>
1552
+ <show_in_website>1</show_in_website>
1553
+ <show_in_store>1</show_in_store>
1554
+ <fields>
1555
+ <position>
1556
+ <label><![CDATA[<div class="notice-msg importantAZoption">position</div>]]></label>
1557
+ <comment><![CDATA[Position of the flyout zoom window, possible values:
1558
+ "inside", "top", "right", "bottom", "left".]]></comment>
1559
+ <frontend_type>select</frontend_type>
1560
+ <source_model>axzoom/azsettings::position</source_model>
1561
+ <sort_order>10</sort_order>
1562
+ <show_in_default>1</show_in_default>
1563
+ <show_in_website>1</show_in_website>
1564
+ <show_in_store>1</show_in_store>
1565
+ </position>
1566
+ <posAutoInside>
1567
+ <label>posAutoInside</label>
1568
+ <comment><![CDATA[Applies when width (left, right) or height (top, bottom)
1569
+ of zoom window are less than this px value
1570
+ (zoomWidth || zoomHeight are set to auto);
1571
+ if zoomWidth || zoomHeight are fixed,
1572
+ applies when zoom window is out of page border.]]></comment>
1573
+ <frontend_type>text</frontend_type>
1574
+ <sort_order>20</sort_order>
1575
+ <show_in_default>1</show_in_default>
1576
+ <show_in_website>1</show_in_website>
1577
+ <show_in_store>1</show_in_store>
1578
+ </posAutoInside>
1579
+ <touchScroll>
1580
+ <label>touchScroll</label>
1581
+ <comment><![CDATA[If width of the mouseover zoom container is more than 80% (0.8) of the window width,
1582
+ then for touch devises the inner zoom will be not
1583
+ triggered and the user can scroll down.
1584
+ Click for open AJAX-ZOOM remains.
1585
+ Set this value to 0 if you want to enable the slider for touch devices only.]]></comment>
1586
+ <frontend_type>text</frontend_type>
1587
+ <sort_order>30</sort_order>
1588
+ <show_in_default>1</show_in_default>
1589
+ <show_in_website>1</show_in_website>
1590
+ <show_in_store>1</show_in_store>
1591
+ </touchScroll>
1592
+ <noMouseOverZoom>
1593
+ <label>noMouseOverZoom</label>
1594
+ <comment><![CDATA[Disable mouseover zoom for all devices.]]></comment>
1595
+ <frontend_type>select</frontend_type>
1596
+ <source_model>axzoom/azsettings::yesno</source_model>
1597
+ <sort_order>40</sort_order>
1598
+ <show_in_default>1</show_in_default>
1599
+ <show_in_website>1</show_in_website>
1600
+ <show_in_store>1</show_in_store>
1601
+ </noMouseOverZoom>
1602
+ <noMouseOverZoomTouch>
1603
+ <label>noMouseOverZoomTouch</label>
1604
+ <comment><![CDATA[Enable "noMouseOverZoom" only for touch devices
1605
+ (mouseover zoom works for touch devices too but is not very convenient
1606
+ so this option is enabled on default now).]]></comment>
1607
+ <frontend_type>select</frontend_type>
1608
+ <source_model>axzoom/azsettings::yesno</source_model>
1609
+ <sort_order>50</sort_order>
1610
+ <show_in_default>1</show_in_default>
1611
+ <show_in_website>1</show_in_website>
1612
+ <show_in_store>1</show_in_store>
1613
+ </noMouseOverZoomTouch>
1614
+ <noMouseOverZoomInside>
1615
+ <label>noMouseOverZoomInside</label>
1616
+ <comment><![CDATA[Disable mouseover zoom if it is 'inside' (inner zoom).]]></comment>
1617
+ <frontend_type>select</frontend_type>
1618
+ <source_model>axzoom/azsettings::yesno</source_model>
1619
+ <sort_order>60</sort_order>
1620
+ <show_in_default>1</show_in_default>
1621
+ <show_in_website>1</show_in_website>
1622
+ <show_in_store>1</show_in_store>
1623
+ </noMouseOverZoomInside>
1624
+ <noMouseOverZoomInsideTouch>
1625
+ <label>noMouseOverZoomInsideTouch</label>
1626
+ <comment><![CDATA[Disable mouseover zoom if it is inside (inner zoom) and touch event.]]></comment>
1627
+ <frontend_type>select</frontend_type>
1628
+ <source_model>axzoom/azsettings::yesno</source_model>
1629
+ <sort_order>70</sort_order>
1630
+ <show_in_default>1</show_in_default>
1631
+ <show_in_website>1</show_in_website>
1632
+ <show_in_store>1</show_in_store>
1633
+ </noMouseOverZoomInsideTouch>
1634
+ <mouseOverZoomHybrid>
1635
+ <label><![CDATA[<div class="notice-msg importantAZoption">mouseOverZoomHybrid</div>]]></label>
1636
+ <comment><![CDATA[Enable mouseover zoom and slider at the same time for not touch devices.]]></comment>
1637
+ <frontend_type>select</frontend_type>
1638
+ <source_model>axzoom/azsettings::yesno</source_model>
1639
+ <sort_order>80</sort_order>
1640
+ <show_in_default>1</show_in_default>
1641
+ <show_in_website>1</show_in_website>
1642
+ <show_in_store>1</show_in_store>
1643
+ </mouseOverZoomHybrid>
1644
+ <slideTouchTime>
1645
+ <label>slideTouchTime</label>
1646
+ <comment><![CDATA[Slide time in ms after touch and drag.]]></comment>
1647
+ <frontend_type>text</frontend_type>
1648
+ <sort_order>90</sort_order>
1649
+ <show_in_default>1</show_in_default>
1650
+ <show_in_website>1</show_in_website>
1651
+ <show_in_store>1</show_in_store>
1652
+ </slideTouchTime>
1653
+ <slideTime>
1654
+ <label>slideTime</label>
1655
+ <comment><![CDATA[Slide time after clicked on prev / next buttons.]]></comment>
1656
+ <frontend_type>text</frontend_type>
1657
+ <sort_order>100</sort_order>
1658
+ <show_in_default>1</show_in_default>
1659
+ <show_in_website>1</show_in_website>
1660
+ <show_in_store>1</show_in_store>
1661
+ </slideTime>
1662
+ <posInsideArea>
1663
+ <label>posInsideArea</label>
1664
+ <comment><![CDATA[When "posAutoInside" is enabled and inner zoom fires or "position"
1665
+ option is set to 'inside' right away - there is no lens.
1666
+ However you will notice that the reaction to mouse movements occure somewhere
1667
+ in the middle of the image;
1668
+ at the edges mostly nothing happens in similar scripts.
1669
+ With this option you can adjust how far from
1670
+ the edge mouse movements should be captured.
1671
+ The range is between 0 and 0.5;]]></comment>
1672
+ <frontend_type>text</frontend_type>
1673
+ <sort_order>110</sort_order>
1674
+ <show_in_default>1</show_in_default>
1675
+ <show_in_website>1</show_in_website>
1676
+ <show_in_store>1</show_in_store>
1677
+ </posInsideArea>
1678
+ <autoFlip>
1679
+ <label>autoFlip</label>
1680
+ <comment><![CDATA[Flip right to left and bottom to top if less than int px value or false to disable.]]></comment>
1681
+ <frontend_type>text</frontend_type>
1682
+ <sort_order>120</sort_order>
1683
+ <show_in_default>1</show_in_default>
1684
+ <show_in_website>1</show_in_website>
1685
+ <show_in_store>1</show_in_store>
1686
+ </autoFlip>
1687
+ <biggestSpace>
1688
+ <label>biggestSpace</label>
1689
+ <comment><![CDATA[Overrides position option and instantly chooses the direction,
1690
+ disables autoFlip; plays nicely when zoomWidth and zoomHeight are set to 'auto'.]]></comment>
1691
+ <frontend_type>select</frontend_type>
1692
+ <source_model>axzoom/azsettings::yesno</source_model>
1693
+ <sort_order>130</sort_order>
1694
+ <show_in_default>1</show_in_default>
1695
+ <show_in_website>1</show_in_website>
1696
+ <show_in_store>1</show_in_store>
1697
+ </biggestSpace>
1698
+ <zoomFullSpace>
1699
+ <label>zoomFullSpace</label>
1700
+ <comment><![CDATA[Uses full screen height (does not align to the map / disables adjustY)
1701
+ if position is right or left || uses full screen width
1702
+ (does not align to the map / disables adjustX)
1703
+ if position is top or bottom.]]></comment>
1704
+ <frontend_type>select</frontend_type>
1705
+ <source_model>axzoom/azsettings::yesno</source_model>
1706
+ <sort_order>140</sort_order>
1707
+ <show_in_default>1</show_in_default>
1708
+ <show_in_website>1</show_in_website>
1709
+ <show_in_store>1</show_in_store>
1710
+ </zoomFullSpace>
1711
+ <zoomWidth>
1712
+ <label><![CDATA[<div class="notice-msg importantAZoption">zoomWidth</div>]]></label>
1713
+ <comment><![CDATA[Width of the zoom window e.g. 540 or 'auto' or
1714
+ jQuery selector|correction value, e.g. '#refWidthTest|+20';
1715
+ so if you want to have a width of the zoom window same as
1716
+ for example a responsive container
1717
+ to the right (so it is fully covered) and max possible height,
1718
+ then define the id of this container to the right,
1719
+ e.g. 'myArticleData', set "zoomWidth"
1720
+ to '#myArticleData|+10' and "zoomHeight" to 'auto'.
1721
+ If you have a three column design and want to cover both containers to the right,
1722
+ then just define both containers in the jQuery selector,
1723
+ e.g. '.pb-center-column,.pb-right-column|+20';
1724
+ the margin between the containers is not taken into account
1725
+ but you can adjust the result with the second value after vertical bar.]]></comment>
1726
+ <frontend_type>text</frontend_type>
1727
+ <sort_order>150</sort_order>
1728
+ <show_in_default>1</show_in_default>
1729
+ <show_in_website>1</show_in_website>
1730
+ <show_in_store>1</show_in_store>
1731
+ </zoomWidth>
1732
+ <zoomHeight>
1733
+ <label><![CDATA[<div class="notice-msg importantAZoption">zoomHeight</div>]]></label>
1734
+ <comment><![CDATA[Height of the zoom window e.g. 375, or 'auto' or jQuery selector|correction value,
1735
+ e.g. '#refWidthTest|+20'; if your selector matches more than one element,
1736
+ e.g. '.pb-center-column,.pb-right-column|+20', then
1737
+ the highest value will be chosen. This is different from
1738
+ the multiple selector in "zoomWidth", where the values are added.]]></comment>
1739
+ <frontend_type>text</frontend_type>
1740
+ <sort_order>160</sort_order>
1741
+ <show_in_default>1</show_in_default>
1742
+ <show_in_website>1</show_in_website>
1743
+ <show_in_store>1</show_in_store>
1744
+ </zoomHeight>
1745
+ <autoMargin>
1746
+ <label>autoMargin</label>
1747
+ <comment><![CDATA[If zoomWidth or zoomHeight are set to 'auto', the margin to the edge of the screen.]]></comment>
1748
+ <frontend_type>text</frontend_type>
1749
+ <sort_order>170</sort_order>
1750
+ <show_in_default>1</show_in_default>
1751
+ <show_in_website>1</show_in_website>
1752
+ <show_in_store>1</show_in_store>
1753
+ </autoMargin>
1754
+ <adjustX>
1755
+ <label>adjustX</label>
1756
+ <comment><![CDATA[Horizontal margin of the zoom window.]]></comment>
1757
+ <frontend_type>text</frontend_type>
1758
+ <sort_order>180</sort_order>
1759
+ <show_in_default>1</show_in_default>
1760
+ <show_in_website>1</show_in_website>
1761
+ <show_in_store>1</show_in_store>
1762
+ </adjustX>
1763
+ <adjustY>
1764
+ <label>adjustY</label>
1765
+ <comment><![CDATA[Vertical margin of the zoom window.]]></comment>
1766
+ <frontend_type>text</frontend_type>
1767
+ <sort_order>190</sort_order>
1768
+ <show_in_default>1</show_in_default>
1769
+ <show_in_website>1</show_in_website>
1770
+ <show_in_store>1</show_in_store>
1771
+ </adjustY>
1772
+ <lensOpacity>
1773
+ <label>lensOpacity</label>
1774
+ <comment><![CDATA[Opacity of the selector lens.]]></comment>
1775
+ <frontend_type>text</frontend_type>
1776
+ <sort_order>200</sort_order>
1777
+ <show_in_default>1</show_in_default>
1778
+ <show_in_website>1</show_in_website>
1779
+ <show_in_store>1</show_in_store>
1780
+ </lensOpacity>
1781
+ <lensStyle>
1782
+ <label>lensStyle</label>
1783
+ <comment><![CDATA[Quickly override CSS of the lens.]]></comment>
1784
+ <frontend_type>textarea</frontend_type>
1785
+ <sort_order>210</sort_order>
1786
+ <show_in_default>1</show_in_default>
1787
+ <show_in_website>1</show_in_website>
1788
+ <show_in_store>1</show_in_store>
1789
+ </lensStyle>
1790
+ <lensClass>
1791
+ <label>lensClass</label>
1792
+ <comment><![CDATA[Define CSS class for the lens.]]></comment>
1793
+ <frontend_type>text</frontend_type>
1794
+ <sort_order>220</sort_order>
1795
+ <show_in_default>1</show_in_default>
1796
+ <show_in_website>1</show_in_website>
1797
+ <show_in_store>1</show_in_store>
1798
+ </lensClass>
1799
+ <lensMessage>
1800
+ <label>lensMessage</label>
1801
+ <comment><![CDATA[
1802
+ <div class="validation-advice">Attention: you are editing JavaScript object!
1803
+ Errors will lead to AJAX-ZOOM not working properly.</div>
1804
+ Text string on the lens.
1805
+ For more than one language define a js object,
1806
+ e.g. {"en": "english text", "de": "german text"}
1807
+ ]]></comment>
1808
+ <frontend_type>textarea</frontend_type>
1809
+ <sort_order>230</sort_order>
1810
+ <show_in_default>1</show_in_default>
1811
+ <show_in_website>1</show_in_website>
1812
+ <show_in_store>1</show_in_store>
1813
+ </lensMessage>
1814
+ <zoomAreaBorderWidth>
1815
+ <label>zoomAreaBorderWidth</label>
1816
+ <comment><![CDATA[Border thickness of the zoom window.]]></comment>
1817
+ <frontend_type>text</frontend_type>
1818
+ <sort_order>240</sort_order>
1819
+ <show_in_default>1</show_in_default>
1820
+ <show_in_website>1</show_in_website>
1821
+ <show_in_store>1</show_in_store>
1822
+ </zoomAreaBorderWidth>
1823
+ <galleryFade>
1824
+ <label>galleryFade</label>
1825
+ <comment><![CDATA[Speed of inner fade or false.]]></comment>
1826
+ <frontend_type>text</frontend_type>
1827
+ <sort_order>250</sort_order>
1828
+ <show_in_default>1</show_in_default>
1829
+ <show_in_website>1</show_in_website>
1830
+ <show_in_store>1</show_in_store>
1831
+ </galleryFade>
1832
+ <shutterSpeed>
1833
+ <label>shutterSpeed</label>
1834
+ <comment><![CDATA[Speed of shutter fadein or false; applies only
1835
+ if image proportions are different from container.]]></comment>
1836
+ <frontend_type>text</frontend_type>
1837
+ <sort_order>260</sort_order>
1838
+ <show_in_default>1</show_in_default>
1839
+ <show_in_website>1</show_in_website>
1840
+ <show_in_store>1</show_in_store>
1841
+ </shutterSpeed>
1842
+ <showFade>
1843
+ <label>showFade</label>
1844
+ <comment><![CDATA[Speed of fade in for mouse over.]]></comment>
1845
+ <frontend_type>text</frontend_type>
1846
+ <sort_order>270</sort_order>
1847
+ <show_in_default>1</show_in_default>
1848
+ <show_in_website>1</show_in_website>
1849
+ <show_in_store>1</show_in_store>
1850
+ </showFade>
1851
+ <hideFade>
1852
+ <label>hideFade</label>
1853
+ <comment><![CDATA[Speed of fade out for mouse over.]]></comment>
1854
+ <frontend_type>text</frontend_type>
1855
+ <sort_order>280</sort_order>
1856
+ <show_in_default>1</show_in_default>
1857
+ <show_in_website>1</show_in_website>
1858
+ <show_in_store>1</show_in_store>
1859
+ </hideFade>
1860
+ <flyOutSpeed>
1861
+ <label>flyOutSpeed</label>
1862
+ <comment><![CDATA[Speed for flyout or false to disable.]]></comment>
1863
+ <frontend_type>text</frontend_type>
1864
+ <sort_order>290</sort_order>
1865
+ <show_in_default>1</show_in_default>
1866
+ <show_in_website>1</show_in_website>
1867
+ <show_in_store>1</show_in_store>
1868
+ </flyOutSpeed>
1869
+ <flyOutTransition>
1870
+ <label>flyOutTransition</label>
1871
+ <comment><![CDATA[Transition of the flyout.]]></comment>
1872
+ <frontend_type>text</frontend_type>
1873
+ <sort_order>300</sort_order>
1874
+ <show_in_default>1</show_in_default>
1875
+ <show_in_website>1</show_in_website>
1876
+ <show_in_store>1</show_in_store>
1877
+ </flyOutTransition>
1878
+ <flyOutOpacity>
1879
+ <label>flyOutOpacity</label>
1880
+ <comment><![CDATA[Initial opacity for flyout.]]></comment>
1881
+ <frontend_type>text</frontend_type>
1882
+ <sort_order>310</sort_order>
1883
+ <show_in_default>1</show_in_default>
1884
+ <show_in_website>1</show_in_website>
1885
+ <show_in_store>1</show_in_store>
1886
+ </flyOutOpacity>
1887
+ <flyBackSpeed>
1888
+ <label>flyBackSpeed</label>
1889
+ <comment><![CDATA[Speed for fly back or false to disable.]]></comment>
1890
+ <frontend_type>text</frontend_type>
1891
+ <sort_order>320</sort_order>
1892
+ <show_in_default>1</show_in_default>
1893
+ <show_in_website>1</show_in_website>
1894
+ <show_in_store>1</show_in_store>
1895
+ </flyBackSpeed>
1896
+ <flyBackTransition>
1897
+ <label>flyBackTransition</label>
1898
+ <comment><![CDATA[Transition type of the fly back.]]></comment>
1899
+ <frontend_type>text</frontend_type>
1900
+ <sort_order>330</sort_order>
1901
+ <show_in_default>1</show_in_default>
1902
+ <show_in_website>1</show_in_website>
1903
+ <show_in_store>1</show_in_store>
1904
+ </flyBackTransition>
1905
+ <flyBackOpacity>
1906
+ <label>flyBackOpacity</label>
1907
+ <comment><![CDATA[Final opacity of fly back.]]></comment>
1908
+ <frontend_type>text</frontend_type>
1909
+ <sort_order>340</sort_order>
1910
+ <show_in_default>1</show_in_default>
1911
+ <show_in_website>1</show_in_website>
1912
+ <show_in_store>1</show_in_store>
1913
+ </flyBackOpacity>
1914
+ <autoScroll>
1915
+ <label>autoScroll</label>
1916
+ <comment><![CDATA[Scroll page when clicked on the thumb and the mouse over preview image
1917
+ is not fully visible.]]></comment>
1918
+ <frontend_type>select</frontend_type>
1919
+ <source_model>axzoom/azsettings::yesno</source_model>
1920
+ <sort_order>350</sort_order>
1921
+ <show_in_default>1</show_in_default>
1922
+ <show_in_website>1</show_in_website>
1923
+ <show_in_store>1</show_in_store>
1924
+ </autoScroll>
1925
+ <smoothMove>
1926
+ <label>smoothMove</label>
1927
+ <comment><![CDATA[Integer bigger than 1 indicates smoother movements. Set 0 to disable.]]></comment>
1928
+ <frontend_type>text</frontend_type>
1929
+ <sort_order>360</sort_order>
1930
+ <show_in_default>1</show_in_default>
1931
+ <show_in_website>1</show_in_website>
1932
+ <show_in_store>1</show_in_store>
1933
+ </smoothMove>
1934
+ <tint>
1935
+ <label>tint</label>
1936
+ <comment><![CDATA[Color value around the lens or false.]]></comment>
1937
+ <frontend_type>text</frontend_type>
1938
+ <sort_order>370</sort_order>
1939
+ <show_in_default>1</show_in_default>
1940
+ <show_in_website>1</show_in_website>
1941
+ <show_in_store>1</show_in_store>
1942
+ </tint>
1943
+ <tintOpacity>
1944
+ <label>tintOpacity</label>
1945
+ <comment><![CDATA[Opacity of the area around the lens when "tint" option is set to some color value.]]></comment>
1946
+ <frontend_type>text</frontend_type>
1947
+ <sort_order>380</sort_order>
1948
+ <show_in_default>1</show_in_default>
1949
+ <show_in_website>1</show_in_website>
1950
+ <show_in_store>1</show_in_store>
1951
+ </tintOpacity>
1952
+ <tintFilter>
1953
+ <label>tintFilter</label>
1954
+ <comment><![CDATA[Apply filter to the image,
1955
+ e.g. "blur", "grayscale", "sepia", "lighten", "darken", "invert", "saturate";
1956
+ see also .axZm_mouseOverEffect>img CSS.]]></comment>
1957
+ <frontend_type>text</frontend_type>
1958
+ <sort_order>390</sort_order>
1959
+ <show_in_default>1</show_in_default>
1960
+ <show_in_website>1</show_in_website>
1961
+ <show_in_store>1</show_in_store>
1962
+ </tintFilter>
1963
+ <tintFilterBack>
1964
+ <label>tintFilterBack</label>
1965
+ <comment><![CDATA[Background-color if some "tintFilter" is enabled, e.g. #FFF]]></comment>
1966
+ <frontend_type>text</frontend_type>
1967
+ <sort_order>400</sort_order>
1968
+ <show_in_default>1</show_in_default>
1969
+ <show_in_website>1</show_in_website>
1970
+ <show_in_store>1</show_in_store>
1971
+ </tintFilterBack>
1972
+ <tintLensBack>
1973
+ <label>tintLensBack</label>
1974
+ <comment><![CDATA[Show background image in the lens.]]></comment>
1975
+ <frontend_type>select</frontend_type>
1976
+ <source_model>axzoom/azsettings::yesno</source_model>
1977
+ <sort_order>410</sort_order>
1978
+ <show_in_default>1</show_in_default>
1979
+ <show_in_website>1</show_in_website>
1980
+ <show_in_store>1</show_in_store>
1981
+ </tintLensBack>
1982
+ <showTitle>
1983
+ <label>showTitle</label>
1984
+ <comment><![CDATA[Enable / disable title on zoom window]]></comment>
1985
+ <frontend_type>select</frontend_type>
1986
+ <source_model>axzoom/azsettings::yesno</source_model>
1987
+ <sort_order>420</sort_order>
1988
+ <show_in_default>1</show_in_default>
1989
+ <show_in_website>1</show_in_website>
1990
+ <show_in_store>1</show_in_store>
1991
+ </showTitle>
1992
+ <titlePosition>
1993
+ <label>titlePosition</label>
1994
+ <comment><![CDATA[Position of the title, possible values are: 'top', 'bottom' or 'above'.]]></comment>
1995
+ <frontend_type>select</frontend_type>
1996
+ <source_model>axzoom/azsettings::titlePosition</source_model>
1997
+ <sort_order>430</sort_order>
1998
+ <show_in_default>1</show_in_default>
1999
+ <show_in_website>1</show_in_website>
2000
+ <show_in_store>1</show_in_store>
2001
+ </titlePosition>
2002
+ <titleParentContainer>
2003
+ <label>titleParentContainer</label>
2004
+ <comment><![CDATA[jQuery selector, e.g. #abc_title,
2005
+ as parent container for title other than inside the lense,
2006
+ can be anywhere.]]></comment>
2007
+ <frontend_type>text</frontend_type>
2008
+ <sort_order>440</sort_order>
2009
+ <show_in_default>1</show_in_default>
2010
+ <show_in_website>1</show_in_website>
2011
+ <show_in_store>1</show_in_store>
2012
+ </titleParentContainer>
2013
+ <titlePermanent>
2014
+ <label>titlePermanent</label>
2015
+ <comment><![CDATA[When "titleParentContainer" is defined, title (text) will be set after loading /
2016
+ switch of the image.]]></comment>
2017
+ <frontend_type>select</frontend_type>
2018
+ <source_model>axzoom/azsettings::yesno</source_model>
2019
+ <sort_order>450</sort_order>
2020
+ <show_in_default>1</show_in_default>
2021
+ <show_in_website>1</show_in_website>
2022
+ <show_in_store>1</show_in_store>
2023
+ </titlePermanent>
2024
+ <cursorPositionX>
2025
+ <label>cursorPositionX</label>
2026
+ <comment><![CDATA[Cursor over lens horizontal offset, 0.5 is middle]]></comment>
2027
+ <frontend_type>text</frontend_type>
2028
+ <sort_order>460</sort_order>
2029
+ <show_in_default>1</show_in_default>
2030
+ <show_in_website>1</show_in_website>
2031
+ <show_in_store>1</show_in_store>
2032
+ </cursorPositionX>
2033
+ <cursorPositionY>
2034
+ <label>cursorPositionY</label>
2035
+ <comment><![CDATA[Cursor over lens vertical offset, 0.5 is middle.]]></comment>
2036
+ <frontend_type>text</frontend_type>
2037
+ <sort_order>470</sort_order>
2038
+ <show_in_default>1</show_in_default>
2039
+ <show_in_website>1</show_in_website>
2040
+ <show_in_store>1</show_in_store>
2041
+ </cursorPositionY>
2042
+ <loading>
2043
+ <label>loading</label>
2044
+ <comment><![CDATA[Display loading information, CSS class: .mouseOverLoading;
2045
+ See also "spinner" option.]]></comment>
2046
+ <frontend_type>select</frontend_type>
2047
+ <source_model>axzoom/azsettings::yesno</source_model>
2048
+ <sort_order>480</sort_order>
2049
+ <show_in_default>1</show_in_default>
2050
+ <show_in_website>1</show_in_website>
2051
+ <show_in_store>1</show_in_store>
2052
+ </loading>
2053
+ <loadingMessage>
2054
+ <label>loadingMessage</label>
2055
+ <comment><![CDATA[
2056
+ <div class="validation-advice">Attention: you are editing JavaScript object!
2057
+ Errors will lead to AJAX-ZOOM not working properly.</div>
2058
+ Loading message, not needed, can be just the "spinner" - see below.
2059
+ ]]></comment>
2060
+ <frontend_type>textarea</frontend_type>
2061
+ <sort_order>490</sort_order>
2062
+ <show_in_default>1</show_in_default>
2063
+ <show_in_website>1</show_in_website>
2064
+ <show_in_store>1</show_in_store>
2065
+ </loadingMessage>
2066
+ <zoomHintEnable>
2067
+ <label>zoomHintEnable</label>
2068
+ <comment><![CDATA[Enable zoom icon which disappears on mouse hover;
2069
+ CSS class: .axZm_mouseOverZoomHint;
2070
+ if you want to change the position or the icon simply modify the CSS class;]]></comment>
2071
+ <frontend_type>select</frontend_type>
2072
+ <source_model>axzoom/azsettings::yesno</source_model>
2073
+ <sort_order>500</sort_order>
2074
+ <show_in_default>1</show_in_default>
2075
+ <show_in_website>1</show_in_website>
2076
+ <show_in_store>1</show_in_store>
2077
+ </zoomHintEnable>
2078
+ <zoomHintText>
2079
+ <label>zoomHintText</label>
2080
+ <comment><![CDATA[
2081
+ <div class="validation-advice">Attention: you are editing JavaScript object!
2082
+ Errors will lead to AJAX-ZOOM not working properly.</div>
2083
+ Text which will be appended next to the icon enabled by "zoomHintEnable".
2084
+ For more than one language define a js object,
2085
+ e.g. {"en": "english text", "de": "german text"}
2086
+ ]]></comment>
2087
+ <frontend_type>textarea</frontend_type>
2088
+ <sort_order>510</sort_order>
2089
+ <show_in_default>1</show_in_default>
2090
+ <show_in_website>1</show_in_website>
2091
+ <show_in_store>1</show_in_store>
2092
+ </zoomHintText>
2093
+ <zoomMsgHover>
2094
+ <label>zoomMsgHover</label>
2095
+ <comment><![CDATA[Message which can appear under the mouse over zoom, CSS class: .axZm_mouseOverZoomMsg;
2096
+ For more than one language define a js object,
2097
+ e.g. {"en": "english text", "de": "german text"}]]></comment>
2098
+ <frontend_type>textarea</frontend_type>
2099
+ <sort_order>520</sort_order>
2100
+ <show_in_default>1</show_in_default>
2101
+ <show_in_website>1</show_in_website>
2102
+ <show_in_store>1</show_in_store>
2103
+ </zoomMsgHover>
2104
+ <zoomMsgHoverTouch>
2105
+ <label>zoomMsgHoverTouch</label>
2106
+ <comment><![CDATA[Message which can appear under the mouse over zoom for touch devices,
2107
+ CSS class: .axZm_mouseOverZoomMsg;
2108
+ For more than one language define a js object,
2109
+ e.g. {"en": "english text", "de": "german text"}]]></comment>
2110
+ <frontend_type>textarea</frontend_type>
2111
+ <sort_order>530</sort_order>
2112
+ <show_in_default>1</show_in_default>
2113
+ <show_in_website>1</show_in_website>
2114
+ <show_in_store>1</show_in_store>
2115
+ </zoomMsgHoverTouch>
2116
+ <zoomMsgClick>
2117
+ <label>zoomMsgClick</label>
2118
+ <comment><![CDATA[Message which can appear under the mouse over zoom when the mouse enters it,
2119
+ CSS class: .axZm_mouseOverZoomMsg;
2120
+ For more than one language define a js object,
2121
+ e.g. {"en": "english text", "de": "german text"}]]></comment>
2122
+ <frontend_type>textarea</frontend_type>
2123
+ <sort_order>540</sort_order>
2124
+ <show_in_default>1</show_in_default>
2125
+ <show_in_website>1</show_in_website>
2126
+ <show_in_store>1</show_in_store>
2127
+ </zoomMsgClick>
2128
+ <slideInTime>
2129
+ <label>slideInTime</label>
2130
+ <comment><![CDATA[Slide in time if "noMouseOverZoom" is enabled
2131
+ or "touchScroll" option enables for touch devices.]]></comment>
2132
+ <frontend_type>text</frontend_type>
2133
+ <sort_order>550</sort_order>
2134
+ <show_in_default>1</show_in_default>
2135
+ <show_in_website>1</show_in_website>
2136
+ <show_in_store>1</show_in_store>
2137
+ </slideInTime>
2138
+ <slideInEasingCSS3>
2139
+ <label>slideInEasingCSS3</label>
2140
+ <comment><![CDATA[jQuery equivalent of easing or own function (string),
2141
+ e.g. "cubic-bezier(0.21,0.51,0.4,2.02)", see also cubic-bezier.com]]></comment>
2142
+ <frontend_type>text</frontend_type>
2143
+ <sort_order>560</sort_order>
2144
+ <show_in_default>1</show_in_default>
2145
+ <show_in_website>1</show_in_website>
2146
+ <show_in_store>1</show_in_store>
2147
+ </slideInEasingCSS3>
2148
+ <slideInEasing>
2149
+ <label>slideInEasing</label>
2150
+ <comment><![CDATA[jQuery easing function for sliding in (fallback if CSS3 animation is not supported).]]></comment>
2151
+ <frontend_type>text</frontend_type>
2152
+ <sort_order>570</sort_order>
2153
+ <show_in_default>1</show_in_default>
2154
+ <show_in_website>1</show_in_website>
2155
+ <show_in_store>1</show_in_store>
2156
+ </slideInEasing>
2157
+ <slideInScale>
2158
+ <label>slideInScale</label>
2159
+ <comment><![CDATA[Scale initial size (goes eventually to 1.0 while animation).]]></comment>
2160
+ <frontend_type>text</frontend_type>
2161
+ <sort_order>580</sort_order>
2162
+ <show_in_default>1</show_in_default>
2163
+ <show_in_website>1</show_in_website>
2164
+ <show_in_store>1</show_in_store>
2165
+ </slideInScale>
2166
+ <slideOutScale>
2167
+ <label>slideOutScale</label>
2168
+ <comment><![CDATA[Scale slideout size.]]></comment>
2169
+ <frontend_type>text</frontend_type>
2170
+ <sort_order>590</sort_order>
2171
+ <show_in_default>1</show_in_default>
2172
+ <show_in_website>1</show_in_website>
2173
+ <show_in_store>1</show_in_store>
2174
+ </slideOutScale>
2175
+ <slideOutOpacity>
2176
+ <label>slideOutOpacity</label>
2177
+ <comment><![CDATA[Slideout opacity.]]></comment>
2178
+ <frontend_type>text</frontend_type>
2179
+ <sort_order>600</sort_order>
2180
+ <show_in_default>1</show_in_default>
2181
+ <show_in_website>1</show_in_website>
2182
+ <show_in_store>1</show_in_store>
2183
+ </slideOutOpacity>
2184
+ <slideOutDest>
2185
+ <label>slideOutDest</label>
2186
+ <comment><![CDATA[Target slideout position, possible values: 1, 2, 3 or 4;]]></comment>
2187
+ <frontend_type>select</frontend_type>
2188
+ <source_model>axzoom/azsettings::slideOutDest</source_model>
2189
+ <sort_order>610</sort_order>
2190
+ <show_in_default>1</show_in_default>
2191
+ <show_in_website>1</show_in_website>
2192
+ <show_in_store>1</show_in_store>
2193
+ </slideOutDest>
2194
+ <onInit>
2195
+ <label>onInit</label>
2196
+ <comment><![CDATA[Callback JS function or reference ot it.]]></comment>
2197
+ <frontend_type>textarea</frontend_type>
2198
+ <sort_order>620</sort_order>
2199
+ <show_in_default>1</show_in_default>
2200
+ <show_in_website>1</show_in_website>
2201
+ <show_in_store>1</show_in_store>
2202
+ </onInit>
2203
+ <onLoad>
2204
+ <label>onLoad</label>
2205
+ <comment><![CDATA[Callback JS function or reference ot it.]]></comment>
2206
+ <frontend_type>textarea</frontend_type>
2207
+ <sort_order>630</sort_order>
2208
+ <show_in_default>1</show_in_default>
2209
+ <show_in_website>1</show_in_website>
2210
+ <show_in_store>1</show_in_store>
2211
+ </onLoad>
2212
+ <onImageChange>
2213
+ <label>onImageChange</label>
2214
+ <comment><![CDATA[Callback JS function or reference ot it.]]></comment>
2215
+ <frontend_type>textarea</frontend_type>
2216
+ <sort_order>640</sort_order>
2217
+ <show_in_default>1</show_in_default>
2218
+ <show_in_website>1</show_in_website>
2219
+ <show_in_store>1</show_in_store>
2220
+ </onImageChange>
2221
+ <onMouseOver>
2222
+ <label>onMouseOver</label>
2223
+ <comment><![CDATA[Callback JS function or reference ot it.]]></comment>
2224
+ <frontend_type>textarea</frontend_type>
2225
+ <sort_order>650</sort_order>
2226
+ <show_in_default>1</show_in_default>
2227
+ <show_in_website>1</show_in_website>
2228
+ <show_in_store>1</show_in_store>
2229
+ </onMouseOver>
2230
+ <onMouseOut>
2231
+ <label>onMouseOut</label>
2232
+ <comment><![CDATA[Callback JS function or reference ot it.]]></comment>
2233
+ <frontend_type>textarea</frontend_type>
2234
+ <sort_order>660</sort_order>
2235
+ <show_in_default>1</show_in_default>
2236
+ <show_in_website>1</show_in_website>
2237
+ <show_in_store>1</show_in_store>
2238
+ </onMouseOut>
2239
+ <spinner>
2240
+ <label>spinner</label>
2241
+ <comment><![CDATA[Use ajax loading spinner without gif files etc.
2242
+ Set to false to disable.]]></comment>
2243
+ <frontend_type>select</frontend_type>
2244
+ <source_model>axzoom/azsettings::yesno</source_model>
2245
+ <sort_order>670</sort_order>
2246
+ <show_in_default>1</show_in_default>
2247
+ <show_in_website>1</show_in_website>
2248
+ <show_in_store>1</show_in_store>
2249
+ </spinner>
2250
+ <spinnerParam>
2251
+ <label>spinnerParam</label>
2252
+ <comment><![CDATA[Spinner options, for more info see:
2253
+ http://fgnass.github.com/spin.js/]]></comment>
2254
+ <frontend_type>textarea</frontend_type>
2255
+ <sort_order>680</sort_order>
2256
+ <show_in_default>1</show_in_default>
2257
+ <show_in_website>1</show_in_website>
2258
+ <show_in_store>1</show_in_store>
2259
+ </spinnerParam>
2260
+ </fields>
2261
+ </mouseover>
2262
+ </groups>
2263
+
2264
+ </axzoom_options>
2265
+ </sections>
2266
  </config>
app/code/local/Ax/Zoom/sql/axzoom_setup/install-0.0.1.php DELETED
@@ -1,69 +0,0 @@
1
- <?php
2
- /**
3
- * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/sql/axzoom_setup/install-0.0.1.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
- * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-08-22
8
- * Review: 2016-08-22
9
- * URL: http://www.ajax-zoom.com
10
- * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
- *
12
- * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
- * @license http://www.ajax-zoom.com/index.php?cid=download
15
- */
16
-
17
- //die('AJAX ZOOM module setup');
18
- $install_errors = array();
19
- if (!function_exists('ioncube_loader_iversion')) {
20
- array_push($install_errors, 'PHP "Ioncube loader" is not installed on this server. Please install this extension before installing AJAX-ZOOM');
21
- }
22
-
23
- /*
24
- $compiler = Mage::getModel('compiler/process');
25
- if ($compiler->getCollectedFilesCount() > 0){
26
- if (!empty($install_errors)){
27
- array_push($install_errors, 'also please temporary disable compilation mode before installing AJAX-ZOOM and recompile after if needed');
28
- }else{
29
- array_push($install_errors, 'Please temporary disable compilation mode before installing AJAX-ZOOM and recompile after if needed');
30
- }
31
- }
32
- */
33
-
34
- if (!empty($install_errors)){
35
- array_push($install_errors, 'if you encounter any other issues please check troubleshooting section at http://www.ajax-zoom.com/index.php?cid=modules&module=magento and contact AJAX-ZOOM support at http://www.ajax-zoom.com/index.php?cid=contact ');
36
- $all_errors = implode('; ',$install_errors);
37
- throw new Exception($all_errors);
38
- exit;
39
- }else{
40
- $installer = $this;
41
- $installer->startSetup();
42
- $db_prefix = (string)Mage::getConfig()->getTablePrefix();
43
- $installer->run("
44
- CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoom360` (`id_360` int(11) NOT NULL AUTO_INCREMENT, `id_product` int(11) NOT NULL, `name` varchar(255) NOT NULL, `num` int(11) NOT NULL DEFAULT '1', `settings` text NOT NULL, `status` tinyint(1) NOT NULL DEFAULT '0', `combinations` text NOT NULL, `crop` text NOT NULL, `hotspot` text NOT NULL, PRIMARY KEY (`id_360`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
45
- CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoom360set` (`id_360set` int(11) NOT NULL AUTO_INCREMENT, `id_360` int(11) NOT NULL, `sort_order` int(11) NOT NULL, PRIMARY KEY (`id_360set`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
46
- CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoomproducts` (`id_product` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
47
- ");
48
-
49
- $installer->endSetup();
50
-
51
- $io = new Varien_Io_File();
52
- foreach (array('360', 'cache', 'zoomgallery', 'zoommap', 'zoomthumb', 'zoomtiles_80', 'tmp') as $folder) {
53
- $io->checkAndCreateFolder(Mage::getBaseDir() . '/js/axzoom/pic/' . $folder);
54
- }
55
-
56
- // download axZm if not exists
57
- if (!file_exists(Mage::getBaseDir() . '/js/axzoom/axZm') && ini_get('allow_url_fopen') ) {
58
- $remoteFileContents = file_get_contents('http://www.ajax-zoom.com/download.php?ver=latest&module=magento');
59
- $localFilePath = Mage::getBaseDir() . '/js/axzoom/pic/tmp/jquery.ajaxZoom_ver_latest.zip';
60
- if ($remoteFileContents !== false){
61
- file_put_contents($localFilePath, $remoteFileContents);
62
- $zip = new ZipArchive;
63
- $res = $zip->open($localFilePath);
64
- $zip->extractTo(Mage::getBaseDir() . '/js/axzoom/pic/tmp/');
65
- $zip->close();
66
- rename(Mage::getBaseDir() . '/js/axzoom/pic/tmp/axZm', Mage::getBaseDir() . '/js/axzoom/axZm');
67
- }
68
- }
69
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Ax/Zoom/sql/axzoom_setup/install-1.3.0.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/sql/axzoom_setup/install-0.0.1.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ $install_errors = array();
18
+ if (!function_exists('ioncube_loader_iversion')) {
19
+ array_push($install_errors, 'PHP "Ioncube loader" is not installed on this server. Please install this extension before installing AJAX-ZOOM');
20
+ }
21
+
22
+ /*
23
+ $compiler = Mage::getModel('compiler/process');
24
+ if ($compiler->getCollectedFilesCount() > 0){
25
+ if (!empty($install_errors)){
26
+ array_push($install_errors, 'also please temporary disable compilation mode before installing AJAX-ZOOM and recompile after if needed');
27
+ }else{
28
+ array_push($install_errors, 'Please temporary disable compilation mode before installing AJAX-ZOOM and recompile after if needed');
29
+ }
30
+ }
31
+ */
32
+
33
+ if (!empty($install_errors)) {
34
+ array_push($install_errors, 'if you encounter any other issues please check troubleshooting section at http://www.ajax-zoom.com/index.php?cid=modules&module=magento and contact AJAX-ZOOM support at http://www.ajax-zoom.com/index.php?cid=contact ');
35
+ $all_errors = implode('; ',$install_errors);
36
+ throw new Exception($all_errors);
37
+ exit;
38
+ } else {
39
+ $installer = $this;
40
+ $installer->startSetup();
41
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
42
+
43
+ $installer->run("
44
+ CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoom360` (`id_360` int(11) NOT NULL AUTO_INCREMENT, `id_product` int(11) NOT NULL, `name` varchar(255) NOT NULL, `num` int(11) NOT NULL DEFAULT '1', `settings` text NOT NULL, `status` tinyint(1) NOT NULL DEFAULT '0', `combinations` text NOT NULL, `crop` text NOT NULL, `hotspot` text NOT NULL, PRIMARY KEY (`id_360`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
45
+ CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoom360set` (`id_360set` int(11) NOT NULL AUTO_INCREMENT, `id_360` int(11) NOT NULL, `sort_order` int(11) NOT NULL, PRIMARY KEY (`id_360set`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
46
+ CREATE TABLE IF NOT EXISTS `".$db_prefix."ajaxzoomproducts` (`id_product` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
47
+ ");
48
+
49
+ $installer->endSetup();
50
+
51
+ $io = new Varien_Io_File();
52
+ foreach (array('360', 'cache', 'zoomgallery', 'zoommap', 'zoomthumb', 'zoomtiles_80', 'tmp') as $folder) {
53
+ $io->checkAndCreateFolder(Mage::getBaseDir() . '/js/axzoom/pic/' . $folder);
54
+ }
55
+
56
+ // download axZm if not exists
57
+ if (!file_exists(Mage::getBaseDir() . '/js/axzoom/axZm') && ini_get('allow_url_fopen') ) {
58
+ $remoteFileContents = file_get_contents('http://www.ajax-zoom.com/download.php?ver=latest&module=magento');
59
+ $localFilePath = Mage::getBaseDir() . '/js/axzoom/pic/tmp/jquery.ajaxZoom_ver_latest.zip';
60
+ if ($remoteFileContents !== false){
61
+ file_put_contents($localFilePath, $remoteFileContents);
62
+ $zip = new ZipArchive;
63
+ $res = $zip->open($localFilePath);
64
+ $zip->extractTo(Mage::getBaseDir() . '/js/axzoom/pic/tmp/');
65
+ $zip->close();
66
+ rename(Mage::getBaseDir() . '/js/axzoom/pic/tmp/axZm', Mage::getBaseDir() . '/js/axzoom/axZm');
67
+ }
68
+ }
69
+ }
app/code/local/Ax/Zoom/sql/axzoom_setup/upgrade-1.2.4-1.3.0.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/sql/axzoom_setup/upgrade-1.2.4-1.3.0.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
+ * URL: http://www.ajax-zoom.com
10
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
+ *
12
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ $installer = $this;
18
+ $installer->startSetup();
19
+ $db_prefix = (string)Mage::getConfig()->getTablePrefix();
20
+
21
+ $installer->run("
22
+ DELETE FROM `".$db_prefix."core_config_data` WHERE `path` LIKE 'axzoom_options/%' AND `path` != 'axzoom_options/license/lic'
23
+ ");
24
+
25
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/axzoom.xml CHANGED
@@ -2,45 +2,41 @@
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/layout/axzoom.xml
5
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
- * Version: 1.2.0
8
- * Date: 2016-05-07
9
- * Review: 2016-05-07
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
  <layout>
19
- <adminhtml_catalog_product_edit>
20
- <reference name="head">
21
-
22
- <!-- If jQuery is not defined inject jQuery 1.11.3 core with jQuery.noConflict() and jquery-migrate 1.2.1 -->
23
- <action method="addJs"><script>axzoom/check_jquery_admin.js</script></action>
24
-
25
- <!-- Scripts and CSS for preview AJAX-ZOOM in a Fancybox -->
26
  <action method="addItem">
27
- <type>js_css</type>
28
- <name>axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css</name>
29
  </action>
30
- <action method="addJs"><script>axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js</script></action>
31
- <action method="addJs"><script>axzoom/axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js</script></action>
32
- <action method="addJs"><script>axzoom/axZm/plugins/jquery.scrollTo.min.js</script></action>
33
-
34
- <!-- Fileupload for 360 images -->
35
- <action method="addJs"><script>axzoom/jquery.ui.widget.min.js</script></action>
36
- <action method="addJs"><script>axzoom/jquery.fileupload.js</script></action>
37
- <action method="addJs"><script>axzoom/jquery.fileupload-process.js</script></action>
38
- <action method="addJs"><script>axzoom/jquery.fileupload-validate.js</script></action>
39
-
40
- <!-- test
41
- <action method="addJs"><script>axzoom/jquery.livequery.min.js</script></action>
42
- -->
43
-
44
- </reference>
45
- </adminhtml_catalog_product_edit>
46
  </layout>
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/layout/axzoom.xml
5
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
+ * Version: 1.3.0
8
+ * Date: 2017-06-25
9
+ * Review: 2017-06-25
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
  <layout>
19
+ <adminhtml_catalog_product_edit>
20
+ <reference name="head">
21
+
22
+ <!-- If jQuery is not defined inject jQuery 1.11.3 core with jQuery.noConflict() and jquery-migrate 1.2.1 -->
23
+ <action method="addJs"><script>axzoom/check_jquery_admin.js</script></action>
24
+
25
+ <!-- Scripts and CSS for preview AJAX-ZOOM in a Fancybox -->
26
  <action method="addItem">
27
+ <type>js_css</type>
28
+ <name>axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css</name>
29
  </action>
30
+ <action method="addJs"><script>axzoom/axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js</script></action>
31
+ <action method="addJs"><script>axzoom/axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js</script></action>
32
+ <action method="addJs"><script>axzoom/axZm/plugins/jquery.scrollTo.min.js</script></action>
33
+
34
+ <!-- Fileupload for 360 images -->
35
+ <action method="addJs"><script>axzoom/jquery.ui.widget.min.js</script></action>
36
+ <action method="addJs"><script>axzoom/jquery.fileupload.js</script></action>
37
+ <action method="addJs"><script>axzoom/jquery.fileupload-process.js</script></action>
38
+ <action method="addJs"><script>axzoom/jquery.fileupload-validate.js</script></action>
39
+
40
+ </reference>
41
+ </adminhtml_catalog_product_edit>
 
 
 
 
42
  </layout>
app/design/adminhtml/default/default/template/axzoom/tab.phtml CHANGED
@@ -1,51 +1,51 @@
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
17
 
18
  <script type="text/javascript">
19
- function showSuccessMessage(message)
20
- {
21
- //console.log(message);
22
- }
23
 
24
- function doAdminAjax360(url, data, success_func, error_func)
25
- {
26
- jQuery.ajax(
27
- {
28
- url : url,
29
- data : data,
30
- type : 'GET',
31
- success : function(data){
32
- if (success_func)
33
- return success_func(data);
34
 
35
- data = jQuery.parseJSON(data);
36
- if (data.confirmations.length != 0)
37
- showSuccessMessage(data.confirmations);
38
- else
39
- showErrorMessage(data.error);
40
- },
41
- error : function(data){
42
- if (error_func)
43
- return error_func(data);
44
 
45
- alert("[TECHNICAL ERROR]");
46
- }
47
- });
48
- }
49
  </script>
50
 
51
  <?php $productId = (int)Mage::app()->getRequest()->getParam('id'); ?>
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
17
 
18
  <script type="text/javascript">
19
+ function showSuccessMessage(message)
20
+ {
21
+ //console.log(message);
22
+ }
23
 
24
+ function doAdminAjax360(url, data, success_func, error_func)
25
+ {
26
+ jQuery.ajax(
27
+ {
28
+ url : url,
29
+ data : data,
30
+ type : 'GET',
31
+ success : function(data){
32
+ if (success_func)
33
+ return success_func(data);
34
 
35
+ data = jQuery.parseJSON(data);
36
+ if (data.confirmations.length != 0)
37
+ showSuccessMessage(data.confirmations);
38
+ else
39
+ showErrorMessage(data.error);
40
+ },
41
+ error : function(data){
42
+ if (error_func)
43
+ return error_func(data);
44
 
45
+ alert("[TECHNICAL ERROR]");
46
+ }
47
+ });
48
+ }
49
  </script>
50
 
51
  <?php $productId = (int)Mage::app()->getRequest()->getParam('id'); ?>
app/design/adminhtml/default/default/template/axzoom/tab360-sets.phtml CHANGED
@@ -1,16 +1,16 @@
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360-sets.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.3
7
- * Date: 2016-08-12
8
- * Review: 2016-08-12
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
@@ -228,7 +228,7 @@ $conf = Mage::getStoreConfig('axzoom_options');
228
  var mediaPathTmp = '<?php $mageUrl = parse_url(Mage::getBaseUrl('media')); echo $mageUrl['path'];?>tmp/catalog/product';
229
 
230
  jQuery(document).ready(function($){
231
- <?php if ($conf['magento']['magentoAdminThumb'] == 'true'): ?>
232
  setInterval(function(){
233
  $('tr td:first-child','#media_gallery_content_list').each(function(){
234
  var el = $(this);
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360-sets.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
228
  var mediaPathTmp = '<?php $mageUrl = parse_url(Mage::getBaseUrl('media')); echo $mageUrl['path'];?>tmp/catalog/product';
229
 
230
  jQuery(document).ready(function($){
231
+ <?php if ($conf['plugin_settings']['magentoAdminThumb'] == 'true'): ?>
232
  setInterval(function(){
233
  $('tr td:first-child','#media_gallery_content_list').each(function(){
234
  var el = $(this);
app/design/adminhtml/default/default/template/axzoom/tab360-settings.phtml CHANGED
@@ -1,16 +1,16 @@
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360-settings.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-05-22
8
- * Review: 2016-05-22
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
@@ -24,301 +24,298 @@ $active = !Mage::getModel('axzoom/axproducts')->getCollection()->addFieldToFilte
24
  $associated = array();
25
  $product = Mage::getModel('catalog/product')->load($productId);
26
  if ($product->isConfigurable()) {
27
- $childProducts = Mage::getModel('catalog/product_type_configurable')
28
- ->getUsedProducts(null,$product);
29
 
30
- foreach ($childProducts as $child) {
31
- $p = Mage::getModel('catalog/product')->load($child->getId());
32
- $associated[$child->getId()] = $p->getName() . ' (' . $child->getSku() . ')';
33
- }
34
  }
35
  ?>
36
  <style type="text/css">
37
- .pull-right {
38
- float: right;
39
- }
40
- #pairRows input, #pairRows textarea{
41
- margin-bottom: 3px;
42
- }
 
43
 
44
- #pairRows textarea{
45
- resize: vertical;
46
- }
47
 
48
- #pairRows td:nth-child(3){
49
- padding-right: 10px;
50
- }
51
 
52
- .link_add_option{
53
- margin-top: 5px;
54
- }
55
 
56
  </style>
57
  <?php
58
  if (!function_exists('ioncube_loader_iversion')) {
59
- ?>
60
- <div class="entry-edit">
61
- <div class="entry-edit-head">
62
- <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Error') ?></h4>
63
- </div>
64
- <div class="fieldset fieldset-wide" id="group_fields9">
65
- <div class="hor-scroll">
66
- <div style="padding: 5px; border: 1px solid red; background-color: #FFFFFF;"><?php echo $this->__('PHP "Ioncube loader" is not installed on this server. Please install this extension!') ?></div>
67
- </div>
68
- </div>
69
- </div>
70
- <?php
71
  }
72
  ?>
73
  <div class="entry-edit">
74
- <div class="entry-edit-head">
75
- <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Enable / Disable AJAX-ZOOM for this product') ?></h4>
76
- </div>
77
- <div class="fieldset fieldset-wide" id="group_fields9">
78
- <div class="hor-scroll">
79
- <table cellspacing="0" class="form-list" cellspacing="0">
80
- <tbody>
81
- <tr>
82
- <td class="label"><label for="meta_title"><?php echo $this->__('AJAX ZOOM enabled for this product\'s detail view') ?></label></td>
83
- <td class="value">
84
- <input type="radio" name="az_active" id="az_active_on" value="1" <?php if($active == 1):?>checked="checked"<?php endif ?>/>
85
- <label class="t" for="az_active_on"><?php echo $this->__('Yes') ?></label>
86
- <input type="radio" name="az_active" id="az_active_off" value="0" <?php if($active == 0):?>checked="checked"<?php endif ?>/>
87
- <label class="t" for="az_active_off"><?php echo $this->__('No') ?></label>
88
- </td>
89
- <td class="scope-label"><span class="nobr"></span></td>
90
- </tr>
91
- </tbody>
92
- </table>
93
- </div>
94
- </div>
95
  </div>
96
 
97
  <div class="entry-edit">
98
- <div class="entry-edit-head">
99
- <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('SETTINGS FOR EXISTING 360/3D') ?></h4>
100
- </div>
101
- <div class="fieldset fieldset-wide" id="group_fields9">
102
- <div class="hor-scroll">
103
- <table cellspacing="0" class="form-list" cellspacing="0">
104
- <tbody>
105
- <tr>
106
- <td class="label"><label for="meta_title"><?php echo $this->__('360/3D View') ?></label></td>
107
- <td class="value">
108
- <?php foreach ($groups as $group): ?>
109
- <input type="hidden" name="settings[<?php echo $group['id_360'] ?>]" id="settings_<?php echo $group['id_360'] ?>" value="<?php echo urlencode($group['settings']) ?>">
110
- <input type="hidden" name="comb[<?php echo $group['id_360'] ?>]" id="settings_comb_<?php echo $group['id_360'] ?>" value="<?php echo urlencode($group['combinations']) ?>">
111
-
112
- <?php endforeach; ?>
113
- <select id="id_360" name="id_360" style="min-width: 100px">
114
- <option value=""><?php echo $this->__('Select') ?></option>
115
- <?php foreach ($groups as $group): ?>
116
- <option value="<?php echo $group['id_360']; ?>" data-settings="<?php echo urlencode($group['settings']) ?>" data-combinations="[<?php echo urlencode($group['combinations']) ?>]"><?php echo $group['name'] ?></option>
117
- <?php endforeach; ?>
118
- </select>
119
- </td>
120
- <td class="scope-label"><span class="nobr"></span></td>
121
- </tr>
122
- <tr id="pairs" style="display:none;">
123
- <td class="label"><label for="meta_title"><?php echo $this->__('Settings') ?></label></td>
124
- <td class="value">
125
- <table cellspacing="0">
126
- <thead>
127
- <tr>
128
- <th><?php echo $this->__('Name') ?></th>
129
- <th></th>
130
- <th style="width: 220px"><?php echo $this->__('Value') ?></th>
131
- <th></th>
132
- </tr>
133
- </thead>
134
- <tbody id="pairRows">
135
- </tbody>
136
- <tfoot>
137
- <tr>
138
- <td colspan="4">
139
- <div class="row_">
140
- <button class="scalable add link_add_option">
141
- <span><span><span><?php echo $this->__('Add an option'); ?></span></span></span>
142
- </button>
143
- </div>
144
- <p class="note">
145
- <?php echo $this->__('AJAX-ZOOM has several hundreds options. Most of them can be set dynamically over JS and here, some need to be set in the config file. The most important are already listed above but you can add more if needed! For more options directly related to 360 please refere to AJAX-ZOOM documentation.'); ?>
146
- </p>
147
- </td>
148
- </tr>
149
- </tfoot>
150
- </table>
151
- <table id="pairTemplate" style="display: none" cellspacing="0">
152
- <tr>
153
- <td><input type="text" name="name[]" value="name_placeholder" class="pair-names"></td>
154
- <td>&nbsp; : &nbsp;</td>
155
- <td><input type="text" name="value[]" value="value_placeholder" class="pair-values"></td>
156
- <td>
157
- <a class="link_textarea_option" href="#">
158
- <?php echo $this->__('Edit') ?>
159
- </a>
160
- &nbsp;&nbsp;
161
- <a class="link_remove_option" href="#">
162
- <?php echo $this->__('Delete') ?>
163
- </a>
164
- </td>
165
- </tr>
166
- </table>
167
- </td>
168
- </tr>
169
-
170
- <?php if (count($associated)): ?>
171
- <tr id="comb" style="display:none;">
172
- <td class="label"><label for="meta_title"><?php echo $this->__('Associated products') ?></label></td>
173
- <td class="value">
174
- <button class="comb-check-all" style="margin-bottom: 10px;" value="check all" >check all</button><br>
175
-
176
- <?php foreach ($associated as $id => $name): ?>
177
- <input type="checkbox" name="combinations[]" value="<?php echo $id ?>" class="settings-combinations"> <?php echo $name ?><br>
178
- <?php endforeach; ?>
179
-
180
- <div class="" style="display: block; margin-top: 10px;">
181
- <?php echo $this->__('Here you can define if this 360 should be bind to associated products.') ?>
182
- <?php echo $this->__('If you do not select any this 360 will be shown in all associated products.') ?>
183
- </div>
184
- </td>
185
- </tr>
186
- <?php endif; ?>
187
- </tbody>
188
- </table>
189
- </div>
190
- </div>
191
- </div>
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
 
194
  <script type="text/javascript">
195
- jQuery(function ($) {
196
-
197
- function pairLine(name, value)
198
- {
199
- var line = $("#pairTemplate").html();
200
- line = line.replace(/name_placeholder/g, name);
201
- line = line.replace(/value_placeholder/g, value);
202
- line = line.replace(/<tbody>/gi, "");
203
- line = line.replace(/<\/tbody>/gi, "");
204
- $("#pairRows").append(line);
205
- }
206
-
207
- function afterSaveSettings(data) {
208
- var data = $.parseJSON(data);
209
-
210
- $('#id_360').replaceWith(data.select);
211
- $('#pairs').hide();
212
- $('#comb').hide();
213
- $('select#id_360').val('');
214
- showSuccessMessage(data.confirmations);
215
- }
216
-
217
- function getFieldValues(class1) {
218
- var inputs = document.getElementsByClassName( class1 );
219
- var res = [];
220
- for (var i = 0; i < inputs.length; i++) {
221
- res.push(inputs[i].value);
222
- };
223
- return res;
224
- }
225
-
226
- function setPairString() {
227
- var names = getFieldValues('pair-names');
228
- var values = getFieldValues('pair-values');
229
- var res = {};
230
- for (var i = 0; i < names.length; i++) {
231
- if(names[i] == 'name_placeholder') continue;
232
- res[names[i]] = values[i];
233
- };
234
-
235
- $('#settings_' + $('select#id_360').val()).val(encodeURIComponent(JSON.stringify(res)));
236
- }
237
-
238
- function setComb() {
239
-
240
- var values = [];
241
- $('.settings-combinations:checked').each(function () {
242
- values.push($(this).val());
243
- });
244
-
245
- $('#settings_comb_' + $('select#id_360').val()).val(encodeURIComponent(JSON.stringify(values)));
246
- }
247
-
248
- $('.pair-names, .pair-values').die()
249
- .live('change', function(e) {
250
- setPairString();
251
- } );
252
-
253
- $('.settings-combinations').die()
254
- .live('change', function(e) {
255
- setComb();
256
- } );
257
-
258
-
259
- $('.link_add_option').click(function (e) {
260
- e.preventDefault();
261
- pairLine('', '');
262
- } );
263
-
264
- $('.link_remove_option').die()
265
- .live('click', function(e) {
266
- e.preventDefault();
267
- $(this).parent().parent().remove();
268
- setPairString();
269
- } );
270
-
271
- $('.link_textarea_option').die()
272
- .live('click', function(e) {
273
- e.preventDefault();
274
- var td = $(this).parent().prev();
275
- if ($('input', td).length == 1) {
276
- var Val = $('input', td).val();
277
- $('input', td).replaceWith('<textarea class="pair-values" type="text" name="value[]">'+Val+'</textarea>');
278
- } else if ($('textarea', td).length == 1) {
279
- var Val = $('textarea', td).val();
280
- $('textarea', td).replaceWith('<input class="pair-values" type="text" value="'+Val+'" name="value[]">');
281
- }
282
- } );
283
-
284
- $('select#id_360').die().live('change', function(e) {
285
-
286
- $('#pairRows').html('');
287
-
288
- if($(this).val() != '') {
289
-
290
- // set pairs name:value
291
- var settings = $.parseJSON(unescape($('option:selected', $(this)).attr('data-settings')));
292
- for(var k in settings) {
293
- pairLine(k, settings[k])
294
- }
295
-
296
- // set combinations checkboxes
297
- var combinations = $.parseJSON(unescape($('option:selected', $(this)).attr('data-combinations')))[0];
298
-
299
- $('input.settings-combinations').attr('checked', false);
300
- if(combinations && combinations.length) {
301
- for (var i = combinations.length - 1; i >= 0; i--) {
302
- $('input.settings-combinations[value=' + combinations[i] + ']').attr('checked', true);
303
- };
304
- }
305
-
306
- $('#pairs').show();
307
- $('#comb').show();
308
- } else {
309
- $('#pairs').hide();
310
- $('#comb').hide();
311
- }
312
- });
313
-
314
- $('.comb-check-all:button').toggle(function() {
315
- $('input.settings-combinations').attr('checked','checked');
316
- $(this).val('uncheck all');
317
- setComb();
318
- } ,function() {
319
- $('input.settings-combinations').removeAttr('checked');
320
- $(this).val('check all');
321
- setComb();
322
- } );
323
- });
324
  </script>
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360-settings.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
24
  $associated = array();
25
  $product = Mage::getModel('catalog/product')->load($productId);
26
  if ($product->isConfigurable()) {
27
+ $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$product);
 
28
 
29
+ foreach ($childProducts as $child) {
30
+ $p = Mage::getModel('catalog/product')->load($child->getId());
31
+ $associated[$child->getId()] = $p->getName() . ' (' . $child->getSku() . ')';
32
+ }
33
  }
34
  ?>
35
  <style type="text/css">
36
+ .pull-right {
37
+ float: right;
38
+ }
39
+ #pairRows input,
40
+ #pairRows textarea {
41
+ margin-bottom: 3px;
42
+ }
43
 
44
+ #pairRows textarea {
45
+ resize: vertical;
46
+ }
47
 
48
+ #pairRows td:nth-child(3) {
49
+ padding-right: 10px;
50
+ }
51
 
52
+ .link_add_option {
53
+ margin-top: 5px;
54
+ }
55
 
56
  </style>
57
  <?php
58
  if (!function_exists('ioncube_loader_iversion')) {
59
+ ?>
60
+ <div class="entry-edit">
61
+ <div class="entry-edit-head">
62
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Error') ?></h4>
63
+ </div>
64
+ <div class="fieldset fieldset-wide" id="group_fields9">
65
+ <div class="hor-scroll">
66
+ <div style="padding: 5px; border: 1px solid red; background-color: #FFFFFF;"><?php echo $this->__('PHP "Ioncube loader" is not installed on this server. Please install this extension!') ?></div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <?php
71
  }
72
  ?>
73
  <div class="entry-edit">
74
+ <div class="entry-edit-head">
75
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Enable / Disable AJAX-ZOOM for this product') ?></h4>
76
+ </div>
77
+ <div class="fieldset fieldset-wide" id="group_fields9">
78
+ <div class="hor-scroll">
79
+ <table cellspacing="0" class="form-list" cellspacing="0">
80
+ <tbody>
81
+ <tr>
82
+ <td class="label"><label for="meta_title"><?php echo $this->__('AJAX ZOOM enabled for this product\'s detail view') ?></label></td>
83
+ <td class="value">
84
+ <input type="radio" name="az_active" id="az_active_on" value="1" <?php if($active == 1):?>checked="checked"<?php endif ?>/>
85
+ <label class="t" for="az_active_on"><?php echo $this->__('Yes') ?></label>
86
+ <input type="radio" name="az_active" id="az_active_off" value="0" <?php if($active == 0):?>checked="checked"<?php endif ?>/>
87
+ <label class="t" for="az_active_off"><?php echo $this->__('No') ?></label>
88
+ </td>
89
+ <td class="scope-label"><span class="nobr"></span></td>
90
+ </tr>
91
+ </tbody>
92
+ </table>
93
+ </div>
94
+ </div>
95
  </div>
96
 
97
  <div class="entry-edit">
98
+ <div class="entry-edit-head">
99
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('SETTINGS FOR EXISTING 360/3D') ?></h4>
100
+ </div>
101
+ <div class="fieldset fieldset-wide" id="group_fields9">
102
+ <div class="hor-scroll">
103
+ <table cellspacing="0" class="form-list" cellspacing="0">
104
+ <tbody>
105
+ <tr>
106
+ <td class="label"><label for="meta_title"><?php echo $this->__('360/3D View') ?></label></td>
107
+ <td class="value">
108
+ <?php foreach ($groups as $group): ?>
109
+ <input type="hidden" name="settings[<?php echo $group['id_360'] ?>]" id="settings_<?php echo $group['id_360'] ?>" value="<?php echo urlencode($group['settings']) ?>">
110
+ <input type="hidden" name="comb[<?php echo $group['id_360'] ?>]" id="settings_comb_<?php echo $group['id_360'] ?>" value="<?php echo urlencode($group['combinations']) ?>">
111
+
112
+ <?php endforeach; ?>
113
+ <select id="id_360" name="id_360" style="min-width: 100px">
114
+ <option value=""><?php echo $this->__('Select') ?></option>
115
+ <?php foreach ($groups as $group): ?>
116
+ <option value="<?php echo $group['id_360']; ?>" data-settings="<?php echo urlencode($group['settings']) ?>" data-combinations="[<?php echo urlencode($group['combinations']) ?>]"><?php echo $group['name'] ?></option>
117
+ <?php endforeach; ?>
118
+ </select>
119
+ </td>
120
+ <td class="scope-label"><span class="nobr"></span></td>
121
+ </tr>
122
+ <tr id="pairs" style="display:none;">
123
+ <td class="label"><label for="meta_title"><?php echo $this->__('Settings') ?></label></td>
124
+ <td class="value">
125
+ <table cellspacing="0">
126
+ <thead>
127
+ <tr>
128
+ <th><?php echo $this->__('Name') ?></th>
129
+ <th></th>
130
+ <th style="width: 220px"><?php echo $this->__('Value') ?></th>
131
+ <th></th>
132
+ </tr>
133
+ </thead>
134
+ <tbody id="pairRows">
135
+ </tbody>
136
+ <tfoot>
137
+ <tr>
138
+ <td colspan="4">
139
+ <div class="row_">
140
+ <button class="scalable add link_add_option">
141
+ <span><span><span><?php echo $this->__('Add an option'); ?></span></span></span>
142
+ </button>
143
+ </div>
144
+ <p class="note">
145
+ <?php echo $this->__('AJAX-ZOOM has several hundreds options. Most of them can be set dynamically over JS and here, some need to be set in the config file. The most important are already listed above but you can add more if needed! For more options directly related to 360 please refere to AJAX-ZOOM documentation.'); ?>
146
+ </p>
147
+ </td>
148
+ </tr>
149
+ </tfoot>
150
+ </table>
151
+ <table id="pairTemplate" style="display: none" cellspacing="0">
152
+ <tr>
153
+ <td><input type="text" name="name[]" value="name_placeholder" class="pair-names"></td>
154
+ <td>&nbsp; : &nbsp;</td>
155
+ <td><input type="text" name="value[]" value="value_placeholder" class="pair-values"></td>
156
+ <td>
157
+ <a class="link_textarea_option" href="#">
158
+ <?php echo $this->__('Edit') ?>
159
+ </a>
160
+ &nbsp;&nbsp;
161
+ <a class="link_remove_option" href="#">
162
+ <?php echo $this->__('Delete') ?>
163
+ </a>
164
+ </td>
165
+ </tr>
166
+ </table>
167
+ </td>
168
+ </tr>
169
+
170
+ <?php if (count($associated)): ?>
171
+ <tr id="comb" style="display:none;">
172
+ <td class="label"><label for="meta_title"><?php echo $this->__('Associated products') ?></label></td>
173
+ <td class="value">
174
+ <button class="comb-check-all" style="margin-bottom: 10px;" value="check all" >check all</button><br>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
+ <?php foreach ($associated as $id => $name): ?>
177
+ <input type="checkbox" name="combinations[]" value="<?php echo $id ?>" class="settings-combinations"> <?php echo $name ?><br>
178
+ <?php endforeach; ?>
179
+
180
+ <div class="" style="display: block; margin-top: 10px;">
181
+ <?php echo $this->__('Here you can define if this 360 should be bind to associated products.') ?>
182
+ <?php echo $this->__('If you do not select any this 360 will be shown in all associated products.') ?>
183
+ </div>
184
+ </td>
185
+ </tr>
186
+ <?php endif; ?>
187
+ </tbody>
188
+ </table>
189
+ </div>
190
+ </div>
191
+ </div>
192
 
193
  <script type="text/javascript">
194
+ jQuery(function ($) {
195
+
196
+ function pairLine(name, value) {
197
+ var line = $("#pairTemplate").html();
198
+ line = line.replace(/name_placeholder/g, name);
199
+ line = line.replace(/value_placeholder/g, value);
200
+ line = line.replace(/<tbody>/gi, "");
201
+ line = line.replace(/<\/tbody>/gi, "");
202
+ $("#pairRows").append(line);
203
+ }
204
+
205
+ function afterSaveSettings(data) {
206
+ var data = $.parseJSON(data);
207
+
208
+ $('#id_360').replaceWith(data.select);
209
+ $('#pairs').hide();
210
+ $('#comb').hide();
211
+ $('select#id_360').val('');
212
+ showSuccessMessage(data.confirmations);
213
+ }
214
+
215
+ function getFieldValues(class1) {
216
+ var inputs = document.getElementsByClassName( class1 );
217
+ var res = [];
218
+ for (var i = 0; i < inputs.length; i++) {
219
+ res.push(inputs[i].value);
220
+ };
221
+ return res;
222
+ }
223
+
224
+ function setPairString() {
225
+ var names = getFieldValues('pair-names');
226
+ var values = getFieldValues('pair-values');
227
+ var res = {};
228
+ for (var i = 0; i < names.length; i++) {
229
+ if(names[i] == 'name_placeholder') continue;
230
+ res[names[i]] = values[i];
231
+ };
232
+
233
+ $('#settings_' + $('select#id_360').val()).val(encodeURIComponent(JSON.stringify(res)));
234
+ }
235
+
236
+ function setComb() {
237
+
238
+ var values = [];
239
+ $('.settings-combinations:checked').each(function () {
240
+ values.push($(this).val());
241
+ });
242
+
243
+ $('#settings_comb_' + $('select#id_360').val()).val(encodeURIComponent(JSON.stringify(values)));
244
+ }
245
+
246
+ $('.pair-names, .pair-values').die()
247
+ .live('change', function(e) {
248
+ setPairString();
249
+ } );
250
+
251
+ $('.settings-combinations').die()
252
+ .live('change', function(e) {
253
+ setComb();
254
+ } );
255
+
256
+ $('.link_add_option').click(function (e) {
257
+ e.preventDefault();
258
+ pairLine('', '');
259
+ } );
260
+
261
+ $('.link_remove_option').die()
262
+ .live('click', function(e) {
263
+ e.preventDefault();
264
+ $(this).parent().parent().remove();
265
+ setPairString();
266
+ } );
267
+
268
+ $('.link_textarea_option').die()
269
+ .live('click', function(e) {
270
+ e.preventDefault();
271
+ var td = $(this).parent().prev();
272
+ if ($('input', td).length == 1) {
273
+ var Val = $('input', td).val();
274
+ $('input', td).replaceWith('<textarea class="pair-values" type="text" name="value[]">'+Val+'</textarea>');
275
+ } else if ($('textarea', td).length == 1) {
276
+ var Val = $('textarea', td).val();
277
+ $('textarea', td).replaceWith('<input class="pair-values" type="text" value="'+Val+'" name="value[]">');
278
+ }
279
+ } );
280
+
281
+ $('select#id_360').die().live('change', function(e) {
282
+
283
+ $('#pairRows').html('');
284
+
285
+ if ($(this).val() != '') {
286
+
287
+ // set pairs name:value
288
+ var settings = $.parseJSON(unescape($('option:selected', $(this)).attr('data-settings')));
289
+ for(var k in settings) {
290
+ pairLine(k, settings[k])
291
+ }
292
+
293
+ // set combinations checkboxes
294
+ var combinations = $.parseJSON(unescape($('option:selected', $(this)).attr('data-combinations')))[0];
295
+
296
+ $('input.settings-combinations').attr('checked', false);
297
+ if (combinations && combinations.length) {
298
+ for (var i = combinations.length - 1; i >= 0; i--) {
299
+ $('input.settings-combinations[value=' + combinations[i] + ']').attr('checked', true);
300
+ };
301
+ }
302
+
303
+ $('#pairs').show();
304
+ $('#comb').show();
305
+ } else {
306
+ $('#pairs').hide();
307
+ $('#comb').hide();
308
+ }
309
+ });
310
+
311
+ $('.comb-check-all:button').toggle(function() {
312
+ $('input.settings-combinations').attr('checked','checked');
313
+ $(this).val('uncheck all');
314
+ setComb();
315
+ } ,function() {
316
+ $('input.settings-combinations').removeAttr('checked');
317
+ $(this).val('check all');
318
+ setComb();
319
+ } );
320
+ });
 
 
321
  </script>
app/design/adminhtml/default/default/template/axzoom/tab360.phtml CHANGED
@@ -1,16 +1,16 @@
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/tab360.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
app/design/adminhtml/default/default/template/axzoom/uploader.phtml CHANGED
@@ -1,16 +1,16 @@
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/uploader.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
@@ -38,71 +38,71 @@ function return_bytes($val) {
38
  ?>
39
 
40
  <style type="text/css">
41
- .file-row_az{
42
- background-color: #fff;
43
- border: 1px solid #ccc;
44
- margin: 0.5em 0 0.5em 0;
45
- padding: 0.5em 0.6em;
46
- }
47
-
48
- #file360-upload-button{
49
- margin-bottom: 10px;
50
- }
51
-
52
- #file360-upload-button span{
53
- padding-left: 20px;
54
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAflBMVEUAAADo6Ojs7Ozs7Ozv7+/n5+f19fX39/f19fX5+fnw8PD4+Pj5+fn6+vr7+/v7+/v7+/v6+vr6+vr8/Pz8/Pz8/Pz6+vr8/Pz7+/v8/Pz8/Pz9/f39/f39/f39/f39/f38/Pz9/f3+/v78/Pz+/v7+/v7+/v7+/v7+/v7///8NhBGQAAAAKXRSTlMAAgIEBAgMDhIcHh4mNjhGSlhgfH6Bh4mTl5+rrbHDzdPV19/n7/P3/SZ462sAAABbSURBVHjajYhHCoAwAARj7733Xvb/HzQEjXoRB5ZlhvzG9d7ubLv/dGMGFvt2tQNl1C4XajAa8Qx62y/AOg0W4ZRARe8jZEDBJaSTTFOmF7CQK5yUhSjhxOQHBxDGB7f22f/1AAAAAElFTkSuQmCC);
55
- background-repeat: no-repeat;
56
- }
57
-
58
- #file360-files-list .file-row_az button>span{
59
- padding-left: 20px;
60
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEUAAAD////s7Oz4+Pj29vbt7e339/f09PT4+Pj4+Pj4+Pj5+fn6+vr7+/v6+vr5+fn9/f38/Pz8/Pz8/Pz8/Pz7+/v9/f39/f38/Pz8/Pz8/Pz////7AOp8AAAAG3RSTlMAAhomKCwwOEZITFRUVmh2eoOHjY+Vmaevs8vqUEvPAAAASklEQVR4AaXIRw6AMAwEQNN7dyjs//9JFFYWN5CY48hHJbxWKFXd4R2qeYgKppEgMnLrTxoYE7Ya6FY4iyUGkvFfuAwo5kcQ48UFs6wJErHwwLUAAAAASUVORK5CYII=);
61
- background-repeat: no-repeat;
62
- }
63
-
64
- .btn_cancel span{
65
- padding-left: 20px;
66
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA+ElEQVQoz4XRzy5DQRQH4FOJSrpvqok9a7HlHYQgEhYa7yEa+hQ8Ak/hT6RB4xHsJG57y01IxGcxtxcbZjYzv/kyZ3KmJv4eU9WqFYcxiNd4i4c4jnaVS3PdCLkL13LkttJJOl71gRN1IdTty3zanICmocyTwqLJjQueDc0mcICOFe8ezVVkD90E7o3VhV3caJSgbuwugTdXZdjDmVq5u1QkULgso5pz9CqQJ3BblgihoY+d3yW66FSPm/Po3bIODhKYNZSZr8iSwpPMUHPSqA2fMvumhTDjFB/WvjsZto2Ru9I3xsjGz1aH0NYz8KIwcKQ1yWv/ffcXQSMlGp3SsFgAAAAASUVORK5CYII=);
67
- background-repeat: no-repeat;
68
- }
69
-
70
- .noteUpload_az{
71
- background: rgba(0, 0, 0, 0) url("images/note_bg.gif") no-repeat scroll 1px 6px;
72
- font-size: 11px;
73
- margin: 0;
74
- padding: 0 0 0 13px;
75
- }
76
  </style>
77
 
78
  <div class="form-group clear">
79
- <div class="col-lg-12">
80
-
81
- <button class="btn btn-default" data-style="expand-right" data-size="s" type="button" id="<?php echo $id ?>-add-button">
82
- <i class="icon-folder-open"></i> <span><?php echo $this->__('Select local images to add...') ?></span>
83
- </button>
84
- <button class="btn_cancel" style="margin-left: 5px"><span><?php echo $this->__('Cancel') ?></span></button>
85
- <input id="<?php echo $id ?>" type="file" name="<?php echo $name ?>[]" data-url="<?php echo $url ?>" multiple="multiple" style="width:0px;height:0px;" />
86
-
87
- <div class="form-list">
88
- <p class="note" style="margin-bottom: 15px">
89
- <?php echo $this->__('Add new image(s) to this image set. '); ?>
90
- <?php echo $this->__('Format: JPG, GIF, PNG. Filesize: %s MB max (for each image)', intval($maxImageSize)); ?>
91
- </p>
92
- </div>
93
- </div>
94
  </div>
95
  <div class="well" style="display:none">
96
- <div id="<?php echo $id ?>-files-list"></div>
97
- <button class="ladda-button btn btn-primary" data-style="expand-right" type="button" id="<?php echo $id ?>-upload-button" style="display:none;">
98
- <span class="ladda-label"><i class="icon-check"></i> <?php echo $this->__('Upload files') ?></span>
99
- </button>
100
  </div>
101
  <div class="row" style="display:none">
102
- <div class="alert alert-success" id="<?php echo $id ?>-success"></div>
103
  </div>
104
  <div class="row" style="display:none">
105
- <div class="alert alert-danger" id="<?php echo $id ?>-errors"></div>
106
  </div>
107
 
108
  <script type="text/javascript">
1
  <!--
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/adminhtml/default/default/template/axzoom/uploader.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
  -->
38
  ?>
39
 
40
  <style type="text/css">
41
+ .file-row_az {
42
+ background-color: #fff;
43
+ border: 1px solid #ccc;
44
+ margin: 0.5em 0 0.5em 0;
45
+ padding: 0.5em 0.6em;
46
+ }
47
+
48
+ #file360-upload-button {
49
+ margin-bottom: 10px;
50
+ }
51
+
52
+ #file360-upload-button span {
53
+ padding-left: 20px;
54
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAflBMVEUAAADo6Ojs7Ozs7Ozv7+/n5+f19fX39/f19fX5+fnw8PD4+Pj5+fn6+vr7+/v7+/v7+/v6+vr6+vr8/Pz8/Pz8/Pz6+vr8/Pz7+/v8/Pz8/Pz9/f39/f39/f39/f39/f38/Pz9/f3+/v78/Pz+/v7+/v7+/v7+/v7+/v7///8NhBGQAAAAKXRSTlMAAgIEBAgMDhIcHh4mNjhGSlhgfH6Bh4mTl5+rrbHDzdPV19/n7/P3/SZ462sAAABbSURBVHjajYhHCoAwAARj7733Xvb/HzQEjXoRB5ZlhvzG9d7ubLv/dGMGFvt2tQNl1C4XajAa8Qx62y/AOg0W4ZRARe8jZEDBJaSTTFOmF7CQK5yUhSjhxOQHBxDGB7f22f/1AAAAAElFTkSuQmCC);
55
+ background-repeat: no-repeat;
56
+ }
57
+
58
+ #file360-files-list .file-row_az button>span {
59
+ padding-left: 20px;
60
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEUAAAD////s7Oz4+Pj29vbt7e339/f09PT4+Pj4+Pj4+Pj5+fn6+vr7+/v6+vr5+fn9/f38/Pz8/Pz8/Pz8/Pz7+/v9/f39/f38/Pz8/Pz8/Pz////7AOp8AAAAG3RSTlMAAhomKCwwOEZITFRUVmh2eoOHjY+Vmaevs8vqUEvPAAAASklEQVR4AaXIRw6AMAwEQNN7dyjs//9JFFYWN5CY48hHJbxWKFXd4R2qeYgKppEgMnLrTxoYE7Ya6FY4iyUGkvFfuAwo5kcQ48UFs6wJErHwwLUAAAAASUVORK5CYII=);
61
+ background-repeat: no-repeat;
62
+ }
63
+
64
+ .btn_cancel span {
65
+ padding-left: 20px;
66
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA+ElEQVQoz4XRzy5DQRQH4FOJSrpvqok9a7HlHYQgEhYa7yEa+hQ8Ak/hT6RB4xHsJG57y01IxGcxtxcbZjYzv/kyZ3KmJv4eU9WqFYcxiNd4i4c4jnaVS3PdCLkL13LkttJJOl71gRN1IdTty3zanICmocyTwqLJjQueDc0mcICOFe8ezVVkD90E7o3VhV3caJSgbuwugTdXZdjDmVq5u1QkULgso5pz9CqQJ3BblgihoY+d3yW66FSPm/Po3bIODhKYNZSZr8iSwpPMUHPSqA2fMvumhTDjFB/WvjsZto2Ru9I3xsjGz1aH0NYz8KIwcKQ1yWv/ffcXQSMlGp3SsFgAAAAASUVORK5CYII=);
67
+ background-repeat: no-repeat;
68
+ }
69
+
70
+ .noteUpload_az {
71
+ background: rgba(0, 0, 0, 0) url("images/note_bg.gif") no-repeat scroll 1px 6px;
72
+ font-size: 11px;
73
+ margin: 0;
74
+ padding: 0 0 0 13px;
75
+ }
76
  </style>
77
 
78
  <div class="form-group clear">
79
+ <div class="col-lg-12">
80
+
81
+ <button class="btn btn-default" data-style="expand-right" data-size="s" type="button" id="<?php echo $id ?>-add-button">
82
+ <i class="icon-folder-open"></i> <span><?php echo $this->__('Select local images to add...') ?></span>
83
+ </button>
84
+ <button class="btn_cancel" style="margin-left: 5px"><span><?php echo $this->__('Cancel') ?></span></button>
85
+ <input id="<?php echo $id ?>" type="file" name="<?php echo $name ?>[]" data-url="<?php echo $url ?>" multiple="multiple" style="width:0px;height:0px;" />
86
+
87
+ <div class="form-list">
88
+ <p class="note" style="margin-bottom: 15px">
89
+ <?php echo $this->__('Add new image(s) to this image set. '); ?>
90
+ <?php echo $this->__('Format: JPG, GIF, PNG. Filesize: %s MB max (for each image)', intval($maxImageSize)); ?>
91
+ </p>
92
+ </div>
93
+ </div>
94
  </div>
95
  <div class="well" style="display:none">
96
+ <div id="<?php echo $id ?>-files-list"></div>
97
+ <button class="ladda-button btn btn-primary" data-style="expand-right" type="button" id="<?php echo $id ?>-upload-button" style="display:none;">
98
+ <span class="ladda-label"><i class="icon-check"></i> <?php echo $this->__('Upload files') ?></span>
99
+ </button>
100
  </div>
101
  <div class="row" style="display:none">
102
+ <div class="alert alert-success" id="<?php echo $id ?>-success"></div>
103
  </div>
104
  <div class="row" style="display:none">
105
+ <div class="alert alert-danger" id="<?php echo $id ?>-errors"></div>
106
  </div>
107
 
108
  <script type="text/javascript">
app/design/frontend/base/default/layout/axzoom.xml CHANGED
@@ -2,97 +2,94 @@
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/frontend/base/default/layout/axzoom.xml
5
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
- * Version: 1.2.0
8
- * Date: 2016-05-07
9
- * Review: 2016-05-07
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
- <layout version="0.1.0">
19
  <catalog_product_view>
20
-
21
- <!--
22
- <reference name="product.info.media">
23
- <action method="setTemplate">
24
- <template>ax_zoom/catalog/product/view/media.phtml</template>
25
- </action>
26
- </reference>
27
- -->
28
 
29
  <reference name="head">
30
- <action method="addJs">
31
- <script>axzoom/check_jquery.js</script>
32
- </action>
33
- <action method="addItem">
34
- <type>js_css</type>
35
- <name>axzoom/axZm/axZm.css</name>
36
  </action>
37
- <action method="addJs">
38
- <script>axzoom/axZm/jquery.axZm.js</script>
 
39
  </action>
40
- <action ifconfig="axzoom_options/main/galleryAxZmThumbSlider" method="addJs">
41
- <script>axzoom/axZm/extensions/axZmThumbSlider/lib/jquery.mousewheel.min.js</script>
42
  </action>
43
- <action ifconfig="axzoom_options/main/galleryAxZmThumbSlider" method="addItem">
44
- <type>js_css</type>
45
- <name>axzoom/axZm/extensions/axZmThumbSlider/skins/default/jquery.axZm.thumbSlider.css</name>
46
  </action>
47
- <action ifconfig="axzoom_options/main/galleryAxZmThumbSlider" method="addJs">
48
- <script>axzoom/axZm/extensions/axZmThumbSlider/lib/jquery.axZm.thumbSlider.js</script>
 
49
  </action>
50
- <action ifconfig="axzoom_options/mouseOverZoomParam/spinner" method="addJs">
51
- <script>axzoom/axZm/plugins/spin/spin.min.js</script>
52
  </action>
53
- <action method="addItem">
54
- <type>js_css</type>
55
- <name>axzoom/axZm/extensions/jquery.axZm.expButton.css</name>
56
  </action>
57
- <action method="addJs">
58
- <script>axzoom/axZm/extensions/jquery.axZm.expButton.js</script>
 
59
  </action>
60
- <action method="addJs">
61
- <script>axzoom/axZm/extensions/jquery.axZm.imageCropLoad.js</script>
62
  </action>
63
- <action method="addItem">
64
- <type>js_css</type>
65
- <name>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.4.css</name>
66
  </action>
67
- <action method="addItem">
68
- <type>js_css</type>
69
- <name>axzoom/axZm/extensions/axZmMouseOverZoom/mods/jquery.axZm.mouseOverZoomMagento.4.css</name>
70
  </action>
71
- <action method="addJs">
72
- <script>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.4.js</script>
73
  </action>
74
- <action method="addJs">
75
- <script>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoomInit.4.js</script>
76
  </action>
77
- <action method="addItem">
78
- <type>js_css</type>
79
  <file helper="axzoom/Head/getFancyboxCss" />
80
  </action>
81
- <action method="addJs">
82
  <file helper="axzoom/Head/getFancyboxJS" />
83
  </action>
84
- <action method="addJs">
85
  <file helper="axzoom/Head/getFancyboxJSAX" />
86
  </action>
87
- <action method="addItem">
88
- <type>js_css</type>
89
- <file helper="axzoom/Head/getColorboxCss" />
90
  </action>
91
- <action method="addJs">
92
- <file helper="axzoom/Head/getColorboxJS" />
 
93
  </action>
94
- <action method="addJs">
95
- <script>axzoom/axZm/plugins/JSON/jquery.json-2.3.min.js</script>
 
96
  </action>
97
  </reference>
98
  </catalog_product_view>
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/frontend/base/default/layout/axzoom.xml
5
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
+ * Version: 1.3.0
8
+ * Date: 2017-06-25
9
+ * Review: 2017-06-25
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
18
+ <layout version="1.3.0">
19
  <catalog_product_view>
20
+
21
+ <!--
22
+ <reference name="product.info.media">
23
+ <action method="setTemplate">
24
+ <template>ax_zoom/catalog/product/view/media.phtml</template>
25
+ </action>
26
+ </reference>
27
+ -->
28
 
29
  <reference name="head">
30
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
31
+ <script>axzoom/check_jquery.js</script>
 
 
 
 
32
  </action>
33
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
34
+ <type>js_css</type>
35
+ <name>axzoom/axZm/axZm.css</name>
36
  </action>
37
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
38
+ <script>axzoom/axZm/jquery.axZm.js</script>
39
  </action>
40
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
41
+ <script>axzoom/axZm/extensions/axZmThumbSlider/lib/jquery.mousewheel.min.js</script>
 
42
  </action>
43
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
44
+ <type>js_css</type>
45
+ <name>axzoom/axZm/extensions/axZmThumbSlider/skins/default/jquery.axZm.thumbSlider.css</name>
46
  </action>
47
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
48
+ <script>axzoom/axZm/extensions/axZmThumbSlider/lib/jquery.axZm.thumbSlider.js</script>
49
  </action>
50
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
51
+ <file helper="axzoom/Head/getSpinnerJS" />
 
52
  </action>
53
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
54
+ <type>js_css</type>
55
+ <name>axzoom/axZm/extensions/jquery.axZm.expButton.css</name>
56
  </action>
57
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
58
+ <script>axzoom/axZm/extensions/jquery.axZm.expButton.js</script>
59
  </action>
60
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
61
+ <script>axzoom/axZm/extensions/jquery.axZm.imageCropLoad.js</script>
 
62
  </action>
63
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
64
+ <type>js_css</type>
65
+ <name>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.5.css</name>
66
  </action>
67
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
68
+ <script>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.5.js</script>
69
  </action>
70
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
71
+ <script>axzoom/axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoomInit.5.js</script>
72
  </action>
73
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
74
+ <type>js_css</type>
75
  <file helper="axzoom/Head/getFancyboxCss" />
76
  </action>
77
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
78
  <file helper="axzoom/Head/getFancyboxJS" />
79
  </action>
80
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
81
  <file helper="axzoom/Head/getFancyboxJSAX" />
82
  </action>
83
+ <action method="addJs" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
84
+ <script>axzoom/axZm/plugins/JSON/jquery.json-2.3.min.js</script>
 
85
  </action>
86
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
87
+ <type>js_css</type>
88
+ <name>axzoom/axzoom.css</name>
89
  </action>
90
+ <action method="addItem" ifconfig="axzoom_options/plugin_settings/enableInFrontDetail">
91
+ <type>js_css</type>
92
+ <file helper="axzoom/Head/getPngModeCssFix" />
93
  </action>
94
  </reference>
95
  </catalog_product_view>
app/design/frontend/base/default/template/ax_zoom/catalog/product/view/media.phtml CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/frontend/base/default/template/ax_zoom/catalog/product/view/media.phtml
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-08-22
8
- * Review: 2016-08-22
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -18,194 +18,158 @@ $_product = $this->getProduct();
18
  $productId = $_product->getId();
19
  $ax = Mage::getModel('axzoom/ax360');
20
  $conf = Mage::getStoreConfig('axzoom_options');
 
21
  $axZmPath = Mage::getBaseUrl('js') . 'axzoom/axZm/';
22
  $product = Mage::getModel('catalog/product')->load($productId);
23
  $images360Json = $ax->images360Json($productId);
24
  $imagesJsonAll = array();
25
-
26
- $az_gallery_position = $conf['main']['galleryPosition'];
27
- if (!$az_gallery_position){$az_gallery_position = 'bottom';}
28
  ?>
29
 
30
  <script type="text/javascript">
31
- // Fallback if catalog_product_view reference name="head" is not loaded
32
- var mageAzJsUrl = '<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'axzoom/'; ?>';
33
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"check_fallback.js'%3E%3C/script%3E"));
34
  </script>
35
 
36
  <?php echo !function_exists('ioncube_loader_iversion') ? '<div style="padding: 5px; margin-bottom: 5px; border: 1px solid red">'.$this->__('PHP "Ioncube loader" is not installed on this server. Please install this extension!').'</div>' : '';?>
37
 
38
- <?php if ($az_gallery_position == 'bottom') { ?>
39
- <!-- AJAX-ZOOM mouseover block gallery bottom -->
40
- <div id="az_mouseOverZoomParent" style="position: relative; background-color: #FFFFFF;">
41
- <!-- Container for mouse over image -->
42
- <div id="az_mouseOverZoomContainer">
43
- <?php echo '<div style="margin: 5px;">'.$this->__('Mouseover Zoom loading...').'</div>';?>
44
- </div>
45
-
46
- <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
47
- <div id="az_mouseOverZoomGallery">
48
- <?php echo $this->__('Gallery loading...');?>
49
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
50
  </div>
51
- <?php } elseif ($az_gallery_position == 'top') { ?>
52
- <!-- AJAX-ZOOM mouseover block gallery top -->
53
- <div id="az_mouseOverZoomParent" style="position: relative;">
54
-
55
- <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
56
- <div id="az_mouseOverZoomGallery" style="position: relative; margin-bottom: 10px; height: 76px; width: 100%;">
57
- <?php echo $this->__('Gallery loading...');?>
58
- </div>
59
-
60
- <!-- Container for mouse over image -->
61
- <div id="az_mouseOverZoomContainer" style="position: relative; background-color: #FFFFFF; border: #AAA 1px solid;">
62
- <?php echo '<div style="margin: 5px;">'.$this->__('Mouseover Zoom loading...').'</div>';?>
63
- </div>
64
- </div>
65
- <?php } elseif ($az_gallery_position == 'left') { ?>
66
- <!-- AJAX-ZOOM mouseover block gallery left -->
67
- <div id="az_mouseOverZoomParent" style="position: relative; width: 100%; margin-bottom: 20px;">
68
-
69
- <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
70
- <div id="az_mouseOverZoomGallery" style="position: absolute; margin-top: 0; width: 72px; z-index: 1; height: 100%;">
71
- <?php echo $this->__('Gallery loading...');?>
72
- </div>
73
-
74
- <!-- Parent container for offset to the left or right -->
75
- <div id="az_mouseOverZoomContainerParentGalleryLeft" style="margin-left: 80px; min-height: 100px;">
76
-
77
- <!-- Container for mouse over image -->
78
- <div id="az_mouseOverZoomContainer" style="position: relative; border: #AAA 1px solid; background-color: #FFFFFF; padding: 0;">
79
- <?php echo '<div style="margin: 5px;">'.$this->__('Mouseover Zoom loading...').'</div>';?>
80
- </div>
81
- </div>
82
- </div>
83
- <?php } elseif ($az_gallery_position == 'right') { ?>
84
- <!-- AJAX-ZOOM mouseover block gallery right -->
85
- <div id="az_mouseOverZoomParent" style="position: relative; width: 100%; margin-bottom: 20px;">
86
- <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
87
- <div id="az_mouseOverZoomGallery" style="position: absolute; margin-top: 0; right: 0; width: 72px; z-index: 1; height: 100%;">
88
- <?php echo $this->__('Gallery loading...');?>
89
- </div>
90
-
91
- <!-- Parent container for offset to the left or right -->
92
- <div id="az_mouseOverZoomContainerParentGalleryRight" style="margin-right: 80px; min-height: 100px;">
93
-
94
- <!-- Container for mouse over image -->
95
- <div id="az_mouseOverZoomContainer" style="position: relative; border: #AAA 1px solid; background-color: #FFFFFF; padding: 0;">
96
- <?php echo '<div style="margin: 5px;">'.$this->__('Mouseover Zoom loading...').'</div>';?>
97
- </div>
98
- </div>
99
- </div>
100
-
101
- <?php } ?>
102
 
103
  <?php
104
  // 360 assigned from configurable products to Simple products
105
  $map = array();
106
  if ($groups = $ax->getCollection()->addFieldToFilter('id_product', $productId)->getData()) {
107
- foreach ($groups as $group) {
108
- $comp = Mage::helper('core')->jsonDecode($group['combinations']);
109
- if ($comp) {
110
- foreach ($comp as $pid) {
111
- if (!isset($map[$pid])) {
112
- $map[$pid] = array();
113
- }
114
- array_push($map[$pid], $group['id_360']);
115
- }
116
- }
117
- }
118
  }
119
 
120
  // all attributes map
121
  $mapAttributesCodeId = array();
122
  $attributes = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();
123
- foreach ($attributes as $attribute){
124
- $mapAttributesCodeId[$attribute->getAttributecode()] = $attribute->getId();
125
  }
126
  $mapAttributesIdCode = array_flip($mapAttributesCodeId);
127
 
128
  // get configurable options
129
  if ($product->type_id == 'configurable') {
130
- $attributesCodes = array();
131
- $productAttributesOptions = $product->getTypeInstance(true)->getConfigurableOptions($product);
132
- foreach ($productAttributesOptions as $productAttributeId => $productAttributeOption) {
133
- $attributesCodes[] = $mapAttributesIdCode[$productAttributeId];
134
- }
135
  }
136
 
137
  // get associated products
138
  $res = array();
139
  if ($product->isConfigurable()) {
140
- $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);
141
-
142
- foreach ($childProducts as $child) {
143
-
144
- $data = $child->getData();
145
- $p = Mage::getModel('catalog/product')->load($data['entity_id']);
146
-
147
- $pairs = array();
148
- $labels = array();
149
-
150
- foreach ($attributesCodes as $code) { // $code is e.g. color or size
151
- $pairs[] = $mapAttributesCodeId[$code] . ':' . $data[$code]; // generate pairs of attribures
152
- $attr = $product->getResource()->getAttribute($code);
153
-
154
- // We need to get default label value and not language value - getAllOptions(false, true) will return default values
155
- // http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Attribute_Source_Table.html
156
- $option_label = $ax->findDefaultLabelValue($attr->getSource()->getAllOptions(false, true), $data[$code]);
157
- if ($option_label == false){
158
- // This would return language specific values
159
- $option_label = $attr->getSource()->getOptionText($data[$code]);
160
- }
161
-
162
- array_push($labels, trim($option_label));
163
- }
164
-
165
- $idx = implode(',', $pairs);
166
- $res[$idx] = array();
167
-
168
- $obj = null;
169
- $cnt = 0;
170
-
171
- // add native images
172
- foreach ($p->getMediaGalleryImages() as $image) {
173
- $tmp = parse_url($image->getUrl());
174
- if (!$obj) $obj = new stdClass;
175
- $params = new stdClass;
176
- $params->img = $tmp['path'];
177
- array_push($imagesJsonAll, $tmp['path']);
178
- $params->title = '';
179
- $obj->$cnt = $params;
180
- $cnt++;
181
- }
182
-
183
- // add related images via labels (images from configurable product)
184
- foreach ($product->getMediaGalleryImages() as $image) {
185
- if ($image->label_default != '' && in_array(trim($image->label_default), $labels)) {
186
- $tmp = parse_url($image->getUrl());
187
- if (!$obj) $obj = new stdClass;
188
- $params = new stdClass;
189
- $params->img = $tmp['path'];
190
- array_push($imagesJsonAll, $tmp['path']);
191
- $params->title = '';
192
- $obj->$cnt = $params;
193
- $cnt++;
194
- }else{
195
- $tmp = parse_url($image->getUrl());
196
- array_push($imagesJsonAll, $tmp['path']);
197
- }
198
- }
199
-
200
- if ($obj != null){
201
- $res[$idx]['images'] = $obj;
202
- } else {
203
- $res[$idx]['images'] = new stdClass();
204
- }
205
-
206
- $extraGroups = empty($map[$data['entity_id']]) ? array() : $map[$data['entity_id']];
207
- $res[$idx]['images360'] = Mage::helper('core')->jsonDecode(str_replace("'", '"', $ax->images360Json($data['entity_id'], $extraGroups)));
208
- }
 
 
 
 
 
209
  }
210
 
211
  // Prepare json for AJAX-ZOOM
@@ -215,41 +179,36 @@ $imagesJsonAll = array_unique($imagesJsonAll);
215
 
216
  // Some images present
217
  if (count($this->getGalleryImages()) > 0) {
218
-
219
- // If no base image is defined and there is only one image in the gallery and there is a 360 view for this product, then we do not show this image at all.
220
- // You can change it by setting the radio button "Base Image" under product configuration -> Images
221
- if (!($images360Json != '{}' && count($this->getGalleryImages()) == 1 && $product->getImage() == 'no_selection')){
222
-
223
- // Loop over gallery images
224
- foreach ($this->getGalleryImages() as $image) {
225
-
226
- $check_image = false;
227
-
228
- if (method_exists($this, 'isGalleryImageVisible')) {
229
- $check_image = $this->isGalleryImageVisible($image);
230
- } else {
231
- $check_image = true;
232
- }
233
-
234
- if ($check_image) {
235
- $cnt++;
236
- $tmp = parse_url($image->getUrl());
237
- array_push($imagesJson, $cnt . ': {img: "' . $tmp['path'] . '", title: ""}');
238
- }
239
- }
240
- }
241
- }
242
- // No images present
243
- else if ($conf['magento']['magentoNoImage'])
244
- {
245
- if ($image_url = $this->helper('catalog/image')->init($product, 'image')) {
246
- $tmp = parse_url($image_url);
247
- array_push($imagesJson, '1: {img: "' . $tmp['path'] . '", title: ""}');
248
- }
249
  }
250
 
251
- //MAIN_GALLERYPOSITION
252
- echo $this->getChildHtml('after');
253
  ?>
254
 
255
  <!-- AJAX-ZOOM js block -->
@@ -257,304 +216,163 @@ echo $this->getChildHtml('after');
257
  /*!
258
  * Module: jQuery AJAX-ZOOM for Magento
259
  * Info: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
260
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
261
  * @license http://www.ajax-zoom.com/index.php?cid=download
262
  */
263
 
264
- ;(function($){
265
-
266
- // Load plugin settings
267
- <?php
268
- $exclParArray = array('LICENSE_LIC');
269
- foreach ($conf as $group => $data){
270
- foreach ($data as $key => $value){
271
- $groupKey = strtoupper($group . '_' . $key);
272
- if (!in_array($groupKey, $exclParArray)){
273
- if ($value == 'false' || $value == 'true' || $value == 'null' || is_numeric($value) || substr(trim($value), 0, 1) == '{' || substr(trim($value), 0, 1) == '['){
274
- echo ' var AJAXZOOM_' . $groupKey . ' = ' . $value . '; ';// . "\n";
275
- } else {
276
- echo ' var AJAXZOOM_' . $groupKey . ' = "' . str_replace('"', '&#34;', $value) . '"; ';// . "\n";
277
- }
278
- }
279
- }
280
- }
281
- ?>
282
-
283
- var AXZMPATH = '<?php echo $axZmPath; ?>';
284
-
285
- // Colors / attributes
286
- var axAssociated = jQuery.parseJSON('<?php echo Mage::helper('core')->jsonEncode($res); ?>');
287
-
288
- // Default plain images
289
- <?php if ($conf['magento']['magentoAllImagesStart'] == 'true'){ ?>
290
- var IMAGES_JSON = <?php echo $ax->imagesJsonAll($imagesJsonAll);?>;
291
- <?php } else { ?>
292
- var IMAGES_JSON = {<?php echo implode(',', $imagesJson);?>};
293
- <?php } ?>
294
-
295
- // All images
296
- var IMAGES_ALL_JSON = <?php echo $ax->imagesJsonAll($imagesJsonAll);?>;
297
-
298
- // Default 360
299
- var IMAGES_360_JSON = <?php echo $images360Json; ?>;
300
-
301
- // Need that later for not reloading if images are the same
302
- var IMAGES_AND_360_LOADED = JSON.stringify({
303
- images: jQuery.extend(true, {}, IMAGES_JSON),
304
- images360: jQuery.extend(true, {}, IMAGES_360_JSON)
305
- });
306
-
307
- // AJAX-ZOOM mouseover and other parameters
308
- var zoomParams = {
309
- disableAllMsg: AJAXZOOM_MAIN_DISABLEALLMSG,
310
- axZmPath: AXZMPATH,
311
- divID: AJAXZOOM_MAIN_DIVID,
312
- galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
313
- hideGalleryOneImage: AJAXZOOM_MAIN_HIDEGALLERYONEIMAGE,
314
- hideGalleryAddClass: AJAXZOOM_MAIN_HIDEGALLERYADDCLASS,
315
- galleryHover: AJAXZOOM_MAIN_GALLERYHOVER,
316
- galleryAxZmThumbSlider: AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDER,
317
- galleryAxZmThumbSliderParam: (AJAXZOOM_MAIN_GALLERYPOSITION == 'bottom' || AJAXZOOM_MAIN_GALLERYPOSITION == 'top') ? AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDERPARAM : AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDERPARAM_VERTICAL,
318
- thumbW: AJAXZOOM_MAIN_THUMBW,
319
- thumbH: AJAXZOOM_MAIN_THUMBH,
320
- thumbRetina: AJAXZOOM_MAIN_THUMBRETINA,
321
- qualityThumb: AJAXZOOM_MAIN_QUALITYTHUMB,
322
- quality: AJAXZOOM_MAIN_QUALITY,
323
- qualityZoom: AJAXZOOM_MAIN_QUALITYZOOM,
324
- cropAxZmThumbSliderParam: AJAXZOOM_PRODUCTTOUR_CROPAXZMTHUMBSLIDERPARAM,
325
- cropSliderPosition: AJAXZOOM_PRODUCTTOUR_CROPSLIDERPOSITION,
326
- cropSliderDimension: AJAXZOOM_PRODUCTTOUR_CROPSLIDERDIMENSION,
327
- cropSliderThumbAutoSize: AJAXZOOM_PRODUCTTOUR_CROPSLIDERTHUMBAUTOSIZE,
328
- cropSliderThumbAutoMargin: AJAXZOOM_PRODUCTTOUR_CROPSLIDERTHUMBAUTOMARGIN,
329
- cropSliderThumbDescr: AJAXZOOM_PRODUCTTOUR_CROPSLIDERTHUMBDESCR,
330
- images: IMAGES_JSON,
331
- firstImageToLoad: AJAXZOOM_MAIN_FIRSTIMAGETOLOAD,
332
- images360: IMAGES_360_JSON,
333
- images360firstToLoad: AJAXZOOM_MAIN_IMAGES360FIRSTTOLOAD,
334
- images360Thumb: AJAXZOOM_MAIN_IMAGES360THUMB,
335
- images360Overlay: AJAXZOOM_MAIN_IMAGES360OVERLAY,
336
- images360Preview: AJAXZOOM_MAIN_IMAGES360PREVIEW,
337
- images360PreviewResponsive: AJAXZOOM_MAIN_IMAGES360PREVIEWRESPONSIVE,
338
- images360examplePreview: AJAXZOOM_MAIN_IMAGES360EXAMPLEPREVIEW,
339
- zoomMsg360: AJAXZOOM_MAIN_ZOOMMSG360,
340
- zoomMsg360_touch: AJAXZOOM_MAIN_ZOOMMSG360_TOUCH,
341
- preloadMouseOverImages: AJAXZOOM_MAIN_PRELOADMOUSEOVERIMAGES,
342
- noImageAvailableClass: AJAXZOOM_MAIN_NOIMAGEAVAILABLECLASS,
343
- width: AJAXZOOM_MAIN_WIDTH,
344
- height: AJAXZOOM_MAIN_HEIGHT,
345
- responsive: AJAXZOOM_MAIN_RESPONSIVE,
346
- oneSrcImg: AJAXZOOM_MAIN_ONESRCIMG,
347
- heightRatio: AJAXZOOM_MAIN_HEIGHTRATIO,
348
- heightMaxWidthRatio: AJAXZOOM_MAIN_HEIGHTMAXWIDTHRATIO,
349
- widthRatio: AJAXZOOM_MAIN_WIDTHRATIO,
350
- widthMaxHeightRatio: AJAXZOOM_MAIN_WIDTHMAXHEIGHTRATIO,
351
- maxSizePrc: AJAXZOOM_MAIN_MAXSIZEPRC,
352
- mouseOverZoomWidth: AJAXZOOM_MAIN_MOUSEOVERZOOMWIDTH,
353
- mouseOverZoomHeight: AJAXZOOM_MAIN_MOUSEOVERZOOMHEIGHT,
354
- ajaxZoomOpenMode: AJAXZOOM_MAIN_AJAXZOOMOPENMODE,
355
- fancyBoxParam: AJAXZOOM_MAIN_FANCYBOXPARAM,
356
- colorBoxParam: AJAXZOOM_MAIN_COLORBOXPARAM,
357
- example: AJAXZOOM_MAIN_EXAMPLE,
358
- exampleFancyboxFullscreen: AJAXZOOM_MAIN_EXAMPLEFANCYBOXFULLSCREEN,
359
- exampleFancybox: AJAXZOOM_MAIN_EXAMPLEFANCYBOX,
360
- exampleColorbox: AJAXZOOM_MAIN_EXAMPLECOLORBOX,
361
- enforceFullScreenRes: AJAXZOOM_MAIN_ENFORCEFULLSCREENRES,
362
- prevNextArrows: AJAXZOOM_MAIN_PREVNEXTARROWS,
363
- disableScrollAnm: AJAXZOOM_MAIN_DISABLESCROLLANM,
364
- fullScreenApi: AJAXZOOM_MAIN_FULLSCREENAPI,
365
- axZmCallBacks: AJAXZOOM_MAIN_AXZMCALLBACKS,
366
- azOptions: AJAXZOOM_MAIN_AZOPTIONS,
367
- azOptions360: AJAXZOOM_MAIN_AZOPTIONS360,
368
- postMode: AJAXZOOM_MAIN_POSTMODE,
369
- pinterest: {
370
- enabled: AJAXZOOM_PINTEREST_ENABLED,
371
- build: AJAXZOOM_PINTEREST_BUILD,
372
- wrapClass: AJAXZOOM_PINTEREST_WRAPCLASS,
373
- btnSrc: AJAXZOOM_PINTEREST_BTNSRC,
374
- data: { // any data attributes
375
- "pin-do" : "buttonPin",
376
- "pin-shape": null,
377
- "pin-config": "none",
378
- "pin-color": null,
379
- "pin-height": null
380
- }
381
- },
382
- mouseOverZoomParam: {
383
- position: AJAXZOOM_MOUSEOVERZOOMPARAM_POSITION,
384
- posAutoInside: AJAXZOOM_MOUSEOVERZOOMPARAM_POSAUTOINSIDE,
385
- touchScroll: AJAXZOOM_MOUSEOVERZOOMPARAM_TOUCHSCROLL,
386
- noMouseOverZoom: AJAXZOOM_MOUSEOVERZOOMPARAM_NOMOUSEOVERZOOM,
387
- autoFlip: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOFLIP,
388
- biggestSpace: AJAXZOOM_MOUSEOVERZOOMPARAM_BIGGESTSPACE,
389
- zoomFullSpace: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMFULLSPACE,
390
- zoomWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMWIDTH,
391
- zoomHeight: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHEIGHT,
392
- autoMargin: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOMARGIN,
393
- adjustX: AJAXZOOM_MOUSEOVERZOOMPARAM_ADJUSTX,
394
- adjustY: AJAXZOOM_MOUSEOVERZOOMPARAM_ADJUSTY,
395
- lensOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSOPACITY,
396
- lensStyle: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSSTYLE,
397
- lensClass: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSCLASS,
398
- zoomAreaBorderWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMAREABORDERWIDTH,
399
- galleryFade: AJAXZOOM_MOUSEOVERZOOMPARAM_GALLERYFADE,
400
- shutterSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_SHUTTERSPEED,
401
- showFade: AJAXZOOM_MOUSEOVERZOOMPARAM_SHOWFADE,
402
- hideFade: AJAXZOOM_MOUSEOVERZOOMPARAM_HIDEFADE,
403
- autoScroll: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOSCROLL,
404
- flyOutSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTSPEED,
405
- flyOutTransition: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTTRANSITION,
406
- flyOutOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTOPACITY,
407
- flyBackSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKSPEED,
408
- flyBackTransition: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKTRANSITION,
409
- flyBackOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKOPACITY,
410
- smoothMove: AJAXZOOM_MOUSEOVERZOOMPARAM_SMOOTHMOVE,
411
- tint: AJAXZOOM_MOUSEOVERZOOMPARAM_TINT,
412
- tintOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTOPACITY,
413
- tintFilter: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTFILTER,
414
- tintLensBack: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTLENSBACK,
415
- showTitle: AJAXZOOM_MOUSEOVERZOOMPARAM_SHOWTITLE,
416
- titleOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_TITLEOPACITY,
417
- titlePosition: AJAXZOOM_MOUSEOVERZOOMPARAM_TITLEPOSITION,
418
- cursorPositionX: AJAXZOOM_MOUSEOVERZOOMPARAM_CURSORPOSITIONX,
419
- cursorPositionY: AJAXZOOM_MOUSEOVERZOOMPARAM_CURSORPOSITIONY,
420
- loading: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADING,
421
- loadingMessage: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGMESSAGE,
422
- loadingWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGWIDTH,
423
- loadingHeight: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGHEIGHT,
424
- loadingOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGOPACITY,
425
- zoomHintEnable: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHINTENABLE,
426
- zoomHintText: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHINTTEXT,
427
- zoomMsgHover: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMMSGHOVER,
428
- zoomMsgClick: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMMSGCLICK,
429
- slideInTime: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINTIME,
430
- slideInEasingCSS3: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINEASINGCSS3,
431
- slideInEasing: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINEASING,
432
- slideInScale:AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINSCALE,
433
- slideOutScale: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTSCALE,
434
- slideOutOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTOPACITY,
435
- slideOutDest: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTDEST,
436
- onInit: AJAXZOOM_MOUSEOVERZOOMPARAM_ONINIT,
437
- onLoad: AJAXZOOM_MOUSEOVERZOOMPARAM_ONLOAD,
438
- onImageChange: AJAXZOOM_MOUSEOVERZOOMPARAM_ONIMAGECHANGE,
439
- onMouseOver: AJAXZOOM_MOUSEOVERZOOMPARAM_ONMOUSEOVER,
440
- onMouseOut: AJAXZOOM_MOUSEOVERZOOMPARAM_ONMOUSEOUT,
441
- spinner: AJAXZOOM_MOUSEOVERZOOMPARAM_SPINNER,
442
- spinnerParam: AJAXZOOM_MOUSEOVERZOOMPARAM_SPINNERPARAM
443
- }
444
- };
445
-
446
- // Swatches
447
- var resetAxZoom = function() {
448
- if (JSON.stringify({images: IMAGES_JSON, images360: IMAGES_360_JSON}) == IMAGES_AND_360_LOADED) {
449
- return;
450
- }
451
-
452
- IMAGES_AND_360_LOADED = JSON.stringify({images: IMAGES_JSON, images360: IMAGES_360_JSON});
453
- jQuery.mouseOverZoomInit.replaceImages( {
454
- divID: AJAXZOOM_MAIN_DIVID,
455
- galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
456
- images: IMAGES_JSON,
457
- images360: IMAGES_360_JSON
458
- });
459
- };
460
-
461
- // Change values
462
- var updateAxZoomAction = function(idxSel, checkout) {
463
- //JSON.stringify(obj1) === JSON.stringify(obj2)
464
- if ( (jQuery.isPlainObject(idxSel.images) && !jQuery.isEmptyObject(idxSel.images) )
465
- || (jQuery.isPlainObject(idxSel.images360) && !jQuery.isEmptyObject(idxSel.images360) )) {
466
-
467
- if (JSON.stringify({images: idxSel.images, images360: idxSel.images360}) == IMAGES_AND_360_LOADED){
468
- return;
469
- }
470
-
471
- IMAGES_AND_360_LOADED = JSON.stringify({images: idxSel.images, images360: idxSel.images360});
472
-
473
- if (checkout){
474
- zoomParams.images = idxSel.images;
475
- zoomParams.images360 = idxSel.images360;
476
- jQuery.mouseOverZoomInit(zoomParams);
477
- } else {
478
- jQuery.mouseOverZoomInit.replaceImages( {
479
- divID: AJAXZOOM_MAIN_DIVID,
480
- galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
481
- images: idxSel.images,
482
- images360: idxSel.images360
483
- } );
484
- }
485
- } else { // show initial images
486
- resetAxZoom();
487
- }
488
- };
489
-
490
- var updateAxZoom = function(e, check) {
491
- var obj = jQuery(this);
492
- var requestSet = function() {
493
- if (!spConfig){
494
- return;
495
- }
496
-
497
- if((!check && e && e.type == 'change' && obj.val() == '')) {
498
- resetAxZoom();
499
- return;
500
- }
501
-
502
- var pairs = [];
503
- var inWhichObj = (check ? (spConfig.values ? spConfig.values : spConfig.state) : spConfig.state);
504
- for (var k in inWhichObj) {
505
- if (typeof spConfig.state[k] !== 'function' && typeof spConfig.state[k] !== 'object' && (spConfig.state[k] != false || (spConfig.values && check))) {
506
- pairs.push(k + ':' + inWhichObj[k]);
507
- }
508
- }
509
-
510
- var idx = pairs.join(',');
511
- var idxSel = axAssociated[idx];
512
-
513
- if (check) {
514
- return idxSel;
515
- }
516
-
517
- if (idxSel) {
518
- updateAxZoomAction(idxSel);
519
- } else {
520
- // try to find whatever
521
- jQuery.each(axAssociated, function(k, v){
522
- if (k.indexOf(idx) != -1){
523
- updateAxZoomAction(v);
524
- return false;
525
- }
526
- })
527
- }
528
- };
529
-
530
- if (check){
531
- return requestSet();
532
- }else{
533
- setTimeout(function(){
534
- requestSet();
535
- }, 50);
536
- }
537
-
538
- };
539
-
540
- // Shortcut for maybe other applications or additional functionality
541
- // window.resetAxZoom() will reset AJAX-ZOOM to the state when article is loaded without attribute selection
542
- window.resetAxZoom = resetAxZoom;
543
- window.updateAxZoom = updateAxZoom;
544
-
545
- // Init AJAX-ZOOM
546
- jQuery.mouseOverZoomInit(zoomParams);
547
-
548
- jQuery(document).ready(function() {
549
- jQuery('.swatch-label').click(updateAxZoom); // version 1.9.1 or more
550
- jQuery('.super-attribute-select').change(updateAxZoom);
551
- if (window.spConfig && spConfig.values) {
552
- var aaa = window.updateAxZoom(null, true);
553
- if (aaa){
554
- updateAxZoomAction(aaa);
555
- }
556
- }
557
- });
558
 
559
  })(jQuery);
560
  </script>
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /app/design/frontend/base/default/template/ax_zoom/catalog/product/view/media.phtml
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
18
  $productId = $_product->getId();
19
  $ax = Mage::getModel('axzoom/ax360');
20
  $conf = Mage::getStoreConfig('axzoom_options');
21
+ $ajaxzoom_initParam = $ax->prepareInitParamFront($conf);
22
  $axZmPath = Mage::getBaseUrl('js') . 'axzoom/axZm/';
23
  $product = Mage::getModel('catalog/product')->load($productId);
24
  $images360Json = $ax->images360Json($productId);
25
  $imagesJsonAll = array();
 
 
 
26
  ?>
27
 
28
  <script type="text/javascript">
29
+ // Fallback if catalog_product_view reference name="head" is not loaded
30
+ var mageAzJsUrl = '<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'axzoom/'; ?>';
31
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"check_fallback.js'%3E%3C/script%3E"));
32
  </script>
33
 
34
  <?php echo !function_exists('ioncube_loader_iversion') ? '<div style="padding: 5px; margin-bottom: 5px; border: 1px solid red">'.$this->__('PHP "Ioncube loader" is not installed on this server. Please install this extension!').'</div>' : '';?>
35
 
36
+ <div class="axZm_mouseOverWithGalleryContainer" id="axZm_mouseOverWithGalleryContainer">
37
+
38
+ <!-- Parent container for offset to the left or right -->
39
+ <div class="axZm_mouseOverZoomContainerWrap">
40
+
41
+ <!-- Alternative container for title of the images -->
42
+ <div class="axZm_mouseOverTitleParentAbove"></div>
43
+
44
+ <!-- Container for mouse over image -->
45
+ <div id="<?php echo $conf['general_settings']['divID']; ?>" class="axZm_mouseOverZoomContainer">
46
+
47
+ <!-- Optional CSS aspect ratio and message to preserve layout before JS is triggered -->
48
+ <div class="axZm_mouseOverAspectRatio">
49
+ <div>
50
+ <span><?php echo $this->__('Image loading...'); ?></span>
51
+ </div>
52
+ </div>
53
+
54
+ </div>
55
+ </div>
56
+
57
+ <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
58
+ <div id="<?php echo $conf['general_settings']['galleryDivID']; ?>" class="axZm_mouseOverGallery"></div>
59
+
60
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
  <?php
63
  // 360 assigned from configurable products to Simple products
64
  $map = array();
65
  if ($groups = $ax->getCollection()->addFieldToFilter('id_product', $productId)->getData()) {
66
+ foreach ($groups as $group) {
67
+ $comp = Mage::helper('core')->jsonDecode($group['combinations']);
68
+ if ($comp) {
69
+ foreach ($comp as $pid) {
70
+ if (!isset($map[$pid])) {
71
+ $map[$pid] = array();
72
+ }
73
+ array_push($map[$pid], $group['id_360']);
74
+ }
75
+ }
76
+ }
77
  }
78
 
79
  // all attributes map
80
  $mapAttributesCodeId = array();
81
  $attributes = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();
82
+ foreach ($attributes as $attribute) {
83
+ $mapAttributesCodeId[$attribute->getAttributecode()] = $attribute->getId();
84
  }
85
  $mapAttributesIdCode = array_flip($mapAttributesCodeId);
86
 
87
  // get configurable options
88
  if ($product->type_id == 'configurable') {
89
+ $attributesCodes = array();
90
+ $productAttributesOptions = $product->getTypeInstance(true)->getConfigurableOptions($product);
91
+ foreach ($productAttributesOptions as $productAttributeId => $productAttributeOption) {
92
+ $attributesCodes[] = $mapAttributesIdCode[$productAttributeId];
93
+ }
94
  }
95
 
96
  // get associated products
97
  $res = array();
98
  if ($product->isConfigurable()) {
99
+ $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);
100
+
101
+ foreach ($childProducts as $child) {
102
+
103
+ $data = $child->getData();
104
+ $p = Mage::getModel('catalog/product')->load($data['entity_id']);
105
+
106
+ $pairs = array();
107
+ $labels = array();
108
+
109
+ foreach ($attributesCodes as $code) { // $code is e.g. color or size
110
+ $pairs[] = $mapAttributesCodeId[$code] . ':' . $data[$code]; // generate pairs of attribures
111
+ $attr = $product->getResource()->getAttribute($code);
112
+
113
+ // We need to get default label value and not language value - getAllOptions(false, true) will return default values
114
+ // http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Attribute_Source_Table.html
115
+ $option_label = $ax->findDefaultLabelValue($attr->getSource()->getAllOptions(false, true), $data[$code]);
116
+
117
+ if ($option_label == false) {
118
+ // This would return language specific values
119
+ $option_label = $attr->getSource()->getOptionText($data[$code]);
120
+ }
121
+
122
+ array_push($labels, trim($option_label));
123
+ }
124
+
125
+ $idx = implode(',', $pairs);
126
+ $res[$idx] = array();
127
+
128
+ $obj = null;
129
+ $cnt = 0;
130
+
131
+ // add native images
132
+ foreach ($p->getMediaGalleryImages() as $image) {
133
+ $tmp = parse_url($image->getUrl());
134
+ if (!$obj) {
135
+ $obj = new stdClass;
136
+ }
137
+ $params = new stdClass;
138
+ $params->img = $tmp['path'];
139
+ array_push($imagesJsonAll, $tmp['path']);
140
+ $params->title = '';
141
+ $obj->$cnt = $params;
142
+ $cnt++;
143
+ }
144
+
145
+ // add related images via labels (images from configurable product)
146
+ foreach ($product->getMediaGalleryImages() as $image) {
147
+ if ($image->label_default != '' && in_array(trim($image->label_default), $labels)) {
148
+ $tmp = parse_url($image->getUrl());
149
+ if (!$obj) {
150
+ $obj = new stdClass;
151
+ }
152
+ $params = new stdClass;
153
+ $params->img = $tmp['path'];
154
+ array_push($imagesJsonAll, $tmp['path']);
155
+ $params->title = '';
156
+ $obj->$cnt = $params;
157
+ $cnt++;
158
+ } else {
159
+ $tmp = parse_url($image->getUrl());
160
+ array_push($imagesJsonAll, $tmp['path']);
161
+ }
162
+ }
163
+
164
+ if ($obj != null) {
165
+ $res[$idx]['images'] = $obj;
166
+ } else {
167
+ $res[$idx]['images'] = new stdClass();
168
+ }
169
+
170
+ $extraGroups = empty($map[$data['entity_id']]) ? array() : $map[$data['entity_id']];
171
+ $res[$idx]['images360'] = Mage::helper('core')->jsonDecode(str_replace("'", '"', $ax->images360Json($data['entity_id'], $extraGroups)));
172
+ }
173
  }
174
 
175
  // Prepare json for AJAX-ZOOM
179
 
180
  // Some images present
181
  if (count($this->getGalleryImages()) > 0) {
182
+ // If no base image is defined and there is only one image in the gallery and there is a 360 view for this product, then we do not show this image at all.
183
+ // You can change it by setting the radio button "Base Image" under product configuration -> Images
184
+ if (!($images360Json != '{}' && count($this->getGalleryImages()) == 1 && $product->getImage() == 'no_selection')) {
185
+
186
+ // Loop over gallery images
187
+ foreach ($this->getGalleryImages() as $image) {
188
+
189
+ $check_image = false;
190
+
191
+ if (method_exists($this, 'isGalleryImageVisible')) {
192
+ $check_image = $this->isGalleryImageVisible($image);
193
+ } else {
194
+ $check_image = true;
195
+ }
196
+
197
+ if ($check_image) {
198
+ $cnt++;
199
+ $tmp = parse_url($image->getUrl());
200
+ array_push($imagesJson, $cnt . ': {img: "' . $tmp['path'] . '", title: ""}');
201
+ }
202
+ }
203
+ }
204
+ } elseif ($conf['plugin_settings']['magentoNoImage']) { // No images present
205
+ if ($image_url = $this->helper('catalog/image')->init($product, 'image')) {
206
+ $tmp = parse_url($image_url);
207
+ array_push($imagesJson, '1: {img: "' . $tmp['path'] . '", title: ""}');
208
+ }
 
 
 
 
209
  }
210
 
211
+ echo $this->getChildHtml('after');
 
212
  ?>
213
 
214
  <!-- AJAX-ZOOM js block -->
216
  /*!
217
  * Module: jQuery AJAX-ZOOM for Magento
218
  * Info: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
219
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
220
  * @license http://www.ajax-zoom.com/index.php?cid=download
221
  */
222
 
223
+ ;(function($) {
224
+
225
+ if (!jQuery.axZm_psh) {
226
+ jQuery.axZm_psh = { };
227
+ }
228
+
229
+ // Default plain images
230
+ <?php if ($conf['plugin_settings']['magentoAllImages'] == 'true'){ ?>
231
+ jQuery.axZm_psh.IMAGES_JSON = <?php echo $ax->imagesJsonAll($imagesJsonAll);?>;
232
+ <?php } else { ?>
233
+ jQuery.axZm_psh.IMAGES_JSON = {<?php echo implode(',', $imagesJson); ?>};
234
+ <?php } ?>
235
+
236
+ // Default 360
237
+ jQuery.axZm_psh.IMAGES_360_JSON = <?php echo $images360Json; ?>;
238
+ jQuery.axZm_psh.axZmPath = '<?php echo $axZmPath; ?>';
239
+ jQuery.axZm_psh.shopLang = '<?php echo substr(Mage::app()->getLocale()->getLocaleCode(), 0, 2); ?>';
240
+ jQuery.axZm_psh.initParam = <?php echo $ajaxzoom_initParam; ?>;
241
+ jQuery.axZm_psh.divID = jQuery.axZm_psh.initParam.divID;
242
+ jQuery.axZm_psh.galleryDivID = jQuery.axZm_psh.initParam.galleryDivID;
243
+
244
+ // Colors / attributes
245
+ jQuery.axZm_psh.axAssociated = jQuery.parseJSON('<?php echo Mage::helper('core')->jsonEncode($res); ?>');
246
+
247
+ // Need that later for not reloading if images are the same
248
+ jQuery.axZm_psh.IMAGES_AND_360_LOADED = JSON.stringify({
249
+ images: jQuery.extend(true, {}, jQuery.axZm_psh.IMAGES_JSON),
250
+ images360: jQuery.extend(true, {}, jQuery.axZm_psh.IMAGES_360_JSON)
251
+ });
252
+
253
+ // Swatches
254
+ jQuery.axZm_psh.resetAxZoom = function() {
255
+ if (JSON.stringify({images: jQuery.axZm_psh.IMAGES_JSON, images360: jQuery.axZm_psh.IMAGES_360_JSON}) == jQuery.axZm_psh.IMAGES_AND_360_LOADED) {
256
+ return;
257
+ }
258
+
259
+ jQuery.axZm_psh.IMAGES_AND_360_LOADED = JSON.stringify({
260
+ images: jQuery.axZm_psh.IMAGES_JSON,
261
+ images360: jQuery.axZm_psh.IMAGES_360_JSON
262
+ });
263
+
264
+ jQuery.mouseOverZoomInit.replaceImages({
265
+ divID: jQuery.axZm_psh.divID,
266
+ galleryDivID: jQuery.axZm_psh.galleryDivID,
267
+ images: jQuery.axZm_psh.IMAGES_JSON,
268
+ images360: jQuery.axZm_psh.IMAGES_360_JSON
269
+ });
270
+ };
271
+
272
+ // Change values
273
+ jQuery.axZm_psh.updateAxZoomAction = function(idxSel, checkout) {
274
+ if (
275
+ (jQuery.isPlainObject(idxSel.images) && !jQuery.isEmptyObject(idxSel.images))
276
+ || (jQuery.isPlainObject(idxSel.images360) && !jQuery.isEmptyObject(idxSel.images360))
277
+ ) {
278
+
279
+ if (JSON.stringify({images: idxSel.images, images360: idxSel.images360}) == jQuery.axZm_psh.IMAGES_AND_360_LOADED) {
280
+ return;
281
+ }
282
+
283
+ jQuery.axZm_psh.IMAGES_AND_360_LOADED = JSON.stringify({images: idxSel.images, images360: idxSel.images360});
284
+
285
+ if (checkout) {
286
+ jQuery.axZm_psh.initParam.images = idxSel.images;
287
+ jQuery.axZm_psh.initParam.images360 = idxSel.images360;
288
+ jQuery.mouseOverZoomInit(jQuery.axZm_psh.initParam);
289
+ } else {
290
+ jQuery.mouseOverZoomInit.replaceImages( {
291
+ divID: jQuery.axZm_psh.divID,
292
+ galleryDivID: jQuery.axZm_psh.galleryDivID,
293
+ images: idxSel.images,
294
+ images360: idxSel.images360
295
+ });
296
+ }
297
+ } else { // show initial images
298
+ jQuery.axZm_psh.resetAxZoom();
299
+ }
300
+ };
301
+
302
+ jQuery.axZm_psh.updateAxZoom = function(e, check) {
303
+ var obj = jQuery(this);
304
+ var requestSet = function() {
305
+ if (!spConfig) {
306
+ return;
307
+ }
308
+
309
+ if (!check && e && e.type == 'change' && obj.val() == '') {
310
+ jQuery.axZm_psh.resetAxZoom();
311
+ return;
312
+ }
313
+
314
+ var pairs = [];
315
+ var inWhichObj = (check ? (spConfig.values ? spConfig.values : spConfig.state) : spConfig.state);
316
+ for (var k in inWhichObj) {
317
+ if (
318
+ typeof spConfig.state[k] !== 'function'
319
+ && typeof spConfig.state[k] !== 'object'
320
+ && (spConfig.state[k] != false
321
+ || (spConfig.values && check))
322
+ ) {
323
+ pairs.push(k + ':' + inWhichObj[k]);
324
+ }
325
+ }
326
+
327
+ var idx = pairs.join(',');
328
+ var idxSel = jQuery.axZm_psh.axAssociated[idx];
329
+
330
+ if (check) {
331
+ return idxSel;
332
+ }
333
+
334
+ if (idxSel) {
335
+ jQuery.axZm_psh.updateAxZoomAction(idxSel);
336
+ } else {
337
+ // try to find whatever
338
+ jQuery.each(jQuery.axZm_psh.axAssociated, function(k, v) {
339
+ if (k.indexOf(idx) != -1) {
340
+ jQuery.axZm_psh.updateAxZoomAction(v);
341
+ return false;
342
+ }
343
+ })
344
+ }
345
+ };
346
+
347
+ if (check) {
348
+ return requestSet();
349
+ } else {
350
+ setTimeout(function() {
351
+ requestSet();
352
+ }, 50);
353
+ }
354
+
355
+ };
356
+
357
+ // Shortcut for maybe other applications or additional functionality
358
+ // window.resetAxZoom() will reset AJAX-ZOOM to the state when article is loaded without attribute selection
359
+ window.resetAxZoom = jQuery.axZm_psh.resetAxZoom;
360
+ window.updateAxZoom = jQuery.axZm_psh.updateAxZoom;
361
+
362
+ // Init AJAX-ZOOM
363
+ jQuery.mouseOverZoomInit(jQuery.axZm_psh.initParam);
364
+
365
+ jQuery(document).ready(function() {
366
+ jQuery('.swatch-label').click(jQuery.axZm_psh.updateAxZoom); // version 1.9.1 or more
367
+ jQuery('.super-attribute-select').change(jQuery.axZm_psh.updateAxZoom);
368
+
369
+ if (window.spConfig && spConfig.values) {
370
+ var aaa = window.updateAxZoom(null, true);
371
+ if (aaa) {
372
+ jQuery.axZm_psh.updateAxZoomAction(aaa);
373
+ }
374
+ }
375
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
 
377
  })(jQuery);
378
  </script>
app/etc/modules/Ax_Zoom.xml CHANGED
@@ -2,16 +2,16 @@
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/etc/modules/Ax_Zoom.xml
5
- * Copyright: Copyright (c) 2010-2015 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
- * Version: 1.2.0
8
- * Date: 2016-05-07
9
- * Review: 2016-05-07
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
- * @copyright 2010-2015 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
2
  <!--
3
  /**
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/etc/modules/Ax_Zoom.xml
5
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
+ * Version: 1.3.0
8
+ * Date: 2017-06-25
9
+ * Review: 2017-06-25
10
  * URL: http://www.ajax-zoom.com
11
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
12
  *
13
  * @author AJAX-ZOOM <support@ajax-zoom.com>
14
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
15
  * @license http://www.ajax-zoom.com/index.php?cid=download
16
  */
17
  -->
js/axzoom/axzoom.css ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/axzoom.css
3
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
4
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
+ * Version: 1.3.0
6
+ * Date: 2017-06-25
7
+ * Review: 2017-06-25
8
+ * URL: http://www.ajax-zoom.com
9
+ * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
+ *
11
+ * @author AJAX-ZOOM <support@ajax-zoom.com>
12
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
13
+ * @license http://www.ajax-zoom.com/index.php?cid=download
14
+ */
15
+
16
+ /* Overwrite some css from /axZm/axZm.css */
17
+ .zFsO {
18
+ background-color: #FFFFFF;
19
+ }
20
+
21
+ .zFsOResOverlay {
22
+ background-color: #FFFFFF;
23
+ }
24
+
25
+ #axZmTempLoading {
26
+ background-image: url('axZm/icons/ajax-loader-bert.gif');
27
+ background-repeat: no-repeat;
28
+ background-position: center;
29
+ background-size: 64px 8px;
30
+ }
31
+
32
+ .axZm_spinPreloaderBar {
33
+ background-color: #0191ff;
34
+ background-image: url('axZm/icons/spin_preloader_blue_10x10.png');
35
+ }
36
+
37
+ .axZm_spinPreloaderHolder {
38
+ background-image: url('axZm/icons/tr_black_50.png');
39
+ -moz-border-radius: 0px;
40
+ -webkit-border-radius: 0px;
41
+ border-radius: 0px;
42
+ }
43
+
44
+ @media screen and (max-width: 770px) {
45
+ .axZm_mouseOverZoomContainerWrap {
46
+ border-width: 0;
47
+ }
48
+ }
49
+
50
+ #fancybox-wrap {
51
+ z-index: 2147483646 !important;
52
+ }
53
+
54
+ body>#zFsO {
55
+ z-index: 2147483646 !important;
56
+ }
js/axzoom/check_fallback.js CHANGED
@@ -1,44 +1,47 @@
1
  /**
2
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/check_fallback.js
3
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
- * Version: 1.2.0
6
- * Date: 2016-05-07
7
- * Review: 2016-05-07
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
16
- if (!window.mageAzJsUrl){mageAzJsUrl = '/js/axzoom/';}
 
 
 
17
  document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"check_jquery.js'%3E%3C/script%3E"));
18
 
19
- if (!jQuery.isFunction(jQuery.mouseOverZoomInit)){
20
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/axZm.css' %3E"));
21
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/skins/default/jquery.axZm.thumbSlider.css' %3E"));
22
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.4.css' %3E"));
23
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/mods/jquery.axZm.mouseOverZoomMagento.4.css' %3E"));
24
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.expButton.css' %3E"));
25
-
26
- if (!jQuery.isFunction(jQuery.fancybox)){
27
- document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css' %3E"));
28
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js'%3E%3C/script%3E"));
29
- }
30
-
31
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/jquery.axZm.js'%3E%3C/script%3E"));
32
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/lib/jquery.mousewheel.min.js'%3E%3C/script%3E"));
33
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/lib/jquery.axZm.thumbSlider.js'%3E%3C/script%3E"));
34
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/spin/spin.min.js'%3E%3C/script%3E"));
35
-
36
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.expButton.js'%3E%3C/script%3E"));
37
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.imageCropLoad.js'%3E%3C/script%3E"));
38
-
39
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.4.js'%3E%3C/script%3E"));
40
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoomInit.4.js'%3E%3C/script%3E"));
41
-
42
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js'%3E%3C/script%3E"));
43
- document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/JSON/jquery.json-2.3.min.js'%3E%3C/script%3E"));
44
  }
1
  /**
2
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/check_fallback.js
3
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
+ * Version: 1.3.0
6
+ * Date: 2017-06-25
7
+ * Review: 2017-06-25
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
16
+ if (!window.mageAzJsUrl){
17
+ mageAzJsUrl = '/js/axzoom/';
18
+ }
19
+
20
  document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"check_jquery.js'%3E%3C/script%3E"));
21
 
22
+ if (!jQuery.isFunction(jQuery.mouseOverZoomInit)) {
23
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/axZm.css' %3E"));
24
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/skins/default/jquery.axZm.thumbSlider.css' %3E"));
25
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.5.css' %3E"));
26
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/mods/jquery.axZm.mouseOverZoomMagento.5.css' %3E"));
27
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.expButton.css' %3E"));
28
+
29
+ if (!jQuery.isFunction(jQuery.fancybox)){
30
+ document.writeln(unescape("%3Clink rel='stylesheet' type='text/css' href='"+mageAzJsUrl+"axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.css' %3E"));
31
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/demo/jquery.fancybox/jquery.fancybox-1.3.4.pack.js'%3E%3C/script%3E"));
32
+ }
33
+
34
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/jquery.axZm.js'%3E%3C/script%3E"));
35
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/lib/jquery.mousewheel.min.js'%3E%3C/script%3E"));
36
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmThumbSlider/lib/jquery.axZm.thumbSlider.js'%3E%3C/script%3E"));
37
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/spin/spin.min.js'%3E%3C/script%3E"));
38
+
39
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.expButton.js'%3E%3C/script%3E"));
40
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.imageCropLoad.js'%3E%3C/script%3E"));
41
+
42
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoom.5.js'%3E%3C/script%3E"));
43
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/axZmMouseOverZoom/jquery.axZm.mouseOverZoomInit.5.js'%3E%3C/script%3E"));
44
+
45
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/extensions/jquery.axZm.openAjaxZoomInFancyBox.js'%3E%3C/script%3E"));
46
+ document.writeln(unescape("%3Cscript type='text/javascript' src='"+mageAzJsUrl+"axZm/plugins/JSON/jquery.json-2.3.min.js'%3E%3C/script%3E"));
47
  }
js/axzoom/check_jquery.js CHANGED
@@ -1,15 +1,15 @@
1
  /**
2
- * Module: jQuery AJAX-ZOOM for Magento, /js/check_jquery.js
3
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
- * Version: 1.2.0
6
- * Date: 2016-05-07
7
- * Review: 2016-05-07
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
1
  /**
2
+ * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/check_jquery.js
3
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
+ * Version: 1.3.0
6
+ * Date: 2017-06-25
7
+ * Review: 2017-06-25
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
js/axzoom/check_jquery_admin.js CHANGED
@@ -1,43 +1,43 @@
1
  /**
2
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/check_jquery_admin.php
3
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
- * Version: 1.2.0
6
- * Date: 2016-05-07
7
- * Review: 2016-05-07
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
16
  ;(function(){
17
- // IE < 9 indexOf hack for arrays
18
- if (!Array.prototype.indexOf){
19
- Array.prototype.indexOf = function(elt /*, from*/){
20
- var len = this.length >>> 0;
21
- var from = Number(arguments[1]) || 0;
22
- from = (from < 0) ? Math.ceil(from) : Math.floor(from);
23
- if (from < 0) {from += len;}
24
- for (; from < len; from++){if (from in this && this[from] === elt) {return from;}}
25
- return -1;
26
- };
27
- }
28
 
29
- var pathname = window.location.pathname, basePath = '', pathArr = pathname.split('/');
30
- if (pathArr.length < 3){pathArr = pathname.split('\\');}
31
- for (var i = 1; i < pathArr.indexOf('index.php'); i++){basePath += '/' + pathArr[i];}
32
- if (!basePath){basePath = '/';} else {basePath += '/';} basePath = basePath.replace(/\/\/+/g, '\/');
33
-
34
- // If jQuery is not defined inject jQuery 1.11.3 core with jQuery.noConflict() and jquery-migrate 1.2.1
35
- if ( (typeof jQuery === 'undefined') && !window.jQuery ) {
36
- document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-1.11.3.min.js'%3E%3C/script%3E"));
37
- document.write(unescape("%3Cscript type='text/javascript'%3EjQuery.noConflict();%3C/script%3E"));
38
- document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-migrate-1.2.1.min.js'%3E%3C/script%3E"));
39
- } else {
40
- // Include jquery-migrate 1.2.1 as it can be missing
41
- document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-migrate-1.2.1.min.js'%3E%3C/script%3E"));
42
- }
43
  })();
1
  /**
2
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/check_jquery_admin.php
3
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
4
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
5
+ * Version: 1.3.0
6
+ * Date: 2017-06-25
7
+ * Review: 2017-06-25
8
  * URL: http://www.ajax-zoom.com
9
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
10
  *
11
  * @author AJAX-ZOOM <support@ajax-zoom.com>
12
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
13
  * @license http://www.ajax-zoom.com/index.php?cid=download
14
  */
15
 
16
  ;(function(){
17
+ // IE < 9 indexOf hack for arrays
18
+ if (!Array.prototype.indexOf){
19
+ Array.prototype.indexOf = function(elt /*, from*/){
20
+ var len = this.length >>> 0;
21
+ var from = Number(arguments[1]) || 0;
22
+ from = (from < 0) ? Math.ceil(from) : Math.floor(from);
23
+ if (from < 0) {from += len;}
24
+ for (; from < len; from++){if (from in this && this[from] === elt) {return from;}}
25
+ return -1;
26
+ };
27
+ }
28
 
29
+ var pathname = window.location.pathname, basePath = '', pathArr = pathname.split('/');
30
+ if (pathArr.length < 3){pathArr = pathname.split('\\');}
31
+ for (var i = 1; i < pathArr.indexOf('index.php'); i++){basePath += '/' + pathArr[i];}
32
+ if (!basePath){basePath = '/';} else {basePath += '/';} basePath = basePath.replace(/\/\/+/g, '\/');
33
+
34
+ // If jQuery is not defined inject jQuery 1.11.3 core with jQuery.noConflict() and jquery-migrate 1.2.1
35
+ if ( (typeof jQuery === 'undefined') && !window.jQuery ) {
36
+ document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-1.11.3.min.js'%3E%3C/script%3E"));
37
+ document.write(unescape("%3Cscript type='text/javascript'%3EjQuery.noConflict();%3C/script%3E"));
38
+ document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-migrate-1.2.1.min.js'%3E%3C/script%3E"));
39
+ } else {
40
+ // Include jquery-migrate 1.2.1 as it can be missing
41
+ document.write(unescape("%3Cscript type='text/javascript' src='"+basePath+"js/axzoom/jquery-migrate-1.2.1.min.js'%3E%3C/script%3E"));
42
+ }
43
  })();
js/axzoom/lic.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/lic.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.1
7
- * Date: 2016-05-15
8
- * Review: 2016-05-15
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
@@ -18,30 +18,29 @@ $obj = SimpleXML_Load_String(implode('', file(dirname(dirname(dirname(__FILE__))
18
  error_reporting(0);
19
  $tmp = array();
20
 
21
- if (function_exists('mysqli_connect')){
22
- $mysqli = mysqli_connect(preg_replace('/:[0-9]{1,}$/', '', (string)$obj->global->resources->default_setup->connection->host), (string)$obj->global->resources->default_setup->connection->username, (string)$obj->global->resources->default_setup->connection->password, (string)$obj->global->resources->default_setup->connection->dbname);
23
- $data_query = mysqli_query($mysqli, "SELECT `value` FROM `" . (string)$obj->global->resources->db->table_prefix . "core_config_data` WHERE `path` = 'axzoom_options/license/lic'");
24
- $data = mysqli_fetch_array($data_query);
25
- $tmp = unserialize($data['value']);
26
- mysqli_close($mysqli);
27
- }
28
- elseif (function_exists('mysql_connect')){
29
- $db_connect = mysql_connect(preg_replace('/:[0-9]{1,}$/', '', (string)$obj->global->resources->default_setup->connection->host), (string)$obj->global->resources->default_setup->connection->username, (string)$obj->global->resources->default_setup->connection->password);
30
- $db = mysql_select_db((string)$obj->global->resources->default_setup->connection->dbname, $db_connect);
31
- $data_query = mysql_query("SELECT `value` FROM `" . (string)$obj->global->resources->db->table_prefix . "core_config_data` WHERE `path` = 'axzoom_options/license/lic'");
32
- $data = mysql_fetch_array($data_query);
33
- $tmp = unserialize($data['value']);
34
- mysql_close($db_connect);
35
  }
36
 
37
- if (!empty($tmp)){
38
- foreach ($tmp as $key => $l){
39
- $zoom['config']['licenses'][$l['domain']] = array(
40
- 'licenceType' => $l['type'],
41
- 'licenceKey' => $l['license'],
42
- 'error200' => $l['error200'],
43
- 'error300' => $l['error300']
44
- );
45
- }
46
  }
47
  ?>
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/lic.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
18
  error_reporting(0);
19
  $tmp = array();
20
 
21
+ if (function_exists('mysqli_connect')) {
22
+ $mysqli = mysqli_connect(preg_replace('/:[0-9]{1,}$/', '', (string)$obj->global->resources->default_setup->connection->host), (string)$obj->global->resources->default_setup->connection->username, (string)$obj->global->resources->default_setup->connection->password, (string)$obj->global->resources->default_setup->connection->dbname);
23
+ $data_query = mysqli_query($mysqli, "SELECT `value` FROM `" . (string)$obj->global->resources->db->table_prefix . "core_config_data` WHERE `path` = 'axzoom_options/license/lic'");
24
+ $data = mysqli_fetch_array($data_query);
25
+ $tmp = unserialize($data['value']);
26
+ mysqli_close($mysqli);
27
+ } elseif (function_exists('mysql_connect')) {
28
+ $db_connect = mysql_connect(preg_replace('/:[0-9]{1,}$/', '', (string)$obj->global->resources->default_setup->connection->host), (string)$obj->global->resources->default_setup->connection->username, (string)$obj->global->resources->default_setup->connection->password);
29
+ $db = mysql_select_db((string)$obj->global->resources->default_setup->connection->dbname, $db_connect);
30
+ $data_query = mysql_query("SELECT `value` FROM `" . (string)$obj->global->resources->db->table_prefix . "core_config_data` WHERE `path` = 'axzoom_options/license/lic'");
31
+ $data = mysql_fetch_array($data_query);
32
+ $tmp = unserialize($data['value']);
33
+ mysql_close($db_connect);
 
34
  }
35
 
36
+ if (!empty($tmp)) {
37
+ foreach ($tmp as $key => $l) {
38
+ $zoom['config']['licenses'][$l['domain']] = array(
39
+ 'licenceType' => $l['type'],
40
+ 'licenceKey' => $l['license'],
41
+ 'error200' => $l['error200'],
42
+ 'error300' => $l['error300']
43
+ );
44
+ }
45
  }
46
  ?>
js/axzoom/preview/cropeditor.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /jss/axzoom/preview.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-08-22
8
- * Review: 2016-08-22
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /jss/axzoom/preview.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
js/axzoom/preview/hotspoteditor.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/preview/hotspoteditor.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.4
7
- * Date: 2016-08-22
8
- * Review: 2016-08-22
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/preview/hotspoteditor.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
js/axzoom/preview/index.php CHANGED
@@ -8,4 +8,3 @@ header('Pragma: no-cache');
8
 
9
  header('Location: ../');
10
  exit;
11
- ?>
8
 
9
  header('Location: ../');
10
  exit;
 
js/axzoom/zoomConfigCustomAZ.inc.php CHANGED
@@ -1,21 +1,19 @@
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/zoomConfigCustomAZ.inc.php
4
- * Copyright: Copyright (c) 2010-2016 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
- * Version: 1.2.0
7
- * Date: 2016-05-07
8
- * Review: 2016-05-07
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
- * @copyright 2010-2016 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  // You can also place / copy you custom parameters from /js/axzoom/axZm/zoomConfig.inc.php
18
  // or /js/axzoom/zoomConfigCustom.inc.php in this file below this message.
19
  // This way it would be possible to upgrade AJAX-ZOOM by fully overwriting /js/axzoom/axZm/ folder
20
-
21
- ?>
1
  <?php
2
  /**
3
  * Module: jQuery AJAX-ZOOM for Magento, /js/axzoom/zoomConfigCustomAZ.inc.php
4
+ * Copyright: Copyright (c) 2010-2017 Vadim Jacobi
5
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.3.0
7
+ * Date: 2017-06-25
8
+ * Review: 2017-06-25
9
  * URL: http://www.ajax-zoom.com
10
  * Documentation: http://www.ajax-zoom.com/index.php?cid=modules&module=magento
11
  *
12
  * @author AJAX-ZOOM <support@ajax-zoom.com>
13
+ * @copyright 2010-2017 AJAX-ZOOM, Vadim Jacobi
14
  * @license http://www.ajax-zoom.com/index.php?cid=download
15
  */
16
 
17
  // You can also place / copy you custom parameters from /js/axzoom/axZm/zoomConfig.inc.php
18
  // or /js/axzoom/zoomConfigCustom.inc.php in this file below this message.
19
  // This way it would be possible to upgrade AJAX-ZOOM by fully overwriting /js/axzoom/axZm/ folder
 
 
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AJAX_ZOOM</name>
4
- <version>1.2.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.ajax-zoom.com/index.php?cid=download">Commercial, demoware</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Responsive product detail view mousehover zoom extension with optional 360&#xB0; spins or multilevel 3D</summary>
10
  <description>Responsive, jQuery based mouse over zoom for viewing high resolution product images and optionally 360&#xB0; spins or multilevel 3D. Image pyramid / tiles view in responsive Fancybox or full screen on click. Upload or import 360&#xB0; images over admin interface. Optional responsive thumbnails slider integration. Instant (on-the-fly) generation of all thumbnails. Works great on touch-enabled devices. Free to download, install and test.</description>
11
- <notes>Fixed admin permissions on hotspots editor and 360 product tour for localhost.</notes>
12
  <authors><author><name>AJAX-ZOOM</name><user>vadus</user><email>support@ajax-zoom.com</email></author></authors>
13
- <date>2016-08-22</date>
14
- <time>23:15:31</time>
15
- <contents><target name="magelocal"><dir><dir name="Ax"><dir><dir name="Zoom"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="License.php" hash="66127902dffd0fd9a530057907733d46"/></dir></dir></dir><dir name="Tabs"><file name="Tabid.php" hash="e1c649d4992cc73a6601c129677df806"/></dir><file name="Tabs.php" hash="0239c3a73cdeb05fab451a3219bea07f"/></dir></dir><dir name="Helper"><file name="Data.php" hash="0f05da01383c450e5abb331f06bd3304"/><file name="Head.php" hash="8803a48e89902a3deec90a2145523830"/></dir><dir name="Model"><file name="Ax360.php" hash="063ea3e436c3ea1fd8b74e102e99b78f"/><file name="Ax360set.php" hash="57c4e9979d8ae6ee709921718060d151"/><file name="Axproducts.php" hash="9e6449b0229d6c83497094bed536f5f9"/><file name="Galleryposition.php" hash="9d8812051417db9e39c4c5a1412deb81"/><file name="Observer.php" hash="bfcd571e1e0fd7f80176d733e0fa2075"/><file name="Position.php" hash="4df583defefa6a8a4302b3b06846a38c"/><file name="Position4.php" hash="d5b23c5a5cc98abd4b1ed45e0b829298"/><dir name="Resource"><dir name="Ax360"><file name="Collection.php" hash="95ab28070ce834f8176c5457b2f920e8"/></dir><file name="Ax360.php" hash="ca8ac71cf2b5dc3e5660946122c22e12"/><dir name="Ax360set"><file name="Collection.php" hash="448603fb57c42f09bd5e044214ff6bee"/></dir><file name="Ax360set.php" hash="52cd74b4bd994d6812db71f8ece455a1"/><dir name="Axproducts"><file name="Collection.php" hash="89e23ff705c2c4c8de3a2b5eb617deda"/></dir><file name="Axproducts.php" hash="7ec4b5dc2f19cc440a7dd3e440eaa8d1"/></dir><file name="Words.php" hash="a246e42282ccd636a38873ea3ca70237"/><file name="Yesno.php" hash="71b1887dcb4161688c7d9f64e245ec1c"/></dir><dir name="controllers"><file name="AxzoomController.php" hash="f761b2124cbbc2fb722a3c4914d0ca8c"/></dir><dir name="etc"><file name="config.xml" hash="c76c8c00649da4c76ad3a66ed8245711"/><file name="system.xml" hash="97dcf137c1095efac8603e8a3ec87134"/></dir><dir name="sql"><dir name="axzoom_setup"><file name="install-0.0.1.php" hash="5ec4193d7c851a032734daaf7d321b72"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="9987ad3d3421b896101314e336b3fe7f"/></dir><dir name="template"><dir name="axzoom"><file name="tab.phtml" hash="5dab2ed3a1d1358f5d8acf2385bdc134"/><file name="tab360-sets.phtml" hash="11faa9c92c9d1b5537c2509ba85f3c8a"/><file name="tab360-settings.phtml" hash="fd90ef81c0175374337c1cd00cc9dc25"/><file name="tab360.phtml" hash="9fd8e285234c5698d3000b6271cf5e5f"/><file name="uploader.phtml" hash="ee293453776e3d9862bd3c5cf03be13e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="46f90ee9227387c6e0df207d9e75aed7"/></dir><dir name="template"><dir name="ax_zoom"><dir><dir name="catalog"><dir name="product"><dir name="view"><file name="media.phtml" hash="1fc17696c80d2931481225562e9ab276"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ax_Zoom.xml" hash="b3ca0f170cfea52154fac0d92fc8390e"/></dir></dir></target><target name="magelocale"><dir><dir name="ru_RU"><file name="Ax_Zoom.csv" hash="ad9b1e1ad87a1187dbd076b43af97429"/></dir></dir></target><target name="mageweb"><dir><dir name="js"><dir name="axzoom"><file name="check_fallback.js" hash="23a0cf74d487426d7124209136608d69"/><file name="check_jquery.js" hash="e6a9ffca4d09e86a4b795c63b8732fc3"/><file name="check_jquery_admin.js" hash="6b9d9517795bb2cf8e63bad60cea7a48"/><file name="image_path.gif" hash="bf922e182e18a02613f26ca5eaa4c560"/><file name="jquery-1.11.3.min.js" hash="1c1e3d814cc7278f801463874463e504"/><file name="jquery-migrate-1.2.1.min.js" hash="eb05d8d73b5b13d8d84308a4751ece96"/><file name="jquery.fileupload-process.js" hash="0da6f8ef76956f6ce7842dcf8941d1fa"/><file name="jquery.fileupload-validate.js" hash="561d450d59e39724999629cae64cd80e"/><file name="jquery.fileupload.js" hash="d4b3a5c4f6e69185727cfe98f17f0239"/><file name="jquery.livequery.htc" hash="6fddf8d185aa26ca790c9f435fee8bad"/><file name="jquery.livequery.min.js" hash="295403b41c10cc54df7c580e269088ca"/><file name="jquery.ui.widget.min.js" hash="2425a542e6dde093dd85ac0b5adc0141"/><file name="lic.php" hash="284821bf8557dfaa6a3c07d85ddfc13d"/><file name="no_image-100x100.jpg" hash="ebbaa789d1a5e5b1bb6fdb9ccd683aa2"/><dir><dir name="pic"><file name="readme.txt" hash="763fdb72282a84d27d9a6c93e014775a"/></dir><dir name="preview"><file name="cropeditor.php" hash="993db5bdd81e29f803e421dc40b31a08"/><file name="hotspoteditor.php" hash="91b2a61904202cb08e18abd5f9a4e0e9"/><file name="index.php" hash="c304cfb13785e145e95d5f21cc95bd12"/><file name="preview.php" hash="ab5fe432a8e2e2aa95e600a8726a6e07"/></dir><dir name="tmp"><file name="readme.txt" hash="b17a61b9642c5d472107ab7023c5c880"/></dir><dir name="zip"><file name="readme.txt" hash="2134ad018dd3da577df745a04d22899f"/><file name=".htaccess" hash="209634bb0238704c4874c35d615ae59e"/></dir></dir><file name="zoomConfigCustomAZ.inc.php" hash="b120374793d953ae1bfb49accc3e4733"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.7.99</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AJAX_ZOOM</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.ajax-zoom.com/index.php?cid=download">Commercial, demoware</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Responsive product detail view mousehover zoom extension with optional 360&#xB0; spins or multilevel 3D</summary>
10
  <description>Responsive, jQuery based mouse over zoom for viewing high resolution product images and optionally 360&#xB0; spins or multilevel 3D. Image pyramid / tiles view in responsive Fancybox or full screen on click. Upload or import 360&#xB0; images over admin interface. Optional responsive thumbnails slider integration. Instant (on-the-fly) generation of all thumbnails. Works great on touch-enabled devices. Free to download, install and test.</description>
11
+ <notes>Implemented new AJAX-ZOOM mouseover extension ver. 5</notes>
12
  <authors><author><name>AJAX-ZOOM</name><user>vadus</user><email>support@ajax-zoom.com</email></author></authors>
13
+ <date>2017-06-25</date>
14
+ <time>22:42:28</time>
15
+ <contents><target name="magelocal"><dir><dir name="Ax"><dir><dir name="Zoom"><file name="AzMouseoverConfig.php" hash="de8480679f6c19da150ede976000b02d"/><file name="AzMouseoverSettings.php" hash="75b7e8185df2f8c4deb85bae4538e419"/><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="License.php" hash="823741b08b2abe5bb5d380771ed0d7b0"/></dir><dir name="Form"><file name="Numberimages.php" hash="0e0433a7bd2e31e7fce215e37d70c041"/><file name="Resetbutton.php" hash="c2754c9ef5fb8aeaa244f9353a1c9dff"/></dir></dir></dir><dir name="Tabs"><file name="Tabid.php" hash="95688d270e55db954e0821c7f5b3a576"/></dir><file name="Tabs.php" hash="0239c3a73cdeb05fab451a3219bea07f"/></dir></dir><dir name="Helper"><file name="Data.php" hash="65dde38c994e4317282cb402c9f10ae2"/><file name="Head.php" hash="cce51ca9093fb52a36a7c6736893ea88"/></dir><dir name="Model"><file name="Ax360.php" hash="5886ccbae3ac0eda88245db084fc9b33"/><file name="Ax360set.php" hash="d150352d690ac0bd8efdc29a31a979bd"/><file name="Axproducts.php" hash="3dc27d0b17dcf5d5a8f801d79e5db6f9"/><file name="Azsettings.php" hash="092090f461a4e229590d73d1800848c7"/><file name="Observer.php" hash="93b99cb3774d564090bb10a469a5a87f"/><dir name="Resource"><dir name="Ax360"><file name="Collection.php" hash="7d54575bc5b18e8a16ff19f22e587998"/></dir><file name="Ax360.php" hash="87eb009cfb29575f68dd71e2702c6461"/><dir name="Ax360set"><file name="Collection.php" hash="1e8cae0d939b90c32f150390afb75eb9"/></dir><file name="Ax360set.php" hash="3906769edaf8bbed9b7f01dd8869e727"/><dir name="Axproducts"><file name="Collection.php" hash="749dc2fc678593b53b79ad6f1b81424a"/></dir><file name="Axproducts.php" hash="e990c1e0a8e36f2e98cd03b7b46b8263"/></dir></dir><dir name="controllers"><file name="AxzoomController.php" hash="d61c88a69940a52402b7305023a52a40"/></dir><dir name="etc"><file name="config.xml" hash="308e01e130f5c6dde2cf423b20e16d33"/><file name="system.xml" hash="9bce33b36232083bc5f9f9433963515c"/></dir><dir name="sql"><dir name="axzoom_setup"><file name="install-1.3.0.php" hash="985ac73d9663050c22b750db096c4a10"/><file name="upgrade-1.2.4-1.3.0.php" hash="53739c71882a7f93e6d6d2d4626e7b8a"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="bb5d1e8ed0d0a3704d36af426304b8e9"/></dir><dir name="template"><dir name="axzoom"><file name="tab.phtml" hash="a1e992be3bafe909f4186c13fcc57b1b"/><file name="tab360-sets.phtml" hash="1f22f02ec74a156477b2d8668871cd17"/><file name="tab360-settings.phtml" hash="cc4f87fed9864c30bcc8b2470e99bbaf"/><file name="tab360.phtml" hash="5c503fba6e19fe5463a3a636a7afb0b4"/><file name="uploader.phtml" hash="db9e9c4641039bb686437f3a4ab585c9"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="aedabcfafe4a15e856bb0cdd49f89a61"/></dir><dir name="template"><dir name="ax_zoom"><dir><dir name="catalog"><dir name="product"><dir name="view"><file name="media.phtml" hash="0169bfba8be9941d7739d1ea101c8cd2"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ax_Zoom.xml" hash="f97ccc3650bce6b54a8adaf2952246bd"/></dir></dir></target><target name="magelocale"><dir><dir name="ru_RU"><file name="Ax_Zoom.csv" hash="ad9b1e1ad87a1187dbd076b43af97429"/></dir></dir></target><target name="mageweb"><dir><dir name="js"><dir name="axzoom"><file name="axzoom.css" hash="43dd2c3e73f1946ce1295f2b9f779f3e"/><file name="check_fallback.js" hash="ae5e2712e814a35c7d54d550399d2bb1"/><file name="check_jquery.js" hash="8c2c126ba14f54104d621b4de2024711"/><file name="check_jquery_admin.js" hash="edecbe9cbd24c64c0da7f330277c945d"/><file name="image_path.gif" hash="bf922e182e18a02613f26ca5eaa4c560"/><file name="jquery-1.11.3.min.js" hash="1c1e3d814cc7278f801463874463e504"/><file name="jquery-migrate-1.2.1.min.js" hash="eb05d8d73b5b13d8d84308a4751ece96"/><file name="jquery.fileupload-process.js" hash="0da6f8ef76956f6ce7842dcf8941d1fa"/><file name="jquery.fileupload-validate.js" hash="561d450d59e39724999629cae64cd80e"/><file name="jquery.fileupload.js" hash="d4b3a5c4f6e69185727cfe98f17f0239"/><file name="jquery.livequery.htc" hash="6fddf8d185aa26ca790c9f435fee8bad"/><file name="jquery.livequery.min.js" hash="295403b41c10cc54df7c580e269088ca"/><file name="jquery.ui.widget.min.js" hash="2425a542e6dde093dd85ac0b5adc0141"/><file name="lic.php" hash="495b3f17a886f8c788f09a1d7e5c40d4"/><file name="no_image-100x100.jpg" hash="ebbaa789d1a5e5b1bb6fdb9ccd683aa2"/><dir><dir name="pic"><file name="readme.txt" hash="763fdb72282a84d27d9a6c93e014775a"/></dir><dir name="preview"><file name="cropeditor.php" hash="1a4080a0d140ee5cce3b4cd84b51b908"/><file name="hotspoteditor.php" hash="c34a3fedacb418abcc00b52f73d14932"/><file name="index.php" hash="ed8e2017f76a30b7323c499c52df21d9"/><file name="preview.php" hash="ab5fe432a8e2e2aa95e600a8726a6e07"/></dir><dir name="tmp"><file name="readme.txt" hash="b17a61b9642c5d472107ab7023c5c880"/></dir><dir name="zip"><file name="readme.txt" hash="2134ad018dd3da577df745a04d22899f"/><file name=".htaccess" hash="209634bb0238704c4874c35d615ae59e"/></dir></dir><file name="zoomConfigCustomAZ.inc.php" hash="14d70459b1a5a6b85517daecf77e23f3"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.7.99</max></php></required></dependencies>
18
  </package>