AJAX_ZOOM - Version 1.0.5

Version Notes

Fixed missing media.phtml in the package

Download this release

Release Info

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


Code changes from version 1.0.4 to 1.0.5

app/code/local/Ax/Zoom/etc/config.xml CHANGED
@@ -4,7 +4,7 @@
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/etc/config.xml
5
  * Copyright: Copyright (c) 2010-2015 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
- * Version: 1.0.4
8
  * Date: 2015-10-26
9
  * Review: 2015-10-26
10
  * URL: http://www.ajax-zoom.com
@@ -19,7 +19,7 @@
19
 
20
  <modules>
21
  <Ax_Zoom>
22
- <version>1.0.4</version>
23
  </Ax_Zoom>
24
  </modules>
25
 
4
  * Module: jQuery AJAX-ZOOM for Magento, /app/code/local/Ax/Zoom/etc/config.xml
5
  * Copyright: Copyright (c) 2010-2015 Vadim Jacobi
6
  * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
7
+ * Version: 1.0.5
8
  * Date: 2015-10-26
9
  * Review: 2015-10-26
10
  * URL: http://www.ajax-zoom.com
19
 
20
  <modules>
21
  <Ax_Zoom>
22
+ <version>1.0.5</version>
23
  </Ax_Zoom>
24
  </modules>
25
 
app/design/frontend/base/default/template/ax_zoom/catalog/product/view/media.phtml ADDED
@@ -0,0 +1,526 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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-2015 Vadim Jacobi
5
+ * License Agreement: http://www.ajax-zoom.com/index.php?cid=download
6
+ * Version: 1.0.4
7
+ * Date: 2015-10-26
8
+ * Review: 2015-10-26
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-2015 AJAX-ZOOM, Vadim Jacobi
14
+ * @license http://www.ajax-zoom.com/index.php?cid=download
15
+ */
16
+
17
+ $productId = Mage::app()->getRequest()->getParam('id');
18
+ $ax = Mage::getModel('axzoom/ax360');
19
+ $conf = Mage::getStoreConfig('axzoom_options');
20
+ $axZmPath = Mage::getBaseUrl('js') . 'axzoom/axZm/';
21
+ $product = Mage::getModel('catalog/product')->load($productId);
22
+ $images360Json = $ax->images360Json($productId);
23
+ $imagesJsonAll = array();
24
+
25
+ $az_gallery_position = $conf['main']['galleryPosition'];
26
+ if (!$az_gallery_position){$az_gallery_position = 'bottom';}
27
+ ?>
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 if ($az_gallery_position == 'bottom') { ?>
37
+ <!-- AJAX-ZOOM mouseover block gallery bottom -->
38
+ <div id="az_mouseOverZoomParent" style="position: relative; background-color: #FFFFFF;">
39
+ <!-- Container for mouse over image -->
40
+ <div id="az_mouseOverZoomContainer">
41
+ <?php echo $this->__('Zoom loading...');?>
42
+ </div>
43
+
44
+ <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
45
+ <div id="az_mouseOverZoomGallery">
46
+ <?php echo $this->__('Gellery loading...');?>
47
+ </div>
48
+ </div>
49
+ <?php } elseif ($az_gallery_position == 'top') { ?>
50
+ <!-- AJAX-ZOOM mouseover block gallery top -->
51
+ <div id="az_mouseOverZoomParent" style="position: relative;">
52
+
53
+ <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
54
+ <div id="az_mouseOverZoomGallery" style="position: relative; margin-bottom: 10px; height: 76px; width: 100%;">
55
+ <?php echo $this->__('Gellery loading...');?>
56
+ </div>
57
+
58
+ <!-- Container for mouse over image -->
59
+ <div id="az_mouseOverZoomContainer" style="position: relative; background-color: #FFFFFF; border: #AAA 1px solid;">
60
+ <?php echo $this->__('Mouseover Zoom loading...');?>
61
+ </div>
62
+ </div>
63
+ <?php } elseif ($az_gallery_position == 'left') { ?>
64
+ <!-- AJAX-ZOOM mouseover block gallery left -->
65
+ <div id="az_mouseOverZoomParent" style="position: relative; width: 100%; margin-bottom: 20px;">
66
+
67
+ <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
68
+ <div id="az_mouseOverZoomGallery" style="position: absolute; margin-top: 0; width: 72px; z-index: 1; height: 100%;">
69
+ <?php echo $this->__('Gellery loading...');?>
70
+ </div>
71
+
72
+ <!-- Parent container for offset to the left or right -->
73
+ <div id="az_mouseOverZoomContainerParentGalleryLeft" style="margin-left: 80px; min-height: 100px;">
74
+
75
+ <!-- Container for mouse over image -->
76
+ <div id="az_mouseOverZoomContainer" style="position: relative; border: #AAA 1px solid; background-color: #FFFFFF; padding: 0;">
77
+ <?php echo $this->__('Mouseover Zoom loading...');?>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ <?php } elseif ($az_gallery_position == 'right') { ?>
82
+ <!-- AJAX-ZOOM mouseover block gallery right -->
83
+ <div id="az_mouseOverZoomParent" style="position: relative; width: 100%; margin-bottom: 20px;">
84
+ <!-- gallery with thumbs (will be filled with thumbs by javascript) -->
85
+ <div id="az_mouseOverZoomGallery" style="position: absolute; margin-top: 0; right: 0; width: 72px; z-index: 1; height: 100%;">
86
+ <?php echo $this->__('Gellery loading...');?>
87
+ </div>
88
+
89
+ <!-- Parent container for offset to the left or right -->
90
+ <div id="az_mouseOverZoomContainerParentGalleryRight" style="margin-right: 80px; min-height: 100px;">
91
+
92
+ <!-- Container for mouse over image -->
93
+ <div id="az_mouseOverZoomContainer" style="position: relative; border: #AAA 1px solid; background-color: #FFFFFF; padding: 0;">
94
+ <?php echo $this->__('Mouseover Zoom loading...');?>
95
+ </div>
96
+ </div>
97
+ </div>
98
+
99
+ <?php } ?>
100
+
101
+ <?php
102
+ // 360 assigned from configurable products to Simple products
103
+ $map = array();
104
+ if ($groups = $ax->getCollection()->addFieldToFilter('id_product', $productId)->getData()) {
105
+ foreach ($groups as $group) {
106
+ $comp = Mage::helper('core')->jsonDecode($group['combinations']);
107
+ if ($comp) {
108
+ foreach ($comp as $pid) {
109
+ if (!isset($map[$pid])) {
110
+ $map[$pid] = array();
111
+ }
112
+ array_push($map[$pid], $group['id_360']);
113
+ }
114
+ }
115
+ }
116
+ }
117
+
118
+ // all attributes map
119
+ $mapAttributesCodeId = array();
120
+ $attributes = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();
121
+ foreach ($attributes as $attribute){
122
+ $mapAttributesCodeId[$attribute->getAttributecode()] = $attribute->getId();
123
+ }
124
+ $mapAttributesIdCode = array_flip($mapAttributesCodeId);
125
+
126
+ // get configurable options
127
+ if ($product->type_id == 'configurable') {
128
+ $attributesCodes = array();
129
+ $productAttributesOptions = $product->getTypeInstance(true)->getConfigurableOptions($product);
130
+ foreach ($productAttributesOptions as $productAttributeId => $productAttributeOption) {
131
+ $attributesCodes[] = $mapAttributesIdCode[$productAttributeId];
132
+ }
133
+ }
134
+
135
+ // get associated products
136
+ $res = array();
137
+ if ($product->isConfigurable()) {
138
+ $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);
139
+
140
+ foreach ($childProducts as $child) {
141
+
142
+ $data = $child->getData();
143
+ $p = Mage::getModel('catalog/product')->load($data['entity_id']);
144
+
145
+ $pairs = array();
146
+ $labels = array();
147
+
148
+ foreach ($attributesCodes as $code) { // $code is e.g. color or size
149
+ $pairs[] = $mapAttributesCodeId[$code] . ':' . $data[$code]; // generate pairs of attribures
150
+ $attr = $product->getResource()->getAttribute($code);
151
+
152
+ // We need to get default label value and not language value - getAllOptions(false, true) will return default values
153
+ // http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Attribute_Source_Table.html
154
+ $option_label = $ax->findDefaultLabelValue($attr->getSource()->getAllOptions(false, true), $data[$code]);
155
+ if ($option_label == false){
156
+ // This would return language specific values
157
+ $option_label = $attr->getSource()->getOptionText($data[$code]);
158
+ }
159
+
160
+ array_push($labels, trim($option_label));
161
+ }
162
+
163
+ $idx = implode(',', $pairs);
164
+ $res[$idx] = array();
165
+
166
+ $obj = null;
167
+ $cnt = 0;
168
+
169
+ // add native images
170
+ foreach ($p->getMediaGalleryImages() as $image) {
171
+ $tmp = parse_url($image->getUrl());
172
+ if (!$obj) $obj = new stdClass;
173
+ $params = new stdClass;
174
+ $params->img = $tmp['path'];
175
+ array_push($imagesJsonAll, $tmp['path']);
176
+ $params->title = '';
177
+ $obj->$cnt = $params;
178
+ $cnt++;
179
+ }
180
+
181
+ // add related images via labels (images from configurable product)
182
+ foreach ($product->getMediaGalleryImages() as $image) {
183
+ if ($image->label_default != '' && in_array(trim($image->label_default), $labels)) {
184
+ $tmp = parse_url($image->getUrl());
185
+ if (!$obj) $obj = new stdClass;
186
+ $params = new stdClass;
187
+ $params->img = $tmp['path'];
188
+ array_push($imagesJsonAll, $tmp['path']);
189
+ $params->title = '';
190
+ $obj->$cnt = $params;
191
+ $cnt++;
192
+ }else{
193
+ $tmp = parse_url($image->getUrl());
194
+ array_push($imagesJsonAll, $tmp['path']);
195
+ }
196
+ }
197
+
198
+ if ($obj != null){
199
+ $res[$idx]['images'] = $obj;
200
+ } else {
201
+ $res[$idx]['images'] = new stdClass();
202
+ }
203
+
204
+ $extraGroups = empty($map[$data['entity_id']]) ? array() : $map[$data['entity_id']];
205
+ $res[$idx]['images360'] = Mage::helper('core')->jsonDecode(str_replace("'", '"', $ax->images360Json($data['entity_id'], $extraGroups)));
206
+ }
207
+ }
208
+
209
+ // Prepare json for AJAX-ZOOM
210
+ $cnt = 0;
211
+ $imagesJson = array();
212
+ $imagesJsonAll = array_unique($imagesJsonAll);
213
+
214
+ // Some images present
215
+ if (count($this->getGalleryImages()) > 0) {
216
+
217
+ // 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.
218
+ // You can change it by setting the radio button "Base Image" under product configuration -> Images
219
+ if (!($images360Json != '{}' && count($this->getGalleryImages()) == 1 && $product->getImage() == 'no_selection')){
220
+
221
+ // Loop over gallery images
222
+ foreach ($this->getGalleryImages() as $image) {
223
+
224
+ $check_image = false;
225
+
226
+ if (method_exists($this, 'isGalleryImageVisible')) {
227
+ $check_image = $this->isGalleryImageVisible($image);
228
+ } else {
229
+ $check_image = true;
230
+ }
231
+
232
+ if ($check_image) {
233
+ $cnt++;
234
+ $tmp = parse_url($image->getUrl());
235
+ array_push($imagesJson, $cnt . ': {img: "' . $tmp['path'] . '", title: ""}');
236
+ }
237
+ }
238
+ }
239
+ }
240
+ // No images present
241
+ else if ($conf['magento']['magentoNoImage'])
242
+ {
243
+ if ($image_url = $this->helper('catalog/image')->init($product, 'image')) {
244
+ $tmp = parse_url($image_url);
245
+ array_push($imagesJson, '1: {img: "' . $tmp['path'] . '", title: ""}');
246
+ }
247
+ }
248
+
249
+
250
+
251
+ ?>
252
+
253
+
254
+ <?php
255
+ //MAIN_GALLERYPOSITION
256
+ echo $this->getChildHtml('after');
257
+ ?>
258
+
259
+ <!-- AJAX-ZOOM js block -->
260
+ <script type="text/javascript">
261
+ ;(function($){
262
+
263
+ // Load plugin settings
264
+ <?php
265
+ $exclParArray = array('LICENSE_LIC');
266
+ foreach ($conf as $group => $data){
267
+ foreach ($data as $key => $value){
268
+ $groupKey = strtoupper($group . '_' . $key);
269
+ if (!in_array($groupKey, $exclParArray)){
270
+ if ($value == 'false' || $value == 'true' || $value == 'null' || is_numeric($value) || substr(trim($value), 0, 1) == '{' || substr(trim($value), 0, 1) == '['){
271
+ echo ' var AJAXZOOM_' . $groupKey . ' = ' . $value . '; ' . "\n";
272
+ } else {
273
+ echo ' var AJAXZOOM_' . $groupKey . ' = "' . str_replace('"', '&#34;', $value) . '"; ' . "\n";
274
+ }
275
+ }
276
+ }
277
+ }
278
+ ?>
279
+
280
+ var AXZMPATH = '<?php echo $axZmPath; ?>';
281
+
282
+ // Colors / attributes
283
+ var axAssociated = jQuery.parseJSON('<?php echo Mage::helper('core')->jsonEncode($res); ?>');
284
+
285
+ // Default plain images
286
+ <?php if ($conf['magento']['magentoAllImagesStart'] == 'true'){ ?>
287
+ var IMAGES_JSON = <?php echo $ax->imagesJsonAll($imagesJsonAll);?>;
288
+ <?php } else { ?>
289
+ var IMAGES_JSON = {<?php echo implode(',', $imagesJson);?>};
290
+ <?php } ?>
291
+
292
+ // All images
293
+ var IMAGES_ALL_JSON = <?php echo $ax->imagesJsonAll($imagesJsonAll);?>;
294
+
295
+ // Default 360
296
+ var IMAGES_360_JSON = <?php echo $images360Json; ?>;
297
+
298
+ // Need that later for not reloading if images are the same
299
+ var IMAGES_AND_360_LOADED = JSON.stringify({
300
+ images: jQuery.extend(true, {}, IMAGES_JSON),
301
+ images360: jQuery.extend(true, {}, IMAGES_360_JSON)
302
+ });
303
+
304
+ // AJAX-ZOOM mouseover and other parameters
305
+ var zoomParams = {
306
+ disableAllMsg: AJAXZOOM_MAIN_DISABLEALLMSG,
307
+ axZmPath: AXZMPATH,
308
+ divID: AJAXZOOM_MAIN_DIVID,
309
+ galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
310
+ hideGalleryOneImage: AJAXZOOM_MAIN_HIDEGALLERYONEIMAGE,
311
+ hideGalleryAddClass: AJAXZOOM_MAIN_HIDEGALLERYADDCLASS,
312
+ galleryHover: AJAXZOOM_MAIN_GALLERYHOVER,
313
+ galleryAxZmThumbSlider: AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDER,
314
+ galleryAxZmThumbSliderParam: (AJAXZOOM_MAIN_GALLERYPOSITION == 'bottom' || AJAXZOOM_MAIN_GALLERYPOSITION == 'top') ? AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDERPARAM : AJAXZOOM_MAIN_GALLERYAXZMTHUMBSLIDERPARAM_VERTICAL,
315
+ thumbW: AJAXZOOM_MAIN_THUMBW,
316
+ thumbH: AJAXZOOM_MAIN_THUMBH,
317
+ thumbRetina: AJAXZOOM_MAIN_THUMBRETINA,
318
+ qualityThumb: AJAXZOOM_MAIN_QUALITYTHUMB,
319
+ quality: AJAXZOOM_MAIN_QUALITY,
320
+ qualityZoom: AJAXZOOM_MAIN_QUALITYZOOM,
321
+ images: IMAGES_JSON,
322
+ firstImageToLoad: AJAXZOOM_MAIN_FIRSTIMAGETOLOAD,
323
+ images360: IMAGES_360_JSON,
324
+ images360firstToLoad: AJAXZOOM_MAIN_IMAGES360FIRSTTOLOAD,
325
+ images360Thumb: AJAXZOOM_MAIN_IMAGES360THUMB,
326
+ images360Overlay: AJAXZOOM_MAIN_IMAGES360OVERLAY,
327
+ images360Preview: AJAXZOOM_MAIN_IMAGES360PREVIEW,
328
+ images360PreviewResponsive: AJAXZOOM_MAIN_IMAGES360PREVIEWRESPONSIVE,
329
+ images360examplePreview: AJAXZOOM_MAIN_IMAGES360EXAMPLEPREVIEW,
330
+ zoomMsg360: AJAXZOOM_MAIN_ZOOMMSG360,
331
+ zoomMsg360_touch: AJAXZOOM_MAIN_ZOOMMSG360_TOUCH,
332
+ preloadMouseOverImages: AJAXZOOM_MAIN_PRELOADMOUSEOVERIMAGES,
333
+ noImageAvailableClass: AJAXZOOM_MAIN_NOIMAGEAVAILABLECLASS,
334
+ width: AJAXZOOM_MAIN_WIDTH,
335
+ height: AJAXZOOM_MAIN_HEIGHT,
336
+ responsive: AJAXZOOM_MAIN_RESPONSIVE,
337
+ oneSrcImg: AJAXZOOM_MAIN_ONESRCIMG,
338
+ heightRatio: AJAXZOOM_MAIN_HEIGHTRATIO,
339
+ heightMaxWidthRatio: AJAXZOOM_MAIN_HEIGHTMAXWIDTHRATIO,
340
+ widthRatio: AJAXZOOM_MAIN_WIDTHRATIO,
341
+ widthMaxHeightRatio: AJAXZOOM_MAIN_WIDTHMAXHEIGHTRATIO,
342
+ maxSizePrc: AJAXZOOM_MAIN_MAXSIZEPRC,
343
+ mouseOverZoomWidth: AJAXZOOM_MAIN_MOUSEOVERZOOMWIDTH,
344
+ mouseOverZoomHeight: AJAXZOOM_MAIN_MOUSEOVERZOOMHEIGHT,
345
+ ajaxZoomOpenMode: AJAXZOOM_MAIN_AJAXZOOMOPENMODE,
346
+ fancyBoxParam: AJAXZOOM_MAIN_FANCYBOXPARAM,
347
+ colorBoxParam: AJAXZOOM_MAIN_COLORBOXPARAM,
348
+ example: AJAXZOOM_MAIN_EXAMPLE,
349
+ exampleFancyboxFullscreen: AJAXZOOM_MAIN_EXAMPLEFANCYBOXFULLSCREEN,
350
+ exampleFancybox: AJAXZOOM_MAIN_EXAMPLEFANCYBOX,
351
+ exampleColorbox: AJAXZOOM_MAIN_EXAMPLECOLORBOX,
352
+ enforceFullScreenRes: AJAXZOOM_MAIN_ENFORCEFULLSCREENRES,
353
+ prevNextArrows: AJAXZOOM_MAIN_PREVNEXTARROWS,
354
+ disableScrollAnm: AJAXZOOM_MAIN_DISABLESCROLLANM,
355
+ fullScreenApi: AJAXZOOM_MAIN_FULLSCREENAPI,
356
+ axZmCallBacks: AJAXZOOM_MAIN_AXZMCALLBACKS,
357
+ azOptions: AJAXZOOM_MAIN_AZOPTIONS,
358
+ azOptions360: AJAXZOOM_MAIN_AZOPTIONS360,
359
+ postMode: AJAXZOOM_MAIN_POSTMODE,
360
+ pinterest: {
361
+ enabled: AJAXZOOM_PINTEREST_ENABLED,
362
+ build: AJAXZOOM_PINTEREST_BUILD,
363
+ wrapClass: AJAXZOOM_PINTEREST_WRAPCLASS,
364
+ btnSrc: AJAXZOOM_PINTEREST_BTNSRC,
365
+ data: { // any data attributes
366
+ "pin-do" : "buttonPin",
367
+ "pin-shape": null,
368
+ "pin-config": "none",
369
+ "pin-color": null,
370
+ "pin-height": null
371
+ }
372
+ },
373
+ mouseOverZoomParam: {
374
+ position: AJAXZOOM_MOUSEOVERZOOMPARAM_POSITION,
375
+ posAutoInside: AJAXZOOM_MOUSEOVERZOOMPARAM_POSAUTOINSIDE,
376
+ touchScroll: AJAXZOOM_MOUSEOVERZOOMPARAM_TOUCHSCROLL,
377
+ noMouseOverZoom: AJAXZOOM_MOUSEOVERZOOMPARAM_NOMOUSEOVERZOOM,
378
+ autoFlip: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOFLIP,
379
+ biggestSpace: AJAXZOOM_MOUSEOVERZOOMPARAM_BIGGESTSPACE,
380
+ zoomFullSpace: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMFULLSPACE,
381
+ zoomWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMWIDTH,
382
+ zoomHeight: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHEIGHT,
383
+ autoMargin: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOMARGIN,
384
+ adjustX: AJAXZOOM_MOUSEOVERZOOMPARAM_ADJUSTX,
385
+ adjustY: AJAXZOOM_MOUSEOVERZOOMPARAM_ADJUSTY,
386
+ lensOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSOPACITY,
387
+ lensStyle: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSSTYLE,
388
+ lensClass: AJAXZOOM_MOUSEOVERZOOMPARAM_LENSCLASS,
389
+ zoomAreaBorderWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMAREABORDERWIDTH,
390
+ galleryFade: AJAXZOOM_MOUSEOVERZOOMPARAM_GALLERYFADE,
391
+ shutterSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_SHUTTERSPEED,
392
+ showFade: AJAXZOOM_MOUSEOVERZOOMPARAM_SHOWFADE,
393
+ hideFade: AJAXZOOM_MOUSEOVERZOOMPARAM_HIDEFADE,
394
+ autoScroll: AJAXZOOM_MOUSEOVERZOOMPARAM_AUTOSCROLL,
395
+ flyOutSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTSPEED,
396
+ flyOutTransition: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTTRANSITION,
397
+ flyOutOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYOUTOPACITY,
398
+ flyBackSpeed: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKSPEED,
399
+ flyBackTransition: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKTRANSITION,
400
+ flyBackOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_FLYBACKOPACITY,
401
+ smoothMove: AJAXZOOM_MOUSEOVERZOOMPARAM_SMOOTHMOVE,
402
+ tint: AJAXZOOM_MOUSEOVERZOOMPARAM_TINT,
403
+ tintOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTOPACITY,
404
+ tintFilter: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTFILTER,
405
+ tintLensBack: AJAXZOOM_MOUSEOVERZOOMPARAM_TINTLENSBACK,
406
+ showTitle: AJAXZOOM_MOUSEOVERZOOMPARAM_SHOWTITLE,
407
+ titleOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_TITLEOPACITY,
408
+ titlePosition: AJAXZOOM_MOUSEOVERZOOMPARAM_TITLEPOSITION,
409
+ cursorPositionX: AJAXZOOM_MOUSEOVERZOOMPARAM_CURSORPOSITIONX,
410
+ cursorPositionY: AJAXZOOM_MOUSEOVERZOOMPARAM_CURSORPOSITIONY,
411
+ loading: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADING,
412
+ loadingMessage: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGMESSAGE,
413
+ loadingWidth: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGWIDTH,
414
+ loadingHeight: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGHEIGHT,
415
+ loadingOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_LOADINGOPACITY,
416
+ zoomHintEnable: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHINTENABLE,
417
+ zoomHintText: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMHINTTEXT,
418
+ zoomMsgHover: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMMSGHOVER,
419
+ zoomMsgClick: AJAXZOOM_MOUSEOVERZOOMPARAM_ZOOMMSGCLICK,
420
+ slideInTime: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINTIME,
421
+ slideInEasingCSS3: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINEASINGCSS3,
422
+ slideInEasing: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINEASING,
423
+ slideInScale:AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEINSCALE,
424
+ slideOutScale: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTSCALE,
425
+ slideOutOpacity: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTOPACITY,
426
+ slideOutDest: AJAXZOOM_MOUSEOVERZOOMPARAM_SLIDEOUTDEST,
427
+ onInit: AJAXZOOM_MOUSEOVERZOOMPARAM_ONINIT,
428
+ onLoad: AJAXZOOM_MOUSEOVERZOOMPARAM_ONLOAD,
429
+ onImageChange: AJAXZOOM_MOUSEOVERZOOMPARAM_ONIMAGECHANGE,
430
+ onMouseOver: AJAXZOOM_MOUSEOVERZOOMPARAM_ONMOUSEOVER,
431
+ onMouseOut: AJAXZOOM_MOUSEOVERZOOMPARAM_ONMOUSEOUT,
432
+ spinner: AJAXZOOM_MOUSEOVERZOOMPARAM_SPINNER,
433
+ spinnerParam: AJAXZOOM_MOUSEOVERZOOMPARAM_SPINNERPARAM
434
+ }
435
+ };
436
+
437
+ // Init AJAX-ZOOM
438
+ jQuery.mouseOverZoomInit(zoomParams);
439
+
440
+ // Swatches
441
+ var resetAxZoom = function() {
442
+ if (JSON.stringify({images: IMAGES_JSON, images360: IMAGES_360_JSON}) == IMAGES_AND_360_LOADED){
443
+ return;
444
+ }
445
+
446
+ IMAGES_AND_360_LOADED = JSON.stringify({images: IMAGES_JSON, images360: IMAGES_360_JSON});
447
+ jQuery.mouseOverZoomInit.replaceImages( {
448
+ divID: AJAXZOOM_MAIN_DIVID,
449
+ galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
450
+ images: IMAGES_JSON,
451
+ images360: IMAGES_360_JSON
452
+ });
453
+ };
454
+
455
+ // Shortcut for maybe other applications or additional functionality
456
+ // window.resetAxZoom() will reset AJAX-ZOOM to the state when article is loaded without attribute selection
457
+ window.resetAxZoom = resetAxZoom;
458
+
459
+ // Change values
460
+ var updateAxZoomAction = function(idxSel){
461
+ //JSON.stringify(obj1) === JSON.stringify(obj2)
462
+ if ( (jQuery.isPlainObject(idxSel.images) && !jQuery.isEmptyObject(idxSel.images) )
463
+ || (jQuery.isPlainObject(idxSel.images360) && !jQuery.isEmptyObject(idxSel.images360) )) {
464
+
465
+ if (JSON.stringify({images: idxSel.images, images360: idxSel.images360}) == IMAGES_AND_360_LOADED){
466
+ return;
467
+ }
468
+
469
+ IMAGES_AND_360_LOADED = JSON.stringify({images: idxSel.images, images360: idxSel.images360});
470
+
471
+ jQuery.mouseOverZoomInit.replaceImages( {
472
+ divID: AJAXZOOM_MAIN_DIVID,
473
+ galleryDivID: AJAXZOOM_MAIN_GALLERYDIVID,
474
+ images: idxSel.images,
475
+ images360: idxSel.images360
476
+ } );
477
+ } else { // show initial images
478
+ resetAxZoom();
479
+ }
480
+ };
481
+
482
+ var updateAxZoom = function(e) {
483
+ var obj = jQuery(this);
484
+
485
+ setTimeout(function(){
486
+
487
+ if(e.type == 'change' && obj.val() == '') {
488
+ resetAxZoom();
489
+ return;
490
+ }
491
+
492
+ var pairs = [];
493
+
494
+ for (var k in spConfig.state){
495
+ if (typeof spConfig.state[k] !== 'function' && typeof spConfig.state[k] !== 'object' && spConfig.state[k] != false) {
496
+ pairs.push(k + ':' + spConfig.state[k]);
497
+ }
498
+ }
499
+
500
+ var idx = pairs.join(',');
501
+
502
+ var idxSel = axAssociated[idx];
503
+
504
+ if (idxSel) {
505
+ updateAxZoomAction(idxSel);
506
+ } else {
507
+ // try to find whatever
508
+ jQuery.each(axAssociated, function(k, v){
509
+ if (k.indexOf(idx) != -1){
510
+ updateAxZoomAction(v);
511
+ return false;
512
+ }
513
+ })
514
+ }
515
+
516
+ }, 50);
517
+
518
+ }
519
+
520
+ jQuery(document).ready(function() {
521
+ jQuery('.swatch-label').click(updateAxZoom); // version 1.9.1 or more
522
+ jQuery('.super-attribute-select').change(updateAxZoom);
523
+ });
524
+
525
+ })(jQuery);
526
+ </script>
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AJAX_ZOOM</name>
4
- <version>1.0.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>Moved frontend teplates into /app/design/frontend/base; replaced php short open tags in some files;</notes>
12
  <authors><author><name>AJAX-ZOOM</name><user>vadus</user><email>support@ajax-zoom.com</email></author></authors>
13
- <date>2015-10-26</date>
14
- <time>16:12:34</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="b45fed73aec988d00ca1032656b9ae5b"/></dir></dir></dir><dir name="Tabs"><file name="Tabid.php" hash="5e1b97911f28d1dc5d5fac6e59ca9c13"/></dir><file name="Tabs.php" hash="40a78742e8b28cea4877e305211a9c6c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="0aebfbfed16082f2a04697bbf085a2f9"/><file name="Head.php" hash="aac81557eb8726c7cd2b936873c52dbc"/></dir><dir name="Model"><file name="Ax360.php" hash="b8bb2b82fc79646c9188603029a1d763"/><file name="Ax360set.php" hash="83cf95ef2a420703191a0d6f44768295"/><file name="Axproducts.php" hash="0b425dcdf48578e727829112e6cacfd0"/><file name="Galleryposition.php" hash="1fe09377be47053af14d556fbb494d29"/><file name="Observer.php" hash="6f2ef3a1b7e67582d4acdc4c7ecedeb7"/><file name="Position.php" hash="576c9eccfc8e222588e0016fd8894ac7"/><dir name="Resource"><dir name="Ax360"><file name="Collection.php" hash="48d7f85f932259fdd06a62f15068a853"/></dir><file name="Ax360.php" hash="ad69211cd904f734019946ece44c07c0"/><dir name="Ax360set"><file name="Collection.php" hash="614398a735db3e8aa9de460c89c1b038"/></dir><file name="Ax360set.php" hash="e8c94cfc8d75c19e4762c3afad93b187"/><dir name="Axproducts"><file name="Collection.php" hash="15f673a08dab33c7a77f25b4c6641946"/></dir><file name="Axproducts.php" hash="93b114dd25c5e3fe501a78040ce2b36c"/></dir><file name="Words.php" hash="3c0d65a98cdaf81606f77d253c3256ae"/><file name="Yesno.php" hash="8cea5e1c9d6110c5cd54c6ffeda50382"/></dir><dir name="controllers"><file name="IndexController.php" hash="ff3e8f6379d0ba436d75eaf597a60c5f"/></dir><dir name="etc"><file name="config.xml" hash="44bd82bb7830fdd9d66e16665d99c0bb"/><file name="system.xml" hash="ea333c3e779f1d3498a0e3fdca7a61eb"/></dir><dir name="sql"><dir name="axzoom_setup"><file name="install-0.0.1.php" hash="297c456d925253f83528fb4a4e561820"/></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="2001ec50597cdd47d2fe90eb354e9173"/></dir><dir name="template"><dir name="axzoom"><file name="tab.phtml" hash="aa36b07caf743006f98189f135b43e95"/><file name="tab360-sets.phtml" hash="d8f24613816c4910d684bfc6d098f295"/><file name="tab360-settings.phtml" hash="9d163e0ffbdf7ee00e00a62a5c8c2e99"/><file name="tab360.phtml" hash="a2b3b42d9ef50c7c20f4f775f728b47d"/><file name="uploader.phtml" hash="216551ecb38afbede39b14eb1f3a6a18"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="e7107f3d585d09d9b1b01f603b4a5d5e"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ax_Zoom.xml" hash="149d56d71dbaebaa89d0324bfad842eb"/></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="e3b055d8f689d5b67f87a5d27aa4537b"/><file name="check_jquery.js" hash="2e9c357045f123583a4051f237e0b380"/><file name="check_jquery_admin.js" hash="b5b7dc978af43493ae973548093b553c"/><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.ui.widget.min.js" hash="2425a542e6dde093dd85ac0b5adc0141"/><file name="lic.php" hash="24084e1f51b59004d2e11ae416d03df7"/><file name="no_image-100x100.jpg" hash="ebbaa789d1a5e5b1bb6fdb9ccd683aa2"/><dir><dir name="pic"><file name="readme.txt" hash="763fdb72282a84d27d9a6c93e014775a"/></dir><dir name="preview"><file name="index.php" hash="c304cfb13785e145e95d5f21cc95bd12"/><file name="preview.php" hash="0ebbc68bf74927c95587decbe2f24626"/></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=".htaccess" hash="b974c32a345792b0bc2fad66c2236152"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.6.99</max></php><extension><name>ionCube Loader</name><min/><max/></extension><extension><name>zip</name><min/><max/></extension></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AJAX_ZOOM</name>
4
+ <version>1.0.5</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 missing media.phtml in the package</notes>
12
  <authors><author><name>AJAX-ZOOM</name><user>vadus</user><email>support@ajax-zoom.com</email></author></authors>
13
+ <date>2015-10-27</date>
14
+ <time>12:10:41</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="b45fed73aec988d00ca1032656b9ae5b"/></dir></dir></dir><dir name="Tabs"><file name="Tabid.php" hash="5e1b97911f28d1dc5d5fac6e59ca9c13"/></dir><file name="Tabs.php" hash="40a78742e8b28cea4877e305211a9c6c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="0aebfbfed16082f2a04697bbf085a2f9"/><file name="Head.php" hash="aac81557eb8726c7cd2b936873c52dbc"/></dir><dir name="Model"><file name="Ax360.php" hash="b8bb2b82fc79646c9188603029a1d763"/><file name="Ax360set.php" hash="83cf95ef2a420703191a0d6f44768295"/><file name="Axproducts.php" hash="0b425dcdf48578e727829112e6cacfd0"/><file name="Galleryposition.php" hash="1fe09377be47053af14d556fbb494d29"/><file name="Observer.php" hash="6f2ef3a1b7e67582d4acdc4c7ecedeb7"/><file name="Position.php" hash="576c9eccfc8e222588e0016fd8894ac7"/><dir name="Resource"><dir name="Ax360"><file name="Collection.php" hash="48d7f85f932259fdd06a62f15068a853"/></dir><file name="Ax360.php" hash="ad69211cd904f734019946ece44c07c0"/><dir name="Ax360set"><file name="Collection.php" hash="614398a735db3e8aa9de460c89c1b038"/></dir><file name="Ax360set.php" hash="e8c94cfc8d75c19e4762c3afad93b187"/><dir name="Axproducts"><file name="Collection.php" hash="15f673a08dab33c7a77f25b4c6641946"/></dir><file name="Axproducts.php" hash="93b114dd25c5e3fe501a78040ce2b36c"/></dir><file name="Words.php" hash="3c0d65a98cdaf81606f77d253c3256ae"/><file name="Yesno.php" hash="8cea5e1c9d6110c5cd54c6ffeda50382"/></dir><dir name="controllers"><file name="IndexController.php" hash="ff3e8f6379d0ba436d75eaf597a60c5f"/></dir><dir name="etc"><file name="config.xml" hash="473e859bf55817abc16283e2bc74c1ec"/><file name="system.xml" hash="ea333c3e779f1d3498a0e3fdca7a61eb"/></dir><dir name="sql"><dir name="axzoom_setup"><file name="install-0.0.1.php" hash="297c456d925253f83528fb4a4e561820"/></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="2001ec50597cdd47d2fe90eb354e9173"/></dir><dir name="template"><dir name="axzoom"><file name="tab.phtml" hash="aa36b07caf743006f98189f135b43e95"/><file name="tab360-sets.phtml" hash="d8f24613816c4910d684bfc6d098f295"/><file name="tab360-settings.phtml" hash="9d163e0ffbdf7ee00e00a62a5c8c2e99"/><file name="tab360.phtml" hash="a2b3b42d9ef50c7c20f4f775f728b47d"/><file name="uploader.phtml" hash="216551ecb38afbede39b14eb1f3a6a18"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="axzoom.xml" hash="e7107f3d585d09d9b1b01f603b4a5d5e"/></dir><dir name="template"><dir name="ax_zoom"><dir><dir name="catalog"><dir name="product"><dir name="view"><file name="media.phtml" hash="4fc81acd4feec1b0e3777c3217334336"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ax_Zoom.xml" hash="149d56d71dbaebaa89d0324bfad842eb"/></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="e3b055d8f689d5b67f87a5d27aa4537b"/><file name="check_jquery.js" hash="2e9c357045f123583a4051f237e0b380"/><file name="check_jquery_admin.js" hash="b5b7dc978af43493ae973548093b553c"/><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.ui.widget.min.js" hash="2425a542e6dde093dd85ac0b5adc0141"/><file name="lic.php" hash="24084e1f51b59004d2e11ae416d03df7"/><file name="no_image-100x100.jpg" hash="ebbaa789d1a5e5b1bb6fdb9ccd683aa2"/><dir><dir name="pic"><file name="readme.txt" hash="763fdb72282a84d27d9a6c93e014775a"/></dir><dir name="preview"><file name="index.php" hash="c304cfb13785e145e95d5f21cc95bd12"/><file name="preview.php" hash="0ebbc68bf74927c95587decbe2f24626"/></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=".htaccess" hash="b974c32a345792b0bc2fad66c2236152"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.6.99</max></php><extension><name>ionCube Loader</name><min/><max/></extension><extension><name>zip</name><min/><max/></extension></required></dependencies>
18
  </package>