Magento_Mobile - Version 1.5.0.0.23.0

Version Notes

1.5.0.0.23.0 version of package
internal svn revision #3cd616975d5927903d4f34bde0d9e5e2e727e9ba

Download this release

Release Info

Developer Magento Core Team
Extension Magento_Mobile
Version 1.5.0.0.23.0
Comparing to
See all releases


Code changes from version 1.4.2.0.23.0 to 1.5.0.0.23.0

Files changed (96) hide show
  1. app/code/core/Mage/XmlConnect/Block/Adminhtml/Admin/Application/Edit/Tab/Settings.php +1 -1
  2. app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Config.php +1 -1
  3. app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard.php +1 -1
  4. app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/GraphInfo.php +1 -1
  5. app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/TopSearchTerms.php +1 -1
  6. app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Loginform.php +1 -1
  7. app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Content.php +0 -20
  8. app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design/Images.php +1 -1
  9. app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Submission/Tab/Container/Submission.php +17 -17
  10. app/code/core/Mage/XmlConnect/Block/Cart.php +12 -12
  11. app/code/core/Mage/XmlConnect/Block/Cart/CartTotals.php +0 -29
  12. app/code/core/Mage/XmlConnect/Block/Cart/CartTotals/Nodes/Giftcardaccount.php +4 -4
  13. app/code/core/Mage/XmlConnect/Block/Cart/Items.php +11 -11
  14. app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Details.php +2 -2
  15. app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/OrderDetails.php +2 -2
  16. app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mep/Totals.php +1 -1
  17. app/code/core/Mage/XmlConnect/Block/Cart/Totals.php +4 -5
  18. app/code/core/Mage/XmlConnect/Block/Catalog.php +4 -4
  19. app/code/core/Mage/XmlConnect/Block/Catalog/Product/ItemPrice/Giftcard.php +12 -11
  20. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options.php +2 -2
  21. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Bundle.php +20 -20
  22. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Configurable.php +26 -26
  23. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Grouped.php +10 -10
  24. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Bundle.php +3 -3
  25. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Default.php +237 -237
  26. app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Giftcard.php +6 -6
  27. app/code/core/Mage/XmlConnect/Block/Checkout/Address/Form.php +48 -1
  28. app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Configurable.php +2 -1
  29. app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Grouped.php +2 -1
  30. app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address.php +1 -1
  31. app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/Form.php +1 -1
  32. app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/List.php +4 -4
  33. app/code/core/Mage/XmlConnect/Block/Checkout/Order/Review/Info.php +12 -12
  34. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Ccsave.php +3 -3
  35. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Ccsave.php +2 -2
  36. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Paypal/Abstract.php +2 -2
  37. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Pbridge/Verisign.php +2 -2
  38. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php +27 -1
  39. app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Paypal/Payflow.php +9 -9
  40. app/code/core/Mage/XmlConnect/Block/Checkout/Pbridge/Result.php +1 -1
  41. app/code/core/Mage/XmlConnect/Block/Configuration.php +1 -1
  42. app/code/core/Mage/XmlConnect/Block/Customer/Address/Form.php +35 -0
  43. app/code/core/Mage/XmlConnect/Block/Customer/Address/List.php +12 -12
  44. app/code/core/Mage/XmlConnect/Block/Customer/Form.php +1 -121
  45. app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Bundle.php +6 -7
  46. app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Downloadable.php +0 -12
  47. app/code/core/Mage/XmlConnect/Block/Customer/Order/List.php +10 -10
  48. app/code/core/Mage/XmlConnect/Block/Customer/Storecredit.php +7 -9
  49. app/code/core/Mage/XmlConnect/Block/Homebanners.php +4 -5
  50. app/code/core/Mage/XmlConnect/Block/Localization.php +1 -1
  51. app/code/core/Mage/XmlConnect/Block/Review/Form.php +1 -1
  52. app/code/core/Mage/XmlConnect/Block/Wishlist.php +15 -14
  53. app/code/core/Mage/XmlConnect/Controller/AdminAction.php +10 -3
  54. app/code/core/Mage/XmlConnect/Helper/AdminApplication.php +2 -2
  55. app/code/core/Mage/XmlConnect/Helper/Android.php +35 -86
  56. app/code/core/Mage/XmlConnect/Helper/Customer/Form/Renderer.php +3 -3
  57. app/code/core/Mage/XmlConnect/Helper/Customer/Order.php +10 -10
  58. app/code/core/Mage/XmlConnect/Helper/Data.php +1 -2
  59. app/code/core/Mage/XmlConnect/Helper/Image.php +5 -2
  60. app/code/core/Mage/XmlConnect/Helper/Iphone.php +11 -226
  61. app/code/core/Mage/XmlConnect/Helper/Theme.php +2 -1
  62. app/code/core/Mage/XmlConnect/Model/AdminApplication.php +0 -40
  63. app/code/core/Mage/XmlConnect/Model/Adminhtml/Search/Category.php +1 -1
  64. app/code/core/Mage/XmlConnect/Model/Application.php +7 -3
  65. app/code/core/Mage/XmlConnect/Model/ConfigData.php +5 -8
  66. app/code/core/Mage/XmlConnect/Model/Configuration.php +1 -1
  67. app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Session.php +0 -137
  68. app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Type/Onepage.php +0 -465
  69. app/code/core/Mage/XmlConnect/Model/Corefix/Sales/Quote.php +0 -427
  70. app/code/core/Mage/XmlConnect/Model/ImageLimits.php +3 -8
  71. app/code/core/Mage/XmlConnect/Model/Images.php +29 -21
  72. app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mecl.php +21 -0
  73. app/code/core/Mage/XmlConnect/Model/Paypal/Mep/Checkout.php +2 -3
  74. app/code/core/Mage/XmlConnect/Model/Simplexml/Form/Element/Validator/Abstract.php +14 -15
  75. app/code/core/Mage/XmlConnect/Model/Simplexml/Message/Error.php +2 -3
  76. app/code/core/Mage/XmlConnect/controllers/Adminhtml/Connect/ConfigController.php +2 -2
  77. app/code/core/Mage/XmlConnect/controllers/Adminhtml/MobileController.php +2 -2
  78. app/code/core/Mage/XmlConnect/controllers/CartController.php +2 -2
  79. app/code/core/Mage/XmlConnect/controllers/CatalogController.php +20 -58
  80. app/code/core/Mage/XmlConnect/controllers/CheckoutController.php +0 -1
  81. app/code/core/Mage/XmlConnect/controllers/Paypal/MepController.php +4 -6
  82. app/code/core/Mage/XmlConnect/controllers/WishlistController.php +3 -1
  83. app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php +4 -5
  84. app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +1 -14
  85. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml +3 -3
  86. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design.phtml +2 -2
  87. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/autocomplete.phtml +3 -3
  88. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_android.phtml +14 -12
  89. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_ipad.phtml +14 -12
  90. app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_iphone.phtml +14 -12
  91. app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_android.phtml +4 -4
  92. app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_ipad.phtml +4 -4
  93. app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_iphone.phtml +4 -4
  94. app/design/adminhtml/default/default/template/xmlconnect/mobile/notification_helper.phtml +6 -6
  95. app/design/adminhtml/default/default/template/xmlconnect/submission/app_icons_preview.phtml +0 -2
  96. package.xml +5 -5
app/code/core/Mage/XmlConnect/Block/Adminhtml/Admin/Application/Edit/Tab/Settings.php CHANGED
@@ -59,7 +59,7 @@ class Mage_XmlConnect_Block_Adminhtml_Admin_Application_Edit_Tab_Settings
59
  'title' => $this->__('Enable Admin Application'),
60
  'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray(),
61
  'required' => true,
62
- 'value' => Mage::getSingleton('xmlconnect/configuration')->isActiveAdminApp()
63
  ));
64
 
65
  $this->setForm($form);
59
  'title' => $this->__('Enable Admin Application'),
60
  'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray(),
61
  'required' => true,
62
+ 'value' => (int)Mage::getSingleton('xmlconnect/configuration')->isActiveAdminApp()
63
  ));
64
 
65
  $this->setForm($form);
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Config.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Adminhtml_Connect_Config extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render login form xml
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Adminhtml_Connect_Config extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render login form xml
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Simple xml object
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Simple xml object
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/GraphInfo.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_GraphInfo extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Time range filter options
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_GraphInfo extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Time range filter options
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/TopSearchTerms.php CHANGED
@@ -82,7 +82,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_TopSearchTerms
82
  * Add last search terms info to xml object
83
  *
84
  * @param Mage_XmlConnect_Model_Simplexml_Element $xmlObj
85
- * @return Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_LastOrders
86
  */
87
  public function addTopSearchTermsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $xmlObj)
88
  {
82
  * Add last search terms info to xml object
83
  *
84
  * @param Mage_XmlConnect_Model_Simplexml_Element $xmlObj
85
+ * @return Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_TopSearchTerms
86
  */
87
  public function addTopSearchTermsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $xmlObj)
88
  {
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Loginform.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Adminhtml_Connect_Loginform extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render login form xml
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Adminhtml_Connect_Loginform extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render login form xml
app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Content.php CHANGED
@@ -104,26 +104,6 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Content
104
  return $this;
105
  }
106
 
107
- /**
108
- * Retrieve add page button
109
- *
110
- * @return string
111
- */
112
- public function getAddButtonHtml()
113
- {
114
- return $this->getChildHtml('add_button');
115
- }
116
-
117
- /**
118
- * Retrieve delete page button
119
- *
120
- * @return string
121
- */
122
- public function getDeleteButtonHtml()
123
- {
124
- return $this->getChildHtml('delete_button');
125
- }
126
-
127
  /**
128
  * Prepare label for tab
129
  *
104
  return $this;
105
  }
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  /**
108
  * Prepare label for tab
109
  *
app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design/Images.php CHANGED
@@ -168,7 +168,7 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Images extends Mage
168
  /**
169
  * Retrieve image config object
170
  *
171
- * @return Varien_Config
172
  */
173
  public function getConfig()
174
  {
168
  /**
169
  * Retrieve image config object
170
  *
171
+ * @return Varien_Object
172
  */
173
  public function getConfig()
174
  {
app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Submission/Tab/Container/Submission.php CHANGED
@@ -191,7 +191,7 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container_Submission
191
  $fieldset->addField('conf/submit_text/contact_email', 'text', array(
192
  'name' => 'conf[submit_text][email]',
193
  'label' => $this->__('Contact Email'),
194
- 'class' => 'email',
195
  'maxlength' => '40',
196
  'value' => isset($formData['conf[submit_text][email]']) ? $formData['conf[submit_text][email]'] : null,
197
  'note' => $this->__('Administrative contact for this app and for app submission issues.'),
@@ -270,54 +270,54 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container_Submission
270
  switch ($deviceType) {
271
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPHONE:
272
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('Large iTunes Icon'),
273
- $this->__('Large icon that appears in the iTunes App Store. You do not need to apply a gradient or soft edges (this is done automatically by Apple). Required size: 512px x 512px.'), '', true);
274
 
275
  $this->addImage($fieldset, 'conf/submit/loader_image', $this->__('Loader Splash Screen'),
276
- $this->__('Image that appears on first screen while your app is loading. Required size: 320px x 460px.'), '', true);
277
 
278
  $this->addImage($fieldset, 'conf/submit/loader_image_i4', $this->__('Loader Splash Screen <br />(iPhone 4 retina)'),
279
- $this->__('Image that appears on first screen while your app is loading. Required size: 640px x 920px.'), '', false);
280
 
281
  $this->addImage($fieldset, 'conf/submit/logo', $this->__('Custom App Icon'),
282
- $this->__('Icon that will appear on the users phone after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple). Recommended size: 57px x 57px at 72 dpi.'), '', true);
283
 
284
  $this->addImage($fieldset, 'conf/submit/logo_i4', $this->__('Custom App Icon <br />(iPhone 4 retina)'),
285
- $this->__('Icon that will appear on the user\'s phone after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple). Recommended size: 114px x 114px.'), '', false);
286
 
287
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
288
- $this->__('Store logo that is displayed on copyright page of app. Preferred size: 100px x 100px.'), '', true);
289
 
290
  $this->addImage($fieldset, 'conf/submit/big_logo_i4', $this->__('Copyright Page Logo <br />(iPhone 4 retina)'),
291
- $this->__('Store logo that is displayed on copyright page of app. Preferred size: 200px x 200px.'), '', false);
292
  break;
293
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPAD:
294
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('Large iTunes Icon'),
295
- $this->__('Large icon that appears in the iTunes App Store. You do not need to apply a gradient or soft edges (this is done automatically by Apple). Required size: 512px x 512px.'), '', true);
296
 
297
  $this->addImage($fieldset, 'conf/submit/ipad_loader_portrait_image', $this->__('Loader Splash Screen <br />(portrait mode)'),
298
- $this->__('Image that appears on first screen while your app is loading. Required size: 768px x 1024px.'), '', true);
299
 
300
  $this->addImage($fieldset, 'conf/submit/ipad_loader_landscape_image', $this->__('Loader Splash Screen <br />(landscape mode)'),
301
- $this->__('Image that appears on first screen while your app is loading. Required size: 1024px x 768px.'), '', true);
302
 
303
  $this->addImage($fieldset, 'conf/submit/ipad_logo', $this->__('Custom App Icon'),
304
- $this->__('Icon that will appear on the user\'s device after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple). Recommended size: 72px x 72px.'), '', true);
305
 
306
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
307
- $this->__('Store logo that is displayed on copyright page of app. Preferred size: 100px x 100px.'), '', true);
308
  break;
309
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID:
310
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('High Resolution Application Icon'),
311
- $this->__('The icon that appears in the Android Market. Recommended size: 512px x 512px. Maximum size: 1024 KB.'), '', true);
312
 
313
  $this->addImage($fieldset, 'conf/submit/android_loader_image', $this->__('Loader Splash Screen'),
314
- $this->__('Image that appears on first screen while your app is loading. Required size: 320px x 455px.'), '', true);
315
 
316
  $this->addImage($fieldset, 'conf/submit/android_logo', $this->__('Custom App Icon'),
317
- $this->__('Icon that will appear on the user\'s device after they download your app. Recommended size: 48px x 48px.'), '', true);
318
 
319
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
320
- $this->__('Store logo that is displayed on copyright page of app. Preferred size: 100px x 100px.'), '', true);
321
  break;
322
  }
323
 
191
  $fieldset->addField('conf/submit_text/contact_email', 'text', array(
192
  'name' => 'conf[submit_text][email]',
193
  'label' => $this->__('Contact Email'),
194
+ 'class' => 'validate-email email',
195
  'maxlength' => '40',
196
  'value' => isset($formData['conf[submit_text][email]']) ? $formData['conf[submit_text][email]'] : null,
197
  'note' => $this->__('Administrative contact for this app and for app submission issues.'),
270
  switch ($deviceType) {
271
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPHONE:
272
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('Large iTunes Icon'),
273
+ $this->__('Large icon that appears in the iTunes App Store. You do not need to apply a gradient or soft edges (this is done automatically by Apple).') . $this->__('Required size: %spx x %spx.', 512, 512), '', true);
274
 
275
  $this->addImage($fieldset, 'conf/submit/loader_image', $this->__('Loader Splash Screen'),
276
+ $this->__('Image that appears on first screen while your app is loading.') . $this->__('Required size: %spx x %spx.', 320, 460), '', true);
277
 
278
  $this->addImage($fieldset, 'conf/submit/loader_image_i4', $this->__('Loader Splash Screen <br />(iPhone 4 retina)'),
279
+ $this->__('Image that appears on first screen while your app is loading.') . $this->__('Required size: %spx x %spx.', 640, 920), '', false);
280
 
281
  $this->addImage($fieldset, 'conf/submit/logo', $this->__('Custom App Icon'),
282
+ $this->__('Icon that will appear on the user\'s phone after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple).') . $this->__('Recommended size: %spx x %spx at %s dpi.', 57, 57, 72), '', true);
283
 
284
  $this->addImage($fieldset, 'conf/submit/logo_i4', $this->__('Custom App Icon <br />(iPhone 4 retina)'),
285
+ $this->__('Icon that will appear on the user\'s phone after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple).') . $this->__('Recommended size: %spx x %spx.', 114, 114), '', false);
286
 
287
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
288
+ $this->__('Store logo that is displayed on copyright page of app.') . $this->__('Preferred size: %spx x %spx.', 100, 100), '', true);
289
 
290
  $this->addImage($fieldset, 'conf/submit/big_logo_i4', $this->__('Copyright Page Logo <br />(iPhone 4 retina)'),
291
+ $this->__('Store logo that is displayed on copyright page of app.') . $this->__('Preferred size: %spx x %spx.', 200, 200), '', false);
292
  break;
293
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPAD:
294
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('Large iTunes Icon'),
295
+ $this->__('Large icon that appears in the iTunes App Store. You do not need to apply a gradient or soft edges (this is done automatically by Apple).') . $this->__('Required size: %spx x %spx.', 512, 512), '', true);
296
 
297
  $this->addImage($fieldset, 'conf/submit/ipad_loader_portrait_image', $this->__('Loader Splash Screen <br />(portrait mode)'),
298
+ $this->__('Image that appears on first screen while your app is loading.') . $this->__('Required size: %spx x %spx.', 768, 1024), '', true);
299
 
300
  $this->addImage($fieldset, 'conf/submit/ipad_loader_landscape_image', $this->__('Loader Splash Screen <br />(landscape mode)'),
301
+ $this->__('Image that appears on first screen while your app is loading.') . $this->__('Required size: %spx x %spx.', 1024, 768), '', true);
302
 
303
  $this->addImage($fieldset, 'conf/submit/ipad_logo', $this->__('Custom App Icon'),
304
+ $this->__('Icon that will appear on the user\'s device after they download your app. You do not need to apply a gradient or soft edges (this is done automatically by Apple).') . $this->__('Recommended size: %spx x %spx.', 72, 72), '', true);
305
 
306
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
307
+ $this->__('Store logo that is displayed on copyright page of app.') . $this->__('Preferred size: %spx x %spx.', 100, 100), '', true);
308
  break;
309
  case Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID:
310
  $this->addImage($fieldset, 'conf/submit/icon', $this->__('High Resolution Application Icon'),
311
+ $this->__('The icon that appears in the Android Market.') . $this->__('Recommended size: %spx x %spx.', 512, 512) . $this->__('Maximum size: %s KB.', 1024), '', true);
312
 
313
  $this->addImage($fieldset, 'conf/submit/android_loader_image', $this->__('Loader Splash Screen'),
314
+ $this->__('Image that appears on first screen while your app is loading.') . $this->__('Required size: %spx x %spx.', 320, 455), '', true);
315
 
316
  $this->addImage($fieldset, 'conf/submit/android_logo', $this->__('Custom App Icon'),
317
+ $this->__('Icon that will appear on the user\'s device after they download your app.') . $this->__('Recommended size: %spx x %spx.', 48, 48), '', true);
318
 
319
  $this->addImage($fieldset, 'conf/submit/big_logo', $this->__('Copyright Page Logo'),
320
+ $this->__('Store logo that is displayed on copyright page of app.') . $this->__('Preferred size: %spx x %spx.', 100, 100), '', true);
321
  break;
322
  }
323
 
app/code/core/Mage/XmlConnect/Block/Cart.php CHANGED
@@ -84,13 +84,13 @@ class Mage_XmlConnect_Block_Cart extends Mage_Checkout_Block_Cart_Abstract
84
  }
85
  }
86
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
87
- $_incl = $this->helper('checkout')->getPriceInclTax($item);
88
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
89
  && $item->getWeeeTaxAppliedAmount()
90
  ) {
91
- $inclPrice = $_incl + $item->getWeeeTaxAppliedAmount();
92
  } else {
93
- $inclPrice = $_incl - $item->getWeeeTaxDisposition();
94
  }
95
  }
96
  $exclPrice = Mage::helper('xmlconnect')->formatPriceForXml($exclPrice);
@@ -150,13 +150,13 @@ class Mage_XmlConnect_Block_Cart extends Mage_Checkout_Block_Cart_Abstract
150
  }
151
  }
152
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
153
- $_incl = $this->helper('checkout')->getSubtotalInclTax($item);
154
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
155
  && $item->getWeeeTaxAppliedAmount()
156
  ) {
157
- $inclPrice = $_incl + $item->getWeeeTaxAppliedRowAmount();
158
  } else {
159
- $inclPrice = $_incl - $item->getWeeeTaxRowDisposition();
160
  }
161
  }
162
 
@@ -189,14 +189,14 @@ class Mage_XmlConnect_Block_Cart extends Mage_Checkout_Block_Cart_Abstract
189
  /**
190
  * Options list
191
  */
192
- $_options = $renderer->getOptionList();
193
- if ($_options) {
194
  $itemOptionsXml = $itemXml->addChild('options');
195
- foreach ($_options as $_option) {
196
- $_formattedOptionValue = $renderer->getFormatedOptionValue($_option);
197
  $optionXml = $itemOptionsXml->addChild('option');
198
- $optionXml->addAttribute('label', $xmlObject->xmlAttribute($_option['label']));
199
- $optionXml->addAttribute('text', $xmlObject->xmlAttribute($_formattedOptionValue['value']));
200
  }
201
  }
202
 
84
  }
85
  }
86
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
87
+ $incl = $this->helper('checkout')->getPriceInclTax($item);
88
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
89
  && $item->getWeeeTaxAppliedAmount()
90
  ) {
91
+ $inclPrice = $incl + $item->getWeeeTaxAppliedAmount();
92
  } else {
93
+ $inclPrice = $incl - $item->getWeeeTaxDisposition();
94
  }
95
  }
96
  $exclPrice = Mage::helper('xmlconnect')->formatPriceForXml($exclPrice);
150
  }
151
  }
152
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
153
+ $incl = $this->helper('checkout')->getSubtotalInclTax($item);
154
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
155
  && $item->getWeeeTaxAppliedAmount()
156
  ) {
157
+ $inclPrice = $incl + $item->getWeeeTaxAppliedRowAmount();
158
  } else {
159
+ $inclPrice = $incl - $item->getWeeeTaxRowDisposition();
160
  }
161
  }
162
 
189
  /**
190
  * Options list
191
  */
192
+ $options = $renderer->getOptionList();
193
+ if ($options) {
194
  $itemOptionsXml = $itemXml->addChild('options');
195
+ foreach ($options as $option) {
196
+ $formattedOptionValue = $renderer->getFormatedOptionValue($option);
197
  $optionXml = $itemOptionsXml->addChild('option');
198
+ $optionXml->addAttribute('label', $xmlObject->xmlAttribute($option['label']));
199
+ $optionXml->addAttribute('text', $xmlObject->xmlAttribute($formattedOptionValue['value']));
200
  }
201
  }
202
 
app/code/core/Mage/XmlConnect/Block/Cart/CartTotals.php CHANGED
@@ -40,13 +40,6 @@ class Mage_XmlConnect_Block_Cart_CartTotals extends Mage_Checkout_Block_Cart_Tot
40
  */
41
  protected $_defaultRenderer = 'xmlconnect/cart_cartTotals_default';
42
 
43
- /**
44
- * Cart xml object
45
- *
46
- * @var null|Mage_XmlConnect_Model_Simplexml_Element
47
- */
48
- protected $_cartXmlObject;
49
-
50
  /**
51
  * Render cart totals xml
52
  *
@@ -99,26 +92,4 @@ class Mage_XmlConnect_Block_Cart_CartTotals extends Mage_Checkout_Block_Cart_Tot
99
  $block->setTotals($this->getTotals());
100
  return $block;
101
  }
102
-
103
- /**
104
- * Set cart xml object
105
- *
106
- * @param Mage_XmlConnect_Model_Simplexml_Element $cartXmlObject
107
- * @return Mage_XmlConnect_Block_Cart_CartTotals
108
- */
109
- public function setCartXmlObject($cartXmlObject)
110
- {
111
- $this->_cartXmlObject = $cartXmlObject;
112
- return $this;
113
- }
114
-
115
- /**
116
- * Get cart xml object
117
- *
118
- * @return Mage_XmlConnect_Model_Simplexml_Element|null
119
- */
120
- public function getCartXmlObject()
121
- {
122
- return $this->_cartXmlObject;
123
- }
124
  }
40
  */
41
  protected $_defaultRenderer = 'xmlconnect/cart_cartTotals_default';
42
 
 
 
 
 
 
 
 
43
  /**
44
  * Render cart totals xml
45
  *
92
  $block->setTotals($this->getTotals());
93
  return $block;
94
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
app/code/core/Mage/XmlConnect/Block/Cart/CartTotals/Nodes/Giftcardaccount.php CHANGED
@@ -45,16 +45,16 @@ class Mage_Xmlconnect_Block_Cart_CartTotals_Nodes_Giftcardaccount extends Mage_C
45
  }
46
  /** @var $cartXmlObject Mage_XmlConnect_Model_Simplexml_Element */
47
  $cartXmlObject = $this->getCartObject();
48
- $_cards = $this->getTotal()->getGiftCards();
49
- if (!$_cards) {
50
- $_cards = $this->getQuoteGiftCards();
51
  }
52
  $code = $this->getTotal()->getCode();
53
 
54
  /** @var $giftCardsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
55
  $giftCardsXmlObj = $cartXmlObject->addCustomChild($code);
56
 
57
- foreach ($_cards as $cardCode) {
58
  $giftCardValue = Mage::helper('xmlconnect')->formatPriceForXml($cardCode['a']);
59
  $formattedValue = $this->getQuote()->getStore()->formatPrice($giftCardValue, false);
60
  $giftCardsXmlObj->addCustomChild('item', '-' . $giftCardValue, array(
45
  }
46
  /** @var $cartXmlObject Mage_XmlConnect_Model_Simplexml_Element */
47
  $cartXmlObject = $this->getCartObject();
48
+ $cards = $this->getTotal()->getGiftCards();
49
+ if (!$cards) {
50
+ $cards = $this->getQuoteGiftCards();
51
  }
52
  $code = $this->getTotal()->getCode();
53
 
54
  /** @var $giftCardsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
55
  $giftCardsXmlObj = $cartXmlObject->addCustomChild($code);
56
 
57
+ foreach ($cards as $cardCode) {
58
  $giftCardValue = Mage::helper('xmlconnect')->formatPriceForXml($cardCode['a']);
59
  $formattedValue = $this->getQuote()->getStore()->formatPrice($giftCardValue, false);
60
  $giftCardsXmlObj->addCustomChild('item', '-' . $giftCardValue, array(
app/code/core/Mage/XmlConnect/Block/Cart/Items.php CHANGED
@@ -77,13 +77,13 @@ class Mage_XmlConnect_Block_Cart_Items extends Mage_Checkout_Block_Cart_Abstract
77
  }
78
  }
79
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
80
- $_incl = $this->helper('checkout')->getPriceInclTax($item);
81
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
82
  && $item->getWeeeTaxAppliedAmount()
83
  ) {
84
- $inclPrice = $_incl + $item->getWeeeTaxAppliedAmount();
85
  } else {
86
- $inclPrice = $_incl - $item->getWeeeTaxDisposition();
87
  }
88
  }
89
  $exclPrice = Mage::helper('xmlconnect')->formatPriceForXml($exclPrice);
@@ -162,13 +162,13 @@ class Mage_XmlConnect_Block_Cart_Items extends Mage_Checkout_Block_Cart_Abstract
162
  }
163
  }
164
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
165
- $_incl = $this->helper('checkout')->getSubtotalInclTax($item);
166
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
167
  && $item->getWeeeTaxAppliedAmount()
168
  ) {
169
- $subtotalInclTax = $_incl + $item->getWeeeTaxAppliedRowAmount();
170
  } else {
171
- $subtotalInclTax = $_incl - $item->getWeeeTaxRowDisposition();
172
  }
173
  }
174
 
@@ -212,14 +212,14 @@ class Mage_XmlConnect_Block_Cart_Items extends Mage_Checkout_Block_Cart_Abstract
212
  /**
213
  * Options list
214
  */
215
- $_options = $renderer->getOptionList();
216
- if ($_options) {
217
  $itemOptionsXml = $itemXml->addCustomChild('options');
218
- foreach ($_options as $_option) {
219
- $_formattedOptionValue = $renderer->getFormatedOptionValue($_option);
220
  $itemOptionsXml->addCustomChild('option', null, array(
221
  'label' => $xmlObject->xmlAttribute($_option['label']),
222
- 'text' => $xmlObject->xmlAttribute($_formattedOptionValue['value'])
223
  ));
224
  }
225
  }
77
  }
78
  }
79
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
80
+ $incl = $this->helper('checkout')->getPriceInclTax($item);
81
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
82
  && $item->getWeeeTaxAppliedAmount()
83
  ) {
84
+ $inclPrice = $incl + $item->getWeeeTaxAppliedAmount();
85
  } else {
86
+ $inclPrice = $incl - $item->getWeeeTaxDisposition();
87
  }
88
  }
89
  $exclPrice = Mage::helper('xmlconnect')->formatPriceForXml($exclPrice);
162
  }
163
  }
164
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
165
+ $incl = $this->helper('checkout')->getSubtotalInclTax($item);
166
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
167
  && $item->getWeeeTaxAppliedAmount()
168
  ) {
169
+ $subtotalInclTax = $incl + $item->getWeeeTaxAppliedRowAmount();
170
  } else {
171
+ $subtotalInclTax = $incl - $item->getWeeeTaxRowDisposition();
172
  }
173
  }
174
 
212
  /**
213
  * Options list
214
  */
215
+ $options = $renderer->getOptionList();
216
+ if ($options) {
217
  $itemOptionsXml = $itemXml->addCustomChild('options');
218
+ foreach ($options as $_option) {
219
+ $formattedOptionValue = $renderer->getFormatedOptionValue($_option);
220
  $itemOptionsXml->addCustomChild('option', null, array(
221
  'label' => $xmlObject->xmlAttribute($_option['label']),
222
+ 'text' => $xmlObject->xmlAttribute($formattedOptionValue['value'])
223
  ));
224
  }
225
  }
app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Details.php CHANGED
@@ -42,8 +42,8 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Details extends Mage_Paypal_Block_E
42
  public function addDetailsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $reviewXmlObj)
43
  {
44
  $itemsXmlObj = $reviewXmlObj->addChild('ordered_items');
45
- foreach ($this->getItems() as $_item) {
46
- $this->getItemXml($_item, $itemsXmlObj);
47
  }
48
 
49
  $reviewXmlObj->appendChild($this->getChild('totals')->setReturnObjectFlag(true)->_toHtml());
42
  public function addDetailsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $reviewXmlObj)
43
  {
44
  $itemsXmlObj = $reviewXmlObj->addChild('ordered_items');
45
+ foreach ($this->getItems() as $item) {
46
+ $this->getItemXml($item, $itemsXmlObj);
47
  }
48
 
49
  $reviewXmlObj->appendChild($this->getChild('totals')->setReturnObjectFlag(true)->_toHtml());
app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/OrderDetails.php CHANGED
@@ -42,8 +42,8 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mecl_OrderDetails extends Mage_Paypal_Bl
42
  public function addDetailsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $reviewXmlObj)
43
  {
44
  $itemsXmlObj = $reviewXmlObj->addChild('ordered_items');
45
- foreach ($this->getItems() as $_item) {
46
- $this->getItemXml($_item, $itemsXmlObj);
47
  }
48
 
49
  $this->getChild('totals')->setCartXmlObject($reviewXmlObj)->_toHtml();
42
  public function addDetailsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $reviewXmlObj)
43
  {
44
  $itemsXmlObj = $reviewXmlObj->addChild('ordered_items');
45
+ foreach ($this->getItems() as $item) {
46
+ $this->getItemXml($item, $itemsXmlObj);
47
  }
48
 
49
  $this->getChild('totals')->setCartXmlObject($reviewXmlObj)->_toHtml();
app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mep/Totals.php CHANGED
@@ -43,7 +43,7 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mep_Totals extends Mage_Checkout_Block_C
43
  /** @var $paypalCart Mage_Paypal_Model_Cart */
44
  $paypalCart = Mage::getModel('paypal/cart', array($this->getQuote()));
45
  /** @var $totalsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
46
- $totalsXmlObj = Mage::getModel('xmlconnect/simplexml_element', '<cart_totals></cart_totals>');
47
  foreach ($paypalCart->getTotals(true) as $code => $amount) {
48
  $currencyAmount = $this->helper('core')->currency($amount, false, false);
49
  $totalsXmlObj->addChild($code, sprintf('%01.2F', $currencyAmount));
43
  /** @var $paypalCart Mage_Paypal_Model_Cart */
44
  $paypalCart = Mage::getModel('paypal/cart', array($this->getQuote()));
45
  /** @var $totalsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
46
+ $totalsXmlObj = Mage::getModel('xmlconnect/simplexml_element', '<cart_totals></cart_totals>');
47
  foreach ($paypalCart->getTotals(true) as $code => $amount) {
48
  $currencyAmount = $this->helper('core')->currency($amount, false, false);
49
  $totalsXmlObj->addChild($code, sprintf('%01.2F', $currencyAmount));
app/code/core/Mage/XmlConnect/Block/Cart/Totals.php CHANGED
@@ -90,7 +90,6 @@ class Mage_XmlConnect_Block_Cart_Totals extends Mage_Checkout_Block_Cart_Totals
90
  $this->_addTotalDataToXmlObj(
91
  $totalsXmlObj, $code . '_excl_tax', $title, $grandTotalExlTax
92
  );
93
-
94
  $code = $code . '_incl_tax';
95
  $title = $this->__('Grand Total (Incl. Tax)');
96
  }
@@ -101,12 +100,12 @@ class Mage_XmlConnect_Block_Cart_Totals extends Mage_Checkout_Block_Cart_Totals
101
  }
102
  continue 2;
103
  case 'giftcardaccount':
104
- $_cards = $renderer->getTotal()->getGiftCards();
105
- if (!$_cards) {
106
- $_cards = $renderer->getQuoteGiftCards();
107
  }
108
  if ($renderer->getTotal()->getValue()) {
109
- foreach ($_cards as $cardCode) {
110
  $title = $this->__('Gift Card (%s)', $cardCode['c']);
111
  $value = $cardCode['c'];
112
  $totalXmlObj = $totalsXmlObj->addChild($code);
90
  $this->_addTotalDataToXmlObj(
91
  $totalsXmlObj, $code . '_excl_tax', $title, $grandTotalExlTax
92
  );
 
93
  $code = $code . '_incl_tax';
94
  $title = $this->__('Grand Total (Incl. Tax)');
95
  }
100
  }
101
  continue 2;
102
  case 'giftcardaccount':
103
+ $cards = $renderer->getTotal()->getGiftCards();
104
+ if (!$cards) {
105
+ $cards = $renderer->getQuoteGiftCards();
106
  }
107
  if ($renderer->getTotal()->getValue()) {
108
+ foreach ($cards as $cardCode) {
109
  $title = $this->__('Gift Card (%s)', $cardCode['c']);
110
  $value = $cardCode['c'];
111
  $totalXmlObj = $totalsXmlObj->addChild($code);
app/code/core/Mage/XmlConnect/Block/Catalog.php CHANGED
@@ -116,13 +116,13 @@ class Mage_XmlConnect_Block_Catalog extends Mage_Catalog_Block_Product_List_Tool
116
  $sortOptions = array_merge(array('relevance' => $this->__('Relevance')), $sortOptions);
117
  $this->setAvailableOrders($sortOptions)->setDefaultDirection('desc')->setSortBy('relevance');
118
 
119
- foreach($this->getAvailableOrders() as $_key => $_order) {
120
  $item = $ordersXmlObject->addChild('item');
121
- if ($this->isOrderCurrent($_key)) {
122
  $item->addAttribute('isDefault', 1);
123
  }
124
- $item->addChild('code', $_key);
125
- $item->addChild('name', $ordersXmlObject->escapeXml($_order));
126
  }
127
  return $ordersXmlObject;
128
  }
116
  $sortOptions = array_merge(array('relevance' => $this->__('Relevance')), $sortOptions);
117
  $this->setAvailableOrders($sortOptions)->setDefaultDirection('desc')->setSortBy('relevance');
118
 
119
+ foreach($this->getAvailableOrders() as $key => $order) {
120
  $item = $ordersXmlObject->addChild('item');
121
+ if ($this->isOrderCurrent($key)) {
122
  $item->addAttribute('isDefault', 1);
123
  }
124
+ $item->addChild('code', $key);
125
+ $item->addChild('name', $ordersXmlObject->escapeXml($order));
126
  }
127
  return $ordersXmlObject;
128
  }
app/code/core/Mage/XmlConnect/Block/Catalog/Product/ItemPrice/Giftcard.php CHANGED
@@ -66,30 +66,31 @@ class Mage_XmlConnect_Block_Catalog_Product_ItemPrice_Giftcard extends Mage_Bund
66
  *
67
  * @param Mage_Catalog_Model_Product $product
68
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
 
69
  */
70
- public function collectProductPrices(
71
- Mage_Catalog_Model_Product $product, Mage_XmlConnect_Model_Simplexml_Element $item
72
- ) {
73
  $this->setProduct($product);
74
 
75
  if ($product->getCanShowPrice() !== false) {
76
  $priceListXmlObj = $item->addCustomChild('price_list');
77
 
78
- $_min = $this->getMinAmount();
79
- $_max = $this->getMaxAmount();
80
- if ($_min && $_max && $_min == $_max) {
81
  $pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
82
- $pricesXmlObj->addCustomChild('price', $_min, array(
83
  'id' => 'regular',
84
  'label' => $this->__('Regular'),
85
- 'formatted_value' => Mage::helper('core')->currency($_min, true, false)
86
  ));
87
- } elseif ($_min && $_min != 0) {
88
  $pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
89
- $pricesXmlObj->addCustomChild('price', $_min, array(
90
  'id' => 'regular',
91
  'label' => $this->__('From'),
92
- 'formatted_value' => Mage::helper('core')->currency($_min, true, false)
93
  ));
94
  }
95
  }
66
  *
67
  * @param Mage_Catalog_Model_Product $product
68
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
69
+ * @return null
70
  */
71
+ public function collectProductPrices(Mage_Catalog_Model_Product $product,
72
+ Mage_XmlConnect_Model_Simplexml_Element $item)
73
+ {
74
  $this->setProduct($product);
75
 
76
  if ($product->getCanShowPrice() !== false) {
77
  $priceListXmlObj = $item->addCustomChild('price_list');
78
 
79
+ $min = $this->getMinAmount();
80
+ $max = $this->getMaxAmount();
81
+ if ($min && $max && $min == $max) {
82
  $pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
83
+ $pricesXmlObj->addCustomChild('price', $min, array(
84
  'id' => 'regular',
85
  'label' => $this->__('Regular'),
86
+ 'formatted_value' => Mage::helper('core')->currency($min, true, false)
87
  ));
88
+ } elseif ($min && $min != 0) {
89
  $pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
90
+ $pricesXmlObj->addCustomChild('price', $min, array(
91
  'id' => 'regular',
92
  'label' => $this->__('From'),
93
+ 'formatted_value' => Mage::helper('core')->currency($min, true, false)
94
  ));
95
  }
96
  }
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options.php CHANGED
@@ -64,7 +64,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options extends Mage_XmlConnect_Bloc
64
  }
65
 
66
  /**
67
- * Create product custom options Mage_XmlConnect_Model_Simplexml_Element object
68
  *
69
  * @param Mage_Catalog_Model_Product $product
70
  * @return Mage_XmlConnect_Model_Simplexml_Element
@@ -189,7 +189,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options extends Mage_XmlConnect_Bloc
189
  }
190
 
191
  /**
192
- * Create produc custom options Mage_XmlConnect_Model_Simplexml_Element object
193
  *
194
  * @param Mage_Catalog_Model_Product $product
195
  * @return Mage_XmlConnect_Model_Simplexml_Element | false
64
  }
65
 
66
  /**
67
+ * Create produc custom options Mage_XmlConnect_Model_Simplexml_Element object
68
  *
69
  * @param Mage_Catalog_Model_Product $product
70
  * @return Mage_XmlConnect_Model_Simplexml_Element
189
  }
190
 
191
  /**
192
+ * Create product custom options Mage_XmlConnect_Model_Simplexml_Element object
193
  *
194
  * @param Mage_Catalog_Model_Product $product
195
  * @return Mage_XmlConnect_Model_Simplexml_Element | false
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Bundle.php CHANGED
@@ -66,9 +66,9 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Bundle extends Mage_XmlConne
66
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
67
  }
68
 
69
- foreach ($bundleOptions as $_option) {
70
- $selections = $_option->getSelections();
71
- $optionId = $_option->getOptionId();
72
  if (empty($selections)) {
73
  continue;
74
  }
@@ -76,43 +76,43 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Bundle extends Mage_XmlConne
76
  $optionNode = $optionsXmlObj->addChild('option');
77
 
78
  $type = parent::OPTION_TYPE_SELECT;
79
- if ($_option->isMultiSelection()) {
80
  $type = parent::OPTION_TYPE_CHECKBOX;
81
  }
82
- $code = 'bundle_option[' . $_option->getId() . ']';
83
  if ($type == parent::OPTION_TYPE_CHECKBOX) {
84
  $code .= '[]';
85
  }
86
  $optionNode->addAttribute('code', $code);
87
  $optionNode->addAttribute('type', $type);
88
- $optionNode->addAttribute('label', $optionsXmlObj->escapeXml($_option->getTitle()));
89
- if ($_option->getRequired()) {
90
  $optionNode->addAttribute('is_required', 1);
91
  }
92
 
93
- foreach ($selections as $_selection) {
94
- if (!$_selection->isSaleable()) {
95
  continue;
96
  }
97
- $_qty = null;
98
  if ($product->hasPreconfiguredValues()) {
99
- $_qty = $product->getPreconfiguredValues()->getData("bundle_option_qty/{$optionId}");
100
  }
101
- if (null === $_qty) {
102
- $_qty = !($_selection->getSelectionQty() * 1) ? '1' : $_selection->getSelectionQty() * 1;
103
  }
104
 
105
  $valueNode = $optionNode->addChild('value');
106
- $valueNode->addAttribute('code', $_selection->getSelectionId());
107
- $valueNode->addAttribute('label', $optionsXmlObj->escapeXml($_selection->getName()));
108
- if (!$_option->isMultiSelection()) {
109
- if ($_selection->getSelectionCanChangeQty()) {
110
  $valueNode->addAttribute('is_qty_editable', 1);
111
  }
112
  }
113
- $valueNode->addAttribute('qty', $_qty);
114
 
115
- $price = $product->getPriceModel()->getSelectionPreFinalPrice($product, $_selection);
116
  $price = Mage::helper('xmlconnect')->formatPriceForXml($price);
117
  if ((float)$price != 0.00) {
118
  $valueNode->addAttribute('price', Mage::helper('xmlconnect')->formatPriceForXml(
@@ -123,7 +123,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Bundle extends Mage_XmlConne
123
 
124
  if ($product->hasPreconfiguredValues()) {
125
  $this->_setCartSelectedValue($valueNode, $type, $this->_getPreconfiguredOption(
126
- $optionData, $optionId, $_selection->getSelectionId()
127
  ));
128
  }
129
  }
66
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
67
  }
68
 
69
+ foreach ($bundleOptions as $option) {
70
+ $selections = $option->getSelections();
71
+ $optionId = $option->getOptionId();
72
  if (empty($selections)) {
73
  continue;
74
  }
76
  $optionNode = $optionsXmlObj->addChild('option');
77
 
78
  $type = parent::OPTION_TYPE_SELECT;
79
+ if ($option->isMultiSelection()) {
80
  $type = parent::OPTION_TYPE_CHECKBOX;
81
  }
82
+ $code = 'bundle_option[' . $option->getId() . ']';
83
  if ($type == parent::OPTION_TYPE_CHECKBOX) {
84
  $code .= '[]';
85
  }
86
  $optionNode->addAttribute('code', $code);
87
  $optionNode->addAttribute('type', $type);
88
+ $optionNode->addAttribute('label', $optionsXmlObj->escapeXml($option->getTitle()));
89
+ if ($option->getRequired()) {
90
  $optionNode->addAttribute('is_required', 1);
91
  }
92
 
93
+ foreach ($selections as $selection) {
94
+ if (!$selection->isSaleable()) {
95
  continue;
96
  }
97
+ $qty = null;
98
  if ($product->hasPreconfiguredValues()) {
99
+ $qty = $product->getPreconfiguredValues()->getData("bundle_option_qty/{$optionId}");
100
  }
101
+ if (null === $qty) {
102
+ $qty = !($selection->getSelectionQty() * 1) ? '1' : $selection->getSelectionQty() * 1;
103
  }
104
 
105
  $valueNode = $optionNode->addChild('value');
106
+ $valueNode->addAttribute('code', $selection->getSelectionId());
107
+ $valueNode->addAttribute('label', $optionsXmlObj->escapeXml($selection->getName()));
108
+ if (!$option->isMultiSelection()) {
109
+ if ($selection->getSelectionCanChangeQty()) {
110
  $valueNode->addAttribute('is_qty_editable', 1);
111
  }
112
  }
113
+ $valueNode->addAttribute('qty', $qty);
114
 
115
+ $price = $product->getPriceModel()->getSelectionPreFinalPrice($product, $selection);
116
  $price = Mage::helper('xmlconnect')->formatPriceForXml($price);
117
  if ((float)$price != 0.00) {
118
  $valueNode->addAttribute('price', Mage::helper('xmlconnect')->formatPriceForXml(
123
 
124
  if ($product->hasPreconfiguredValues()) {
125
  $this->_setCartSelectedValue($valueNode, $type, $this->_getPreconfiguredOption(
126
+ $optionData, $optionId, $selection->getSelectionId()
127
  ));
128
  }
129
  }
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Configurable.php CHANGED
@@ -57,28 +57,28 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
57
  /**
58
  * Configurable attributes
59
  */
60
- $_attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
61
- if (!sizeof($_attributes)) {
62
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
63
  }
64
 
65
- $_allowProducts = array();
66
- $_allProducts = $product->getTypeInstance(true)->getUsedProducts(null, $product);
67
- foreach ($_allProducts as $_product) {
68
- if ($_product->isSaleable()) {
69
- $_allowProducts[] = $_product;
70
  }
71
  }
72
 
73
  /**
74
  * Allowed products options
75
  */
76
- foreach ($_allowProducts as $_item) {
77
- $_productId = $_item->getId();
78
 
79
- foreach ($_attributes as $attribute) {
80
  $productAttribute = $attribute->getProductAttribute();
81
- $attributeValue = $_item->getData($productAttribute->getAttributeCode());
82
  if (!isset($options[$productAttribute->getId()])) {
83
  $options[$productAttribute->getId()] = array();
84
  }
@@ -86,11 +86,11 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
86
  if (!isset($options[$productAttribute->getId()][$attributeValue])) {
87
  $options[$productAttribute->getId()][$attributeValue] = array();
88
  }
89
- $options[$productAttribute->getId()][$attributeValue][] = $_productId;
90
  }
91
  }
92
 
93
- foreach ($_attributes as $attribute) {
94
  $productAttribute = $attribute->getProductAttribute();
95
  $attributeId = $productAttribute->getId();
96
  $info = array(
@@ -129,8 +129,8 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
129
 
130
  $isFirst = true;
131
 
132
- $_attributes = $attributes;
133
- reset($_attributes);
134
  foreach ($attributes as $id => $attribute) {
135
  $optionNode = $optionsXmlObj->addChild('option');
136
  $optionNode->addAttribute('code', 'super_attribute[' . $id . ']');
@@ -146,8 +146,8 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
146
  $valueNode->addAttribute('price', $option['price']);
147
  $valueNode->addAttribute('formated_price', $option['formated_price']);
148
  }
149
- if (sizeof($_attributes) > 1) {
150
- $this->_prepareRecursivelyRelatedValues($valueNode, $_attributes, $option['products'], 1);
151
  }
152
  if ($product->hasPreconfiguredValues()) {
153
  $this->_setCartSelectedValue($valueNode, 'select', $this->_getPreconfiguredOption(
@@ -194,21 +194,21 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
194
  $relatedNode->addAttribute('to', 'super_attribute[' . $attrId . ']');
195
  }
196
 
197
- $_valueNode = $relatedNode->addChild('value');
198
- $_valueNode->addAttribute('code', $option['id']);
199
- $_valueNode->addAttribute('label', $_valueNode->escapeXml($option['label']));
200
  if ((float)$option['price'] != 0.00) {
201
- $_valueNode->addAttribute('price', $option['price']);
202
- $_valueNode->addAttribute('formated_price', $option['formated_price']);
203
  }
204
 
205
  /**
206
  * Recursive relation adding
207
  */
208
- $_attrClone = $attributes;
209
- if (next($_attrClone) != false) {
210
- reset($_attrClone);
211
- $this->_prepareRecursivelyRelatedValues($_valueNode, $_attrClone, $intersect, $cycle + 1);
212
  }
213
  }
214
  }
57
  /**
58
  * Configurable attributes
59
  */
60
+ $productAttributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
61
+ if (!sizeof($productAttributes)) {
62
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
63
  }
64
 
65
+ $allowProducts = array();
66
+ $allProducts = $product->getTypeInstance(true)->getUsedProducts(null, $product);
67
+ foreach ($allProducts as $productItem) {
68
+ if ($productItem->isSaleable()) {
69
+ $allowProducts[] = $productItem;
70
  }
71
  }
72
 
73
  /**
74
  * Allowed products options
75
  */
76
+ foreach ($allowProducts as $item) {
77
+ $productId = $item->getId();
78
 
79
+ foreach ($productAttributes as $attribute) {
80
  $productAttribute = $attribute->getProductAttribute();
81
+ $attributeValue = $item->getData($productAttribute->getAttributeCode());
82
  if (!isset($options[$productAttribute->getId()])) {
83
  $options[$productAttribute->getId()] = array();
84
  }
86
  if (!isset($options[$productAttribute->getId()][$attributeValue])) {
87
  $options[$productAttribute->getId()][$attributeValue] = array();
88
  }
89
+ $options[$productAttribute->getId()][$attributeValue][] = $productId;
90
  }
91
  }
92
 
93
+ foreach ($productAttributes as $attribute) {
94
  $productAttribute = $attribute->getProductAttribute();
95
  $attributeId = $productAttribute->getId();
96
  $info = array(
129
 
130
  $isFirst = true;
131
 
132
+ $productAttributes = $attributes;
133
+ reset($productAttributes);
134
  foreach ($attributes as $id => $attribute) {
135
  $optionNode = $optionsXmlObj->addChild('option');
136
  $optionNode->addAttribute('code', 'super_attribute[' . $id . ']');
146
  $valueNode->addAttribute('price', $option['price']);
147
  $valueNode->addAttribute('formated_price', $option['formated_price']);
148
  }
149
+ if (sizeof($productAttributes) > 1) {
150
+ $this->_prepareRecursivelyRelatedValues($valueNode, $productAttributes, $option['products'], 1);
151
  }
152
  if ($product->hasPreconfiguredValues()) {
153
  $this->_setCartSelectedValue($valueNode, 'select', $this->_getPreconfiguredOption(
194
  $relatedNode->addAttribute('to', 'super_attribute[' . $attrId . ']');
195
  }
196
 
197
+ $nodeValue = $relatedNode->addChild('value');
198
+ $nodeValue->addAttribute('code', $option['id']);
199
+ $nodeValue->addAttribute('label', $nodeValue->escapeXml($option['label']));
200
  if ((float)$option['price'] != 0.00) {
201
+ $nodeValue->addAttribute('price', $option['price']);
202
+ $nodeValue->addAttribute('formated_price', $option['formated_price']);
203
  }
204
 
205
  /**
206
  * Recursive relation adding
207
  */
208
+ $attrClone = $attributes;
209
+ if (next($attrClone) != false) {
210
+ reset($attrClone);
211
+ $this->_prepareRecursivelyRelatedValues($nodeValue, $attrClone, $intersect, $cycle + 1);
212
  }
213
  }
214
  }
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Grouped.php CHANGED
@@ -55,30 +55,30 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Grouped extends Mage_XmlConn
55
  /**
56
  * Grouped (associated) products
57
  */
58
- $_associatedProducts = $product->getTypeInstance(true)->getAssociatedProducts($product);
59
- if (!sizeof($_associatedProducts)) {
60
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
61
  }
62
 
63
- foreach ($_associatedProducts as $_item) {
64
- if (!$_item->isSaleable()) {
65
  continue;
66
  }
67
  $optionNode = $optionsNode->addChild('option');
68
 
69
- $optionNode->addAttribute('code', 'super_group[' . $_item->getId() . ']');
70
  $optionNode->addAttribute('type', 'product');
71
- $optionNode->addAttribute('label', $xmlModel->escapeXml($_item->getName()));
72
  $optionNode->addAttribute('is_qty_editable', 1);
73
- $optionNode->addAttribute('qty', $_item->getQty()*1);
74
 
75
  /**
76
  * Process product price
77
  */
78
- if ($_item->getPrice() != $_item->getFinalPrice()) {
79
- $productPrice = $_item->getFinalPrice();
80
  } else {
81
- $productPrice = $_item->getPrice();
82
  }
83
 
84
  if ($productPrice != 0) {
55
  /**
56
  * Grouped (associated) products
57
  */
58
+ $associatedProducts = $product->getTypeInstance(true)->getAssociatedProducts($product);
59
+ if (!sizeof($associatedProducts)) {
60
  return $isObject ? $xmlModel : $xmlModel->asNiceXml();
61
  }
62
 
63
+ foreach ($associatedProducts as $item) {
64
+ if (!$item->isSaleable()) {
65
  continue;
66
  }
67
  $optionNode = $optionsNode->addChild('option');
68
 
69
+ $optionNode->addAttribute('code', 'super_group[' . $item->getId() . ']');
70
  $optionNode->addAttribute('type', 'product');
71
+ $optionNode->addAttribute('label', $xmlModel->escapeXml($item->getName()));
72
  $optionNode->addAttribute('is_qty_editable', 1);
73
+ $optionNode->addAttribute('qty', $item->getQty()*1);
74
 
75
  /**
76
  * Process product price
77
  */
78
+ if ($item->getPrice() != $item->getFinalPrice()) {
79
+ $productPrice = $item->getFinalPrice();
80
  } else {
81
+ $productPrice = $item->getPrice();
82
  }
83
 
84
  if ($productPrice != 0) {
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Bundle.php CHANGED
@@ -39,9 +39,9 @@ class Mage_XmlConnect_Block_Catalog_Product_Price_Bundle extends Mage_Bundle_Blo
39
  * @param Mage_Catalog_Model_Product $product
40
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
41
  */
42
- public function collectProductPrices(
43
- Mage_Catalog_Model_Product $product, Mage_XmlConnect_Model_Simplexml_Element $item
44
- ) {
45
  $this->setProduct($product)->setDisplayMinimalPrice(true)->setUseLinkForAsLowAs(false);
46
 
47
  $priceXmlObj = $item->addChild('price');
39
  * @param Mage_Catalog_Model_Product $product
40
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
41
  */
42
+ public function collectProductPrices(Mage_Catalog_Model_Product $product,
43
+ Mage_XmlConnect_Model_Simplexml_Element $item)
44
+ {
45
  $this->setProduct($product)->setDisplayMinimalPrice(true)->setUseLinkForAsLowAs(false);
46
 
47
  $priceXmlObj = $item->addChild('price');
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Default.php CHANGED
@@ -39,321 +39,321 @@ class Mage_XmlConnect_Block_Catalog_Product_Price_Default extends Mage_Catalog_B
39
  * @param Mage_Catalog_Model_Product $product
40
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
41
  */
42
- public function collectProductPrices(
43
- Mage_Catalog_Model_Product $product, Mage_XmlConnect_Model_Simplexml_Element $item
44
- ) {
45
  $this->setProduct($product)->setDisplayMinimalPrice(true)->setUseLinkForAsLowAs(false);
46
 
47
  $priceXmlObj = $item->addChild('price');
48
- $_tierPrices = $this->_getTierPrices($product);
49
- if (count($_tierPrices) > 0) {
50
  $tierPricesTextArray = $item->escapeXml(implode(
51
- PHP_EOL, $this->_getTierPricesTextArray($_tierPrices, $product)
52
  ));
53
  $item->addCustomChild('price_tier', $tierPricesTextArray);
54
  }
55
 
56
- /** @var $_coreHelper Mage_Core_Helper_Data */
57
- $_coreHelper = $this->helper('core');
58
- /** @var $_weeeHelper Mage_Weee_Helper_Data */
59
- $_weeeHelper = $this->helper('weee');
60
- /** @var $_taxHelper Mage_Tax_Helper_Data */
61
- $_taxHelper = $this->helper('tax');
62
 
63
- $_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices());
64
- $_minimalPriceValue = $product->getMinimalPrice();
65
- $_minimalPrice = $_taxHelper->getPrice($product, $_minimalPriceValue, $_simplePricesTax);
66
 
67
  if (!$product->isGrouped()) {
68
- $_weeeTaxAmount = $_weeeHelper->getAmountForDisplay($product);
69
- if ($_weeeHelper->typeOfDisplay($product, array(1, 2, 4))) {
70
- $_weeeTaxAmount = $_weeeHelper->getAmount($product);
71
- $_weeeTaxAttributes = $_weeeHelper->getProductWeeeAttributesForDisplay($product);
72
  }
73
 
74
- $_price = $_taxHelper->getPrice($product, $product->getPrice());
75
- $_regularPrice = $_taxHelper->getPrice($product, $product->getPrice(), $_simplePricesTax);
76
- $_finalPrice = $_taxHelper->getPrice($product, $product->getFinalPrice());
77
- $_finalPriceInclTax = $_taxHelper->getPrice($product, $product->getFinalPrice(), true);
78
- $_weeeHelper->getPriceDisplayType();
79
- if ($_finalPrice == $_price) {
80
- if ($_taxHelper->displayBothPrices()) {
81
  /**
82
  * Including
83
  */
84
- if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 0)) {
85
  $priceXmlObj->addAttribute(
86
- 'excluding_tax', $_coreHelper->currency($_price + $_weeeTaxAmount, true, false)
87
  );
88
  $priceXmlObj->addAttribute(
89
- 'including_tax', $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmount, true, false)
90
  );
91
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 1)) {
92
  /**
93
  * Including + Weee
94
  */
95
  $priceXmlObj->addAttribute(
96
- 'excluding_tax', $_coreHelper->currency($_price + $_weeeTaxAmount, true, false)
97
  );
98
  $priceXmlObj->addAttribute(
99
- 'including_tax', $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmount, true, false)
100
  );
101
  $weeeXmlObj = $priceXmlObj->addChild('weee');
102
- $_weeeSeparator = ' + ';
103
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
104
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
105
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
106
  $weeeItemXmlObj->addAttribute(
107
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
108
  );
109
  $weeeItemXmlObj->addAttribute(
110
- 'amount', $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, false)
111
  );
112
  }
113
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 4)) {
114
  /**
115
  * Including + Weee
116
  */
117
  $priceXmlObj->addAttribute(
118
- 'excluding_tax', $_coreHelper->currency($_price + $_weeeTaxAmount, true, false)
119
  );
120
  $priceXmlObj->addAttribute(
121
- 'including_tax', $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmount, true, false)
122
  );
123
  $weeeXmlObj = $priceXmlObj->addChild('weee');
124
- $_weeeSeparator = ' + ';
125
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
126
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
127
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
128
  $weeeItemXmlObj->addAttribute(
129
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
130
  );
131
- $weeeItemXmlObj->addAttribute('amount', $_coreHelper->currency(
132
- $_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, false
133
  ));
134
  }
135
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 2)) {
136
  /**
137
  * Excluding + Weee + Final
138
  */
139
- $priceXmlObj->addAttribute('excluding_tax', $_coreHelper->currency($_price, true, false));
140
  $weeeXmlObj = $priceXmlObj->addChild('weee');
141
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
142
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
143
  $weeeItemXmlObj->addAttribute(
144
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
145
  );
146
  $weeeItemXmlObj->addAttribute(
147
- 'amount', $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, false)
148
  );
149
  }
150
- $priceXmlObj->addAttribute('including_tax', $_coreHelper->currency(
151
- $_finalPriceInclTax + $_weeeTaxAmount, true, false
152
  ));
153
  } else {
154
- $priceXmlObj->addAttribute('excluding_tax', $_coreHelper->currency($_price, true, false));
155
  $priceXmlObj->addAttribute(
156
- 'including_tax', $_coreHelper->currency($_finalPriceInclTax, true, false)
157
  );
158
  }
159
  /**
160
- * if ($_taxHelper->displayBothPrices()) {
161
  */
162
  } else {
163
  /**
164
  * Including
165
  */
166
- if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 0)) {
167
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
168
- $_price + $_weeeTaxAmount, true, false
169
  ));
170
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 1)) {
171
  /**
172
  * Including + Weee
173
  */
174
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
175
- $_price + $_weeeTaxAmount, true, false
176
  ));
177
  $weeeXmlObj = $priceXmlObj->addChild('weee');
178
- $_weeeSeparator = ' + ';
179
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
180
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
181
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
182
  $weeeItemXmlObj->addAttribute(
183
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
184
  );
185
  $weeeItemXmlObj->addAttribute(
186
- 'amount', $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, false)
187
  );
188
  }
189
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 4)) {
190
  /**
191
  * Including + Weee
192
  */
193
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
194
- $_price + $_weeeTaxAmount, true, false
195
  ));
196
  $weeeXmlObj = $priceXmlObj->addChild('weee');
197
- $_weeeSeparator = ' + ';
198
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
199
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
200
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
201
  $weeeItemXmlObj->addAttribute(
202
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
203
  );
204
- $weeeItemXmlObj->addAttribute('amount', $_coreHelper->currency(
205
- $_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, false
206
  ));
207
  }
208
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 2)) {
209
  /**
210
  * Excluding + Weee + Final
211
  */
212
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency($_price, true, false));
213
  $weeeXmlObj = $priceXmlObj->addChild('weee');
214
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
215
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
216
  $weeeItemXmlObj->addAttribute(
217
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
218
  );
219
  $weeeItemXmlObj->addAttribute(
220
- 'amount', $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, false)
221
  );
222
  }
223
  $priceXmlObj->addAttribute(
224
- 'including_tax', $_coreHelper->currency($_price + $_weeeTaxAmount, true, false)
225
  );
226
  } else {
227
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency($_price, true, false));
228
  }
229
  }
230
  /**
231
- * if ($_finalPrice == $_price) {
232
  */
233
  } else {
234
- $_originalWeeeTaxAmount = $_weeeHelper->getOriginalAmount($product);
235
  /**
236
  * Including
237
  */
238
- if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 0)) {
239
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
240
- $_regularPrice + $_originalWeeeTaxAmount, true, false
241
  ));
242
- if ($_taxHelper->displayBothPrices()) {
243
- $priceXmlObj->addAttribute('special_excluding_tax', $_coreHelper->currency(
244
- $_finalPrice + $_weeeTaxAmount, true, false
245
  ));
246
- $priceXmlObj->addAttribute('special_including_tax', $_coreHelper->currency(
247
- $_finalPriceInclTax + $_weeeTaxAmount, true, false
248
  ));
249
  } else {
250
- $priceXmlObj->addAttribute('special', $_coreHelper->currency(
251
- $_finalPrice + $_weeeTaxAmount, true, false
252
  ));
253
  }
254
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 1)) {
255
  /**
256
  * Including + Weee
257
  */
258
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
259
- $_regularPrice + $_originalWeeeTaxAmount, true, false
260
  ));
261
- $priceXmlObj->addAttribute('special_excluding_tax', $_coreHelper->currency(
262
- $_finalPrice + $_weeeTaxAmount, true, false
263
  ));
264
  $weeeXmlObj = $priceXmlObj->addChild('weee');
265
- $_weeeSeparator = ' + ';
266
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
267
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
268
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
269
  $weeeItemXmlObj->addAttribute(
270
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
271
  );
272
- $weeeItemXmlObj->addAttribute('amount', $_coreHelper->currency(
273
- $_weeeTaxAttribute->getAmount(), true, false
274
  ));
275
  }
276
- $priceXmlObj->addAttribute('special_including_tax', $_coreHelper->currency(
277
- $_finalPriceInclTax + $_weeeTaxAmount, true, false
278
  ));
279
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 4)) {
280
  /**
281
  * Including + Weee
282
  */
283
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency(
284
- $_regularPrice + $_originalWeeeTaxAmount, true, false
285
  ));
286
- $priceXmlObj->addAttribute('special_excluding_tax', $_coreHelper->currency(
287
- $_finalPrice + $_weeeTaxAmount, true, false
288
  ));
289
  $weeeXmlObj = $priceXmlObj->addChild('weee');
290
- $_weeeSeparator = ' + ';
291
- $weeeXmlObj->addAttribute('separator', $_weeeSeparator);
292
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
293
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
294
  $weeeItemXmlObj->addAttribute(
295
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
296
  );
297
- $weeeItemXmlObj->addAttribute('amount', $_coreHelper->currency(
298
- $_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, false
299
  ));
300
  }
301
- $priceXmlObj->addAttribute('special_including_tax', $_coreHelper->currency(
302
- $_finalPriceInclTax + $_weeeTaxAmount, true, false
303
  ));
304
- } elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, 2)) {
305
  /**
306
  * Excluding + Weee + Final
307
  */
308
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency($_regularPrice, true, false));
309
  $priceXmlObj->addAttribute(
310
- 'special_excluding_tax', $_coreHelper->currency($_finalPrice, true, false)
311
  );
312
  $weeeXmlObj = $priceXmlObj->addChild('weee');
313
- foreach ($_weeeTaxAttributes as $_weeeTaxAttribute) {
314
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
315
  $weeeItemXmlObj->addAttribute(
316
- 'name', $weeeItemXmlObj->escapeXml($_weeeTaxAttribute->getName())
317
  );
318
- $weeeItemXmlObj->addAttribute('amount', $_coreHelper->currency(
319
- $_weeeTaxAttribute->getAmount(), true, false
320
  ));
321
  }
322
- $priceXmlObj->addAttribute('special_including_tax', $_coreHelper->currency(
323
- $_finalPriceInclTax + $_weeeTaxAmount, true, false
324
  ));
325
  } else {
326
  /**
327
  * Excluding
328
  */
329
- $priceXmlObj->addAttribute('regular', $_coreHelper->currency($_regularPrice, true, false));
330
- if ($_taxHelper->displayBothPrices()) {
331
  $priceXmlObj->addAttribute(
332
- 'special_excluding_tax', $_coreHelper->currency($_finalPrice, true, false)
333
  );
334
  $priceXmlObj->addAttribute(
335
- 'special_including_tax', $_coreHelper->currency($_finalPriceInclTax, true, false)
336
  );
337
  } else {
338
  $priceXmlObj->addAttribute(
339
- 'special', $_coreHelper->currency($_finalPrice, true, false)
340
  );
341
  }
342
  }
343
  }
344
 
345
- if ($this->getDisplayMinimalPrice() && $_minimalPriceValue
346
- && $_minimalPriceValue < $product->getFinalPrice()
347
  ) {
348
- $_minimalPriceDisplayValue = $_minimalPrice;
349
 
350
- if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($product, array(0, 1, 4))) {
351
- $_minimalPriceDisplayValue = $_minimalPrice + $_weeeTaxAmount;
352
  }
353
 
354
  if (!$this->getUseLinkForAsLowAs()) {
355
- $priceXmlObj->addAttribute('as_low_as', $_coreHelper->currency(
356
- $_minimalPriceDisplayValue, true, false
357
  ));
358
  }
359
  }
@@ -361,23 +361,23 @@ class Mage_XmlConnect_Block_Catalog_Product_Price_Default extends Mage_Catalog_B
361
  * if (!$product->isGrouped()) {
362
  */
363
  } else {
364
- $_exclTax = $_taxHelper->getPrice($product, $_minimalPriceValue, null);
365
- $_inclTax = $_taxHelper->getPrice($product, $_minimalPriceValue, true);
366
 
367
- if ($this->getDisplayMinimalPrice() && $_minimalPriceValue) {
368
- if ($_taxHelper->displayBothPrices()) {
369
- $priceXmlObj->addAttribute('starting_at_excluding_tax', $_coreHelper->currency(
370
- $_exclTax, true, false
371
  ));
372
- $priceXmlObj->addAttribute('starting_at_including_tax', $_coreHelper->currency(
373
- $_inclTax, true, false
374
  ));
375
  } else {
376
- $_showPrice = $_inclTax;
377
- if (!$_taxHelper->displayPriceIncludingTax()) {
378
- $_showPrice = $_exclTax;
379
  }
380
- $priceXmlObj->addAttribute('starting_at', $_coreHelper->currency($_showPrice, true, false));
381
  }
382
  }
383
  }
@@ -443,169 +443,169 @@ class Mage_XmlConnect_Block_Catalog_Product_Price_Default extends Mage_Catalog_B
443
  /**
444
  * Get tier prices (formatted) as array of strings
445
  *
446
- * @param array $_tierPrices
447
- * @param Mage_Catalog_Model_Product $_product
448
  * @return array
449
  */
450
- protected function _getTierPricesTextArray($_tierPrices, $_product)
451
  {
452
  $pricesArray = array();
453
- if (Mage::helper('weee')->typeOfDisplay($_product, array(1, 2, 4))) {
454
- $_weeeTaxAttributes = Mage::helper('weee')->getProductWeeeAttributesForDisplay($_product);
455
  }
456
 
457
- if ($_product->isGrouped()) {
458
- $_tierPrices = $this->getTierPrices($_product);
459
  }
460
- Mage::helper('weee')->processTierPrices($_product, $_tierPrices);
461
 
462
- foreach ($_tierPrices as $_price) {
463
  $s = '';
464
  if ($this->helper('tax')->displayBothPrices()) {
465
- if (Mage::helper('weee')->typeOfDisplay($_product, 0)) {
466
- $s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $_price['price_qty'], $_price['formated_price_incl_weee_only'], $_price['formated_price_incl_weee']);
467
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 1)) {
468
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']);
469
- if ($_weeeTaxAttributes) {
470
- $s .= ' (' . $this->__('%1$s incl tax.', $_price['formated_price_incl_weee']);
471
  $separator = ' + ';
472
- foreach ($_weeeTaxAttributes as $_attribute) {
473
- $s .= $separator . $_attribute->getName() . ': ';
474
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
475
  }
476
  $s .= ')';
477
  }
478
  $s .= ' ' . $this->__('each');
479
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 4)) {
480
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']);
481
- if ($_weeeTaxAttributes) {
482
- $s .= ' (' . $this->__('%1$s incl tax.', $_price['formated_price_incl_weee']);
483
  $separator = ' + ';
484
- foreach ($_weeeTaxAttributes as $_attribute) {
485
- $s .= $separator . $_attribute->getName() . ': ';
486
  $s .= Mage::helper('core')->currency(
487
- $_attribute->getAmount() + $_attribute->getTaxAmount()
488
  );
489
  }
490
  $s .= ')';
491
  }
492
  $s .= ' ' . $this->__('each');
493
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 2)) {
494
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price']);
495
- if ($_weeeTaxAttributes) {
496
  $s .= ' (';
497
- foreach ($_weeeTaxAttributes as $_attribute) {
498
- $s .= $_attribute->getName() . ': ';
499
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
500
  }
501
- $s .= ' ' . $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee']) . ')';
502
  }
503
  $s .= ' ' . $this->__('each');
504
  } else {
505
- $s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $_price['price_qty'], $_price['formated_price'], $_price['formated_price_incl_tax']);
506
  }
507
  } else {
508
  if ($this->helper('tax')->displayPriceIncludingTax()) {
509
- if (Mage::helper('weee')->typeOfDisplay($_product, 0)) {
510
- $s .= $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_weee']);
511
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 1)) {
512
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee']);
513
- if ($_weeeTaxAttributes) {
514
  $s .= ' (';
515
  $separator = '';
516
- foreach ($_weeeTaxAttributes as $_attribute) {
517
- $s .= $separator . $_attribute->getName() . ': ';
518
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
519
  $separator = ' + ';
520
  }
521
  $s .= ')';
522
  }
523
  $s .= ' ' . $this->__('each');
524
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 4)) {
525
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee']);
526
- if ($_weeeTaxAttributes) {
527
  $s .= ' (';
528
  $separator = '';
529
- foreach ($_weeeTaxAttributes as $_attribute) {
530
- $s .= $separator . $_attribute->getName() . ': ';
531
  $s .= Mage::helper('core')->currency(
532
- $_attribute->getAmount() + $_attribute->getTaxAmount()
533
  );
534
  $separator = ' + ';
535
  }
536
  $s .= ')';
537
  }
538
  $s .= ' ' . $this->__('each');
539
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 2)) {
540
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_tax']);
541
- if ($_weeeTaxAttributes) {
542
  $s .= ' (';
543
- foreach ($_weeeTaxAttributes as $_attribute) {
544
- $s .= $_attribute->getName() . ': ';
545
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
546
  }
547
- $s .= ' ' . $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee']) . ')';
548
  }
549
  $s .= ' ' . $this->__('each');
550
  } else {
551
- $s .= $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_tax']);
552
  }
553
  } else {
554
- if (Mage::helper('weee')->typeOfDisplay($_product, 0)) {
555
- $s .= $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price_incl_weee_only']);
556
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 1)) {
557
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']);
558
- if ($_weeeTaxAttributes) {
559
  $s .= ' (';
560
  $separator = '';
561
- foreach ($_weeeTaxAttributes as $_attribute) {
562
- $s .= $separator . $_attribute->getName() . ': ';
563
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
564
  $separator = ' + ';
565
  }
566
  $s .= ')';
567
  }
568
  $s .= ' ' . $this->__('each');
569
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 4)) {
570
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price_incl_weee_only']);
571
- if ($_weeeTaxAttributes) {
572
  $s .= ' (';
573
  $separator = '';
574
- foreach ($_weeeTaxAttributes as $_attribute) {
575
- $s .= $separator . $_attribute->getName() . ': ';
576
  $s .= Mage::helper('core')->currency(
577
- $_attribute->getAmount() + $_attribute->getTaxAmount()
578
  );
579
  $separator = ' + ';
580
  }
581
  $s .= ')';
582
  }
583
  $s .= ' ' . $this->__('each');
584
- } else if (Mage::helper('weee')->typeOfDisplay($_product, 2)) {
585
- $s .= $this->__('Buy %1$s for %2$s', $_price['price_qty'], $_price['formated_price']);
586
- if ($_weeeTaxAttributes) {
587
  $s .= ' (';
588
- foreach ($_weeeTaxAttributes as $_attribute) {
589
- $s .= $_attribute->getName() . ': ';
590
- $s .= Mage::helper('core')->currency($_attribute->getAmount());
591
  }
592
- $s .= ' ' . $this->__('Total incl. Tax: %1$s', $_price['formated_price_incl_weee_only']) . ')';
593
  }
594
  $s .= ' ' . $this->__('each');
595
  } else {
596
- $s .= $this->__('Buy %1$s for %2$s each', $_price['price_qty'], $_price['formated_price']);
597
  }
598
  }
599
  }
600
- if (!$_product->isGrouped()) {
601
- $condition1 = ($_product->getPrice() == $_product->getFinalPrice()
602
- && $_product->getPrice() > $_price['price']);
603
 
604
- $condition2 = ($_product->getPrice() != $_product->getFinalPrice()
605
- && $_product->getFinalPrice() > $_price['price']);
606
 
607
  if ($condition1 || $condition2) {
608
- $s .= ' ' . $this->__('and') . ' ' . $this->__('save') . ' ' . $_price['savePercent'] . '%';
609
  }
610
  }
611
  $pricesArray[] = $s;
39
  * @param Mage_Catalog_Model_Product $product
40
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
41
  */
42
+ public function collectProductPrices(Mage_Catalog_Model_Product $product,
43
+ Mage_XmlConnect_Model_Simplexml_Element $item)
44
+ {
45
  $this->setProduct($product)->setDisplayMinimalPrice(true)->setUseLinkForAsLowAs(false);
46
 
47
  $priceXmlObj = $item->addChild('price');
48
+ $tierPrices = $this->_getTierPrices($product);
49
+ if (count($tierPrices) > 0) {
50
  $tierPricesTextArray = $item->escapeXml(implode(
51
+ PHP_EOL, $this->_getTierPricesTextArray($tierPrices, $product)
52
  ));
53
  $item->addCustomChild('price_tier', $tierPricesTextArray);
54
  }
55
 
56
+ /** @var $coreHelper Mage_Core_Helper_Data */
57
+ $coreHelper = $this->helper('core');
58
+ /** @var $weeeHelper Mage_Weee_Helper_Data */
59
+ $weeeHelper = $this->helper('weee');
60
+ /** @var $taxHelper Mage_Tax_Helper_Data */
61
+ $taxHelper = $this->helper('tax');
62
 
63
+ $simplePricesTax = ($taxHelper->displayPriceIncludingTax() || $taxHelper->displayBothPrices());
64
+ $minimalPriceValue = $product->getMinimalPrice();
65
+ $minimalPrice = $taxHelper->getPrice($product, $minimalPriceValue, $simplePricesTax);
66
 
67
  if (!$product->isGrouped()) {
68
+ $weeeTaxAmount = $weeeHelper->getAmountForDisplay($product);
69
+ if ($weeeHelper->typeOfDisplay($product, array(1, 2, 4))) {
70
+ $weeeTaxAmount = $weeeHelper->getAmount($product);
71
+ $weeeTaxAttributes = $weeeHelper->getProductWeeeAttributesForDisplay($product);
72
  }
73
 
74
+ $price = $taxHelper->getPrice($product, $product->getPrice());
75
+ $regularPrice = $taxHelper->getPrice($product, $product->getPrice(), $simplePricesTax);
76
+ $finalPrice = $taxHelper->getPrice($product, $product->getFinalPrice());
77
+ $finalPriceInclTax = $taxHelper->getPrice($product, $product->getFinalPrice(), true);
78
+ $weeeHelper->getPriceDisplayType();
79
+ if ($finalPrice == $price) {
80
+ if ($taxHelper->displayBothPrices()) {
81
  /**
82
  * Including
83
  */
84
+ if ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 0)) {
85
  $priceXmlObj->addAttribute(
86
+ 'excluding_tax', $coreHelper->currency($price + $weeeTaxAmount, true, false)
87
  );
88
  $priceXmlObj->addAttribute(
89
+ 'including_tax', $coreHelper->currency($finalPriceInclTax + $weeeTaxAmount, true, false)
90
  );
91
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 1)) {
92
  /**
93
  * Including + Weee
94
  */
95
  $priceXmlObj->addAttribute(
96
+ 'excluding_tax', $coreHelper->currency($price + $weeeTaxAmount, true, false)
97
  );
98
  $priceXmlObj->addAttribute(
99
+ 'including_tax', $coreHelper->currency($finalPriceInclTax + $weeeTaxAmount, true, false)
100
  );
101
  $weeeXmlObj = $priceXmlObj->addChild('weee');
102
+ $weeeSeparator = ' + ';
103
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
104
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
105
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
106
  $weeeItemXmlObj->addAttribute(
107
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
108
  );
109
  $weeeItemXmlObj->addAttribute(
110
+ 'amount', $coreHelper->currency($weeeTaxAttribute->getAmount(), true, false)
111
  );
112
  }
113
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 4)) {
114
  /**
115
  * Including + Weee
116
  */
117
  $priceXmlObj->addAttribute(
118
+ 'excluding_tax', $coreHelper->currency($price + $weeeTaxAmount, true, false)
119
  );
120
  $priceXmlObj->addAttribute(
121
+ 'including_tax', $coreHelper->currency($finalPriceInclTax + $weeeTaxAmount, true, false)
122
  );
123
  $weeeXmlObj = $priceXmlObj->addChild('weee');
124
+ $weeeSeparator = ' + ';
125
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
126
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
127
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
128
  $weeeItemXmlObj->addAttribute(
129
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
130
  );
131
+ $weeeItemXmlObj->addAttribute('amount', $coreHelper->currency(
132
+ $weeeTaxAttribute->getAmount() + $weeeTaxAttribute->getTaxAmount(), true, false
133
  ));
134
  }
135
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 2)) {
136
  /**
137
  * Excluding + Weee + Final
138
  */
139
+ $priceXmlObj->addAttribute('excluding_tax', $coreHelper->currency($price, true, false));
140
  $weeeXmlObj = $priceXmlObj->addChild('weee');
141
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
142
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
143
  $weeeItemXmlObj->addAttribute(
144
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
145
  );
146
  $weeeItemXmlObj->addAttribute(
147
+ 'amount', $coreHelper->currency($weeeTaxAttribute->getAmount(), true, false)
148
  );
149
  }
150
+ $priceXmlObj->addAttribute('including_tax', $coreHelper->currency(
151
+ $finalPriceInclTax + $weeeTaxAmount, true, false
152
  ));
153
  } else {
154
+ $priceXmlObj->addAttribute('excluding_tax', $coreHelper->currency($price, true, false));
155
  $priceXmlObj->addAttribute(
156
+ 'including_tax', $coreHelper->currency($finalPriceInclTax, true, false)
157
  );
158
  }
159
  /**
160
+ * if ($taxHelper->displayBothPrices()) {
161
  */
162
  } else {
163
  /**
164
  * Including
165
  */
166
+ if ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 0)) {
167
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
168
+ $price + $weeeTaxAmount, true, false
169
  ));
170
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 1)) {
171
  /**
172
  * Including + Weee
173
  */
174
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
175
+ $price + $weeeTaxAmount, true, false
176
  ));
177
  $weeeXmlObj = $priceXmlObj->addChild('weee');
178
+ $weeeSeparator = ' + ';
179
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
180
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
181
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
182
  $weeeItemXmlObj->addAttribute(
183
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
184
  );
185
  $weeeItemXmlObj->addAttribute(
186
+ 'amount', $coreHelper->currency($weeeTaxAttribute->getAmount(), true, false)
187
  );
188
  }
189
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 4)) {
190
  /**
191
  * Including + Weee
192
  */
193
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
194
+ $price + $weeeTaxAmount, true, false
195
  ));
196
  $weeeXmlObj = $priceXmlObj->addChild('weee');
197
+ $weeeSeparator = ' + ';
198
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
199
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
200
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
201
  $weeeItemXmlObj->addAttribute(
202
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
203
  );
204
+ $weeeItemXmlObj->addAttribute('amount', $coreHelper->currency(
205
+ $weeeTaxAttribute->getAmount() + $weeeTaxAttribute->getTaxAmount(), true, false
206
  ));
207
  }
208
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 2)) {
209
  /**
210
  * Excluding + Weee + Final
211
  */
212
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency($price, true, false));
213
  $weeeXmlObj = $priceXmlObj->addChild('weee');
214
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
215
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
216
  $weeeItemXmlObj->addAttribute(
217
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
218
  );
219
  $weeeItemXmlObj->addAttribute(
220
+ 'amount', $coreHelper->currency($weeeTaxAttribute->getAmount(), true, false)
221
  );
222
  }
223
  $priceXmlObj->addAttribute(
224
+ 'including_tax', $coreHelper->currency($price + $weeeTaxAmount, true, false)
225
  );
226
  } else {
227
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency($price, true, false));
228
  }
229
  }
230
  /**
231
+ * if ($finalPrice == $price) {
232
  */
233
  } else {
234
+ $originalWeeeTaxAmount = $weeeHelper->getOriginalAmount($product);
235
  /**
236
  * Including
237
  */
238
+ if ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 0)) {
239
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
240
+ $regularPrice + $originalWeeeTaxAmount, true, false
241
  ));
242
+ if ($taxHelper->displayBothPrices()) {
243
+ $priceXmlObj->addAttribute('special_excluding_tax', $coreHelper->currency(
244
+ $finalPrice + $weeeTaxAmount, true, false
245
  ));
246
+ $priceXmlObj->addAttribute('special_including_tax', $coreHelper->currency(
247
+ $finalPriceInclTax + $weeeTaxAmount, true, false
248
  ));
249
  } else {
250
+ $priceXmlObj->addAttribute('special', $coreHelper->currency(
251
+ $finalPrice + $weeeTaxAmount, true, false
252
  ));
253
  }
254
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 1)) {
255
  /**
256
  * Including + Weee
257
  */
258
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
259
+ $regularPrice + $originalWeeeTaxAmount, true, false
260
  ));
261
+ $priceXmlObj->addAttribute('special_excluding_tax', $coreHelper->currency(
262
+ $finalPrice + $weeeTaxAmount, true, false
263
  ));
264
  $weeeXmlObj = $priceXmlObj->addChild('weee');
265
+ $weeeSeparator = ' + ';
266
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
267
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
268
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
269
  $weeeItemXmlObj->addAttribute(
270
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
271
  );
272
+ $weeeItemXmlObj->addAttribute('amount', $coreHelper->currency(
273
+ $weeeTaxAttribute->getAmount(), true, false
274
  ));
275
  }
276
+ $priceXmlObj->addAttribute('special_including_tax', $coreHelper->currency(
277
+ $finalPriceInclTax + $weeeTaxAmount, true, false
278
  ));
279
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 4)) {
280
  /**
281
  * Including + Weee
282
  */
283
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency(
284
+ $regularPrice + $originalWeeeTaxAmount, true, false
285
  ));
286
+ $priceXmlObj->addAttribute('special_excluding_tax', $coreHelper->currency(
287
+ $finalPrice + $weeeTaxAmount, true, false
288
  ));
289
  $weeeXmlObj = $priceXmlObj->addChild('weee');
290
+ $weeeSeparator = ' + ';
291
+ $weeeXmlObj->addAttribute('separator', $weeeSeparator);
292
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
293
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
294
  $weeeItemXmlObj->addAttribute(
295
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
296
  );
297
+ $weeeItemXmlObj->addAttribute('amount', $coreHelper->currency(
298
+ $weeeTaxAttribute->getAmount() + $weeeTaxAttribute->getTaxAmount(), true, false
299
  ));
300
  }
301
+ $priceXmlObj->addAttribute('special_including_tax', $coreHelper->currency(
302
+ $finalPriceInclTax + $weeeTaxAmount, true, false
303
  ));
304
+ } elseif ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, 2)) {
305
  /**
306
  * Excluding + Weee + Final
307
  */
308
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency($regularPrice, true, false));
309
  $priceXmlObj->addAttribute(
310
+ 'special_excluding_tax', $coreHelper->currency($finalPrice, true, false)
311
  );
312
  $weeeXmlObj = $priceXmlObj->addChild('weee');
313
+ foreach ($weeeTaxAttributes as $weeeTaxAttribute) {
314
  $weeeItemXmlObj = $weeeXmlObj->addChild('item');
315
  $weeeItemXmlObj->addAttribute(
316
+ 'name', $weeeItemXmlObj->escapeXml($weeeTaxAttribute->getName())
317
  );
318
+ $weeeItemXmlObj->addAttribute('amount', $coreHelper->currency(
319
+ $weeeTaxAttribute->getAmount(), true, false
320
  ));
321
  }
322
+ $priceXmlObj->addAttribute('special_including_tax', $coreHelper->currency(
323
+ $finalPriceInclTax + $weeeTaxAmount, true, false
324
  ));
325
  } else {
326
  /**
327
  * Excluding
328
  */
329
+ $priceXmlObj->addAttribute('regular', $coreHelper->currency($regularPrice, true, false));
330
+ if ($taxHelper->displayBothPrices()) {
331
  $priceXmlObj->addAttribute(
332
+ 'special_excluding_tax', $coreHelper->currency($finalPrice, true, false)
333
  );
334
  $priceXmlObj->addAttribute(
335
+ 'special_including_tax', $coreHelper->currency($finalPriceInclTax, true, false)
336
  );
337
  } else {
338
  $priceXmlObj->addAttribute(
339
+ 'special', $coreHelper->currency($finalPrice, true, false)
340
  );
341
  }
342
  }
343
  }
344
 
345
+ if ($this->getDisplayMinimalPrice() && $minimalPriceValue
346
+ && $minimalPriceValue < $product->getFinalPrice()
347
  ) {
348
+ $minimalPriceDisplayValue = $minimalPrice;
349
 
350
+ if ($weeeTaxAmount && $weeeHelper->typeOfDisplay($product, array(0, 1, 4))) {
351
+ $minimalPriceDisplayValue = $minimalPrice + $weeeTaxAmount;
352
  }
353
 
354
  if (!$this->getUseLinkForAsLowAs()) {
355
+ $priceXmlObj->addAttribute('as_low_as', $coreHelper->currency(
356
+ $minimalPriceDisplayValue, true, false
357
  ));
358
  }
359
  }
361
  * if (!$product->isGrouped()) {
362
  */
363
  } else {
364
+ $exclTax = $taxHelper->getPrice($product, $minimalPriceValue, null);
365
+ $inclTax = $taxHelper->getPrice($product, $minimalPriceValue, true);
366
 
367
+ if ($this->getDisplayMinimalPrice() && $minimalPriceValue) {
368
+ if ($taxHelper->displayBothPrices()) {
369
+ $priceXmlObj->addAttribute('starting_at_excluding_tax', $coreHelper->currency(
370
+ $exclTax, true, false
371
  ));
372
+ $priceXmlObj->addAttribute('starting_at_including_tax', $coreHelper->currency(
373
+ $inclTax, true, false
374
  ));
375
  } else {
376
+ $showPrice = $inclTax;
377
+ if (!$taxHelper->displayPriceIncludingTax()) {
378
+ $showPrice = $exclTax;
379
  }
380
+ $priceXmlObj->addAttribute('starting_at', $coreHelper->currency($showPrice, true, false));
381
  }
382
  }
383
  }
443
  /**
444
  * Get tier prices (formatted) as array of strings
445
  *
446
+ * @param array $tierPrices
447
+ * @param Mage_Catalog_Model_Product $product
448
  * @return array
449
  */
450
+ protected function _getTierPricesTextArray($tierPrices, $product)
451
  {
452
  $pricesArray = array();
453
+ if (Mage::helper('weee')->typeOfDisplay($product, array(1, 2, 4))) {
454
+ $weeeTaxAttributes = Mage::helper('weee')->getProductWeeeAttributesForDisplay($product);
455
  }
456
 
457
+ if ($product->isGrouped()) {
458
+ $tierPrices = $this->getTierPrices($product);
459
  }
460
+ Mage::helper('weee')->processTierPrices($product, $tierPrices);
461
 
462
+ foreach ($tierPrices as $price) {
463
  $s = '';
464
  if ($this->helper('tax')->displayBothPrices()) {
465
+ if (Mage::helper('weee')->typeOfDisplay($product, 0)) {
466
+ $s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $price['price_qty'], $price['formated_price_incl_weee_only'], $price['formated_price_incl_weee']);
467
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 1)) {
468
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee_only']);
469
+ if ($weeeTaxAttributes) {
470
+ $s .= ' (' . $this->__('%1$s incl tax.', $price['formated_price_incl_weee']);
471
  $separator = ' + ';
472
+ foreach ($weeeTaxAttributes as $attribute) {
473
+ $s .= $separator . $attribute->getName() . ': ';
474
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
475
  }
476
  $s .= ')';
477
  }
478
  $s .= ' ' . $this->__('each');
479
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 4)) {
480
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee_only']);
481
+ if ($weeeTaxAttributes) {
482
+ $s .= ' (' . $this->__('%1$s incl tax.', $price['formated_price_incl_weee']);
483
  $separator = ' + ';
484
+ foreach ($weeeTaxAttributes as $attribute) {
485
+ $s .= $separator . $attribute->getName() . ': ';
486
  $s .= Mage::helper('core')->currency(
487
+ $attribute->getAmount() + $attribute->getTaxAmount()
488
  );
489
  }
490
  $s .= ')';
491
  }
492
  $s .= ' ' . $this->__('each');
493
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 2)) {
494
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price']);
495
+ if ($weeeTaxAttributes) {
496
  $s .= ' (';
497
+ foreach ($weeeTaxAttributes as $attribute) {
498
+ $s .= $attribute->getName() . ': ';
499
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
500
  }
501
+ $s .= ' ' . $this->__('Total incl. Tax: %1$s', $price['formated_price_incl_weee']) . ')';
502
  }
503
  $s .= ' ' . $this->__('each');
504
  } else {
505
+ $s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $price['price_qty'], $price['formated_price'], $price['formated_price_incl_tax']);
506
  }
507
  } else {
508
  if ($this->helper('tax')->displayPriceIncludingTax()) {
509
+ if (Mage::helper('weee')->typeOfDisplay($product, 0)) {
510
+ $s .= $this->__('Buy %1$s for %2$s each', $price['price_qty'], $price['formated_price_incl_weee']);
511
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 1)) {
512
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee']);
513
+ if ($weeeTaxAttributes) {
514
  $s .= ' (';
515
  $separator = '';
516
+ foreach ($weeeTaxAttributes as $attribute) {
517
+ $s .= $separator . $attribute->getName() . ': ';
518
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
519
  $separator = ' + ';
520
  }
521
  $s .= ')';
522
  }
523
  $s .= ' ' . $this->__('each');
524
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 4)) {
525
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee']);
526
+ if ($weeeTaxAttributes) {
527
  $s .= ' (';
528
  $separator = '';
529
+ foreach ($weeeTaxAttributes as $attribute) {
530
+ $s .= $separator . $attribute->getName() . ': ';
531
  $s .= Mage::helper('core')->currency(
532
+ $attribute->getAmount() + $attribute->getTaxAmount()
533
  );
534
  $separator = ' + ';
535
  }
536
  $s .= ')';
537
  }
538
  $s .= ' ' . $this->__('each');
539
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 2)) {
540
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_tax']);
541
+ if ($weeeTaxAttributes) {
542
  $s .= ' (';
543
+ foreach ($weeeTaxAttributes as $attribute) {
544
+ $s .= $attribute->getName() . ': ';
545
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
546
  }
547
+ $s .= ' ' . $this->__('Total incl. Tax: %1$s', $price['formated_price_incl_weee']) . ')';
548
  }
549
  $s .= ' ' . $this->__('each');
550
  } else {
551
+ $s .= $this->__('Buy %1$s for %2$s each', $price['price_qty'], $price['formated_price_incl_tax']);
552
  }
553
  } else {
554
+ if (Mage::helper('weee')->typeOfDisplay($product, 0)) {
555
+ $s .= $this->__('Buy %1$s for %2$s each', $price['price_qty'], $price['formated_price_incl_weee_only']);
556
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 1)) {
557
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee_only']);
558
+ if ($weeeTaxAttributes) {
559
  $s .= ' (';
560
  $separator = '';
561
+ foreach ($weeeTaxAttributes as $attribute) {
562
+ $s .= $separator . $attribute->getName() . ': ';
563
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
564
  $separator = ' + ';
565
  }
566
  $s .= ')';
567
  }
568
  $s .= ' ' . $this->__('each');
569
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 4)) {
570
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price_incl_weee_only']);
571
+ if ($weeeTaxAttributes) {
572
  $s .= ' (';
573
  $separator = '';
574
+ foreach ($weeeTaxAttributes as $attribute) {
575
+ $s .= $separator . $attribute->getName() . ': ';
576
  $s .= Mage::helper('core')->currency(
577
+ $attribute->getAmount() + $attribute->getTaxAmount()
578
  );
579
  $separator = ' + ';
580
  }
581
  $s .= ')';
582
  }
583
  $s .= ' ' . $this->__('each');
584
+ } else if (Mage::helper('weee')->typeOfDisplay($product, 2)) {
585
+ $s .= $this->__('Buy %1$s for %2$s', $price['price_qty'], $price['formated_price']);
586
+ if ($weeeTaxAttributes) {
587
  $s .= ' (';
588
+ foreach ($weeeTaxAttributes as $attribute) {
589
+ $s .= $attribute->getName() . ': ';
590
+ $s .= Mage::helper('core')->currency($attribute->getAmount());
591
  }
592
+ $s .= ' ' . $this->__('Total incl. Tax: %1$s', $price['formated_price_incl_weee_only']) . ')';
593
  }
594
  $s .= ' ' . $this->__('each');
595
  } else {
596
+ $s .= $this->__('Buy %1$s for %2$s each', $price['price_qty'], $price['formated_price']);
597
  }
598
  }
599
  }
600
+ if (!$product->isGrouped()) {
601
+ $condition1 = ($product->getPrice() == $product->getFinalPrice()
602
+ && $product->getPrice() > $price['price']);
603
 
604
+ $condition2 = ($product->getPrice() != $product->getFinalPrice()
605
+ && $product->getFinalPrice() > $price['price']);
606
 
607
  if ($condition1 || $condition2) {
608
+ $s .= ' ' . $this->__('and') . ' ' . $this->__('save') . ' ' . $price['savePercent'] . '%';
609
  }
610
  }
611
  $pricesArray[] = $s;
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Giftcard.php CHANGED
@@ -75,15 +75,15 @@ class Mage_XmlConnect_Block_Catalog_Product_Price_Giftcard extends Mage_Bundle_B
75
  if ($product->getCanShowPrice() !== false) {
76
  $priceXmlObj = $item->addChild('price');
77
 
78
- $_min = $this->getMinAmount();
79
- $_max = $this->getMaxAmount();
80
- if ($_min && $_max && $_min == $_max) {
81
- $priceXmlObj->addAttribute('regular', Mage::helper('core')->currency($_min, true, false));
82
- } else if ($_min && $_min != 0) {
83
  $priceXmlObj->addAttribute(
84
  'regular',
85
  Mage::helper('enterprise_giftcard')->__('From') . ': '
86
- . Mage::helper('core')->currency($_min, true, false)
87
  );
88
  }
89
  }
75
  if ($product->getCanShowPrice() !== false) {
76
  $priceXmlObj = $item->addChild('price');
77
 
78
+ $min = $this->getMinAmount();
79
+ $max = $this->getMaxAmount();
80
+ if ($min && $max && $min == $max) {
81
+ $priceXmlObj->addAttribute('regular', Mage::helper('core')->currency($min, true, false));
82
+ } else if ($min && $min != 0) {
83
  $priceXmlObj->addAttribute(
84
  'regular',
85
  Mage::helper('enterprise_giftcard')->__('From') . ': '
86
+ . Mage::helper('core')->currency($min, true, false)
87
  );
88
  }
89
  }
app/code/core/Mage/XmlConnect/Block/Checkout/Address/Form.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Checkout_Address_Form extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render customer address form xml
@@ -111,4 +111,51 @@ class Mage_XmlConnect_Block_Checkout_Address_Form extends Mage_Core_Block_Templa
111
 
112
  return $fromXmlObj->getXml();
113
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  }
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Checkout_Address_Form extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render customer address form xml
111
 
112
  return $fromXmlObj->getXml();
113
  }
114
+
115
+ /**
116
+ * Retrieve regions by country
117
+ *
118
+ * @deprecated will delete in the next version
119
+ * @param string $countryId
120
+ * @return array
121
+ */
122
+ protected function _getRegionOptions($countryId)
123
+ {
124
+ $cacheKey = 'DIRECTORY_REGION_SELECT_STORE' . Mage::app()->getStore()->getId() . $countryId;
125
+ $cache = Mage::app()->loadCache($cacheKey);
126
+ if (Mage::app()->useCache('config') && $cache) {
127
+ $options = unserialize($cache);
128
+ } else {
129
+ $collection = Mage::getModel('directory/region')->getResourceCollection()->addCountryFilter($countryId)
130
+ ->load();
131
+ $options = $collection->toOptionArray();
132
+ if (Mage::app()->useCache('config')) {
133
+ Mage::app()->saveCache(serialize($options), $cacheKey, array('config'));
134
+ }
135
+ }
136
+ return $options;
137
+ }
138
+
139
+ /**
140
+ * Retrieve countries
141
+ *
142
+ * @deprecated will delete in the next version
143
+ * @return array
144
+ */
145
+ protected function _getCountryOptions()
146
+ {
147
+ $cacheKey = 'DIRECTORY_COUNTRY_SELECT_STORE_' . Mage::app()->getStore()->getCode();
148
+ $cache = Mage::app()->loadCache($cacheKey);
149
+ if (Mage::app()->useCache('config') && $cache) {
150
+ $options = unserialize($cache);
151
+ } else {
152
+ /** @var $collection Mage_Directory_Model_Mysql4_Country_Collection */
153
+ $collection = Mage::getModel('directory/country')->getResourceCollection()->loadByStore();
154
+ $options = $collection->toOptionArray(false);
155
+ if (Mage::app()->useCache('config')) {
156
+ Mage::app()->saveCache(serialize($options), $cacheKey, array('config'));
157
+ }
158
+ }
159
+ return $options;
160
+ }
161
  }
app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Configurable.php CHANGED
@@ -44,7 +44,8 @@ class Mage_Xmlconnect_Block_Checkout_Cart_Item_Renderer_Configurable
44
  $product = $this->getChildProduct();
45
  if (!$product || !$product->getData('thumbnail')
46
  || ($product->getData('thumbnail') == 'no_selection')
47
- || (Mage::getStoreConfig(self::CONFIGURABLE_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)) {
 
48
  $product = $this->getProduct();
49
  }
50
  return $this->helper('xmlconnect/catalog_product_image')->init($product, 'thumbnail');
44
  $product = $this->getChildProduct();
45
  if (!$product || !$product->getData('thumbnail')
46
  || ($product->getData('thumbnail') == 'no_selection')
47
+ || (Mage::getStoreConfig(self::CONFIGURABLE_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)
48
+ ) {
49
  $product = $this->getProduct();
50
  }
51
  return $this->helper('xmlconnect/catalog_product_image')->init($product, 'thumbnail');
app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Grouped.php CHANGED
@@ -43,7 +43,8 @@ class Mage_Xmlconnect_Block_Checkout_Cart_Item_Renderer_Grouped extends Mage_Che
43
  $product = $this->getProduct();
44
  if (!$product->getData('thumbnail')
45
  ||($product->getData('thumbnail') == 'no_selection')
46
- || (Mage::getStoreConfig(self::GROUPED_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)) {
 
47
  $product = $this->getGroupedProduct();
48
  }
49
  return $this->helper('xmlconnect/catalog_product_image')->init($product, 'thumbnail');
43
  $product = $this->getProduct();
44
  if (!$product->getData('thumbnail')
45
  ||($product->getData('thumbnail') == 'no_selection')
46
+ || (Mage::getStoreConfig(self::GROUPED_PRODUCT_IMAGE) == self::USE_PARENT_IMAGE)
47
+ ) {
48
  $product = $this->getGroupedProduct();
49
  }
50
  return $this->helper('xmlconnect/catalog_product_image')->init($product, 'thumbnail');
app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Checkout_Onepage_Address extends Mage_Checkout_Block_Agreements
35
  {
36
  /**
37
  * Save address action
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Checkout_Onepage_Address extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Save address action
app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/Form.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Checkout_Onepage_Address_Form extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render customer address form
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Checkout_Onepage_Address_Form extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render customer address form
app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/List.php CHANGED
@@ -43,15 +43,15 @@ class Mage_XmlConnect_Block_Checkout_Onepage_Address_List extends Mage_Checkout_
43
  /** @var $listChild Mage_XmlConnect_Model_Simplexml_Element */
44
  $listChild = $this->getXmlObj();
45
 
46
- $_billingAddress = $this->getCustomer()->getPrimaryBillingAddress();
47
- $_shippingAddress = $this->getCustomer()->getPrimaryShippingAddress();
48
 
49
  foreach ($this->getCustomer()->getAddresses() as $address) {
50
  $childOptions = array();
51
- if ($_billingAddress && ($_billingAddress->getEntityId() == $address->getEntityId())) {
52
  $childOptions['default_billing'] = 1;
53
  }
54
- if ($_shippingAddress && ($_shippingAddress->getEntityId() == $address->getEntityId())) {
55
  $childOptions['default_shipping'] = 1;
56
  }
57
  $addressItem = $listChild->addCustomChild('item', null, $childOptions);
43
  /** @var $listChild Mage_XmlConnect_Model_Simplexml_Element */
44
  $listChild = $this->getXmlObj();
45
 
46
+ $billingAddress = $this->getCustomer()->getPrimaryBillingAddress();
47
+ $shippingAddress = $this->getCustomer()->getPrimaryShippingAddress();
48
 
49
  foreach ($this->getCustomer()->getAddresses() as $address) {
50
  $childOptions = array();
51
+ if ($billingAddress && ($billingAddress->getEntityId() == $address->getEntityId())) {
52
  $childOptions['default_billing'] = 1;
53
  }
54
+ if ($shippingAddress && ($shippingAddress->getEntityId() == $address->getEntityId())) {
55
  $childOptions['default_shipping'] = 1;
56
  }
57
  $addressItem = $listChild->addCustomChild('item', null, $childOptions);
app/code/core/Mage/XmlConnect/Block/Checkout/Order/Review/Info.php CHANGED
@@ -78,12 +78,12 @@ class Mage_XmlConnect_Block_Checkout_Order_Review_Info extends Mage_Checkout_Blo
78
  }
79
 
80
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
81
- $_incl = $this->helper('checkout')->getPriceInclTax($item);
82
  $typeOfDisplay = Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales');
83
  if ($typeOfDisplay && $item->getWeeeTaxAppliedAmount()) {
84
- $inclPrice = $_incl + $item->getWeeeTaxAppliedAmount();
85
  } else {
86
- $inclPrice = $_incl - $item->getWeeeTaxDisposition();
87
  }
88
  }
89
 
@@ -127,13 +127,13 @@ class Mage_XmlConnect_Block_Checkout_Order_Review_Info extends Mage_Checkout_Blo
127
  }
128
  }
129
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
130
- $_incl = $this->helper('checkout')->getSubtotalInclTax($item);
131
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
132
  && $item->getWeeeTaxAppliedAmount()
133
  ) {
134
- $inclPrice = $_incl + $item->getWeeeTaxAppliedRowAmount();
135
  } else {
136
- $inclPrice = $_incl - $item->getWeeeTaxRowDisposition();
137
  }
138
  }
139
 
@@ -166,15 +166,15 @@ class Mage_XmlConnect_Block_Checkout_Order_Review_Info extends Mage_Checkout_Blo
166
  /**
167
  * Options list
168
  */
169
- $_options = $renderer->getOptionList();
170
- if ($_options) {
171
  $itemOptionsXml = $itemXml->addChild('options');
172
- foreach ($_options as $_option) {
173
- $_formattedOptionValue = $renderer->getFormatedOptionValue($_option);
174
  $optionXml = $itemOptionsXml->addChild('option');
175
- $labelValue = $itemsXmlObj->escapeXml($_option['label']);
176
  $optionXml->addAttribute('label', $labelValue);
177
- $textValue = $itemsXmlObj->escapeXml($_formattedOptionValue['value']);
178
  $optionXml->addAttribute('text', $textValue);
179
  }
180
  }
78
  }
79
 
80
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
81
+ $incl = $this->helper('checkout')->getPriceInclTax($item);
82
  $typeOfDisplay = Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales');
83
  if ($typeOfDisplay && $item->getWeeeTaxAppliedAmount()) {
84
+ $inclPrice = $incl + $item->getWeeeTaxAppliedAmount();
85
  } else {
86
+ $inclPrice = $incl - $item->getWeeeTaxDisposition();
87
  }
88
  }
89
 
127
  }
128
  }
129
  if ($this->helper('tax')->displayCartPriceInclTax() || $this->helper('tax')->displayCartBothPrices()) {
130
+ $incl = $this->helper('checkout')->getSubtotalInclTax($item);
131
  if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
132
  && $item->getWeeeTaxAppliedAmount()
133
  ) {
134
+ $inclPrice = $incl + $item->getWeeeTaxAppliedRowAmount();
135
  } else {
136
+ $inclPrice = $incl - $item->getWeeeTaxRowDisposition();
137
  }
138
  }
139
 
166
  /**
167
  * Options list
168
  */
169
+ $options = $renderer->getOptionList();
170
+ if ($options) {
171
  $itemOptionsXml = $itemXml->addChild('options');
172
+ foreach ($options as $option) {
173
+ $formattedOptionValue = $renderer->getFormatedOptionValue($option);
174
  $optionXml = $itemOptionsXml->addChild('option');
175
+ $labelValue = $itemsXmlObj->escapeXml($option['label']);
176
  $optionXml->addAttribute('label', $labelValue);
177
+ $textValue = $itemsXmlObj->escapeXml($formattedOptionValue['value']);
178
  $optionXml->addAttribute('text', $textValue);
179
  }
180
  }
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Ccsave.php CHANGED
@@ -80,8 +80,8 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Ccsave extends Mage_Payment_
80
 
81
  $ccTypes = $helper->getArrayAsXmlItemValues($this->getCcAvailableTypes(), $this->getInfoData('cc_type'));
82
 
83
- $_ccMonthArray = $this->getCcMonths();
84
- $ccMonths = $helper->getArrayAsXmlItemValues($_ccMonthArray, $this->getInfoData('cc_exp_month'));
85
 
86
  $ccYears = $helper->getArrayAsXmlItemValues($this->getCcYears(), $this->getInfoData('cc_exp_year'));
87
 
@@ -100,7 +100,7 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Ccsave extends Mage_Payment_
100
  $solo = '';
101
  if ($this->hasSsCardType()) {
102
  $ssCcMonths = $helper->getArrayAsXmlItemValues(
103
- $_ccMonthArray, $this->getInfoData('cc_ss_start_month')
104
  );
105
  $ssCcYears = $helper->getArrayAsXmlItemValues(
106
  $this->getSsStartYears(), $this->getInfoData('cc_ss_start_year')
80
 
81
  $ccTypes = $helper->getArrayAsXmlItemValues($this->getCcAvailableTypes(), $this->getInfoData('cc_type'));
82
 
83
+ $ccMonthArray = $this->getCcMonths();
84
+ $ccMonths = $helper->getArrayAsXmlItemValues($ccMonthArray, $this->getInfoData('cc_exp_month'));
85
 
86
  $ccYears = $helper->getArrayAsXmlItemValues($this->getCcYears(), $this->getInfoData('cc_exp_year'));
87
 
100
  $solo = '';
101
  if ($this->hasSsCardType()) {
102
  $ssCcMonths = $helper->getArrayAsXmlItemValues(
103
+ $ccMonthArray, $this->getInfoData('cc_ss_start_month')
104
  );
105
  $ssCcYears = $helper->getArrayAsXmlItemValues(
106
  $this->getSsStartYears(), $this->getInfoData('cc_ss_start_year')
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Ccsave.php CHANGED
@@ -44,8 +44,8 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Ccsave extends Mage_Pay
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
- if ($_specificInfo = $this->getSpecificInformation()) {
48
- foreach ($_specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
+ if ($specificInfo = $this->getSpecificInformation()) {
48
+ foreach ($specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Paypal/Abstract.php CHANGED
@@ -44,8 +44,8 @@ abstract class Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Abstrac
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
- if ($_specificInfo = $this->getSpecificInformation()) {
48
- foreach ($_specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
+ if ($specificInfo = $this->getSpecificInformation()) {
48
+ foreach ($specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Pbridge/Verisign.php CHANGED
@@ -44,8 +44,8 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Verisign extend
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
- if ($_specificInfo = $this->getSpecificInformation()) {
48
- foreach ($_specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
44
  $orderItemXmlObj->addAttribute('type', $this->getMethod()->getCode());
45
  $orderItemXmlObj->addAttribute('title', $orderItemXmlObj->xmlAttribute($this->getMethod()->getTitle()));
46
 
47
+ if ($specificInfo = $this->getSpecificInformation()) {
48
+ foreach ($specificInfo as $label => $value) {
49
  $orderItemXmlObj->addCustomChild('item', implode($this->getValueAsArray($value, true), '\n'), array(
50
  'label' => $label
51
  ));
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php CHANGED
@@ -76,7 +76,7 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_List extends Mage_Payment_Bl
76
  */
77
  public function getQuote()
78
  {
79
- return Mage::getSingleton('xmlconnect/corefix_checkout_session')->getQuote();
80
  }
81
 
82
  /**
@@ -372,4 +372,30 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_List extends Mage_Payment_Bl
372
  }
373
  return $this;
374
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
  }
76
  */
77
  public function getQuote()
78
  {
79
+ return Mage::getSingleton('checkout/session')->getQuote();
80
  }
81
 
82
  /**
372
  }
373
  return $this;
374
  }
375
+
376
+ /**
377
+ * Deprecated function adding Payment method to the xml
378
+ *
379
+ * @deprecated after 1.4.2.0
380
+ * @param Mage_Core_Block_Template $block
381
+ * @param Mage_XmlConnect_Model_Simplexml_Element $methodsXmlObj
382
+ * @param array $usedCodes
383
+ * @return bool
384
+ */
385
+ protected function _addToXml($block, $methodsXmlObj, $usedCodes)
386
+ {
387
+ return false;
388
+ }
389
+
390
+ /**
391
+ * Deprecated function check method status
392
+ *
393
+ * @deprecated after 1.4.2.0
394
+ * @param Mage_Payment_Model_Method_Abstract $method
395
+ * @return bool
396
+ */
397
+ public function isAvailable($method)
398
+ {
399
+ return $method->isAvailable($this->getQuote());
400
+ }
401
  }
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Paypal/Payflow.php CHANGED
@@ -75,29 +75,29 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow extends Mage_
75
  $formXmlObj->addAttribute('name', 'payment_form_' . $method->getCode());
76
  $formXmlObj->addAttribute('method', 'post');
77
 
78
- $_ccType = $this->getInfoData('cc_type');
79
  $ccTypes = '';
80
 
81
- foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName) {
82
- if (!$_typeCode) {
83
  continue;
84
  }
85
  $ccTypes .= '
86
- <item' . ($_typeCode == $_ccType ? ' selected="1"' : '') . '>
87
  <label>' . $_typeName . '</label>
88
- <value>' . $_typeCode . '</value>
89
  </item>';
90
  }
91
 
92
  $ccMonthes = '';
93
 
94
- $_ccExpMonth = $this->getInfoData('cc_exp_month');
95
  foreach ($this->getCcMonths() as $k => $v) {
96
  if (!$k) {
97
  continue;
98
  }
99
  $ccMonthes .= '
100
- <item' . ($k == $_ccExpMonth ? ' selected="1"' : '') . '>
101
  <label>' . $v . '</label>
102
  <value>' . ($k ? $k : '') . '</value>
103
  </item>';
@@ -105,13 +105,13 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow extends Mage_
105
 
106
  $ccYears = '';
107
 
108
- $_ccExpYear = $this->getInfoData('cc_exp_year');
109
  foreach ($this->getCcYears() as $k => $v) {
110
  if (!$k) {
111
  continue;
112
  }
113
  $ccYears .= '
114
- <item' . ($k == $_ccExpYear ? ' selected="1"' : '') . '>
115
  <label>' . $v . '</label>
116
  <value>' . ($k ? $k : '') . '</value>
117
  </item>';
75
  $formXmlObj->addAttribute('name', 'payment_form_' . $method->getCode());
76
  $formXmlObj->addAttribute('method', 'post');
77
 
78
+ $ccType = $this->getInfoData('cc_type');
79
  $ccTypes = '';
80
 
81
+ foreach ($this->getCcAvailableTypes() as $typeCode => $_typeName) {
82
+ if (!$typeCode) {
83
  continue;
84
  }
85
  $ccTypes .= '
86
+ <item' . ($typeCode == $ccType ? ' selected="1"' : '') . '>
87
  <label>' . $_typeName . '</label>
88
+ <value>' . $typeCode . '</value>
89
  </item>';
90
  }
91
 
92
  $ccMonthes = '';
93
 
94
+ $ccExpMonth = $this->getInfoData('cc_exp_month');
95
  foreach ($this->getCcMonths() as $k => $v) {
96
  if (!$k) {
97
  continue;
98
  }
99
  $ccMonthes .= '
100
+ <item' . ($k == $ccExpMonth ? ' selected="1"' : '') . '>
101
  <label>' . $v . '</label>
102
  <value>' . ($k ? $k : '') . '</value>
103
  </item>';
105
 
106
  $ccYears = '';
107
 
108
+ $ccExpYear = $this->getInfoData('cc_exp_year');
109
  foreach ($this->getCcYears() as $k => $v) {
110
  if (!$k) {
111
  continue;
112
  }
113
  $ccYears .= '
114
+ <item' . ($k == $ccExpYear ? ' selected="1"' : '') . '>
115
  <label>' . $v . '</label>
116
  <value>' . ($k ? $k : '') . '</value>
117
  </item>';
app/code/core/Mage/XmlConnect/Block/Checkout/Pbridge/Result.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Checkout_Pbridge_Result extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Return url for redirect with params of Payment Bridge incoming data
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Checkout_Pbridge_Result extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Return url for redirect with params of Payment Bridge incoming data
app/code/core/Mage/XmlConnect/Block/Configuration.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Configuration extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Current application model
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Configuration extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Current application model
app/code/core/Mage/XmlConnect/Block/Customer/Address/Form.php CHANGED
@@ -323,6 +323,41 @@ class Mage_XmlConnect_Block_Customer_Address_Form extends Mage_Customer_Block_Ad
323
  return $this;
324
  }
325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  /**
327
  * Get customer name widget block
328
  *
323
  return $this;
324
  }
325
 
326
+ /**
327
+ * Add custom customer attributes
328
+ *
329
+ * @deprecated will delete in the next version
330
+ * @param Mage_XmlConnect_Model_Simplexml_Form_Element_Fieldset $addressFieldset
331
+ * @return Mage_XmlConnect_Block_Customer_Address_Form
332
+ */
333
+ protected function _addCustomAddressAttributes(
334
+ Mage_XmlConnect_Model_Simplexml_Form_Element_Fieldset $addressFieldset
335
+ ) {
336
+ if (is_object(Mage::getConfig()->getNode('modules/Enterprise_Customer'))) {
337
+ /** @var $addressAttrBlock Enterprise_Customer_Block_Form */
338
+ $addressAttrBlock = $this->getLayout()
339
+ ->addBlock('enterprise_customer/form', 'customer_address_attr');
340
+ $addressAttrBlock->setFormCode('customer_address_edit');
341
+ $addressAttrBlock->setEntity($this->getAddress());
342
+
343
+ foreach ($this->_customerFiledRenderer as $type => $rendererBlock) {
344
+ $addressAttrBlock->addRenderer($type, $rendererBlock, 'customer/form/renderer/text.phtml');
345
+ }
346
+
347
+ if ($addressAttrBlock->hasUserDefinedAttributes()) {
348
+ foreach ($addressAttrBlock->getUserDefinedAttributes() as $attribute) {
349
+ $type = $attribute->getFrontendInput();
350
+ $block = $addressAttrBlock->getRenderer($type);
351
+ if ($block) {
352
+ $block->setAttributeObject($attribute)->setEntity($addressAttrBlock->getEntity())
353
+ ->addFieldToXmlObj($addressFieldset);
354
+ }
355
+ }
356
+ }
357
+ }
358
+ return $this;
359
+ }
360
+
361
  /**
362
  * Get customer name widget block
363
  *
app/code/core/Mage/XmlConnect/Block/Customer/Address/List.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render customer address list xml
@@ -43,10 +43,10 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Templa
43
  $addressXmlObj = Mage::getModel('xmlconnect/simplexml_element', '<address></address>');
44
  $customer = Mage::getSingleton('customer/session')->getCustomer();
45
 
46
- $_billingAddssesId = $customer->getDefaultBilling();
47
- $_shippingAddssesId = $customer->getDefaultShipping();
48
- $billingAddress = $customer->getAddressById($_billingAddssesId);
49
- $shippingAddress = $customer->getAddressById($_shippingAddssesId);
50
 
51
  if ($billingAddress && $billingAddress->getId()) {
52
  $item = $addressXmlObj->addChild('item');
@@ -60,13 +60,13 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Templa
60
  $item->addAttribute('default_shipping', 1);
61
  $this->prepareAddressData($shippingAddress, $item);
62
  }
63
- $_additionalAddresses = $customer->getAdditionalAddresses();
64
- if ($_additionalAddresses) {
65
- foreach ($_additionalAddresses as $_address) {
66
  $item = $addressXmlObj->addChild('item');
67
  $item->addAttribute('label', $this->__('Additional Address'));
68
  $item->addAttribute('additional', 1);
69
- $this->prepareAddressData($_address, $item);
70
  }
71
  }
72
 
@@ -81,9 +81,9 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Templa
81
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
82
  * @return array
83
  */
84
- public function prepareAddressData(
85
- Mage_Customer_Model_Address $address, Mage_XmlConnect_Model_Simplexml_Element $item
86
- ) {
87
  if (!$address) {
88
  return array();
89
  }
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render customer address list xml
43
  $addressXmlObj = Mage::getModel('xmlconnect/simplexml_element', '<address></address>');
44
  $customer = Mage::getSingleton('customer/session')->getCustomer();
45
 
46
+ $billingAddssesId = $customer->getDefaultBilling();
47
+ $shippingAddssesId = $customer->getDefaultShipping();
48
+ $billingAddress = $customer->getAddressById($billingAddssesId);
49
+ $shippingAddress = $customer->getAddressById($shippingAddssesId);
50
 
51
  if ($billingAddress && $billingAddress->getId()) {
52
  $item = $addressXmlObj->addChild('item');
60
  $item->addAttribute('default_shipping', 1);
61
  $this->prepareAddressData($shippingAddress, $item);
62
  }
63
+ $additionalAddresses = $customer->getAdditionalAddresses();
64
+ if ($additionalAddresses) {
65
+ foreach ($additionalAddresses as $address) {
66
  $item = $addressXmlObj->addChild('item');
67
  $item->addAttribute('label', $this->__('Additional Address'));
68
  $item->addAttribute('additional', 1);
69
+ $this->prepareAddressData($address, $item);
70
  }
71
  }
72
 
81
  * @param Mage_XmlConnect_Model_Simplexml_Element $item
82
  * @return array
83
  */
84
+ public function prepareAddressData(Mage_Customer_Model_Address $address,
85
+ Mage_XmlConnect_Model_Simplexml_Element $item)
86
+ {
87
  if (!$address) {
88
  return array();
89
  }
app/code/core/Mage/XmlConnect/Block/Customer/Form.php CHANGED
@@ -31,40 +31,8 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Customer_Form extends Mage_Core_Block_Template
35
  {
36
- /**
37
- * Action type
38
- *
39
- * Action type false on registration page and true on account edit page
40
- *
41
- * @var bool
42
- */
43
- protected $_isEditPage = false;
44
-
45
- /**
46
- * Checkout page
47
- *
48
- * True only for checkout registration page
49
- *
50
- * @var bool
51
- */
52
- protected $_isCheckoutRegistrationPage = false;
53
-
54
- /**
55
- * Attributes block name
56
- *
57
- * @var string
58
- */
59
- protected $_attributesBlockName = '';
60
-
61
- /**
62
- * Customer form code
63
- *
64
- * @var string
65
- */
66
- protected $_customerFormCode = '';
67
-
68
  /**
69
  * Render customer form xml
70
  *
@@ -228,92 +196,4 @@ class Mage_XmlConnect_Block_Customer_Form extends Mage_Core_Block_Template
228
  }
229
  return array();
230
  }
231
-
232
- /**
233
- * Get action type
234
- *
235
- * @return boolean
236
- */
237
- public function getIsEditPage()
238
- {
239
- return $this->_isEditPage;
240
- }
241
-
242
- /**
243
- * Set action type
244
- *
245
- * @param boolean $actionType
246
- * @return Mage_XmlConnect_Block_Customer_Form
247
- */
248
- public function setIsEditPage($actionType)
249
- {
250
- $this->_isEditPage = $actionType;
251
- return $this;
252
- }
253
-
254
- /**
255
- * Set customer form code
256
- *
257
- * @param string $customerFormCode
258
- * @return Mage_XmlConnect_Block_Customer_Form
259
- */
260
- public function setCustomerFormCode($customerFormCode)
261
- {
262
- $this->_customerFormCode = $customerFormCode;
263
- return $this;
264
- }
265
-
266
- /**
267
- * Get customer form code
268
- *
269
- * @return string
270
- */
271
- public function getCustomerFormCode()
272
- {
273
- return $this->_customerFormCode;
274
- }
275
-
276
- /**
277
- * Set attributes block name
278
- *
279
- * @param string $attributesBlockName
280
- * @return Mage_XmlConnect_Block_Customer_Form
281
- */
282
- public function setAttributesBlockName($attributesBlockName)
283
- {
284
- $this->_attributesBlockName = $attributesBlockName;
285
- return $this;
286
- }
287
-
288
- /**
289
- * Get attributes block name
290
- *
291
- * @return string
292
- */
293
- public function getAttributesBlockName()
294
- {
295
- return $this->_attributesBlockName;
296
- }
297
-
298
- /**
299
- * Set is checkout page registration
300
- *
301
- * @param boolean $checkoutPageRegistration
302
- * @return Mage_XmlConnect_Block_Customer_Form
303
- */
304
- public function setIsCheckoutRegistrationPage($checkoutPageRegistration)
305
- {
306
- $this->_isCheckoutRegistrationPage = $checkoutPageRegistration;
307
- return $this;
308
- }
309
-
310
- /**
311
- * Get is checkout page registration
312
- *
313
- * @return boolean
314
- */
315
- public function getIsCheckoutRegistrationPage()
316
- {
317
- return $this->_isCheckoutRegistrationPage;
318
- }
319
  }
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Customer_Form extends Mage_Core_Block_Abstract
35
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  /**
37
  * Render customer form xml
38
  *
196
  }
197
  return array();
198
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  }
app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Bundle.php CHANGED
@@ -49,7 +49,7 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle extends Mage_Bun
49
  /** @var $parentItem Mage_Sales_Model_Order_Item */
50
  $parentItem = $this->getItem();
51
  $items = array_merge(array($parentItem), $parentItem->getChildrenItems());
52
- $_prevOptionId = '';
53
 
54
  /** @var $weeeHelper Mage_Weee_Helper_Data */
55
  $weeeHelper = $this->helper('weee');
@@ -96,9 +96,9 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle extends Mage_Bun
96
 
97
  if ($isOption) {
98
  $attributes = $this->getSelectionAttributes($item);
99
- if ($_prevOptionId != $attributes['option_id']) {
100
  $objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
101
- $_prevOptionId = $attributes['option_id'];
102
  }
103
  }
104
 
@@ -182,9 +182,8 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle extends Mage_Bun
182
  {
183
  /** @var $parentItem Mage_Sales_Model_Order_Item */
184
  $parentItem = $this->getItem();
185
-
186
  $items = array_merge(array($parentItem), $parentItem->getChildrenItems());
187
- $_prevOptionId = '';
188
 
189
  /** @var $weeeHelper Mage_Weee_Helper_Data */
190
  $weeeHelper = $this->helper('weee');
@@ -231,9 +230,9 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle extends Mage_Bun
231
 
232
  if ($isOption) {
233
  $attributes = $this->getSelectionAttributes($item);
234
- if ($_prevOptionId != $attributes['option_id']) {
235
  $objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
236
- $_prevOptionId = $attributes['option_id'];
237
  }
238
  }
239
 
49
  /** @var $parentItem Mage_Sales_Model_Order_Item */
50
  $parentItem = $this->getItem();
51
  $items = array_merge(array($parentItem), $parentItem->getChildrenItems());
52
+ $prevOptionId = '';
53
 
54
  /** @var $weeeHelper Mage_Weee_Helper_Data */
55
  $weeeHelper = $this->helper('weee');
96
 
97
  if ($isOption) {
98
  $attributes = $this->getSelectionAttributes($item);
99
+ if ($prevOptionId != $attributes['option_id']) {
100
  $objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
101
+ $prevOptionId = $attributes['option_id'];
102
  }
103
  }
104
 
182
  {
183
  /** @var $parentItem Mage_Sales_Model_Order_Item */
184
  $parentItem = $this->getItem();
 
185
  $items = array_merge(array($parentItem), $parentItem->getChildrenItems());
186
+ $prevOptionId = '';
187
 
188
  /** @var $weeeHelper Mage_Weee_Helper_Data */
189
  $weeeHelper = $this->helper('weee');
230
 
231
  if ($isOption) {
232
  $attributes = $this->getSelectionAttributes($item);
233
+ if ($prevOptionId != $attributes['option_id']) {
234
  $objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
235
+ $prevOptionId = $attributes['option_id'];
236
  }
237
  }
238
 
app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Downloadable.php CHANGED
@@ -63,12 +63,6 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
63
 
64
  Mage::helper('xmlconnect/customer_order')->addItemOptionsToXml($this, $itemXml);
65
 
66
- $addtInfoBlock = $this->getProductAdditionalInformationBlock();
67
- if ($addtInfoBlock) {
68
- // TODO: find how to set additional info block
69
- // $addtInfoBlock->setItem($item)->toHtml();
70
- }
71
-
72
  $links = $this->getLinks();
73
  if ($links) {
74
  $linksXml = $itemXml->addCustomChild('links', null, array('label' => $this->getLinksTitle()));
@@ -147,12 +141,6 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
147
 
148
  Mage::helper('xmlconnect/customer_order')->addItemOptionsToXml($this, $itemXml);
149
 
150
- $addtInfoBlock = $this->getProductAdditionalInformationBlock();
151
- if ($addtInfoBlock) {
152
- // TODO: find how to set additional info block
153
- // $addtInfoBlock->setItem($item)->toHtml();
154
- }
155
-
156
  $links = $this->getLinks();
157
  if ($links) {
158
  $linksXml = $itemXml->addCustomChild('links', null, array('label' => $this->getLinksTitle()));
63
 
64
  Mage::helper('xmlconnect/customer_order')->addItemOptionsToXml($this, $itemXml);
65
 
 
 
 
 
 
 
66
  $links = $this->getLinks();
67
  if ($links) {
68
  $linksXml = $itemXml->addCustomChild('links', null, array('label' => $this->getLinksTitle()));
141
 
142
  Mage::helper('xmlconnect/customer_order')->addItemOptionsToXml($this, $itemXml);
143
 
 
 
 
 
 
 
144
  $links = $this->getLinks();
145
  if ($links) {
146
  $linksXml = $itemXml->addCustomChild('links', null, array('label' => $this->getLinksTitle()));
app/code/core/Mage/XmlConnect/Block/Customer/Order/List.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Customer_Order_List extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Orders count limit
@@ -57,18 +57,18 @@ class Mage_XmlConnect_Block_Customer_Order_List extends Mage_Core_Block_Template
57
  $orders->load();
58
 
59
  if (sizeof($orders->getItems())) {
60
- foreach ($orders as $_order) {
61
  $item = $ordersXmlObj->addChild('item');
62
- $item->addChild('entity_id', $_order->getId());
63
- $item->addChild('number', $_order->getRealOrderId());
64
- $item->addChild('date', $this->formatDate($_order->getCreatedAtStoreDate()));
65
- if ($_order->getShippingAddress()) {
66
- $item->addChild('ship_to', $ordersXmlObj->escapeXml($_order->getShippingAddress()->getName()));
67
  }
68
- $item->addChild('total', $_order->getOrderCurrency()->formatPrecision(
69
- $_order->getGrandTotal(), 2, array(), false, false
70
  ));
71
- $item->addChild('status', $_order->getStatusLabel());
72
  }
73
  }
74
  return $ordersXmlObj->asNiceXml();
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Customer_Order_List extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Orders count limit
57
  $orders->load();
58
 
59
  if (sizeof($orders->getItems())) {
60
+ foreach ($orders as $order) {
61
  $item = $ordersXmlObj->addChild('item');
62
+ $item->addChild('entity_id', $order->getId());
63
+ $item->addChild('number', $order->getRealOrderId());
64
+ $item->addChild('date', $this->formatDate($order->getCreatedAtStoreDate()));
65
+ if ($order->getShippingAddress()) {
66
+ $item->addChild('ship_to', $ordersXmlObj->escapeXml($order->getShippingAddress()->getName()));
67
  }
68
+ $item->addChild('total', $order->getOrderCurrency()->formatPrecision(
69
+ $order->getGrandTotal(), 2, array(), false, false
70
  ));
71
+ $item->addChild('status', $order->getStatusLabel());
72
  }
73
  }
74
  return $ordersXmlObj->asNiceXml();
app/code/core/Mage/XmlConnect/Block/Customer/Storecredit.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render customer store credits xml
@@ -46,10 +46,8 @@ class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Templat
46
  $accountBalance = $this->getLayout()
47
  ->addBlock('enterprise_customerbalance/account_balance', 'account_balance');
48
 
49
- $customerBalanceHelper = Mage::helper('enterprise_customerbalance');
50
-
51
  $xmlModel->addCustomChild('balance', null, array(
52
- 'label' => $customerBalanceHelper->__('Your current balance is:'),
53
  'value' => $accountBalance->getBalance(),
54
  'formatted_value' => Mage::helper('core')->currency($accountBalance->getBalance(), true, false)
55
  ));
@@ -59,11 +57,11 @@ class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Templat
59
 
60
  if ($accountHistory->canShow() && $accountHistory->getEvents() && count($accountHistory->getEvents())) {
61
  $balanceHistory = $xmlModel->addCustomChild('balance_history', null, array(
62
- 'label' => $customerBalanceHelper->__('Balance History'),
63
- 'action_label' => $customerBalanceHelper->__('Action'),
64
- 'balance_change_label' => $customerBalanceHelper->__('Balance Change'),
65
- 'balance_label' => $customerBalanceHelper->__('Balance'),
66
- 'date_label' => $customerBalanceHelper->__('Date')
67
  ));
68
 
69
  foreach ($accountHistory->getEvents() as $event) {
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render customer store credits xml
46
  $accountBalance = $this->getLayout()
47
  ->addBlock('enterprise_customerbalance/account_balance', 'account_balance');
48
 
 
 
49
  $xmlModel->addCustomChild('balance', null, array(
50
+ 'label' => $this->__('Your current balance is:'),
51
  'value' => $accountBalance->getBalance(),
52
  'formatted_value' => Mage::helper('core')->currency($accountBalance->getBalance(), true, false)
53
  ));
57
 
58
  if ($accountHistory->canShow() && $accountHistory->getEvents() && count($accountHistory->getEvents())) {
59
  $balanceHistory = $xmlModel->addCustomChild('balance_history', null, array(
60
+ 'label' => $this->__('Balance History'),
61
+ 'action_label' => $this->__('Action'),
62
+ 'balance_change_label' => $this->__('Balance Change'),
63
+ 'balance_label' => $this->__('Balance'),
64
+ 'date_label' => $this->__('Date')
65
  ));
66
 
67
  foreach ($accountHistory->getEvents() as $event) {
app/code/core/Mage/XmlConnect/Block/Homebanners.php CHANGED
@@ -31,14 +31,14 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * List of images separated by device those have to be shown on home banners page
38
  *
39
  * @return array
40
  */
41
- private function getBannerTypeCollection()
42
  {
43
  return array(
44
  Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID => array(
@@ -50,8 +50,7 @@ class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Template
50
  Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPAD => array(
51
  Mage_XmlConnect_Model_Device_Ipad::IMAGE_TYPE_LANDSCAPE_BANNER,
52
  Mage_XmlConnect_Model_Device_Ipad::IMAGE_TYPE_PORTRAIT_BANNER,
53
- )
54
- );
55
  }
56
 
57
  /**
@@ -69,7 +68,7 @@ class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Template
69
  /** @var $imagesModel Mage_XmlConnect_Model_Images */
70
  $imagesModel = Mage::getModel('xmlconnect/images');
71
 
72
- $bannerTypeCollection = $this->getBannerTypeCollection();
73
  $deviceType = $deviceHelper->getDeviceType();
74
  foreach ($bannerTypeCollection[$deviceType] as $bannerType) {
75
 
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * List of images separated by device those have to be shown on home banners page
38
  *
39
  * @return array
40
  */
41
+ private function getBannerTypeArray()
42
  {
43
  return array(
44
  Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID => array(
50
  Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPAD => array(
51
  Mage_XmlConnect_Model_Device_Ipad::IMAGE_TYPE_LANDSCAPE_BANNER,
52
  Mage_XmlConnect_Model_Device_Ipad::IMAGE_TYPE_PORTRAIT_BANNER,
53
+ ));
 
54
  }
55
 
56
  /**
68
  /** @var $imagesModel Mage_XmlConnect_Model_Images */
69
  $imagesModel = Mage::getModel('xmlconnect/images');
70
 
71
+ $bannerTypeCollection = $this->getBannerTypeArray();
72
  $deviceType = $deviceHelper->getDeviceType();
73
  foreach ($bannerTypeCollection[$deviceType] as $bannerType) {
74
 
app/code/core/Mage/XmlConnect/Block/Localization.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Localization extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Render home category list xml
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Localization extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Render home category list xml
app/code/core/Mage/XmlConnect/Block/Review/Form.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Block_Review_Form extends Mage_Core_Block_Template
35
  {
36
  /**
37
  * Collection of ratings
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Block_Review_Form extends Mage_Core_Block_Abstract
35
  {
36
  /**
37
  * Collection of ratings
app/code/core/Mage/XmlConnect/Block/Wishlist.php CHANGED
@@ -69,45 +69,46 @@ class Mage_XmlConnect_Block_Wishlist extends Mage_Wishlist_Block_Customer_Wishli
69
  foreach ($this->getWishlistItems() as $item) {
70
  /** @var $item Mage_Wishlist_Model_Item */
71
  $itemXmlObj = $wishlistXmlObj->addChild('item');
 
72
  $itemXmlObj->addChild('item_id', $item->getWishlistItemId());
73
  $itemXmlObj->addChild('entity_id', $item->getProductId());
74
- $itemXmlObj->addChild('entity_type_id', $item->getTypeId());
75
  $itemXmlObj->addChild('name', $wishlistXmlObj->escapeXml($item->getName()));
76
- $itemXmlObj->addChild('in_stock', (int)$item->getStockItem()->getIsInStock());
77
- $itemXmlObj->addChild('is_salable', (int)$item->isSalable());
78
  /**
79
  * If product type is grouped than it has options as its grouped items
80
  */
81
- if ($item->getTypeId() == Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE
82
- || $item->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
83
- $item->setHasOptions(true);
84
  }
85
- $itemXmlObj->addChild('has_options', (int)$item->getHasOptions());
86
 
87
- $icon = $categoryImageHelper->init($item, 'small_image')
88
  ->resize($productSmallImageSize);
89
 
90
  $iconXml = $itemXmlObj->addChild('icon', $icon);
91
  $iconXml->addAttribute('modification_time', filemtime($icon->getNewFile()));
92
 
93
- $description = $wishlistXmlObj->escapeXml($item->getWishlistItemDescription());
94
  $itemXmlObj->addChild('description', $description);
95
 
96
  $addedDate = $wishlistXmlObj->escapeXml($this->getFormatedDate($item->getAddedAt()));
97
  $itemXmlObj->addChild('added_date', $addedDate);
98
 
99
  if ($this->getChild('product_price')) {
100
- $this->getChild('product_price')->setProduct($item)->setProductXmlObj($itemXmlObj)
101
  ->collectProductPrices();
102
  }
103
 
104
- if (!$item->getRatingSummary()) {
105
  Mage::getModel('review/review')
106
- ->getEntitySummary($item, Mage::app()->getStore()->getId());
107
  }
108
- $ratingSummary = (int)$item->getRatingSummary()->getRatingSummary();
109
  $itemXmlObj->addChild('rating_summary', round($ratingSummary / 10));
110
- $itemXmlObj->addChild('reviews_count', $item->getRatingSummary()->getReviewsCount());
111
  }
112
  }
113
 
69
  foreach ($this->getWishlistItems() as $item) {
70
  /** @var $item Mage_Wishlist_Model_Item */
71
  $itemXmlObj = $wishlistXmlObj->addChild('item');
72
+
73
  $itemXmlObj->addChild('item_id', $item->getWishlistItemId());
74
  $itemXmlObj->addChild('entity_id', $item->getProductId());
75
+ $itemXmlObj->addChild('entity_type_id', $item->getProduct()->getTypeId());
76
  $itemXmlObj->addChild('name', $wishlistXmlObj->escapeXml($item->getName()));
77
+ $itemXmlObj->addChild('in_stock', (int)$item->getProduct()->getStockItem()->getIsInStock());
78
+ $itemXmlObj->addChild('is_salable', (int)$item->getProduct()->isSalable());
79
  /**
80
  * If product type is grouped than it has options as its grouped items
81
  */
82
+ if ($item->getProduct()->getTypeId() == Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE
83
+ || $item->getProduct()->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
84
+ $item->getProduct()->setHasOptions(true);
85
  }
86
+ $itemXmlObj->addChild('has_options', (int)$item->getProduct()->getHasOptions());
87
 
88
+ $icon = $categoryImageHelper->init($item->getProduct(), 'small_image')
89
  ->resize($productSmallImageSize);
90
 
91
  $iconXml = $itemXmlObj->addChild('icon', $icon);
92
  $iconXml->addAttribute('modification_time', filemtime($icon->getNewFile()));
93
 
94
+ $description = $wishlistXmlObj->escapeXml($item->getDescription());
95
  $itemXmlObj->addChild('description', $description);
96
 
97
  $addedDate = $wishlistXmlObj->escapeXml($this->getFormatedDate($item->getAddedAt()));
98
  $itemXmlObj->addChild('added_date', $addedDate);
99
 
100
  if ($this->getChild('product_price')) {
101
+ $this->getChild('product_price')->setProduct($item->getProduct())->setProductXmlObj($itemXmlObj)
102
  ->collectProductPrices();
103
  }
104
 
105
+ if (!$item->getProduct()->getRatingSummary()) {
106
  Mage::getModel('review/review')
107
+ ->getEntitySummary($item->getProduct(), Mage::app()->getStore()->getId());
108
  }
109
+ $ratingSummary = (int)$item->getProduct()->getRatingSummary()->getRatingSummary();
110
  $itemXmlObj->addChild('rating_summary', round($ratingSummary / 10));
111
+ $itemXmlObj->addChild('reviews_count', $item->getProduct()->getRatingSummary()->getReviewsCount());
112
  }
113
  }
114
 
app/code/core/Mage/XmlConnect/Controller/AdminAction.php CHANGED
@@ -33,6 +33,11 @@
33
  */
34
  abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Controller_Action
35
  {
 
 
 
 
 
36
  /**
37
  * Controller pre-dispatch method
38
  *
@@ -46,7 +51,8 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
46
  ->setPackageName((string)Mage::getConfig()->getNode('stores/admin/design/package/name'))
47
  ->setTheme((string)Mage::getConfig()->getNode('stores/admin/design/theme/default'));
48
  foreach (array('layout', 'template', 'skin', 'locale') as $type) {
49
- if ($value = (string)Mage::getConfig()->getNode("stores/admin/design/theme/{$type}")) {
 
50
  Mage::getDesign()->setTheme($type, $value);
51
  }
52
  }
@@ -57,7 +63,8 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
57
  Mage_Core_Controller_Varien_Action::preDispatch();
58
 
59
  if ($this->getRequest()->isDispatched() && $this->getRequest()->getActionName() !== 'denied'
60
- && !$this->_isAllowed()) {
 
61
  $this->_forward('denied');
62
  $this->setFlag('', self::FLAG_NO_DISPATCH, true);
63
  return $this;
@@ -82,7 +89,7 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
82
  */
83
  public function _checkCookie()
84
  {
85
- $AdminDeviceCookie = Mage_XmlConnect_Model_AdminApplication::DEVICE_TYPE_COOKIE_NAME;
86
  $currentDevice = isset($_COOKIE[$AdminDeviceCookie]) ? (string) $_COOKIE[$AdminDeviceCookie] : '';
87
  if (!array_key_exists($currentDevice, Mage_XmlConnect_Helper_Data::getSupportedDevices())) {
88
  $this->_message(
33
  */
34
  abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Controller_Action
35
  {
36
+ /**
37
+ * Admin application device type cookie
38
+ */
39
+ const DEVICE_TYPE_COOKIE_NAME = 'device_type';
40
+
41
  /**
42
  * Controller pre-dispatch method
43
  *
51
  ->setPackageName((string)Mage::getConfig()->getNode('stores/admin/design/package/name'))
52
  ->setTheme((string)Mage::getConfig()->getNode('stores/admin/design/theme/default'));
53
  foreach (array('layout', 'template', 'skin', 'locale') as $type) {
54
+ $value = (string)Mage::getConfig()->getNode("stores/admin/design/theme/{$type}");
55
+ if ($value) {
56
  Mage::getDesign()->setTheme($type, $value);
57
  }
58
  }
63
  Mage_Core_Controller_Varien_Action::preDispatch();
64
 
65
  if ($this->getRequest()->isDispatched() && $this->getRequest()->getActionName() !== 'denied'
66
+ && !$this->_isAllowed()
67
+ ) {
68
  $this->_forward('denied');
69
  $this->setFlag('', self::FLAG_NO_DISPATCH, true);
70
  return $this;
89
  */
90
  public function _checkCookie()
91
  {
92
+ $AdminDeviceCookie = self::DEVICE_TYPE_COOKIE_NAME;
93
  $currentDevice = isset($_COOKIE[$AdminDeviceCookie]) ? (string) $_COOKIE[$AdminDeviceCookie] : '';
94
  if (!array_key_exists($currentDevice, Mage_XmlConnect_Helper_Data::getSupportedDevices())) {
95
  $this->_message(
app/code/core/Mage/XmlConnect/Helper/AdminApplication.php CHANGED
@@ -95,7 +95,7 @@ class Mage_XmlConnect_Helper_AdminApplication extends Mage_Core_Helper_Abstract
95
  }
96
  $storeIds = array_keys($params['store_list']);
97
  foreach ($storeIds as $storeId) {
98
- $this->_storeIdList[] = $storeId;
99
  }
100
  }
101
  sort($this->_storeIdList);
@@ -123,7 +123,7 @@ class Mage_XmlConnect_Helper_AdminApplication extends Mage_Core_Helper_Abstract
123
  }
124
  $viewIds = array_keys($storeData['view_list']);
125
  foreach ($viewIds as $viewId) {
126
- $this->_viewIdList[] = $viewId;
127
  }
128
  }
129
  }
95
  }
96
  $storeIds = array_keys($params['store_list']);
97
  foreach ($storeIds as $storeId) {
98
+ $this->_storeIdList[] = $storeId;
99
  }
100
  }
101
  sort($this->_storeIdList);
123
  }
124
  $viewIds = array_keys($storeData['view_list']);
125
  foreach ($viewIds as $viewId) {
126
+ $this->_viewIdList[] = $viewId;
127
  }
128
  }
129
  }
app/code/core/Mage/XmlConnect/Helper/Android.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
35
  {
36
  /**
37
  * Submission title length
@@ -43,6 +43,18 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
43
  */
44
  const SUBMISSION_DESCRIPTION_LENGTH = 4000;
45
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  /**
47
  * Tags identifier for title bar
48
  */
@@ -55,14 +67,26 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
55
 
56
  /**
57
  * Country renderer for submission
 
 
58
  */
59
  const SUBMISSION_COUNTRY_RENDERER = 'androidmarket';
60
 
61
  /**
62
  * Country columns for submission
 
 
63
  */
64
  const SUBMISSION_COUNTRY_COLUMNS = 2;
65
 
 
 
 
 
 
 
 
 
66
  /**
67
  * Submit images that are stored in "params" field of history table
68
  *
@@ -71,14 +95,14 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
71
  protected $_imageIds = array('icon', 'android_loader_image', 'android_logo', 'big_logo');
72
 
73
  /**
74
- * Country field renderer
75
  *
76
- * @var Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Androidmarket
77
  */
78
- protected $_countryRenderer = null;
79
 
80
  /**
81
- * List of coutries that allowed in Ituens by Apple Store
82
  *
83
  * array(
84
  * 'country name' => 'country id at directory model'
@@ -118,16 +142,6 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
118
  'United States' => 'US',
119
  );
120
 
121
- /**
122
- * Get submit images that are required for application submit
123
- *
124
- * @return array
125
- */
126
- public function getSubmitImages()
127
- {
128
- return $this->_imageIds;
129
- }
130
-
131
  /**
132
  * Default images list
133
  *
@@ -140,13 +154,13 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
140
  'count' => Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_ICON_COUNT,
141
  'label' => $this->__('Logo in Header'),
142
  'sortable' => false,
143
- 'sizeTip' => $this->__('Recommended size 35px x 35px.')
144
  ),
145
  Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_PORTRAIT_BANNER => array(
146
  'count' => Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_BANNER_COUNT,
147
  'label' => $this->__('Banners on Home Screen'),
148
  'sortable' => true,
149
- 'sizeTip' => $this->__('Recommended size 320px x 258px. Note: Image size affects the performance of your app. Keep your image size below 50 KB for optimal performance.')
150
  ));
151
  }
152
 
@@ -492,22 +506,7 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
492
  array(
493
  'value' => 'STHeitiK-Light',
494
  'label' => 'STHeitiK-Light',
495
- ),
496
- );
497
- }
498
-
499
- /**
500
- * List of allowed font sizes for Android application
501
- *
502
- * @return array
503
- */
504
- public function getFontSizes()
505
- {
506
- $result = array();
507
- for ($i = 6; $i < 32; $i++) {
508
- $result[] = array('value' => $i, 'label' => $i . ' pt');
509
- }
510
- return $result;
511
  }
512
 
513
  /**
@@ -605,21 +604,6 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
605
  return $errors;
606
  }
607
 
608
- /**
609
- * Get renderer for submission country
610
- *
611
- * @return Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Androidmarket
612
- */
613
- public function getCountryRenderer()
614
- {
615
- if (empty($this->_countryRenderer)) {
616
- $renderer = 'xmlconnect/adminhtml_mobile_submission_renderer_country_'
617
- . self::SUBMISSION_COUNTRY_RENDERER;
618
- $this->_countryRenderer = Mage::app()->getLayout()->createBlock($renderer);
619
- }
620
- return $this->_countryRenderer;
621
- }
622
-
623
  /**
624
  * Get label for submission country
625
  *
@@ -630,16 +614,6 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
630
  return Mage::helper('xmlconnect')->__('Locations');
631
  }
632
 
633
- /**
634
- * Get columns for submission country
635
- *
636
- * @return int
637
- */
638
- public function getCountryColumns()
639
- {
640
- return self::SUBMISSION_COUNTRY_COLUMNS;
641
- }
642
-
643
  /**
644
  * Get placement of Country Names for submission country
645
  *
@@ -657,12 +631,14 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
657
  */
658
  public function getCountryClass()
659
  {
660
- return self::SUBMISSION_COUNTRY_RENDERER;
661
  }
662
 
663
  /**
664
  * Get list of countries that allowed by Magento Inc. for Android
665
  *
 
 
666
  * @return array
667
  */
668
  public function getAndroidMarketCountriesArray()
@@ -719,31 +695,4 @@ class Mage_XmlConnect_Helper_Android extends Mage_Core_Helper_Abstract
719
  Mage::throwException(Mage::helper('xmlconnect')->__('Banner on Home Screen image missing.'));
720
  }
721
  }
722
-
723
- /**
724
- * Check the notifications are allowed for current type of application
725
- *
726
- * @return bool
727
- */
728
- public function isNotificationsAllowed()
729
- {
730
- return true;
731
- }
732
-
733
- /**
734
- * Get image count for image type
735
- *
736
- * @param string $imageType
737
- * @return int
738
- */
739
- public function getImageCount($imageType)
740
- {
741
- $imagesTypesList = $this->getImagesTypesList();
742
- if (array_key_exists($imageType, $imagesTypesList)) {
743
- $count = !empty($imagesTypesList[$imageType]['count']) ? $imagesTypesList[$imageType]['count'] : 0;
744
- } else {
745
- Mage::throwException(Mage::helper('xmlconnect')->__('Image type doesn\'t recognized: "%s".', $imageType));
746
- }
747
- return $count;
748
- }
749
  }
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstract
35
  {
36
  /**
37
  * Submission title length
43
  */
44
  const SUBMISSION_DESCRIPTION_LENGTH = 4000;
45
 
46
+ /**
47
+ * Android preview banner width
48
+ * @deprecated
49
+ */
50
+ const PREVIEW_BANNER_WIDTH = 320;
51
+
52
+ /**
53
+ * Android preview banner image height
54
+ * @deprecated
55
+ */
56
+ const PREVIEW_BANNER_HEIGHT = 258;
57
+
58
  /**
59
  * Tags identifier for title bar
60
  */
67
 
68
  /**
69
  * Country renderer for submission
70
+ *
71
+ * @deprecated
72
  */
73
  const SUBMISSION_COUNTRY_RENDERER = 'androidmarket';
74
 
75
  /**
76
  * Country columns for submission
77
+ *
78
+ * @deprecated
79
  */
80
  const SUBMISSION_COUNTRY_COLUMNS = 2;
81
 
82
+ /**
83
+ * Submission columns count
84
+ *
85
+ * @var int
86
+ */
87
+ protected $_countryColumnsCount = 2;
88
+
89
+
90
  /**
91
  * Submit images that are stored in "params" field of history table
92
  *
95
  protected $_imageIds = array('icon', 'android_loader_image', 'android_logo', 'big_logo');
96
 
97
  /**
98
+ * Country renderer block
99
  *
100
+ * @var string
101
  */
102
+ protected $_countryRendererBlock = 'xmlconnect/adminhtml_mobile_submission_renderer_country_androidmarket';
103
 
104
  /**
105
+ * List of countries that allowed in Androidmarket by Google
106
  *
107
  * array(
108
  * 'country name' => 'country id at directory model'
142
  'United States' => 'US',
143
  );
144
 
 
 
 
 
 
 
 
 
 
 
145
  /**
146
  * Default images list
147
  *
154
  'count' => Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_ICON_COUNT,
155
  'label' => $this->__('Logo in Header'),
156
  'sortable' => false,
157
+ 'sizeTip' => $this->__('Recommended size %spx x %spx.', 35, 35)
158
  ),
159
  Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_PORTRAIT_BANNER => array(
160
  'count' => Mage_XmlConnect_Model_Device_Android::IMAGE_TYPE_BANNER_COUNT,
161
  'label' => $this->__('Banners on Home Screen'),
162
  'sortable' => true,
163
+ 'sizeTip' => $this->__('Recommended size %spx x %spx.', 320, 258) . $this->__('Note: Image size affects the performance of your app.') . $this->__('Keep your image size below %s KB for optimal performance.', 50)
164
  ));
165
  }
166
 
506
  array(
507
  'value' => 'STHeitiK-Light',
508
  'label' => 'STHeitiK-Light',
509
+ ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  }
511
 
512
  /**
604
  return $errors;
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  /**
608
  * Get label for submission country
609
  *
614
  return Mage::helper('xmlconnect')->__('Locations');
615
  }
616
 
 
 
 
 
 
 
 
 
 
 
617
  /**
618
  * Get placement of Country Names for submission country
619
  *
631
  */
632
  public function getCountryClass()
633
  {
634
+ return 'androidmarket';
635
  }
636
 
637
  /**
638
  * Get list of countries that allowed by Magento Inc. for Android
639
  *
640
+ * @deprecated
641
+ * @see $this->getAllowedCountriesArray()
642
  * @return array
643
  */
644
  public function getAndroidMarketCountriesArray()
695
  Mage::throwException(Mage::helper('xmlconnect')->__('Banner on Home Screen image missing.'));
696
  }
697
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
698
  }
app/code/core/Mage/XmlConnect/Helper/Customer/Form/Renderer.php CHANGED
@@ -95,11 +95,11 @@ class Mage_XmlConnect_Helper_Customer_Form_Renderer extends Mage_Core_Helper_Abs
95
  *
96
  * @param Mage_XmlConnect_Model_Simplexml_Form_Abstract $fieldset
97
  * @param Mage_Core_Model_Layout $layout
98
- * @return Mage_XmlConnect_Block_Customer_Form
99
  */
100
- public function addCustomAttributes(Mage_XmlConnect_Model_Simplexml_Form_Abstract $fieldset, $layout) {
 
101
  if (is_object(Mage::getConfig()->getNode('modules/Enterprise_Customer'))) {
102
-
103
  $attrBlock = $layout->addBlock('enterprise_customer/form', $this->getAttributesBlockName());
104
  $attrBlock->setFormCode($this->getFormCode());
105
  $attrBlock->setEntity($this->getBlockEntity());
95
  *
96
  * @param Mage_XmlConnect_Model_Simplexml_Form_Abstract $fieldset
97
  * @param Mage_Core_Model_Layout $layout
98
+ * @return Mage_XmlConnect_Helper_Customer_Form_Renderer
99
  */
100
+ public function addCustomAttributes(Mage_XmlConnect_Model_Simplexml_Form_Abstract $fieldset, $layout)
101
+ {
102
  if (is_object(Mage::getConfig()->getNode('modules/Enterprise_Customer'))) {
 
103
  $attrBlock = $layout->addBlock('enterprise_customer/form', $this->getAttributesBlockName());
104
  $attrBlock->setFormCode($this->getFormCode());
105
  $attrBlock->setEntity($this->getBlockEntity());
app/code/core/Mage/XmlConnect/Helper/Customer/Order.php CHANGED
@@ -66,14 +66,14 @@ class Mage_XmlConnect_Helper_Customer_Order extends Mage_Core_Helper_Abstract
66
  */
67
  public function addPriceAndSubtotalToXml(Mage_Core_Block_Template $renderer, Mage_Sales_Model_Order_Item $item,
68
  Mage_XmlConnect_Model_Simplexml_Element $priceXml, Mage_XmlConnect_Model_Simplexml_Element $subtotalXml,
69
- $isIncludeTax = false
70
- ) {
71
  $weeeParams = array();
72
 
73
  $typesOfDisplay = $renderer->getTypesOfDisplay();
74
  if ($isIncludeTax) {
75
  $nodeName = self::INCLUDING_TAX_ID;
76
- $nodeLabel = $renderer->__('Incl. Tax');
77
 
78
  $inclPrice = $renderer->helper('checkout')->getPriceInclTax($item);
79
  $inclSubtotal = $renderer->helper('checkout')->getSubtotalInclTax($item);
@@ -88,7 +88,7 @@ class Mage_XmlConnect_Helper_Customer_Order extends Mage_Core_Helper_Abstract
88
  $weeeParams['include'] = $inclPrice;
89
  } else {
90
  $nodeName = self::EXCLUDING_TAX_ID;
91
- $nodeLabel = $renderer->__('Excl. Tax');
92
 
93
  if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_14]) {
94
  $price = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount()
@@ -140,7 +140,7 @@ class Mage_XmlConnect_Helper_Customer_Order extends Mage_Core_Helper_Abstract
140
  $typesOfDisplay = $renderer->getTypesOfDisplay();
141
  if ($isIncludeTax) {
142
  $nodeId = self::INCLUDING_TAX_ID;
143
- $nodeLabel = $renderer->__('Incl. Tax');
144
 
145
  $inclPrice = $renderer->helper('checkout')->getPriceInclTax($item);
146
  $inclSubtotal = $renderer->helper('checkout')->getSubtotalInclTax($item);
@@ -155,7 +155,7 @@ class Mage_XmlConnect_Helper_Customer_Order extends Mage_Core_Helper_Abstract
155
  $weeeParams['include'] = $inclPrice;
156
  } else {
157
  $nodeId = self::EXCLUDING_TAX_ID;
158
- $nodeLabel = $renderer->__('Excl. Tax');
159
 
160
  if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_14]) {
161
  $price = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount()
@@ -383,19 +383,19 @@ class Mage_XmlConnect_Helper_Customer_Order extends Mage_Core_Helper_Abstract
383
  ) {
384
  $qty = 1 * $item->getQtyOrdered();
385
  if ($qty > 0) {
386
- $quantityXml->addCustomChild('value', $qty, array('label' => $renderer->__('Ordered')));
387
  }
388
  $qty = 1 * $item->getQtyShipped();
389
  if ($qty > 0) {
390
- $quantityXml->addCustomChild('value', $qty, array('label' => $renderer->__('Shipped')));
391
  }
392
  $qty = 1 * $item->getQtyCanceled();
393
  if ($qty > 0) {
394
- $quantityXml->addCustomChild('value', $qty, array('label' => $renderer->__('Canceled')));
395
  }
396
  $qty = 1 * $item->getQtyRefunded();
397
  if ($qty > 0) {
398
- $quantityXml->addCustomChild('value', $qty, array('label' => $renderer->__('Refunded')));
399
  }
400
  }
401
 
66
  */
67
  public function addPriceAndSubtotalToXml(Mage_Core_Block_Template $renderer, Mage_Sales_Model_Order_Item $item,
68
  Mage_XmlConnect_Model_Simplexml_Element $priceXml, Mage_XmlConnect_Model_Simplexml_Element $subtotalXml,
69
+ $isIncludeTax = false)
70
+ {
71
  $weeeParams = array();
72
 
73
  $typesOfDisplay = $renderer->getTypesOfDisplay();
74
  if ($isIncludeTax) {
75
  $nodeName = self::INCLUDING_TAX_ID;
76
+ $nodeLabel = $this->__('Incl. Tax');
77
 
78
  $inclPrice = $renderer->helper('checkout')->getPriceInclTax($item);
79
  $inclSubtotal = $renderer->helper('checkout')->getSubtotalInclTax($item);
88
  $weeeParams['include'] = $inclPrice;
89
  } else {
90
  $nodeName = self::EXCLUDING_TAX_ID;
91
+ $nodeLabel = $this->__('Excl. Tax');
92
 
93
  if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_14]) {
94
  $price = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount()
140
  $typesOfDisplay = $renderer->getTypesOfDisplay();
141
  if ($isIncludeTax) {
142
  $nodeId = self::INCLUDING_TAX_ID;
143
+ $nodeLabel = $this->__('Incl. Tax');
144
 
145
  $inclPrice = $renderer->helper('checkout')->getPriceInclTax($item);
146
  $inclSubtotal = $renderer->helper('checkout')->getSubtotalInclTax($item);
155
  $weeeParams['include'] = $inclPrice;
156
  } else {
157
  $nodeId = self::EXCLUDING_TAX_ID;
158
+ $nodeLabel = $this->__('Excl. Tax');
159
 
160
  if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_14]) {
161
  $price = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount()
383
  ) {
384
  $qty = 1 * $item->getQtyOrdered();
385
  if ($qty > 0) {
386
+ $quantityXml->addCustomChild('value', $qty, array('label' => $this->__('Ordered')));
387
  }
388
  $qty = 1 * $item->getQtyShipped();
389
  if ($qty > 0) {
390
+ $quantityXml->addCustomChild('value', $qty, array('label' => $this->__('Shipped')));
391
  }
392
  $qty = 1 * $item->getQtyCanceled();
393
  if ($qty > 0) {
394
+ $quantityXml->addCustomChild('value', $qty, array('label' => $this->__('Canceled')));
395
  }
396
  $qty = 1 * $item->getQtyRefunded();
397
  if ($qty > 0) {
398
+ $quantityXml->addCustomChild('value', $qty, array('label' => $this->__('Refunded')));
399
  }
400
  }
401
 
app/code/core/Mage/XmlConnect/Helper/Data.php CHANGED
@@ -273,15 +273,14 @@ class Mage_XmlConnect_Helper_Data extends Mage_Core_Helper_Abstract
273
  {
274
  Varien_Profiler::start('TEST: ' . __METHOD__);
275
  $deviceType = $this->getDeviceType();
 
276
  switch ($deviceType) {
277
  case self::DEVICE_TYPE_IPHONE:
278
  case self::DEVICE_TYPE_IPAD:
279
  $cacheKey = 'XMLCONNECT_COUNTRY_ITUNES_SELECT_STORE_' . Mage::app()->getStore()->getCode();
280
- $deviceCountries = $this->getDeviceHelper()->getItunesCountriesArray();
281
  break;
282
  case self::DEVICE_TYPE_ANDROID:
283
  $cacheKey = 'XMLCONNECT_COUNTRY_ANDROID_SELECT_STORE_' . Mage::app()->getStore()->getCode();
284
- $deviceCountries = $this->getDeviceHelper()->getAndroidMarketCountriesArray();
285
  break;
286
  default:
287
  Mage::throwException(
273
  {
274
  Varien_Profiler::start('TEST: ' . __METHOD__);
275
  $deviceType = $this->getDeviceType();
276
+ $deviceCountries = $this->getDeviceHelper()->getAllowedCountriesArray();
277
  switch ($deviceType) {
278
  case self::DEVICE_TYPE_IPHONE:
279
  case self::DEVICE_TYPE_IPAD:
280
  $cacheKey = 'XMLCONNECT_COUNTRY_ITUNES_SELECT_STORE_' . Mage::app()->getStore()->getCode();
 
281
  break;
282
  case self::DEVICE_TYPE_ANDROID:
283
  $cacheKey = 'XMLCONNECT_COUNTRY_ANDROID_SELECT_STORE_' . Mage::app()->getStore()->getCode();
 
284
  break;
285
  default:
286
  Mage::throwException(
app/code/core/Mage/XmlConnect/Helper/Image.php CHANGED
@@ -35,13 +35,15 @@ class Mage_XmlConnect_Helper_Image extends Mage_Core_Helper_Abstract
35
  {
36
  /**
37
  * Xml connect glue
38
- * @deprecated
 
39
  */
40
  const XMLCONNECT_GLUE = Mage_XmlConnect_Model_ImageLimits::SCREEN_SIZE_UPDATE_TYPE_GLUE;
41
 
42
  /**
43
  * Image limits for content
44
  *
 
45
  * @var array|null
46
  */
47
  protected $_content = null;
@@ -94,7 +96,8 @@ class Mage_XmlConnect_Helper_Image extends Mage_Core_Helper_Abstract
94
  try {
95
  $this->_forcedConvertPng($field);
96
 
97
- $uploader = new Varien_File_Uploader($field);
 
98
  $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
99
  $uploader->setAllowRenameFiles(true);
100
  $uploader->save($uploadDir);
35
  {
36
  /**
37
  * Xml connect glue
38
+ *
39
+ * @deprecated will delete in the next version
40
  */
41
  const XMLCONNECT_GLUE = Mage_XmlConnect_Model_ImageLimits::SCREEN_SIZE_UPDATE_TYPE_GLUE;
42
 
43
  /**
44
  * Image limits for content
45
  *
46
+ * @deprecated will delete in the next version
47
  * @var array|null
48
  */
49
  protected $_content = null;
96
  try {
97
  $this->_forcedConvertPng($field);
98
 
99
+ /** @var $uploader Mage_Core_Model_File_Uploader */
100
+ $uploader = Mage::getModel('core/file_uploader', $field);
101
  $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
102
  $uploader->setAllowRenameFiles(true);
103
  $uploader->save($uploadDir);
app/code/core/Mage/XmlConnect/Helper/Iphone.php CHANGED
@@ -31,7 +31,7 @@
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
- class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
35
  {
36
  /**
37
  * Submission title length
@@ -45,11 +45,14 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
45
 
46
  /**
47
  * Country renderer for submission page
 
 
48
  */
49
  const SUBMISSION_COUNTRY_RENDERER = 'istore';
50
 
51
  /**
52
  * Country columns for submission page
 
53
  */
54
  const SUBMISSION_COUNTRY_COLUMNS = 4;
55
 
@@ -62,125 +65,6 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
62
  'icon', 'loader_image', 'loader_image_i4', 'logo', 'logo_i4', 'big_logo', 'big_logo_i4'
63
  );
64
 
65
- /**
66
- * List of coutries that allowed in Ituens by Apple Store
67
- *
68
- * array(
69
- * 'country name' => 'country id at directory model'
70
- * )
71
- *
72
- * @var array
73
- */
74
- protected $_allowedCountries = array(
75
- 'Argentina' => 'AR',
76
- 'Armenia' => 'AM',
77
- 'Australia' => 'AU',
78
- 'Austria' => 'AT',
79
- 'Belgium' => 'BE',
80
- 'Botswana' => 'BW',
81
- 'Brazil' => 'BR',
82
- 'Bulgaria' => 'BG',
83
- 'Canada' => 'CA',
84
- 'Chile' => 'CL',
85
- 'China' => 'CN',
86
- 'Colombia' => 'CO',
87
- 'Costa Rica' => 'CR',
88
- 'Croatia' => 'HR',
89
- 'Czech Republic' => 'CZ',
90
- 'Denmark' => 'DK',
91
- 'Dominican Republic' => 'DO',
92
- 'Ecuador' => 'EC',
93
- 'Egypt' => 'EG',
94
- 'El Salvador' => 'SV',
95
- 'Estonia' => 'EE',
96
- 'Finland' => 'FI',
97
- 'France' => 'FR',
98
- 'Germany' => 'DE',
99
- 'Greece' => 'GR',
100
- 'Guatemala' => 'GT',
101
- 'Honduras' => 'HN',
102
- 'Hong Kong SAR China' => 'HK',
103
- 'Hungary' => 'HU',
104
- 'India' => 'IN',
105
- 'Indonesia' => 'ID',
106
- 'Ireland' => 'IE',
107
- 'Israel' => 'IL',
108
- 'Italy' => 'IT',
109
- 'Jamaica' => 'JM',
110
- 'Japan' => 'JP',
111
- 'Jordan' => 'JO',
112
- 'Kazakstan' => 'KZ',
113
- 'Kenya' => 'KE',
114
- 'South Korea' => 'KR',
115
- 'Kuwait' => 'KW',
116
- 'Latvia' => 'LV',
117
- 'Lebanon' => 'LB',
118
- 'Lithuania' => 'LT',
119
- 'Luxembourg' => 'LU',
120
- 'Macau SAR China' => 'MO',
121
- 'Macedonia' => 'MK',
122
- 'Madagascar' => 'MG',
123
- 'Malaysia' => 'MY',
124
- 'Mali' => 'ML',
125
- 'Malta' => 'MT',
126
- 'Mauritius' => 'MU',
127
- 'Mexico' => 'MX',
128
- 'Moldova' => 'MD',
129
- 'Netherlands' => 'NL',
130
- 'New Zealand' => 'NZ',
131
- 'Nicaragua' => 'NI',
132
- 'Niger' => 'NE',
133
- 'Norway' => 'NO',
134
- 'Pakistan' => 'PK',
135
- 'Panama' => 'PA',
136
- 'Paraguay' => 'PY',
137
- 'Peru' => 'PE',
138
- 'Philippines' => 'PH',
139
- 'Poland' => 'PL',
140
- 'Portugal' => 'PT',
141
- 'Qatar' => 'QA',
142
- 'Romania' => 'RO',
143
- 'Russia' => 'RU',
144
- 'Saudi Arabia' => 'SA',
145
- 'Senegal' => 'SN',
146
- 'Singapore' => 'SG',
147
- 'Slovakia' => 'SK',
148
- 'Slovenia' => 'SI',
149
- 'South Africa' => 'ZA',
150
- 'Spain' => 'ES',
151
- 'Sri Lanka' => 'LK',
152
- 'Sweden' => 'SE',
153
- 'Switzerland' => 'CH',
154
- 'Taiwan' => 'TW',
155
- 'Thailand' => 'TH',
156
- 'Tunisia' => 'TN',
157
- 'Turkey' => 'TR',
158
- 'Uganda' => 'UG',
159
- 'United Arab Emirates' => 'AE',
160
- 'United Kingdom' => 'GB',
161
- 'United States' => 'US',
162
- 'Uruguay' => 'UY',
163
- 'Venezuela' => 'VE',
164
- 'Vietnam' => 'VN',
165
- );
166
-
167
- /**
168
- * Country field renderer
169
- *
170
- * @var Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Istore
171
- */
172
- protected $_countryRenderer = null;
173
-
174
- /**
175
- * Get submit images that are required for application submit
176
- *
177
- * @return array
178
- */
179
- public function getSubmitImages()
180
- {
181
- return $this->_imageIds;
182
- }
183
-
184
  /**
185
  * Get default application tabs
186
  *
@@ -242,19 +126,19 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
242
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_ICON_COUNT,
243
  'label' => $this->__('Logo in Header'),
244
  'sortable' => false,
245
- 'sizeTip' => $this->__('Recommended size 35px x 35px.')
246
  ),
247
  Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_PORTRAIT_BACKGROUND => array(
248
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_BACKGROUND_COUNT,
249
  'label' => $this->__('App Background'),
250
  'sortable' => false,
251
- 'sizeTip' => $this->__('Recommended size 320px x 367px. Note: Image size affects the performance of your app. Keep your image size below 75 KB for optimal performance.')
252
  ),
253
  Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_PORTRAIT_BANNER => array(
254
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_BANNER_COUNT,
255
  'label' => $this->__('Banners on Home Screen'),
256
  'sortable' => true,
257
- 'sizeTip' => $this->__('Recommended size 320px x 230px. Note: Image size affects the performance of your app. Keep your image size below 50 KB for optimal performance.')
258
  ));
259
  }
260
 
@@ -550,30 +434,15 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
550
  array(
551
  'value' => 'STHeitiK-Light',
552
  'label' => 'STHeitiK-Light',
553
- ),
554
- );
555
- }
556
-
557
- /**
558
- * List of allowed font sizes for iPhone application
559
- *
560
- * @return array
561
- */
562
- public function getFontSizes()
563
- {
564
- $result = array();
565
- for ($i = 6; $i < 32; $i++) {
566
- $result[] = array(
567
- 'value' => $i,
568
- 'label' => $i . ' pt',
569
- );
570
- }
571
- return $result;
572
  }
573
 
574
  /**
575
  * Get list of countries that allowed in Itunes by Apple Store for Iphone
 
576
  *
 
 
577
  * @return array
578
  */
579
  public function getItunesCountriesArray()
@@ -681,61 +550,6 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
681
  return $errors;
682
  }
683
 
684
- /**
685
- * Get renderer for submission country
686
- *
687
- * @return Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Istore
688
- */
689
- public function getCountryRenderer()
690
- {
691
- if (empty($this->_countryRenderer)) {
692
- $renderer = 'xmlconnect/adminhtml_mobile_submission_renderer_country_'
693
- . self::SUBMISSION_COUNTRY_RENDERER;
694
- $this->_countryRenderer = Mage::app()->getLayout()->createBlock($renderer);
695
- }
696
- return $this->_countryRenderer;
697
- }
698
-
699
- /**
700
- * Get label for submission country
701
- *
702
- * @return string
703
- */
704
- public function getCountryLabel()
705
- {
706
- return Mage::helper('xmlconnect')->__('App Stores');
707
- }
708
-
709
- /**
710
- * Get columns for submission country
711
- *
712
- * @return int
713
- */
714
- public function getCountryColumns()
715
- {
716
- return self::SUBMISSION_COUNTRY_COLUMNS;
717
- }
718
-
719
- /**
720
- * Get placement of Country Names for submission country
721
- *
722
- * @return bool
723
- */
724
- public function isCountryNamePlaceLeft()
725
- {
726
- return true;
727
- }
728
-
729
- /**
730
- * Get class name for submission country
731
- *
732
- * @return string
733
- */
734
- public function getCountryClass()
735
- {
736
- return self::SUBMISSION_COUNTRY_RENDERER . ' stripy';
737
- }
738
-
739
  /**
740
  * Check image fields
741
  *
@@ -795,33 +609,4 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_Core_Helper_Abstract
795
  Mage::throwException(Mage::helper('xmlconnect')->__('App Background image missing.'));
796
  }
797
  }
798
-
799
- /**
800
- * Check the notifications are allowed for current type of application
801
- *
802
- * @return bool
803
- */
804
- public function isNotificationsAllowed()
805
- {
806
- return true;
807
- }
808
-
809
- /**
810
- * Get image count for image type
811
- *
812
- * @param string $imageType
813
- * @return int
814
- */
815
- public function getImageCount($imageType)
816
- {
817
- $imagesTypesList = $this->getImagesTypesList();
818
- if (array_key_exists($imageType, $imagesTypesList)) {
819
- $count = !empty($imagesTypesList[$imageType]['count']) ? $imagesTypesList[$imageType]['count'] : 0;
820
- } else {
821
- Mage::throwException(
822
- Mage::helper('xmlconnect')->__('Image type doesn\'t recognized: "%s".', $imageType)
823
- );
824
- }
825
- return $count;
826
- }
827
  }
31
  * @package Mage_XmlConnect
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
+ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstract
35
  {
36
  /**
37
  * Submission title length
45
 
46
  /**
47
  * Country renderer for submission page
48
+ *
49
+ * @deprecated
50
  */
51
  const SUBMISSION_COUNTRY_RENDERER = 'istore';
52
 
53
  /**
54
  * Country columns for submission page
55
+ * @deprecated
56
  */
57
  const SUBMISSION_COUNTRY_COLUMNS = 4;
58
 
65
  'icon', 'loader_image', 'loader_image_i4', 'logo', 'logo_i4', 'big_logo', 'big_logo_i4'
66
  );
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  /**
69
  * Get default application tabs
70
  *
126
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_ICON_COUNT,
127
  'label' => $this->__('Logo in Header'),
128
  'sortable' => false,
129
+ 'sizeTip' => $this->__('Recommended size %spx x %spx.', 35, 35)
130
  ),
131
  Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_PORTRAIT_BACKGROUND => array(
132
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_BACKGROUND_COUNT,
133
  'label' => $this->__('App Background'),
134
  'sortable' => false,
135
+ 'sizeTip' => $this->__('Recommended size %spx x %spx.', 320, 367) . $this->__('Note: Image size affects the performance of your app.') . $this->__('Keep your image size below %s KB for optimal performance.', 75)
136
  ),
137
  Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_PORTRAIT_BANNER => array(
138
  'count' => Mage_XmlConnect_Model_Device_Iphone::IMAGE_TYPE_BANNER_COUNT,
139
  'label' => $this->__('Banners on Home Screen'),
140
  'sortable' => true,
141
+ 'sizeTip' => $this->__('Recommended size %spx x %spx.', 320, 230) . $this->__('Note: Image size affects the performance of your app.') . $this->__('Keep your image size below %s KB for optimal performance.', 50)
142
  ));
143
  }
144
 
434
  array(
435
  'value' => 'STHeitiK-Light',
436
  'label' => 'STHeitiK-Light',
437
+ ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
  }
439
 
440
  /**
441
  * Get list of countries that allowed in Itunes by Apple Store for Iphone
442
+ * (we get info from Iphone helper)
443
  *
444
+ * @deprecated
445
+ * @see $this->getAllowedCountriesArray()
446
  * @return array
447
  */
448
  public function getItunesCountriesArray()
550
  return $errors;
551
  }
552
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
553
  /**
554
  * Check image fields
555
  *
609
  Mage::throwException(Mage::helper('xmlconnect')->__('App Background image missing.'));
610
  }
611
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
612
  }
app/code/core/Mage/XmlConnect/Helper/Theme.php CHANGED
@@ -209,7 +209,8 @@ EOT;
209
  protected function _checkDefaultThemes($fileList)
210
  {
211
  $cacheKey = 'MAGENTO_MOBILE_DEFAULT_THEMES_CACHE_KEY';
212
- if (Mage::app()->useCache('config') && $cache = Mage::app()->loadCache($cacheKey)) {
 
213
  $defaultFiles = unserialize($cache);
214
  } else {
215
  $ioFile = new Varien_Io_File();
209
  protected function _checkDefaultThemes($fileList)
210
  {
211
  $cacheKey = 'MAGENTO_MOBILE_DEFAULT_THEMES_CACHE_KEY';
212
+ $cache = Mage::app()->loadCache($cacheKey);
213
+ if (Mage::app()->useCache('config') && $cache) {
214
  $defaultFiles = unserialize($cache);
215
  } else {
216
  $ioFile = new Varien_Io_File();
app/code/core/Mage/XmlConnect/Model/AdminApplication.php DELETED
@@ -1,40 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_XmlConnect
23
- * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
-
27
- /**
28
- * Admin Application model
29
- *
30
- * @category Mage
31
- * @package Mage_Xmlconnect
32
- * @author Magento Core Team <core@magentocommerce.com>
33
- */
34
- class Mage_XmlConnect_Model_AdminApplication extends Mage_Core_Model_Abstract
35
- {
36
- /**
37
- * Admin application device type cookie
38
- */
39
- const DEVICE_TYPE_COOKIE_NAME = 'device_type';
40
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/core/Mage/XmlConnect/Model/Adminhtml/Search/Category.php CHANGED
@@ -46,7 +46,7 @@ class Mage_XmlConnect_Model_Adminhtml_Search_Category extends Varien_Object
46
  $this->setResults($arr);
47
  return $this;
48
  }
49
- /** @var $collection Mage_XmlConnect_Model_Resource_CategorySearch_Collection */
50
  $collection = Mage::getResourceModel('xmlconnect/categorySearch_collection');
51
  $collection->addAttributeToSelect('name')->addAttributeToSelect('description')
52
  ->addSearchFilter($this->getQuery())->setCurPage($this->getStart())->setPageSize($this->getLimit())->load();
46
  $this->setResults($arr);
47
  return $this;
48
  }
49
+ /** @var $collection Mage_XmlConnect_Model_Mysql4_CategorySearch_Collection */
50
  $collection = Mage::getResourceModel('xmlconnect/categorySearch_collection');
51
  $collection->addAttributeToSelect('name')->addAttributeToSelect('description')
52
  ->addSearchFilter($this->getQuery())->setCurPage($this->getStart())->setPageSize($this->getLimit())->load();
app/code/core/Mage/XmlConnect/Model/Application.php CHANGED
@@ -500,7 +500,11 @@ class Mage_XmlConnect_Model_Application extends Mage_Core_Model_Abstract
500
  /**
501
  * Set flag is allowed guest checkout if quote contain downloadable product(s)
502
  */
503
- $result['general']['isAllowedGuestCheckoutForDownloadableProducts'] = $this->isGuestBuyDownloadableProduct();
 
 
 
 
504
 
505
  /**
506
  * Is enabled Store credit functionality
@@ -577,11 +581,11 @@ class Mage_XmlConnect_Model_Application extends Mage_Core_Model_Abstract
577
  /**
578
  * Check is allowed guest checkout if quote contain downloadable product(s)
579
  *
580
- * @return int
581
  */
582
  public function isGuestBuyDownloadableProduct()
583
  {
584
- return (int) Mage::getStoreConfigFlag(
585
  Mage_Downloadable_Model_Observer::XML_PATH_DISABLE_GUEST_CHECKOUT, $this->getStoreId()
586
  );
587
  }
500
  /**
501
  * Set flag is allowed guest checkout if quote contain downloadable product(s)
502
  */
503
+ if ($this->isGuestBuyDownloadableProduct()) {
504
+ $result['general']['isAllowedGuestCheckoutForDownloadableProducts'] = '0';
505
+ } else {
506
+ $result['general']['isAllowedGuestCheckoutForDownloadableProducts'] = '1';
507
+ }
508
 
509
  /**
510
  * Is enabled Store credit functionality
581
  /**
582
  * Check is allowed guest checkout if quote contain downloadable product(s)
583
  *
584
+ * @return bool
585
  */
586
  public function isGuestBuyDownloadableProduct()
587
  {
588
+ return (bool)Mage::getStoreConfigFlag(
589
  Mage_Downloadable_Model_Observer::XML_PATH_DISABLE_GUEST_CHECKOUT, $this->getStoreId()
590
  );
591
  }
app/code/core/Mage/XmlConnect/Model/ConfigData.php CHANGED
@@ -292,17 +292,14 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
292
  public function pagesUpgradeOldConfig($records)
293
  {
294
  $newConfig = array();
295
-
296
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
297
  $applicationModel = Mage::getModel('xmlconnect/application');
298
-
299
  $deprecatedFlag = Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG;
300
 
301
- foreach ($records as $application_id) {
302
-
303
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
304
- $applicationModel->load($application_id);
305
- $configData = $this->loadApplicationData($application_id);
306
 
307
  foreach ($configData[$deprecatedFlag] as $deprecatedConfigKey => $deprecatedConfigValue) {
308
  $pagesConfigPath = 'native/pages/';
@@ -311,7 +308,7 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
311
  list($id, $type) = explode('/', $pagePath);
312
  $newConfig[$id][$type] = $deprecatedConfigValue;
313
 
314
- $this->deleteConfig($application_id, $deprecatedFlag, $deprecatedConfigKey);
315
  }
316
  }
317
 
@@ -322,7 +319,7 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
322
  $path = 'staticpage/' . $id;
323
 
324
  $this->getResource()->saveConfig(
325
- $application_id, Mage_XmlConnect_Model_Application::STATIC_PAGE_CATEGORY, $path, serialize($page)
326
  );
327
  }
328
  }
292
  public function pagesUpgradeOldConfig($records)
293
  {
294
  $newConfig = array();
 
295
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
296
  $applicationModel = Mage::getModel('xmlconnect/application');
 
297
  $deprecatedFlag = Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG;
298
 
299
+ foreach ($records as $applicationId) {
 
300
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
301
+ $applicationModel->load($applicationId);
302
+ $configData = $this->loadApplicationData($applicationId);
303
 
304
  foreach ($configData[$deprecatedFlag] as $deprecatedConfigKey => $deprecatedConfigValue) {
305
  $pagesConfigPath = 'native/pages/';
308
  list($id, $type) = explode('/', $pagePath);
309
  $newConfig[$id][$type] = $deprecatedConfigValue;
310
 
311
+ $this->deleteConfig($applicationId, $deprecatedFlag, $deprecatedConfigKey);
312
  }
313
  }
314
 
319
  $path = 'staticpage/' . $id;
320
 
321
  $this->getResource()->saveConfig(
322
+ $applicationId, Mage_XmlConnect_Model_Application::STATIC_PAGE_CATEGORY, $path, serialize($page)
323
  );
324
  }
325
  }
app/code/core/Mage/XmlConnect/Model/Configuration.php CHANGED
@@ -133,7 +133,7 @@ class Mage_XmlConnect_Model_Configuration extends Mage_Core_Model_Abstract
133
  protected function _getConfigDataCollection()
134
  {
135
  if (null === $this->_configDataCollection) {
136
- $this->_configDataCollection = Mage::getModel('core/resource_config_data_collection');
137
  } else {
138
  $this->_configDataCollection->clear()->getSelect()->reset();
139
  }
133
  protected function _getConfigDataCollection()
134
  {
135
  if (null === $this->_configDataCollection) {
136
+ $this->_configDataCollection = Mage::getModel('core/mysql4_config_data_collection');
137
  } else {
138
  $this->_configDataCollection->clear()->getSelect()->reset();
139
  }
app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Session.php DELETED
@@ -1,137 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_XmlConnect
23
- * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
-
27
- /**
28
- * Override the original Checkout session model
29
- * The represented methods are overridden to fix Core bug:
30
- * Order review - no data verifying in "Billing address" and "Shiping address" fields
31
- *
32
- * @author Magento Core Team <core@magentocommerce.com>
33
- */
34
- class Mage_XmlConnect_Model_Corefix_Checkout_Session extends Mage_Checkout_Model_Session
35
- {
36
- /**
37
- * Get checkout quote instance by current session
38
- * Core fix
39
- *
40
- * @return Mage_XmlConnect_Model_Corefix_Sales_Quote
41
- */
42
- public function getQuote()
43
- {
44
- if ($this->_quote === null) {
45
- $quote = Mage::getModel('xmlconnect/corefix_sales_quote')
46
- ->setStoreId(Mage::app()->getStore()->getId());
47
-
48
- /** @var $quote Mage_XmlConnect_Model_Corefix_Sales_Quote */
49
- if ($this->getQuoteId()) {
50
- $quote->loadActive($this->getQuoteId());
51
- if ($quote->getId()) {
52
- /**
53
- * If current currency code of quote is not equal current currency code of store,
54
- * need recalculate totals of quote. It is possible if customer use currency switcher or
55
- * store switcher.
56
- */
57
- if ($quote->getQuoteCurrencyCode() != Mage::app()->getStore()->getCurrentCurrencyCode()) {
58
- $quote->setStore(Mage::app()->getStore());
59
- $quote->collectTotals()->save();
60
- /**
61
- * We mast to create new quote object, because collectTotals()
62
- * can to create links with other objects.
63
- */
64
- $quote = Mage::getModel('xmlconnect/corefix_sales_quote')
65
- ->setStoreId(Mage::app()->getStore()->getId());
66
- $quote->load($this->getQuoteId());
67
- }
68
- } else {
69
- $this->setQuoteId(null);
70
- }
71
- }
72
-
73
- $customerSession = Mage::getSingleton('customer/session');
74
-
75
- if (!$this->getQuoteId()) {
76
- if ($customerSession->isLoggedIn()) {
77
- $quote->loadByCustomer($customerSession->getCustomer());
78
- $this->setQuoteId($quote->getId());
79
- } else {
80
- $quote->setIsCheckoutCart(true);
81
- Mage::dispatchEvent('checkout_quote_init', array('quote' => $quote));
82
- }
83
- }
84
-
85
- if ($this->getQuoteId()) {
86
- if ($customerSession->isLoggedIn()) {
87
- $quote->setCustomer($customerSession->getCustomer());
88
- }
89
- }
90
-
91
- $quote->setStore(Mage::app()->getStore());
92
- $this->_quote = $quote;
93
- }
94
-
95
- if ($remoteAddr = Mage::helper('core/http')->getRemoteAddr()) {
96
- $this->_quote->setRemoteIp($remoteAddr);
97
- $xForwardIp = Mage::app()->getRequest()->getServer('HTTP_X_FORWARDED_FOR');
98
- $this->_quote->setXForwardedFor($xForwardIp);
99
- }
100
- return $this->_quote;
101
- }
102
-
103
- /**
104
- * Load data for customer quote and merge with current quote
105
- * Core fix
106
- *
107
- * @return Mage_XmlConnect_Model_Corefix_Checkout_Session
108
- */
109
- public function loadCustomerQuote()
110
- {
111
- if (!Mage::getSingleton('customer/session')->getCustomerId()) {
112
- return $this;
113
- }
114
- $customerQuote = Mage::getModel('xmlconnect/corefix_sales_quote')
115
- ->setStoreId(Mage::app()->getStore()->getId())
116
- ->loadByCustomer(Mage::getSingleton('customer/session')->getCustomerId());
117
-
118
- if ($customerQuote->getId() && $this->getQuoteId() != $customerQuote->getId()) {
119
- if ($this->getQuoteId()) {
120
- $customerQuote->merge($this->getQuote())
121
- ->collectTotals()
122
- ->save();
123
- }
124
-
125
- $this->setQuoteId($customerQuote->getId());
126
-
127
- if ($this->_quote) {
128
- $this->_quote->delete();
129
- }
130
- $this->_quote = $customerQuote;
131
- } else {
132
- $this->getQuote()->setCustomer(Mage::getSingleton('customer/session')->getCustomer())
133
- ->save();
134
- }
135
- return $this;
136
- }
137
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Type/Onepage.php DELETED
@@ -1,465 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_XmlConnect
23
- * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
-
27
- /**
28
- * Override the original One page checkout processing model
29
- * The represented methods are overridden to fix Core bug:
30
- * Order review - no data verifying in "Billing address" and "Shiping address" fields
31
- *
32
- * @author Magento Core Team <core@magentocommerce.com>
33
- */
34
- class Mage_XmlConnect_Model_Corefix_Checkout_Type_Onepage extends Mage_Checkout_Model_Type_Onepage
35
- {
36
- /**
37
- * Class constructor
38
- * Set customer already exists message
39
- * Core fix
40
- */
41
- public function __construct()
42
- {
43
- $this->_helper = Mage::helper('checkout');
44
- $this->_customerEmailExistsMessage = $this->_helper->__('There is already a customer registered using this email address. Please login using this email address or enter a different email address to register your account.');
45
- $this->_checkoutSession = Mage::getSingleton('xmlconnect/corefix_checkout_session');
46
- $this->_customerSession = Mage::getSingleton('customer/session');
47
- }
48
-
49
- /**
50
- * Save billing address information to quote
51
- * This method is called by One Page Checkout JS (AJAX) while saving the billing information.
52
- * Core fix
53
- *
54
- * @param array $data
55
- * @param int $customerAddressId
56
- * @return array
57
- */
58
- public function saveBilling($data, $customerAddressId)
59
- {
60
- if (empty($data)) {
61
- return array('error' => -1, 'message' => $this->_helper->__('Invalid data.'));
62
- }
63
-
64
- $address = $this->getQuote()->getBillingAddress();
65
- /** @var $addressForm Mage_Customer_Model_Form */
66
- $addressForm = Mage::getModel('customer/form');
67
- $addressForm->setFormCode('customer_address_edit')
68
- ->setEntityType('customer_address')
69
- ->setIsAjaxRequest(Mage::app()->getRequest()->isAjax());
70
-
71
- if (!empty($customerAddressId)) {
72
- $customerAddress = Mage::getModel('customer/address')->load($customerAddressId);
73
- if ($customerAddress->getId()) {
74
- if ($customerAddress->getCustomerId() != $this->getQuote()->getCustomerId()) {
75
- return array(
76
- 'error' => 1,
77
- 'message' => $this->_helper->__('Customer Address is not valid.')
78
- );
79
- }
80
-
81
- $address->importCustomerAddress($customerAddress)->setSaveInAddressBook(0);
82
- $addressForm->setEntity($address);
83
- $addressErrors = $addressForm->validateData($address->getData());
84
- if ($addressErrors !== true) {
85
- return array('error' => 1, 'message' => $addressErrors);
86
- }
87
- }
88
- } else {
89
- $addressForm->setEntity($address);
90
- // emulate request object
91
- $addressData = $addressForm->extractData($addressForm->prepareRequest($data));
92
- $addressErrors = $addressForm->validateData($addressData);
93
- if ($addressErrors !== true) {
94
- return array('error' => 1, 'message' => $addressErrors);
95
- }
96
- $addressForm->compactData($addressData);
97
-
98
- // Additional form data, not fetched by extractData (as it fetches only attributes)
99
- $address->setSaveInAddressBook(empty($data['save_in_address_book']) ? 0 : 1);
100
- }
101
-
102
- // validate billing address
103
- if (($validateRes = $address->validate()) !== true) {
104
- return array('error' => 1, 'message' => $validateRes);
105
- }
106
-
107
- $address->implodeStreetAddress();
108
-
109
- if (true !== ($result = $this->_validateCustomerData($data))) {
110
- return $result;
111
- }
112
-
113
- if (!$this->getQuote()->getCustomerId() && self::METHOD_REGISTER == $this->getQuote()->getCheckoutMethod()) {
114
- if ($this->_customerEmailExists($address->getEmail(), Mage::app()->getWebsite()->getId())) {
115
- return array('error' => 1, 'message' => $this->_customerEmailExistsMessage);
116
- }
117
- }
118
-
119
- if (!$this->getQuote()->isVirtual()) {
120
- /**
121
- * Billing address using otions
122
- */
123
- $usingCase = isset($data['use_for_shipping']) ? (int)$data['use_for_shipping'] : 0;
124
-
125
- switch($usingCase) {
126
- case 0:
127
- $shipping = $this->getQuote()->getShippingAddress();
128
- $shipping->setSameAsBilling(0);
129
- break;
130
- case 1:
131
- $billing = clone $address;
132
- $billing->unsAddressId()->unsAddressType();
133
- $shipping = $this->getQuote()->getShippingAddress();
134
- $shippingMethod = $shipping->getShippingMethod();
135
- $shipping->addData($billing->getData())
136
- ->setSameAsBilling(1)
137
- ->setSaveInAddressBook(0)
138
- ->setShippingMethod($shippingMethod)
139
- ->setCollectShippingRates(true);
140
- $this->getCheckout()->setStepData('shipping', 'complete', true);
141
- break;
142
- }
143
- }
144
-
145
- $this->getQuote()->collectTotals();
146
- $this->getQuote()->save();
147
-
148
- $this->getCheckout()
149
- ->setStepData('billing', 'allow', true)
150
- ->setStepData('billing', 'complete', true)
151
- ->setStepData('shipping', 'allow', true);
152
-
153
- return array();
154
- }
155
-
156
- /**
157
- * Validate customer data and set some its data for further usage in quote
158
- * Will return either true or array with error messages
159
- * Core fix
160
- *
161
- * @param array $data
162
- * @return bool | array
163
- */
164
- protected function _validateCustomerData(array $data)
165
- {
166
- /** @var $customerForm Mage_Customer_Model_Form */
167
- $customerForm = Mage::getModel('customer/form');
168
- $customerForm->setFormCode('checkout_register')
169
- ->setIsAjaxRequest(Mage::app()->getRequest()->isAjax());
170
-
171
- $quote = $this->getQuote();
172
- if ($quote->getCustomerId()) {
173
- $customer = $quote->getCustomer();
174
- $customerForm->setEntity($customer);
175
- $customerData = $quote->getCustomer()->getData();
176
- } else {
177
- /** @var $customer Mage_Customer_Model_Customer */
178
- $customer = Mage::getModel('customer/customer');
179
- $customerForm->setEntity($customer);
180
- $customerRequest = $customerForm->prepareRequest($data);
181
- $customerData = $customerForm->extractData($customerRequest);
182
- }
183
-
184
- $customerErrors = $customerForm->validateData($customerData);
185
- if ($customerErrors !== true) {
186
- return array(
187
- 'error' => -1,
188
- 'message' => implode(', ', $customerErrors)
189
- );
190
- }
191
-
192
- if ($quote->getCustomerId()) {
193
- return true;
194
- }
195
-
196
- $customerForm->compactData($customerData);
197
-
198
- if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
199
- // set customer password
200
- $customer->setPassword($customerRequest->getParam('customer_password'));
201
- $customer->setConfirmation($customerRequest->getParam('confirm_password'));
202
- } else {
203
- // emulate customer password for quest
204
- $password = $customer->generatePassword();
205
- $customer->setPassword($password);
206
- $customer->setConfirmation($password);
207
- }
208
-
209
- $result = $customer->validate();
210
- if (true !== $result && is_array($result)) {
211
- return array(
212
- 'error' => -1,
213
- 'message' => implode(', ', $result)
214
- );
215
- }
216
-
217
- if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
218
- // save customer encrypted password in quote
219
- $quote->setPasswordHash($customer->encryptPassword($customer->getPassword()));
220
- }
221
-
222
- // copy customer/guest email to address
223
- $quote->getBillingAddress()->setEmail($customer->getEmail());
224
-
225
- // copy customer data to quote
226
- Mage::helper('core')->copyFieldset('customer_account', 'to_quote', $customer, $quote);
227
-
228
- return true;
229
- }
230
-
231
- /**
232
- * Save checkout shipping address
233
- * Core fix
234
- *
235
- * @param array $data
236
- * @param int $customerAddressId
237
- * @return array
238
- */
239
- public function saveShipping($data, $customerAddressId)
240
- {
241
- if (empty($data)) {
242
- return array('error' => -1, 'message' => $this->_helper->__('Invalid data.'));
243
- }
244
- $address = $this->getQuote()->getShippingAddress();
245
-
246
- /** @var $addressForm Mage_Customer_Model_Form */
247
- $addressForm = Mage::getModel('customer/form');
248
- $addressForm->setFormCode('customer_address_edit')
249
- ->setEntityType('customer_address')
250
- ->setIsAjaxRequest(Mage::app()->getRequest()->isAjax());
251
-
252
- if (!empty($customerAddressId)) {
253
- /** @var $customerAddress Mage_Customer_Model_Address */
254
- $customerAddress = Mage::getModel('customer/address')->load($customerAddressId);
255
- if ($customerAddress->getId()) {
256
- if ($customerAddress->getCustomerId() != $this->getQuote()->getCustomerId()) {
257
- return array(
258
- 'error' => 1,
259
- 'message' => $this->_helper->__('Customer Address is not valid.')
260
- );
261
- }
262
-
263
- $address->importCustomerAddress($customerAddress)->setSaveInAddressBook(0);
264
- $addressForm->setEntity($address);
265
- $addressErrors = $addressForm->validateData($address->getData());
266
- if ($addressErrors !== true) {
267
- return array('error' => 1, 'message' => $addressErrors);
268
- }
269
- }
270
- } else {
271
- $addressForm->setEntity($address);
272
- // emulate request object
273
- $addressData = $addressForm->extractData($addressForm->prepareRequest($data));
274
- $addressErrors = $addressForm->validateData($addressData);
275
- if ($addressErrors !== true) {
276
- return array('error' => 1, 'message' => $addressErrors);
277
- }
278
- $addressForm->compactData($addressData);
279
-
280
- // Additional form data, not fetched by extractData (as it fetches only attributes)
281
- $address->setSaveInAddressBook(empty($data['save_in_address_book']) ? 0 : 1);
282
- $address->setSameAsBilling(empty($data['same_as_billing']) ? 0 : 1);
283
- }
284
-
285
- $address->implodeStreetAddress();
286
- $address->setCollectShippingRates(true);
287
-
288
- if (($validateRes = $address->validate()) !== true) {
289
- return array('error' => 1, 'message' => $validateRes);
290
- }
291
-
292
- $this->getQuote()->collectTotals()->save();
293
-
294
- $this->getCheckout()
295
- ->setStepData('shipping', 'complete', true)
296
- ->setStepData('shipping_method', 'allow', true);
297
-
298
- return array();
299
- }
300
-
301
- /**
302
- * Specify quote payment method
303
- * Core fix
304
- *
305
- * @param array $data
306
- * @return array
307
- */
308
- public function savePayment($data)
309
- {
310
- if (empty($data)) {
311
- return array('error' => -1, 'message' => $this->_helper->__('Invalid data.'));
312
- }
313
- $quote = $this->getQuote();
314
- if ($quote->isVirtual()) {
315
- $quote->getBillingAddress()->setPaymentMethod(isset($data['method']) ? $data['method'] : null);
316
- } else {
317
- $quote->getShippingAddress()->setPaymentMethod(isset($data['method']) ? $data['method'] : null);
318
- }
319
-
320
- // shipping totals may be affected by payment method
321
- if (!$quote->isVirtual() && $quote->getShippingAddress()) {
322
- $quote->getShippingAddress()->setCollectShippingRates(true);
323
- }
324
-
325
- $payment = $quote->getPayment();
326
- $payment->importData($data);
327
-
328
- $quote->save();
329
-
330
- $this->getCheckout()
331
- ->setStepData('payment', 'complete', true)
332
- ->setStepData('review', 'allow', true);
333
-
334
- return array();
335
- }
336
-
337
- /**
338
- * Prepare quote for customer order submit
339
- * Core fix
340
- *
341
- * @return void
342
- */
343
- protected function _prepareCustomerQuote()
344
- {
345
- $quote = $this->getQuote();
346
- $billing = $quote->getBillingAddress();
347
- $shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
348
-
349
- $customer = $this->getCustomerSession()->getCustomer();
350
- if (!$billing->getCustomerId() || $billing->getSaveInAddressBook()) {
351
- $customerBilling = $billing->exportCustomerAddress();
352
- $customer->addAddress($customerBilling);
353
- $billing->setCustomerAddress($customerBilling);
354
- }
355
- if ($shipping && !$shipping->getSameAsBilling()
356
- && (!$shipping->getCustomerId() || $shipping->getSaveInAddressBook())
357
- ) {
358
- $customerShipping = $shipping->exportCustomerAddress();
359
- $customer->addAddress($customerShipping);
360
- $shipping->setCustomerAddress($customerShipping);
361
- }
362
-
363
- if (isset($customerBilling) && !$customer->getDefaultBilling()) {
364
- $customerBilling->setIsDefaultBilling(true);
365
- }
366
- if ($shipping && isset($customerShipping) && !$customer->getDefaultShipping()) {
367
- $customerShipping->setIsDefaultShipping(true);
368
- } elseif (isset($customerBilling) && !$customer->getDefaultShipping()) {
369
- $customerBilling->setIsDefaultShipping(true);
370
- }
371
- $quote->setCustomer($customer);
372
- }
373
-
374
- /**
375
- * Create order based on checkout type. Create customer if necessary.
376
- *
377
- * @return Mage_XmlConnect_Model_Corefix_Checkout_Type_Onepage
378
- */
379
- public function saveOrder()
380
- {
381
- $this->validate();
382
- $isNewCustomer = false;
383
- switch ($this->getCheckoutMethod()) {
384
- case self::METHOD_GUEST:
385
- $this->_prepareGuestQuote();
386
- break;
387
- case self::METHOD_REGISTER:
388
- $this->_prepareNewCustomerQuote();
389
- $isNewCustomer = true;
390
- break;
391
- default:
392
- $this->_prepareCustomerQuote();
393
- break;
394
- }
395
-
396
- /** @var $service Mage_Sales_Model_Service_Quote */
397
- $service = Mage::getModel('sales/service_quote', $this->getQuote());
398
- $service->submitAll();
399
-
400
- if ($isNewCustomer) {
401
- try {
402
- $this->_involveNewCustomer();
403
- } catch (Exception $e) {
404
- Mage::logException($e);
405
- }
406
- }
407
-
408
- $this->_checkoutSession->setLastQuoteId($this->getQuote()->getId())
409
- ->setLastSuccessQuoteId($this->getQuote()->getId())
410
- ->clearHelperData();
411
-
412
- $order = $service->getOrder();
413
- if ($order) {
414
- Mage::dispatchEvent(
415
- 'checkout_type_onepage_save_order_after',
416
- array('order' => $order, 'quote' => $this->getQuote())
417
- );
418
-
419
- /**
420
- * a flag to set that there will be redirect to third party after confirmation
421
- * eg: paypal standard ipn
422
- */
423
- $redirectUrl = $this->getQuote()->getPayment()->getOrderPlaceRedirectUrl();
424
- /**
425
- * we only want to send to customer about new order when there is no redirect to third party
426
- */
427
- if (!$redirectUrl) {
428
- try {
429
- $order->sendNewOrderEmail();
430
- } catch (Exception $e) {
431
- Mage::logException($e);
432
- }
433
- }
434
-
435
- // add order information to the session
436
- $this->_checkoutSession->setLastOrderId($order->getId())
437
- ->setRedirectUrl($redirectUrl)
438
- ->setLastRealOrderId($order->getIncrementId());
439
-
440
- // as well a billing agreement can be created
441
- $agreement = $order->getPayment()->getBillingAgreement();
442
- if ($agreement) {
443
- $this->_checkoutSession->setLastBillingAgreementId($agreement->getId());
444
- }
445
- }
446
-
447
- // add recurring profiles information to the session
448
- $profiles = $service->getRecurringPaymentProfiles();
449
- if ($profiles) {
450
- $ids = array();
451
- foreach ($profiles as $profile) {
452
- $ids[] = $profile->getId();
453
- }
454
- $this->_checkoutSession->setLastRecurringProfileIds($ids);
455
- // TODO: send recurring profile emails
456
- }
457
-
458
- Mage::dispatchEvent(
459
- 'checkout_submit_all_after',
460
- array('order' => $order, 'quote' => $this->getQuote(), 'recurring_profiles' => $profiles)
461
- );
462
-
463
- return $this;
464
- }
465
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/core/Mage/XmlConnect/Model/Corefix/Sales/Quote.php DELETED
@@ -1,427 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_XmlConnect
23
- * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- */
26
-
27
- /**
28
- * Override the original Quote model
29
- * The represented methods are overridden to fix Core bug:
30
- * Order review - no data verifying in "Billing address" and "Shiping address" fields
31
- *
32
- * Supported events:
33
- * sales_quote_load_after
34
- * sales_quote_save_before
35
- * sales_quote_save_after
36
- * sales_quote_delete_before
37
- * sales_quote_delete_after
38
- *
39
- * @author Magento Core Team <core@magentocommerce.com>
40
- */
41
- class Mage_XmlConnect_Model_Corefix_Sales_Quote extends Mage_Sales_Model_Quote
42
- {
43
- /**
44
- * Loading quote by identifier
45
- * Core fix
46
- *
47
- * @param int $quoteId
48
- * @return Mage_XmlConnect_Model_Corefix_Sales_Quote
49
- */
50
- public function loadByIdWithoutStore($quoteId)
51
- {
52
- $this->_getResource()->loadByIdWithoutStore($this, $quoteId);
53
- $this->_afterLoad();
54
- return $this;
55
- }
56
-
57
- /**
58
- * Assign customer model object data to quote
59
- * Core fix
60
- *
61
- * @param Mage_Customer_Model_Customer $customer
62
- * @return Mage_XmlConnect_Model_Corefix_Sales_Quote
63
- */
64
- public function assignCustomer(Mage_Customer_Model_Customer $customer)
65
- {
66
- return $this->assignCustomerWithAddressChange($customer);
67
- }
68
-
69
- /**
70
- * Assign customer model to quote with billing and shipping address change
71
- * Core fix
72
- *
73
- * @param Mage_Customer_Model_Customer $customer
74
- * @param Mage_Sales_Model_Quote_Address $billingAddress
75
- * @param Mage_Sales_Model_Quote_Address $shippingAddress
76
- * @return Mage_XmlConnect_Model_Corefix_Sales_Quote
77
- */
78
- public function assignCustomerWithAddressChange(
79
- Mage_Customer_Model_Customer $customer,
80
- Mage_Sales_Model_Quote_Address $billingAddress = null,
81
- Mage_Sales_Model_Quote_Address $shippingAddress = null
82
- )
83
- {
84
- if ($customer->getId()) {
85
- $this->setCustomer($customer);
86
-
87
- if (!is_null($billingAddress)) {
88
- $this->setBillingAddress($billingAddress);
89
- } else {
90
- $defaultBillingAddress = $customer->getDefaultBillingAddress();
91
- if ($defaultBillingAddress && $defaultBillingAddress->getId()) {
92
- $billingAddress = Mage::getModel('sales/quote_address')
93
- ->importCustomerAddress($defaultBillingAddress);
94
- $this->setBillingAddress($billingAddress);
95
- }
96
- }
97
-
98
- if (is_null($shippingAddress)) {
99
- $defaultShippingAddress = $customer->getDefaultShippingAddress();
100
- if ($defaultShippingAddress && $defaultShippingAddress->getId()) {
101
- $shippingAddress = Mage::getModel('sales/quote_address')
102
- ->importCustomerAddress($defaultShippingAddress);
103
- } else {
104
- $shippingAddress = Mage::getModel('sales/quote_address');
105
- }
106
- }
107
- $this->setShippingAddress($shippingAddress);
108
- }
109
-
110
- return $this;
111
- }
112
-
113
- /**
114
- * Retrieve customer group id
115
- * Core fix
116
- *
117
- * @return int
118
- */
119
- public function getCustomerGroupId()
120
- {
121
- if ($this->getCustomerId()) {
122
- return ($this->getData('customer_group_id'))
123
- ? $this->getData('customer_group_id')
124
- : $this->getCustomer()->getGroupId();
125
- } else {
126
- return Mage_Customer_Model_Group::NOT_LOGGED_IN_ID;
127
- }
128
- }
129
-
130
- /**
131
- * Checking product exist in Quote
132
- * Core fix
133
- *
134
- * @param int $productId
135
- * @return bool
136
- */
137
- public function hasProductId($productId)
138
- {
139
- foreach ($this->getAllItems() as $item) {
140
- if ($item->getProductId() == $productId) {
141
- return true;
142
- }
143
- }
144
- return false;
145
- }
146
-
147
- /**
148
- * Remove quote item by item identifier
149
- * Core fix
150
- *
151
- * @param int $itemId
152
- * @return Mage_XmlConnect_Model_Corefix_Sales_Quote
153
- */
154
- public function removeItem($itemId)
155
- {
156
- $item = $this->getItemById($itemId);
157
- if ($item) {
158
- $item->setQuote($this);
159
- /**
160
- * If we remove item from quote - we can't use multishipping mode
161
- */
162
- $this->setIsMultiShipping(false);
163
- $item->isDeleted(true);
164
- if ($item->getHasChildren()) {
165
- foreach ($item->getChildren() as $child) {
166
- $child->isDeleted(true);
167
- }
168
- }
169
- Mage::dispatchEvent('sales_quote_remove_item', array('quote_item' => $item));
170
- }
171
- return $this;
172
- }
173
-
174
- /**
175
- * Advanced func to add product to quote - processing mode can be specified there.
176
- * Returns error message if product type instance can't prepare product.
177
- * Core fix
178
- *
179
- * @param Mage_Catalog_Model_Product $product
180
- * @param null | float | Varien_Object $request
181
- * @param null | string $processMode
182
- * @throws Mage_Core_Exception
183
- * @return Mage_Sales_Model_Quote_Item | string
184
- */
185
- public function addProductAdvanced(Mage_Catalog_Model_Product $product, $request = null, $processMode = null)
186
- {
187
- if ($request === null) {
188
- $request = 1;
189
- }
190
- if (is_numeric($request)) {
191
- $request = new Varien_Object(array('qty' => $request));
192
- }
193
- if (!($request instanceof Varien_Object)) {
194
- Mage::throwException(Mage::helper('sales')->__('Invalid request for adding product to quote.'));
195
- }
196
-
197
- $cartCandidates = $product->getTypeInstance(true)
198
- ->prepareForCartAdvanced($request, $product, $processMode);
199
-
200
- /**
201
- * Error message
202
- */
203
- if (is_string($cartCandidates)) {
204
- return $cartCandidates;
205
- }
206
-
207
- /**
208
- * If prepare process return one object
209
- */
210
- if (!is_array($cartCandidates)) {
211
- $cartCandidates = array($cartCandidates);
212
- }
213
-
214
- $parentItem = null;
215
- $errors = array();
216
- $items = array();
217
- foreach ($cartCandidates as $candidate) {
218
- $item = $this->_addCatalogProduct($candidate, $candidate->getCartQty());
219
- $items[] = $item;
220
-
221
- /**
222
- * As parent item we should always use the item of first added product
223
- */
224
- if (!$parentItem) {
225
- $parentItem = $item;
226
- }
227
- if ($parentItem && $candidate->getParentProductId() && !$item->getId()) {
228
- $item->setParentItem($parentItem);
229
- }
230
-
231
- /**
232
- * We specify qty after we know about parent (for stock)
233
- */
234
- $item->addQty($candidate->getCartQty());
235
-
236
- // collect errors instead of throwing first one
237
- if ($item->getHasError()) {
238
- $errors[] = $item->getMessage();
239
- }
240
- }
241
- if (!empty($errors)) {
242
- Mage::throwException(implode("\n", $errors));
243
- }
244
-
245
- Mage::dispatchEvent('sales_quote_product_add_after', array('items' => $items));
246
-
247
- return $item;
248
- }
249
-
250
-
251
- /**
252
- * Add product to quote
253
- * return error message if product type instance can't prepare product
254
- * Core fix
255
- *
256
- * @param mixed $product
257
- * @param null | float | Varien_Object $request
258
- * @return Mage_Sales_Model_Quote_Item | string
259
- */
260
- public function addProduct(Mage_Catalog_Model_Product $product, $request = null)
261
- {
262
- return $this->addProductAdvanced($product, $request, Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_FULL);
263
- }
264
-
265
- /**
266
- * Adding catalog product object data to quote
267
- * Core fix
268
- *
269
- * @param Mage_Catalog_Model_Product $product
270
- * @return Mage_Sales_Model_Quote_Item
271
- */
272
- protected function _addCatalogProduct(Mage_Catalog_Model_Product $product, $qty = 1)
273
- {
274
- $newItem = false;
275
- $item = $this->getItemByProduct($product);
276
- if (!$item) {
277
- $item = Mage::getModel('sales/quote_item');
278
- $item->setQuote($this);
279
- if (Mage::app()->getStore()->isAdmin()) {
280
- $item->setStoreId($this->getStore()->getId());
281
- } else {
282
- $item->setStoreId(Mage::app()->getStore()->getId());
283
- }
284
- $newItem = true;
285
- }
286
-
287
- /**
288
- * We can't modify existing child items
289
- */
290
- if ($item->getId() && $product->getParentProductId()) {
291
- return $item;
292
- }
293
-
294
- $item->setOptions($product->getCustomOptions())
295
- ->setProduct($product);
296
-
297
- // Add only item that is not in quote already (there can be other new or already saved item
298
- if ($newItem) {
299
- $this->addItem($item);
300
- }
301
-
302
- return $item;
303
- }
304
-
305
- /**
306
- * Updates quote item with new configuration
307
- *
308
- * $params sets how current item configuration must be taken into account and additional options.
309
- * It's passed to Mage_Catalog_Helper_Product->addParamsToBuyRequest() to compose resulting buyRequest.
310
- *
311
- * Basically it can hold
312
- * - 'current_config', Varien_Object or array - current buyRequest that configures product in this item,
313
- * used to restore currently attached files
314
- * - 'files_prefix': string[a-z0-9_] - prefix that was added at frontend to names of file options (file inputs), so they won't
315
- * intersect with other submitted options
316
- *
317
- * For more options see Mage_Catalog_Helper_Product->addParamsToBuyRequest()
318
- *
319
- * Core fix
320
- *
321
- * @param int $itemId
322
- * @param Varien_Object $buyRequest
323
- * @param null | array | Varien_Object $params
324
- * @throws Mage_Core_Exception
325
- * @return Mage_Sales_Model_Quote_Item
326
- *
327
- * @see Mage_Catalog_Helper_Product::addParamsToBuyRequest()
328
- */
329
- public function updateItem($itemId, $buyRequest, $params = null)
330
- {
331
- $item = $this->getItemById($itemId);
332
- if (!$item) {
333
- Mage::throwException(Mage::helper('sales')->__('Wrong quote item id to update configuration.'));
334
- }
335
- $productId = $item->getProduct()->getId();
336
-
337
- //We need to create new clear product instance with same $productId
338
- //to set new option values from $buyRequest
339
- $product = Mage::getModel('catalog/product')
340
- ->setStoreId($this->getStore()->getId())
341
- ->load($productId);
342
-
343
- if (!$params) {
344
- $params = new Varien_Object();
345
- } elseif (is_array($params)) {
346
- $params = new Varien_Object($params);
347
- }
348
- $params->setCurrentConfig($item->getBuyRequest());
349
- $buyRequest = Mage::helper('catalog/product')->addParamsToBuyRequest($buyRequest, $params);
350
-
351
- $resultItem = $this->addProduct($product, $buyRequest);
352
-
353
- if (is_string($resultItem)) {
354
- Mage::throwException($resultItem);
355
- }
356
-
357
- if ($resultItem->getParentItem()) {
358
- $resultItem = $resultItem->getParentItem();
359
- }
360
-
361
- if ($resultItem->getId() != $itemId) {
362
- /**
363
- * Product configuration didn't stick to original quote item
364
- * It either has same configuration as some other quote item's product or completely new configuration
365
- */
366
- $this->removeItem($itemId);
367
-
368
- $items = $this->getAllItems();
369
- foreach ($items as $item) {
370
- if (($item->getProductId() == $productId) && ($item->getId() != $resultItem->getId())) {
371
- if ($resultItem->compare($item)) {
372
- // Product configuration is same as in other quote item
373
- $resultItem->setQty($resultItem->getQty() + $item->getQty());
374
- $this->removeItem($item->getId());
375
- break;
376
- }
377
- }
378
- }
379
- } else {
380
- $resultItem->setQty($buyRequest->getQty());
381
- }
382
-
383
- return $resultItem;
384
- }
385
-
386
- /**
387
- * Retrieve quote item by product id
388
- * Core fix
389
- *
390
- * @param Mage_Catalog_Model_Product $product
391
- * @return Mage_Sales_Model_Quote_Item | false
392
- */
393
- public function getItemByProduct($product)
394
- {
395
- foreach ($this->getAllItems() as $item) {
396
- if ($item->representProduct($product)) {
397
- return $item;
398
- }
399
- }
400
- return false;
401
- }
402
-
403
- /**
404
- * Check quote for virtual product only
405
- * Core fix
406
- *
407
- * @return bool
408
- */
409
- public function isVirtual()
410
- {
411
- $isVirtual = true;
412
- $countItems = 0;
413
- foreach ($this->getItemsCollection() as $_item) {
414
- /** @var $_item Mage_Sales_Model_Quote_Item */
415
- if ($_item->isDeleted() || $_item->getParentItemId()) {
416
- continue;
417
- }
418
- $countItems ++;
419
- if (!$_item->getProduct()->getIsVirtual()) {
420
- $isVirtual = false;
421
- break;
422
- }
423
- }
424
- return $countItems == 0 ? false : $isVirtual;
425
- }
426
-
427
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/core/Mage/XmlConnect/Model/ImageLimits.php CHANGED
@@ -204,21 +204,16 @@ class Mage_XmlConnect_Model_ImageLimits extends Mage_Core_Model_Abstract
204
 
205
  if ($this->_screenSize && $this->_screenSize != $defaultScreenSize) {
206
  if (!$this->getSizeModel()) {
207
- try {
208
- @$sizeModel = Mage::getModel('xmlconnect/imageLimits_' . $this->_screenSize, $this->_updateType);
 
209
  $this->setSizeModel($sizeModel);
210
- } catch (Mage_Core_Exception $e) {
211
- Mage::throwException($e->getMessage());
212
- Mage::logException($e);
213
- } catch (Exception $e) {
214
- // if image limits update not found, continue calculation based on default screen size
215
  }
216
  }
217
  $this->_calculateImageLimits()->_afterCalculate();
218
  } else {
219
  $this->_setScreenSize($defaultScreenSize)->_setDefaultSizeModel();
220
  }
221
-
222
  return $this;
223
  }
224
 
204
 
205
  if ($this->_screenSize && $this->_screenSize != $defaultScreenSize) {
206
  if (!$this->getSizeModel()) {
207
+ $modelClass = Mage::getConfig()->getModelClassName('xmlconnect/imageLimits_' . $this->_screenSize);
208
+ if (class_exists($modelClass, false) || mageFindClassFile($modelClass)) {
209
+ $sizeModel = Mage::getModel('xmlconnect/imageLimits_' . $this->_screenSize, $this->_updateType);
210
  $this->setSizeModel($sizeModel);
 
 
 
 
 
211
  }
212
  }
213
  $this->_calculateImageLimits()->_afterCalculate();
214
  } else {
215
  $this->_setScreenSize($defaultScreenSize)->_setDefaultSizeModel();
216
  }
 
217
  return $this;
218
  }
219
 
app/code/core/Mage/XmlConnect/Model/Images.php CHANGED
@@ -76,9 +76,10 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
76
  * Remove all image files
77
  *
78
  * @param string $imageFile
 
79
  * @return Mage_XmlConnect_Model_Images
80
  */
81
- protected function _deleteImageFiles($imageFile)
82
  {
83
  $convertedImageFile = $this->_convertFileExtensionToPng($imageFile);
84
  $ioAdapter = new Varien_Io_File();
@@ -89,10 +90,12 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
89
  if (!is_dir($baseImageDir . DS . $item)) {
90
  continue;
91
  }
92
- $ioAdapter->rm($baseImageDir . DS . $item . DS . $convertedImageFile);
93
  }
94
  }
95
- $ioAdapter->rm(self::getBasePath() . DS . $imageFile);
 
 
96
  return $this;
97
  }
98
 
@@ -440,23 +443,28 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
440
  $configModel = $applicationModel->getConfigModel();
441
  $deprecatedFlag = Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG;
442
 
443
- foreach ($records as $rows) {
444
- // Add icon to image table
445
- $iconFile = basename($rows['value']);
446
- $this->saveImage(
447
- $rows['application_id'], $iconFile, Mage_XmlConnect_Model_Device_Abstract::IMAGE_TYPE_ICON, 1
448
- );
449
-
450
- // delete old icon record from config_data table
451
- $configModel->deleteConfig($rows['application_id'], $deprecatedFlag, 'native/navigationBar/icon');
452
-
453
- // delete all icon files from file system
454
- $this->_deleteImageFiles($iconFile);
455
-
456
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
457
- $applicationModel->load($rows['application_id']);
458
  $configPathList = $oldConfigPathByDeviceType[$applicationModel->getType()];
459
- $configData = $configModel->loadApplicationData($rows['application_id']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  $i = 0;
461
  // old config path prefix native/body/
462
  $configPrefix = 'native/body/';
@@ -466,13 +474,13 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
466
  }
467
  $fileName = basename($configData[$deprecatedFlag][$configPrefix . $configPath]);
468
  // add new record to image table
469
- $this->saveImage($rows['application_id'], $fileName, $imageType, ++$i);
470
 
471
  // delete all image files from file system
472
- $this->_deleteImageFiles($fileName);
473
 
474
  // remove old record from config_data table
475
- $configModel->deleteConfig($rows['application_id'], $deprecatedFlag, $configPrefix . $configPath);
476
  }
477
  }
478
  return $this;
76
  * Remove all image files
77
  *
78
  * @param string $imageFile
79
+ * @param bool $deleteOriginal
80
  * @return Mage_XmlConnect_Model_Images
81
  */
82
+ protected function _deleteImageFiles($imageFile, $deleteOriginal = true)
83
  {
84
  $convertedImageFile = $this->_convertFileExtensionToPng($imageFile);
85
  $ioAdapter = new Varien_Io_File();
90
  if (!is_dir($baseImageDir . DS . $item)) {
91
  continue;
92
  }
93
+ $ioAdapter->rm($baseImageDir . DS . $item . DS . basename($convertedImageFile));
94
  }
95
  }
96
+ if ($deleteOriginal) {
97
+ $ioAdapter->rm(self::getBasePath() . DS . basename($imageFile));
98
+ }
99
  return $this;
100
  }
101
 
443
  $configModel = $applicationModel->getConfigModel();
444
  $deprecatedFlag = Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG;
445
 
446
+ foreach ($records as $application_id) {
 
 
 
 
 
 
 
 
 
 
 
 
447
  /** @var $applicationModel Mage_XmlConnect_Model_Application */
448
+ $applicationModel->load($application_id);
449
  $configPathList = $oldConfigPathByDeviceType[$applicationModel->getType()];
450
+ $configData = $configModel->loadApplicationData($application_id);
451
+
452
+ // old icon config path
453
+ $iconConfigPath = 'native/navigationBar/icon';
454
+ if (!empty($configData[$deprecatedFlag][$iconConfigPath])) {
455
+ // Add icon to image table
456
+ $iconFile = basename($configData[$deprecatedFlag][$iconConfigPath]);
457
+ $this->saveImage(
458
+ $application_id, $iconFile, Mage_XmlConnect_Model_Device_Abstract::IMAGE_TYPE_ICON, 1
459
+ );
460
+
461
+ // delete old icon record from config_data table
462
+ $configModel->deleteConfig($application_id, $deprecatedFlag, $iconConfigPath);
463
+
464
+ // delete all icon files from file system
465
+ $this->_deleteImageFiles($iconFile, false);
466
+ }
467
+
468
  $i = 0;
469
  // old config path prefix native/body/
470
  $configPrefix = 'native/body/';
474
  }
475
  $fileName = basename($configData[$deprecatedFlag][$configPrefix . $configPath]);
476
  // add new record to image table
477
+ $this->saveImage($application_id, $fileName, $imageType, ++$i);
478
 
479
  // delete all image files from file system
480
+ $this->_deleteImageFiles($fileName, false);
481
 
482
  // remove old record from config_data table
483
+ $configModel->deleteConfig($application_id, $deprecatedFlag, $configPrefix . $configPath);
484
  }
485
  }
486
  return $this;
app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mecl.php CHANGED
@@ -45,6 +45,27 @@ class Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl extends Mage_Paypal_Model
45
  */
46
  protected $_code = self::MECL_METHOD_CODE;
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  /**
49
  * Check whether payment method can be used
50
  *
45
  */
46
  protected $_code = self::MECL_METHOD_CODE;
47
 
48
+ /**
49
+ * Can use method for a frontend checkout
50
+ *
51
+ * @var bool
52
+ */
53
+ protected $_canUseCheckout = false;
54
+
55
+ /**
56
+ * Can method be used for multishipping checkout type
57
+ *
58
+ * @var bool
59
+ */
60
+ protected $_canUseForMultishipping = false;
61
+
62
+ /**
63
+ * Can method manage recurring profiles
64
+ *
65
+ * @var bool
66
+ */
67
+ protected $_canManageRecurringProfiles = false;
68
+
69
  /**
70
  * Check whether payment method can be used
71
  *
app/code/core/Mage/XmlConnect/Model/Paypal/Mep/Checkout.php CHANGED
@@ -74,11 +74,10 @@ class Mage_XmlConnect_Model_Paypal_Mep_Checkout
74
  *
75
  * @throws Mage_Core_Exception
76
  * @param array $params
77
- * @return void
78
  */
79
  public function __construct($params = array())
80
  {
81
- $this->_checkoutSession = Mage::getSingleton('xmlconnect/corefix_checkout_session');
82
  if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
83
  $this->_quote = $params['quote'];
84
  } else {
@@ -115,7 +114,7 @@ class Mage_XmlConnect_Model_Paypal_Mep_Checkout
115
  $this->_quote->assignCustomer($customer);
116
  }
117
  if (!Mage::getSingleton('customer/session')->isLoggedIn()
118
- && Mage::getSingleton('xmlconnect/corefix_checkout_session')->getQuote()->isAllowedGuestCheckout()
119
  ) {
120
  $this->_prepareGuestQuote();
121
  }
74
  *
75
  * @throws Mage_Core_Exception
76
  * @param array $params
 
77
  */
78
  public function __construct($params = array())
79
  {
80
+ $this->_checkoutSession = Mage::getSingleton('checkout/session');
81
  if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
82
  $this->_quote = $params['quote'];
83
  } else {
114
  $this->_quote->assignCustomer($customer);
115
  }
116
  if (!Mage::getSingleton('customer/session')->isLoggedIn()
117
+ && Mage::getSingleton('checkout/session')->getQuote()->isAllowedGuestCheckout()
118
  ) {
119
  $this->_prepareGuestQuote();
120
  }
app/code/core/Mage/XmlConnect/Model/Simplexml/Form/Element/Validator/Abstract.php CHANGED
@@ -71,22 +71,21 @@ class Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Abstract
71
  */
72
  protected function _setDefaultValidatorTypeMessages()
73
  {
74
- $helper = Mage::helper('xmlconnect');
75
  $this->_validatorTypeMessages = array(
76
- 'min_length' => $helper->__('Text length does not satisfy specified min text range.'),
77
- 'max_length' => $helper->__('Text length does not satisfy specified max text range.'),
78
- 'alphanumeric' => $helper->__('Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.'),
79
- 'email' => $helper->__('Please enter a valid email address. For example johndoe@domain.com.'),
80
- 'required' => $helper->__('This is a required field.'),
81
- 'required_select' => $helper->__('Please select an option.'),
82
- 'numeric' => $helper->__('Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.'),
83
- 'alpha' => $helper->__('Please use letters only (a-z or A-Z) in this field.'),
84
- 'url' => $helper->__('Please enter a valid URL. Protocol is required (http://, https:// or ftp://)'),
85
- 'date' => $helper->__('Please enter a valid date.'),
86
- 'max_file_size' => $helper->__('\'%s\' exceeds the allowed file size: %d (bytes)', $this->getFieldLabel(), $this->getValue()),
87
- 'file_extensions' => $helper->__('\'%s\' is not a valid file extension. Allowed extensions: %s', $this->getFieldLabel(), $this->getValue()),
88
- 'max_image_width' => $helper->__('\'%s\' width exceeds allowed value of %d px', $this->getFieldLabel(), $this->getValue()),
89
- 'max_image_height' => $helper->__('\'%s\' height exceeds allowed value of %d px', $this->getFieldLabel(), $this->getValue())
90
  );
91
  return $this;
92
  }
71
  */
72
  protected function _setDefaultValidatorTypeMessages()
73
  {
 
74
  $this->_validatorTypeMessages = array(
75
+ 'min_length' => Mage::helper('xmlconnect')->__('Text length does not satisfy specified min text range.'),
76
+ 'max_length' => Mage::helper('xmlconnect')->__('Text length does not satisfy specified max text range.'),
77
+ 'alphanumeric' => Mage::helper('xmlconnect')->__('Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.'),
78
+ 'email' => Mage::helper('xmlconnect')->__('Please enter a valid email address. For example johndoe@domain.com.'),
79
+ 'required' => Mage::helper('xmlconnect')->__('This is a required field.'),
80
+ 'required_select' => Mage::helper('xmlconnect')->__('Please select an option.'),
81
+ 'numeric' => Mage::helper('xmlconnect')->__('Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.'),
82
+ 'alpha' => Mage::helper('xmlconnect')->__('Please use letters only (a-z or A-Z) in this field.'),
83
+ 'url' => Mage::helper('xmlconnect')->__('Please enter a valid URL. Protocol is required (http://, https:// or ftp://)'),
84
+ 'date' => Mage::helper('xmlconnect')->__('Please enter a valid date.'),
85
+ 'max_file_size' => Mage::helper('xmlconnect')->__('\'%s\' exceeds the allowed file size: %d (bytes)', $this->getFieldLabel(), $this->getValue()),
86
+ 'file_extensions' => Mage::helper('xmlconnect')->__('\'%s\' is not a valid file extension. Allowed extensions: %s', $this->getFieldLabel(), $this->getValue()),
87
+ 'max_image_width' => Mage::helper('xmlconnect')->__('\'%s\' width exceeds allowed value of %d px', $this->getFieldLabel(), $this->getValue()),
88
+ 'max_image_height' => Mage::helper('xmlconnect')->__('\'%s\' height exceeds allowed value of %d px', $this->getFieldLabel(), $this->getValue())
89
  );
90
  return $this;
91
  }
app/code/core/Mage/XmlConnect/Model/Simplexml/Message/Error.php CHANGED
@@ -85,10 +85,9 @@ class Mage_XmlConnect_Model_Simplexml_Message_Error extends Mage_XmlConnect_Mode
85
  */
86
  protected function _getCustomMessageList()
87
  {
88
- $helper = Mage::helper('xmlconnect');
89
  return array(
90
- self::ERROR_CLIENT_SP_SESSION_EXPIRED => $helper->__('User session is expired'),
91
- self::ERROR_USER_SP_ACCESS_FORBIDDEN => $helper->__('Access forbidden')
92
  );
93
  }
94
 
85
  */
86
  protected function _getCustomMessageList()
87
  {
 
88
  return array(
89
+ self::ERROR_CLIENT_SP_SESSION_EXPIRED => Mage::helper('xmlconnect')->__('User session is expired'),
90
+ self::ERROR_USER_SP_ACCESS_FORBIDDEN => Mage::helper('xmlconnect')->__('Access forbidden')
91
  );
92
  }
93
 
app/code/core/Mage/XmlConnect/controllers/Adminhtml/Connect/ConfigController.php CHANGED
@@ -87,8 +87,8 @@ class Mage_XmlConnect_Adminhtml_Connect_ConfigController extends Mage_XmlConnect
87
  {
88
  $cookieToSetArray = array(
89
  array(
90
- 'cookieName' => Mage_XmlConnect_Model_AdminApplication::DEVICE_TYPE_COOKIE_NAME,
91
- 'paramName' => Mage_XmlConnect_Model_AdminApplication::DEVICE_TYPE_COOKIE_NAME,
92
  ),
93
  array(
94
  'cookieName' => Mage_XmlConnect_Model_Application::APP_SCREEN_SIZE_NAME,
87
  {
88
  $cookieToSetArray = array(
89
  array(
90
+ 'cookieName' => self::DEVICE_TYPE_COOKIE_NAME,
91
+ 'paramName' => self::DEVICE_TYPE_COOKIE_NAME,
92
  ),
93
  array(
94
  'cookieName' => Mage_XmlConnect_Model_Application::APP_SCREEN_SIZE_NAME,
app/code/core/Mage/XmlConnect/controllers/Adminhtml/MobileController.php CHANGED
@@ -1390,8 +1390,8 @@ class Mage_XmlConnect_Adminhtml_MobileController extends Mage_Adminhtml_Controll
1390
  }
1391
  $imageModel->validateAndSetSubmitData($data)->checkType()->checkApplication();
1392
 
1393
- /** @var $uploader Varien_File_Uploader */
1394
- $uploader = Mage::getModel('varien/file_uploader', $imageModel->getImageType());
1395
  $uploader->setAllowRenameFiles(true)->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
1396
  $result = $uploader->save(Mage_XmlConnect_Model_Images::getBasePath(), $newFileName);
1397
  $result['thumbnail'] = Mage::getModel('xmlconnect/images')->getCustomSizeImageUrl(
1390
  }
1391
  $imageModel->validateAndSetSubmitData($data)->checkType()->checkApplication();
1392
 
1393
+ /** @var $uploader Mage_Core_Model_File_Uploader */
1394
+ $uploader = Mage::getModel('core/file_uploader', $imageModel->getImageType());
1395
  $uploader->setAllowRenameFiles(true)->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
1396
  $result = $uploader->save(Mage_XmlConnect_Model_Images::getBasePath(), $newFileName);
1397
  $result['thumbnail'] = Mage::getModel('xmlconnect/images')->getCustomSizeImageUrl(
app/code/core/Mage/XmlConnect/controllers/CartController.php CHANGED
@@ -456,7 +456,7 @@ class Mage_XmlConnect_CartController extends Mage_XmlConnect_Controller_Action
456
  */
457
  protected function _getSession()
458
  {
459
- return Mage::getSingleton('xmlconnect/corefix_checkout_session');
460
  }
461
 
462
  /**
@@ -575,7 +575,7 @@ class Mage_XmlConnect_CartController extends Mage_XmlConnect_Controller_Action
575
  */
576
  public function updateItemOptionsAction()
577
  {
578
- $cart = $this->_getCart();
579
  $id = (int) $this->getRequest()->getParam('id');
580
  $params = $this->getRequest()->getParams();
581
 
456
  */
457
  protected function _getSession()
458
  {
459
+ return Mage::getSingleton('checkout/session');
460
  }
461
 
462
  /**
575
  */
576
  public function updateItemOptionsAction()
577
  {
578
+ $cart = $this->_getCart();
579
  $id = (int) $this->getRequest()->getParam('id');
580
  $params = $this->getRequest()->getParams();
581
 
app/code/core/Mage/XmlConnect/controllers/CatalogController.php CHANGED
@@ -103,7 +103,16 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
103
  return;
104
  }
105
  try {
106
- $product = $this->_initProduct();
 
 
 
 
 
 
 
 
 
107
  $this->loadLayout(false);
108
  $this->getLayout()->getBlock('xmlconnect.catalog.product')->setProduct($product);
109
  $this->renderLayout();
@@ -124,7 +133,16 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
124
  public function productViewAction()
125
  {
126
  try {
127
- $product = $this->_initProduct();
 
 
 
 
 
 
 
 
 
128
  $this->loadLayout(false);
129
  $this->getLayout()->getBlock('xmlconnect.catalog.product')->setProduct($product);
130
  $this->renderLayout();
@@ -454,60 +472,4 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
454
  }
455
  return $this;
456
  }
457
-
458
- /**
459
- * Initialize requested product object
460
- *
461
- * @return Mage_Catalog_Model_Product
462
- */
463
- protected function _initProduct()
464
- {
465
- Mage::dispatchEvent('catalog_controller_product_init_before', array('controller_action' => $this));
466
- $categoryId = (int) $this->getRequest()->getParam('category', false);
467
- $productId = (int) $this->getRequest()->getParam('id');
468
-
469
- if (!$productId) {
470
- return false;
471
- }
472
-
473
- $product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
474
-
475
- if (!Mage::helper('catalog/product')->canShow($product)) {
476
- return false;
477
- }
478
-
479
- if (!in_array(Mage::app()->getStore()->getWebsiteId(), $product->getWebsiteIds())) {
480
- return false;
481
- }
482
-
483
- $category = null;
484
- if ($categoryId) {
485
- $category = Mage::getModel('catalog/category')->load($categoryId);
486
- $product->setCategory($category);
487
- Mage::register('current_category', $category);
488
- } elseif (Mage::getSingleton('catalog/session')->getLastVisitedCategoryId()) {
489
- $categoryId = Mage::getSingleton('catalog/session')->getLastVisitedCategoryId();
490
- if ($product->canBeShowInCategory($categoryId)) {
491
- $category = Mage::getModel('catalog/category')->load($categoryId);
492
- $product->setCategory($category);
493
- Mage::register('current_category', $category);
494
- }
495
- }
496
-
497
-
498
- Mage::register('current_product', $product);
499
- Mage::register('product', $product);
500
-
501
- try {
502
- Mage::dispatchEvent('catalog_controller_product_init', array('product' => $product));
503
- Mage::dispatchEvent(
504
- 'catalog_controller_product_init_after', array('product' => $product, 'controller_action' => $this)
505
- );
506
- } catch (Mage_Core_Exception $e) {
507
- Mage::logException($e);
508
- return false;
509
- }
510
-
511
- return $product;
512
- }
513
  }
103
  return;
104
  }
105
  try {
106
+ // Prepare data
107
+ /** @var $productHelper Mage_Catalog_Helper_Product */
108
+ $productHelper = Mage::helper('catalog/product');
109
+ $productId = (int) $this->getRequest()->getParam('id');
110
+ $params = new Varien_Object();
111
+ $params->setCategoryId(false);
112
+
113
+ // Standard algorithm to prepare and render product view page
114
+ $product = $productHelper->initProduct($productId, $this, $params);
115
+
116
  $this->loadLayout(false);
117
  $this->getLayout()->getBlock('xmlconnect.catalog.product')->setProduct($product);
118
  $this->renderLayout();
133
  public function productViewAction()
134
  {
135
  try {
136
+ // Prepare data
137
+ /** @var $productHelper Mage_Catalog_Helper_Product */
138
+ $productHelper = Mage::helper('catalog/product');
139
+ $productId = (int) $this->getRequest()->getParam('id');
140
+ $params = new Varien_Object();
141
+ $params->setCategoryId(false);
142
+
143
+ // Standard algorithm to prepare and render product view page
144
+ $product = $productHelper->initProduct($productId, $this, $params);
145
+
146
  $this->loadLayout(false);
147
  $this->getLayout()->getBlock('xmlconnect.catalog.product')->setProduct($product);
148
  $this->renderLayout();
472
  }
473
  return $this;
474
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  }
app/code/core/Mage/XmlConnect/controllers/CheckoutController.php CHANGED
@@ -369,7 +369,6 @@ class Mage_XmlConnect_CheckoutController extends Mage_XmlConnect_Controller_Acti
369
  'request' => $this->getRequest(),
370
  'quote' => $this->getOnepage()->getQuote()
371
  ));
372
- $this->getOnepage()->getQuote()->collectTotals()->save();
373
  $this->_message(implode('. ', $result['message']), self::MESSAGE_STATUS_ERROR);
374
  }
375
  }
369
  'request' => $this->getRequest(),
370
  'quote' => $this->getOnepage()->getQuote()
371
  ));
 
372
  $this->_message(implode('. ', $result['message']), self::MESSAGE_STATUS_ERROR);
373
  }
374
  }
app/code/core/Mage/XmlConnect/controllers/Paypal/MepController.php CHANGED
@@ -56,7 +56,7 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
56
  {
57
  parent::preDispatch();
58
  if (!Mage::getSingleton('customer/session')->isLoggedIn()
59
- && !Mage::getSingleton('xmlconnect/corefix_checkout_session')->getQuote()->isAllowedGuestCheckout()
60
  ) {
61
  $this->setFlag('', self::FLAG_NO_DISPATCH, true);
62
  $this->_message(
@@ -179,10 +179,6 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
179
  $data = $this->getRequest()->getPost('shipping_method', '');
180
  $this->_getQuote()->getShippingAddress()->setShippingMethod($data)->setCollectShippingRates(true)->save();
181
 
182
- if (isset($data['region'])) {
183
- $data['region_id'] = $data['region'];
184
- }
185
-
186
  $result = $this->_checkout->saveShippingMethod($data);
187
 
188
  if (!isset($result['error'])) {
@@ -280,6 +276,7 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
280
  $text .= $this->__('Your order # is: %s. ', $orderId);
281
  $text .= $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.');
282
  $message->addChild('text', $text);
 
283
  $message->addChild('order_id', $orderId);
284
  $this->getResponse()->setBody($message->asNiceXml());
285
  return;
@@ -299,6 +296,7 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
299
  */
300
  protected function _initCheckout()
301
  {
 
302
  $quote = $this->_getQuote();
303
  if (!$quote->hasItems() || $quote->getHasError()) {
304
  Mage::throwException($this->__('Unable to initialize MEP Checkout.'));
@@ -319,7 +317,7 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
319
  */
320
  protected function _getCheckoutSession()
321
  {
322
- return Mage::getSingleton('xmlconnect/corefix_checkout_session');
323
  }
324
 
325
  /**
56
  {
57
  parent::preDispatch();
58
  if (!Mage::getSingleton('customer/session')->isLoggedIn()
59
+ && !Mage::getSingleton('checkout/session')->getQuote()->isAllowedGuestCheckout()
60
  ) {
61
  $this->setFlag('', self::FLAG_NO_DISPATCH, true);
62
  $this->_message(
179
  $data = $this->getRequest()->getPost('shipping_method', '');
180
  $this->_getQuote()->getShippingAddress()->setShippingMethod($data)->setCollectShippingRates(true)->save();
181
 
 
 
 
 
182
  $result = $this->_checkout->saveShippingMethod($data);
183
 
184
  if (!isset($result['error'])) {
276
  $text .= $this->__('Your order # is: %s. ', $orderId);
277
  $text .= $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.');
278
  $message->addChild('text', $text);
279
+
280
  $message->addChild('order_id', $orderId);
281
  $this->getResponse()->setBody($message->asNiceXml());
282
  return;
296
  */
297
  protected function _initCheckout()
298
  {
299
+
300
  $quote = $this->_getQuote();
301
  if (!$quote->hasItems() || $quote->getHasError()) {
302
  Mage::throwException($this->__('Unable to initialize MEP Checkout.'));
317
  */
318
  protected function _getCheckoutSession()
319
  {
320
+ return Mage::getSingleton('checkout/session');
321
  }
322
 
323
  /**
app/code/core/Mage/XmlConnect/controllers/WishlistController.php CHANGED
@@ -151,7 +151,8 @@ class Mage_XmlConnect_WishlistController extends Mage_XmlConnect_Controller_Acti
151
  }
152
 
153
  try {
154
- $result = $wishlist->addNewItem($product->getId());
 
155
  if (strlen(trim((string)$request->getParam('description')))) {
156
  $result->setDescription($request->getParam('description'))->save();
157
  }
@@ -172,6 +173,7 @@ class Mage_XmlConnect_WishlistController extends Mage_XmlConnect_Controller_Acti
172
  } catch (Mage_Core_Exception $e) {
173
  $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
174
  } catch (Exception $e) {
 
175
  $this->_message(
176
  $this->__('An error occurred while adding item to wishlist.'), self::MESSAGE_STATUS_ERROR
177
  );
151
  }
152
 
153
  try {
154
+ $buyRequest = new Varien_Object($this->getRequest()->getParams());
155
+ $result = $wishlist->addNewItem($product, $buyRequest);
156
  if (strlen(trim((string)$request->getParam('description')))) {
157
  $result->setDescription($request->getParam('description'))->save();
158
  }
173
  } catch (Mage_Core_Exception $e) {
174
  $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
175
  } catch (Exception $e) {
176
+ Mage::logException($e);
177
  $this->_message(
178
  $this->__('An error occurred while adding item to wishlist.'), self::MESSAGE_STATUS_ERROR
179
  );
app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php CHANGED
@@ -39,12 +39,11 @@ $installer = $this;
39
 
40
  /** @var $configModel Mage_XmlConnect_Model_Application */
41
  $configModel = Mage::getModel('xmlconnect/configData');
42
- $select = $configModel->getResource()->getReadConnection()->select()->from($configTableName, array(
43
- 'application_id', 'value'
44
- ))->where('category=?', Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG)
45
- ->where('path=?', 'native/navigationBar/icon');
46
 
47
- $result = $configModel->getResource()->getReadConnection()->fetchAll($select);
48
 
49
  if (count($result)) {
50
  Mage::getModel('xmlconnect/images')->dataUpgradeOldConfig($result);
39
 
40
  /** @var $configModel Mage_XmlConnect_Model_Application */
41
  $configModel = Mage::getModel('xmlconnect/configData');
42
+ $select = $configModel->getResource()->getReadConnection()->select()->from(
43
+ $configTableName, array('application_id')
44
+ )->group('application_id')->where('category=?', Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG);
 
45
 
46
+ $result = $configModel->getResource()->getReadConnection()->fetchCol($select);
47
 
48
  if (count($result)) {
49
  Mage::getModel('xmlconnect/images')->dataUpgradeOldConfig($result);
app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php CHANGED
@@ -354,11 +354,6 @@ $installer->run("ALTER TABLE `{$queueTableName}` DROP `app_code`;");
354
  */
355
  $installer->run("ALTER TABLE `{$appTableName}` ADD UNIQUE `UNQ_XMLCONNECT_APPLICATION_CODE` (`code`)");
356
 
357
- $installer->run("
358
- ALTER TABLE `{$configTableName}`
359
- ADD UNIQUE `UNQ_XMLCONNECT_CONFIG` (`application_id`,`category`,`path`)
360
- ");
361
-
362
  $installer->run("
363
  ALTER TABLE `{$configTableName}`
364
  ADD UNIQUE `UNQ_XMLCONNECT_CONFIG_DATA_APPLICATION_ID_CATEGORY_PATH` (`application_id`,`category`,`path`)
@@ -372,20 +367,12 @@ ALTER TABLE `{$appTableName}`
372
  ON UPDATE SET NULL
373
  ");
374
 
375
- $installer->run("
376
- ALTER TABLE `{$configTableName}`
377
- ADD CONSTRAINT `FK_APPLICATION_ID` FOREIGN KEY (`application_id`)
378
- REFERENCES `{$appTableName}` (`application_id`)
379
- ON DELETE CASCADE
380
- ON UPDATE CASCADE
381
- ");
382
-
383
  $installer->run("
384
  ALTER TABLE `{$configTableName}`
385
  ADD CONSTRAINT `FK_31EE36D814216200D7C0723145AC510E` FOREIGN KEY (`application_id`)
386
  REFERENCES `{$appTableName}` (`application_id`)
387
  ON DELETE CASCADE
388
- ON UPDATE CASCADE
389
  ");
390
 
391
  $installer->run("
354
  */
355
  $installer->run("ALTER TABLE `{$appTableName}` ADD UNIQUE `UNQ_XMLCONNECT_APPLICATION_CODE` (`code`)");
356
 
 
 
 
 
 
357
  $installer->run("
358
  ALTER TABLE `{$configTableName}`
359
  ADD UNIQUE `UNQ_XMLCONNECT_CONFIG_DATA_APPLICATION_ID_CATEGORY_PATH` (`application_id`,`category`,`path`)
367
  ON UPDATE SET NULL
368
  ");
369
 
 
 
 
 
 
 
 
 
370
  $installer->run("
371
  ALTER TABLE `{$configTableName}`
372
  ADD CONSTRAINT `FK_31EE36D814216200D7C0723145AC510E` FOREIGN KEY (`application_id`)
373
  REFERENCES `{$appTableName}` (`application_id`)
374
  ON DELETE CASCADE
375
+ ON UPDATE CASCADE;
376
  ");
377
 
378
  $installer->run("
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml CHANGED
@@ -40,7 +40,7 @@
40
  <tr class="headings">
41
  <th><?php echo $this->__('Label') ?></th>
42
  <th><?php echo $this->__('Get Content from CMS Page') ?></th>
43
- <th><?php echo $this->getAddButtonHtml() ?></th>
44
  </tr>
45
  </thead>
46
  <tbody id='content_pages'>
@@ -71,7 +71,7 @@
71
  '</span>' +
72
  '</td>' +
73
  '<td class="label">' +
74
- '<?php echo $this->getDeleteButtonHtml() ?>' +
75
  '</td>' +
76
  '</tr>';
77
 
@@ -90,7 +90,7 @@
90
  '</span>' +
91
  '</td>' +
92
  '<td class="label">' +
93
- '<?php echo $this->getDeleteButtonHtml() ?>' +
94
  '</td>' +
95
  '</tr>';
96
 
40
  <tr class="headings">
41
  <th><?php echo $this->__('Label') ?></th>
42
  <th><?php echo $this->__('Get Content from CMS Page') ?></th>
43
+ <th><?php echo $this->getChildHtml('add_button') ?></th>
44
  </tr>
45
  </thead>
46
  <tbody id='content_pages'>
71
  '</span>' +
72
  '</td>' +
73
  '<td class="label">' +
74
+ '<?php echo $this->getChildHtml('delete_button') ?>' +
75
  '</td>' +
76
  '</tr>';
77
 
90
  '</span>' +
91
  '</td>' +
92
  '<td class="label">' +
93
+ '<?php echo $this->getChildHtml('delete_button') ?>' +
94
  '</td>' +
95
  '</tr>';
96
 
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design.phtml CHANGED
@@ -30,7 +30,7 @@ var imageTemplate = '<input type="hidden" name="{{file_field}}[image][{{id}}][im
30
  '<div class="banner-image">'+
31
  '<div class="row">'+
32
  '<div id="{{file_field}}_{{id}}_file" class="uploader">'+
33
- '<div id="{{file_field}}_{{id}}_file-old" class="file-row-info"><div id="{{file_field}}_preview_{{id}}" style="background:url(\'{{thumbnail}}\') no-repeat center;" class="image-placeholder"></div></div>'+
34
  '<div id="{{file_field}}_{{id}}_file-new" class="file-row-info new-file"></div>'+
35
  '<div class="buttons">'+
36
  '<div id="{{file_field}}_{{id}}_file-install-flash" style="display:none">'+
@@ -300,7 +300,7 @@ var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' +
300
  '{{percent}}% {{uploaded}} / {{total}}' +
301
  '</div>';
302
 
303
- var fileListTemplate = '<div style="background:url(\'{{file}}\') no-repeat center;" class="image-placeholder"></div>' +
304
  '<span class="file-info">' +
305
  '<span class="file-info-name">{{name}}</span>' + ' ' +
306
  '<span class="file-info-size">({{size}})</span>' +
30
  '<div class="banner-image">'+
31
  '<div class="row">'+
32
  '<div id="{{file_field}}_{{id}}_file" class="uploader">'+
33
+ '<div id="{{file_field}}_{{id}}_file-old" class="file-row-info"><div id="{{file_field}}_preview_{{id}}" style="background:url({{thumbnail}}) no-repeat center;" class="image-placeholder"></div></div>'+
34
  '<div id="{{file_field}}_{{id}}_file-new" class="file-row-info new-file"></div>'+
35
  '<div class="buttons">'+
36
  '<div id="{{file_field}}_{{id}}_file-install-flash" style="display:none">'+
300
  '{{percent}}% {{uploaded}} / {{total}}' +
301
  '</div>';
302
 
303
+ var fileListTemplate = '<div style="background:url({{file}}) no-repeat center;" class="image-placeholder"></div>' +
304
  '<span class="file-info">' +
305
  '<span class="file-info-name">{{name}}</span>' + ' ' +
306
  '<span class="file-info-size">({{size}})</span>' +
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/autocomplete.phtml CHANGED
@@ -32,11 +32,11 @@
32
  <img src="<?php echo Mage::getSingleton('catalog/product_media_config')->getMediaUrl($item['image']); ?>" width="45" height="45" alt="" />
33
  </div>
34
  <?php endif; ?>
35
- <input type="hidden" name="<?php echo $item['id']; ?>" value="<?php echo $this->htmlEscape($item['name']) ?>">
36
- <strong><?php echo $this->__('%s id:', $item['label']) . ' ' . $item['item_id']; ?></strong>
37
  <p><?php echo $this->escapeHtml($item['name']) ?></p>
38
  <span class="informal"><?php echo $this->escapeHtml($item['description']) ?></span>
39
- <span class="informal"><a onclick="event.stopPropagation();" href="<?php echo $item['url'] ?>" target="_blank"/>Edit</a></span>
40
  </li>
41
  <?php endforeach ?>
42
  </ul>
32
  <img src="<?php echo Mage::getSingleton('catalog/product_media_config')->getMediaUrl($item['image']); ?>" width="45" height="45" alt="" />
33
  </div>
34
  <?php endif; ?>
35
+ <input type="hidden" name="<?php echo $item['id']; ?>" value="<?php echo $this->escapeHtml($item['name']) ?>">
36
+ <strong><?php echo $this->escapeHtml($this->__('%s id:', $item['label']) . ' ' . $item['item_id']); ?></strong>
37
  <p><?php echo $this->escapeHtml($item['name']) ?></p>
38
  <span class="informal"><?php echo $this->escapeHtml($item['description']) ?></span>
39
+ <span class="informal"><a onclick="event.stopPropagation();" href="<?php echo $item['url'] ?>" target="_blank"/><?php echo $this->__('Edit') ?></a></span>
40
  </li>
41
  <?php endforeach ?>
42
  </ul>
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_android.phtml CHANGED
@@ -93,17 +93,19 @@ document.observe("dom:loaded", function() {
93
  });
94
 
95
  tabsDesignSectionPreviewClicked = false;
96
- if ($("mobile_app_tabs_design_section")) {
97
- $("mobile_app_tabs_design_section").observe('click', function() {
98
- if (!tabsDesignSectionPreviewClicked) {
99
- setTimeout("updatePreview()", 200);
100
- tabsDesignSectionPreviewClicked = true;
101
- }
102
- });
103
- } else {
104
- // 1 is correct value - tells that you don't need to load app data
105
- mmPreviewPagePrefix = 'submission_action/1/';
106
- updatePreview();
107
- }
 
 
108
 
109
  </script>
93
  });
94
 
95
  tabsDesignSectionPreviewClicked = false;
96
+ Event.observe(document, 'dom:loaded', function() {
97
+ if ($("mobile_app_tabs_design_section")) {
98
+ $("mobile_app_tabs_design_section").observe('click', function() {
99
+ if (!tabsDesignSectionPreviewClicked) {
100
+ setTimeout("updatePreview()", 200);
101
+ tabsDesignSectionPreviewClicked = true;
102
+ }
103
+ });
104
+ } else {
105
+ // 1 is correct value - tells that you don't need to load app data
106
+ mmPreviewPagePrefix = 'submission_action/1/';
107
+ updatePreview();
108
+ }
109
+ });
110
 
111
  </script>
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_ipad.phtml CHANGED
@@ -151,17 +151,19 @@ document.observe("dom:loaded", function() {
151
  });
152
 
153
  tabsDesignSectionPreviewClicked = false;
154
- if ($("mobile_app_tabs_design_section")) {
155
- $("mobile_app_tabs_design_section").observe('click', function() {
156
- if (!tabsDesignSectionPreviewClicked) {
157
- setTimeout("updatePreview()", 200);
158
- tabsDesignSectionPreviewClicked = true;
159
- }
160
- });
161
- } else {
162
- // 1 is correct value - tells that you don't need to load app data
163
- mmPreviewPagePrefix = 'submission_action/1/';
164
- updatePreview();
165
- }
 
 
166
 
167
  </script>
151
  });
152
 
153
  tabsDesignSectionPreviewClicked = false;
154
+ Event.observe(document, 'dom:loaded', function() {
155
+ if ($("mobile_app_tabs_design_section")) {
156
+ $("mobile_app_tabs_design_section").observe('click', function() {
157
+ if (!tabsDesignSectionPreviewClicked) {
158
+ setTimeout("updatePreview()", 200);
159
+ tabsDesignSectionPreviewClicked = true;
160
+ }
161
+ });
162
+ } else {
163
+ // 1 is correct value - tells that you don't need to load app data
164
+ mmPreviewPagePrefix = 'submission_action/1/';
165
+ updatePreview();
166
+ }
167
+ });
168
 
169
  </script>
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/preview_iphone.phtml CHANGED
@@ -95,17 +95,19 @@ document.observe("dom:loaded", function() {
95
  });
96
 
97
  tabsDesignSectionPreviewClicked = false;
98
- if ($("mobile_app_tabs_design_section")) {
99
- $("mobile_app_tabs_design_section").observe('click', function() {
100
- if (!tabsDesignSectionPreviewClicked) {
101
- setTimeout("updatePreview()", 200);
102
- tabsDesignSectionPreviewClicked = true;
103
- }
104
- });
105
- } else {
106
- // 1 is correct value - tells that you don't need to load app data
107
- mmPreviewPagePrefix = 'submission_action/1/';
108
- updatePreview();
109
- }
 
 
110
 
111
  </script>
95
  });
96
 
97
  tabsDesignSectionPreviewClicked = false;
98
+ Event.observe(document, 'dom:loaded', function() {
99
+ if ($("mobile_app_tabs_design_section")) {
100
+ $("mobile_app_tabs_design_section").observe('click', function() {
101
+ if (!tabsDesignSectionPreviewClicked) {
102
+ setTimeout("updatePreview()", 200);
103
+ tabsDesignSectionPreviewClicked = true;
104
+ }
105
+ });
106
+ } else {
107
+ // 1 is correct value - tells that you don't need to load app data
108
+ mmPreviewPagePrefix = 'submission_action/1/';
109
+ updatePreview();
110
+ }
111
+ });
112
 
113
  </script>
app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_android.phtml CHANGED
@@ -152,6 +152,10 @@ function XmlconnectTabUpdate() {
152
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
153
  }
154
 
 
 
 
 
155
  function XmlconnectUpdateEnabled() {
156
  enabledTabs = [];
157
  for(i=0; i<firstTabItems.length; i++) {
@@ -328,7 +332,3 @@ function XmlconnectTabDisable(tabNumber, panelNamber) {
328
  </table>
329
 
330
  </td></tr>
331
-
332
- <script type="text/javascript">
333
- XmlconnectTabUpdate();
334
- </script>
152
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
153
  }
154
 
155
+ document.observe("dom:loaded", function() {
156
+ XmlconnectTabUpdate();
157
+ });
158
+
159
  function XmlconnectUpdateEnabled() {
160
  enabledTabs = [];
161
  for(i=0; i<firstTabItems.length; i++) {
332
  </table>
333
 
334
  </td></tr>
 
 
 
 
app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_ipad.phtml CHANGED
@@ -105,6 +105,10 @@ function XmlconnectTabUpdate() {
105
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
106
  }
107
 
 
 
 
 
108
  function XmlconnectTabEnable(disabledTabNumber) {
109
  enabledTabs.push(disabledTabs.splice(disabledTabNumber, 1).shift());
110
  XmlconnectTabUpdate();
@@ -212,7 +216,3 @@ function XmlconnectTabDisable(tabNumber) {
212
  </table>
213
 
214
  </td></tr>
215
-
216
- <script type="text/javascript">
217
- XmlconnectTabUpdate();
218
- </script>
105
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
106
  }
107
 
108
+ document.observe("dom:loaded", function() {
109
+ XmlconnectTabUpdate();
110
+ });
111
+
112
  function XmlconnectTabEnable(disabledTabNumber) {
113
  enabledTabs.push(disabledTabs.splice(disabledTabNumber, 1).shift());
114
  XmlconnectTabUpdate();
216
  </table>
217
 
218
  </td></tr>
 
 
 
 
app/design/adminhtml/default/default/template/xmlconnect/form/element/app_tabs_iphone.phtml CHANGED
@@ -111,6 +111,10 @@ function XmlconnectTabUpdate() {
111
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
112
  }
113
 
 
 
 
 
114
  function XmlconnectTabMove(tab1, tab2) {
115
  directionLeft = tab1 > tab2;
116
  if (enabledTabs[tab1] && (enabledTabs[tab1].action == moreActionText)) {
@@ -328,7 +332,3 @@ function fetchMore() {
328
  </table>
329
 
330
  </td></tr>
331
-
332
- <script type="text/javascript">
333
- XmlconnectTabUpdate();
334
- </script>
111
  document.getElementById('<?php echo htmlspecialchars($this->getName()); ?>').value = Object.toJSON({"enabledTabs": enabledTabs, "disabledTabs": disabledTabs})
112
  }
113
 
114
+ document.observe("dom:loaded", function() {
115
+ XmlconnectTabUpdate();
116
+ });
117
+
118
  function XmlconnectTabMove(tab1, tab2) {
119
  directionLeft = tab1 > tab2;
120
  if (enabledTabs[tab1] && (enabledTabs[tab1].action == moreActionText)) {
332
  </table>
333
 
334
  </td></tr>
 
 
 
 
app/design/adminhtml/default/default/template/xmlconnect/mobile/notification_helper.phtml CHANGED
@@ -4,10 +4,10 @@
4
  *
5
  * NOTICE OF LICENSE
6
  *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
  * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-3.0.php
11
  * If you did not receive a copy of the license and are unable to
12
  * obtain it through the world-wide-web, please send an email
13
  * to license@magentocommerce.com so we can send you a copy immediately.
@@ -18,10 +18,10 @@
18
  * versions in the future. If you wish to customize Magento for your
19
  * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
- * @category Mage
22
- * @package Mage_XmlConnect
23
  * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
  ?>
27
  <div class="notification-global notification-global-notice">
4
  *
5
  * NOTICE OF LICENSE
6
  *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
  * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
  * If you did not receive a copy of the license and are unable to
12
  * obtain it through the world-wide-web, please send an email
13
  * to license@magentocommerce.com so we can send you a copy immediately.
18
  * versions in the future. If you wish to customize Magento for your
19
  * needs please refer to http://www.magentocommerce.com for more information.
20
  *
21
+ * @category design
22
+ * @package default_default
23
  * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
  */
26
  ?>
27
  <div class="notification-global notification-global-notice">
app/design/adminhtml/default/default/template/xmlconnect/submission/app_icons_preview.phtml CHANGED
@@ -27,8 +27,6 @@
27
 
28
  <script type="text/javascript">
29
  // <![CDATA[
30
-
31
- <?php //$images = array ('conf/submit/loaderImage' => '/media/xmlconnect/home_screen.png'); ?>
32
  <?php $images = $this->getImages(); ?>
33
  <?php if (is_array($images)) : ?>
34
  <?php foreach($images as $id => $src) : ?>
27
 
28
  <script type="text/javascript">
29
  // <![CDATA[
 
 
30
  <?php $images = $this->getImages(); ?>
31
  <?php if (is_array($images)) : ?>
32
  <?php foreach($images as $id => $src) : ?>
package.xml CHANGED
@@ -1,19 +1,19 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Magento_Mobile</name>
4
- <version>1.4.2.0.23.0</version>
5
  <stability>stable</stability>
6
  <license>mixed</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Magento Mobile Xml Interface</summary>
10
  <description>An integration magento with mobile applications (e.g. iPhone, Android, iPad)</description>
11
- <notes>1.4.2.0.23.0 version of package
12
  internal svn revision #3cd616975d5927903d4f34bde0d9e5e2e727e9ba</notes>
13
  <authors><author><name>Magento Core Team</name><user>auto-converted</user><email>core@magentocommerce.com</email></author></authors>
14
  <date>2012-05-31</date>
15
- <time>14:52:51</time>
16
- <contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="xmlconnect"><dir name="design_default"><file name="accordion_open.png" hash="4c89d903ebbc61ee295ef64a60724b10"/><file name="accordion_open_android.png" hash="7ef2f1d193990c3f4c2c90aae9ab3281"/><file name="accordion_open_android_l.png" hash="bc27688afbfd866c618477ea2c7bf0ee"/><file name="accordion_open_android_p.png" hash="2e4549cba575c12ef2a39c12e9ffe173"/><file name="accordion_open_ipad_l.png" hash="dcdda97da6556393b972d6dae8d6bac5"/><file name="accordion_open_ipad_p.png" hash="55cca08a0ab79047961858789ff8c3a7"/><file name="banner_1_2.png" hash="0637d31df6b5a434c9a332ee46122ef4"/><file name="banner_android.png" hash="02695661b8e50e1a001c3369622f322f"/><file name="banner_ipad.png" hash="c1d59a6ec67da1bb76c5142453da7acf"/><file name="banner_ipad_l.png" hash="04e850d481a9ae902f33fd8c1f89cbf0"/><file name="smallIcon_1_6.png" hash="c1ce9e289eaf2c0504d502928693bd89"/></dir><dir name="mobile_preview"><dir name="android"><file name="background_home_landscape.jpg" hash="1f79a1f42ca4e2cf6010ab6c3ef66aa4"/><file name="background_portrait.jpg" hash="197b15e6455ad1a85e1bad6595371fa3"/><file name="bg_button_up.gif" hash="204f590a88933c930b7fc92963accfab"/><file name="bg_catalog_filters.png" hash="7464191ebaf576b73a3c021eb1cfcc25"/><file name="bg_catalog_filters_shadow.png" hash="5021ad60917190026d85fae1d33bdaa9"/><file name="bg_cat_item.png" hash="2859b45c387b66243d4af2ba973b2ae1"/><file name="bg_frame.gif" hash="7062ed9b7563fc658f49ce7cfdd34f1c"/><file name="bg_header.png" hash="d4a46c8850d1d89259921b1c28b5bce1"/><file name="bg_header_catalog.png" hash="c1080cd18a89e21da18fdc6955bf6230"/><file name="bg_header_home.png" hash="dfce0445ca7c7a45c7914a986b596ce0"/><file name="bg_home_header.png" hash="8bc1887a0c5760cc47b77b8a7a320426"/><file name="bg_logo.png" hash="02695661b8e50e1a001c3369622f322f"/><file name="bg_page.png" hash="d65f1d123655c2eaf3bb4a1e6035a08d"/><file name="bg_star.png" hash="fc6de6c4e0ed3478b8840e1ab81da725"/><file name="bg_star_empty.png" hash="3f0421fb8c8f6c4be6ca501168a881e8"/><file name="bg_status_bar.png" hash="52b41106451ac34672f82338bbc5370c"/><file name="ico_account.png" hash="c1fd338c74fcf483155acbd37c430807"/><file name="ico_home.png" hash="2de37f640463b354d68945320bfe3e4f"/><file name="ico_search.png" hash="8b0dd17a3e9c3328e66204fe379c66aa"/><file name="product_image.png" hash="dd975b128ba303e0ae2adc9772e0433c"/><file name="product_image_1.jpg" hash="8994979d4dcc1f339c73cd1f44398a7d"/><file name="product_image_2.jpg" hash="26d6599bdb35d80b25a1e903b40cfa19"/><file name="product_image_3.jpg" hash="d7c6d05196a84341afe0025d01b9dc61"/><file name="product_image_4.jpg" hash="2a88ead3dbbeff1d40168db692841f2f"/></dir><dir name="custom_icons"><file name="account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="actionsBg.jpg" hash="ee3db742cbec9a436ba46118c8a01303"/><file name="addToCart.png" hash="e33876648546e99d875ca92bd2cd78e9"/><file name="addToWishlist.png" hash="1018602b7c5e0e11f0427ace96fd7d52"/><file name="background.gif" hash="bd92833eb2eb32e4a0282cea153ac13f"/><file name="buttons.gif" hash="0cd19a9d9178976906161ea100cba958"/><file name="cart.png" hash="815b4c64fae21b4c162525ece76dc44d"/><file name="home.png" hash="9e473791b022b7c2dfc7d29b1b6de887"/><file name="image-bg.png" hash="14bde5cf8b00dc5f6c60e52a0fa964dc"/><file name="logo-small.png" hash="9b3477a4552bcb878b4943aae5351622"/><file name="rowBgIcon.gif" hash="9ee89b961ae2bb047672ba5d2d2677c6"/><file name="search.png" hash="10bfa7ec3361ce7cbcc5d25087f181eb"/><file name="shop.png" hash="e6639a9fdc143363da82a7d78e126f1c"/><file name="star-active.png" hash="d4ab959a92bda610527a3e3942c4c0b0"/><file name="star-inactive.png" hash="f7fb99710be4c03ac23b1206f20e761d"/><file name="tellAFriend.png" hash="46f8ef48b29f245977d66d9312d87e70"/><file name="viewDetails.png" hash="9bacc63bcc483d3db5614a026d9391f6"/><file name="viewGallery.png" hash="304f3d03949d07055bc056359fe17763"/></dir><dir name="gradients"><file name="footer.png" hash="31a2feed50ef9c8637b412c4211f8300"/><file name="header.png" hash="5386da930a944cd75562216249cce08a"/><file name="header2.png" hash="ad5a2dc6ec93914e925cfe2d43fb30a2"/><file name="header3.png" hash="920ad8c6903e90323a57fb02dca37280"/><file name="item-bg.png" hash="a14886d1f9e14284ac6b4f1b61e68646"/><file name="sort-bg.png" hash="b8053bb772e849909e5b87e4fd1ebbe4"/></dir><dir name="icons"><file name="account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="cart.png" hash="815b4c64fae21b4c162525ece76dc44d"/><file name="home.png" hash="9e473791b022b7c2dfc7d29b1b6de887"/><file name="more.png" hash="f3662ae29923b87eba3a729192aa3df3"/><file name="page.png" hash="2291d77f21de042040bc0864be40138b"/><file name="search.png" hash="10bfa7ec3361ce7cbcc5d25087f181eb"/><file name="shop.png" hash="e6639a9fdc143363da82a7d78e126f1c"/></dir><dir name="ipad"><file name="background_home_landscape.jpg" hash="9e3ef117985113b804531142d539b60a"/><file name="background_portrait.jpg" hash="bdf9e034fd30b923086e6c622ea10451"/><file name="banner_image.png" hash="693bb9d118155a146b21ce9fcfba08da"/><file name="banner_image_l.png" hash="a070a40d57610b5cc7160fe894482a1c"/><file name="bg_catalog_header_hor.png" hash="f61a67aa288e1b8a8df7b4d4527c662e"/><file name="bg_content.jpg" hash="70ddfc8959d878d1231dc7cbee4a063c"/><file name="bg_filters_buttons.png" hash="02fcb0ed7a7268e9f64ebaf06235bc09"/><file name="bg_filters_tooltip.png" hash="3b05ca6e585acd3d766be01eeaa23d47"/><file name="bg_filters_wrap.png" hash="31288784fe95c67de9b45b44458b4155"/><file name="bg_filter_button.png" hash="728f1cd358446881ffd863eff12204a1"/><file name="bg_header.png" hash="e2cf5a575a27e6e4533e3c85e3472a82"/><file name="bg_home_content.jpg" hash="1d55a198279e4f2b163c98c18f699646"/><file name="bg_home_header.png" hash="00f2fbf96d2b915dcbcd921b0301ef3f"/><file name="bg_home_header_hor.png" hash="9bfef728ece003d5b3433d2623ea168c"/><file name="bg_home_products.png" hash="ac6a8a79b959a0c8298b1f607c0f0af8"/><file name="bg_home_shadow.png" hash="c54b071ca3e97a6ee67588ef74b7b44e"/><file name="bg_home_shadow_hor.png" hash="0d21a99c5c749d0e5070e3585ff4a23f"/><file name="bg_product_image.png" hash="4da74325c1a4ee1ca19b414e5d590f75"/><file name="bg_search.png" hash="6ee08d05d0c4ef9ed64b9914b821f408"/><file name="bg_sections.jpg" hash="0ee90005663aced09a9ce6385bdbce2c"/><file name="bg_status_bar.png" hash="17124d9d392bb8e37b202c80a595df54"/><file name="bg_status_bar_hor.png" hash="bd4a9f11ecb1c896145267731d8a951d"/><file name="i_cart.png" hash="1bbe0a0e54eed5bb14b9bfcce83da758"/><file name="i_info.png" hash="3f0fda8b294b67bf698badbcaa99150b"/><file name="i_login.png" hash="deb4089bdc61582c78c90ef192d577e8"/><file name="i_remove.png" hash="4923eb5e76b3c6ba6df5c667db816a0c"/><file name="logo.png" hash="49c19f59b459b6c0b3b99daa3fe7f932"/><file name="logo_big.png" hash="693bb9d118155a146b21ce9fcfba08da"/><file name="product_image.jpg" hash="2bb6c69129bcb18dc93e9f48605647c6"/><file name="sections_arrow.png" hash="7db7144083a31882e8a62cb9579f478f"/><file name="stars.png" hash="70d38cd9883d70e4f6b21ac4874b9868"/></dir><dir name="slider"><file name="actionsBg.jpg" hash="ee3db742cbec9a436ba46118c8a01303"/><file name="addToCart.png" hash="2a146be4bc63713df19cc353e030d44f"/><file name="addToWishlist.png" hash="9b23a4e0d9acfc79f314e9082f14c4de"/><file name="tellAFriend.png" hash="b7600fa2ae52bdb1d6bb86fe4d9f1773"/><file name="viewDetails.png" hash="90cf37c6dbbee1861350b4c05469e3ae"/><file name="viewGallery.png" hash="304f3d03949d07055bc056359fe17763"/></dir><dir name="sort_buttons"><file name="bg_button.png" hash="87d0f1b123f01c3aea3cb8a2b146306e"/><file name="buttons.gif" hash="2f14f1a3f0fb38790779c992a58654ae"/><file name="buttons.png" hash="b4a3f17370e03bf5d2a5cdf7800c25a7"/><file name="button_up.gif" hash="7ad527f99b9975d5634fb2d5cc99e6b3"/><file name="center-active.png" hash="5903988cd458cd794f23a212d51aa725"/><file name="center-inactive.png" hash="135b46aaa5c3b131a5a7e9c45c004e06"/><file name="filters.png" hash="3837ab6fcfe959833dd998533db1ca7f"/><file name="left-active.png" hash="86e94441b96a0d27d0b0a7e5108f86ed"/><file name="left-inactive.png" hash="0ddcb75aa9971cca39a5a65b4bdff8c4"/><file name="right-active.png" hash="320740ff608187301b06a96eab2f9e8e"/><file name="right-inactive.png" hash="cac4b39ab380353ffd5fdbcedb6e0a0a"/></dir><file name="1.gif" hash="817fd84187db3eee00799b0acf316457"/><file name="2.gif" hash="1a842d8f3ac25cfcdeab6c86dd8fea89"/><file name="3.gif" hash="207cd55e968c284bd52c86efdcdda1c7"/><file name="actionsBackground.png" hash="11faa8baee72f3e6a9a02a83915c8658"/><file name="actionsBg.png" hash="9acccd1980f17006942d74a718ebd7da"/><file name="arrow.png" hash="837259a7c365e46034dca728bffe9070"/><file name="background.gif" hash="bd92833eb2eb32e4a0282cea153ac13f"/><file name="background.png" hash="3717f4b4ba725701e2a0604129a3a815"/><file name="banner.png" hash="0637d31df6b5a434c9a332ee46122ef4"/><file name="btn-l.png" hash="92b2454528e9d39119038777cf53329c"/><file name="btn-r.png" hash="8c6aa9fd9203bc10822e0505f11e0c4d"/><file name="circle.png" hash="f4c116cb0554bf936d3b9ee38b7f3d1f"/><file name="grid.png" hash="23faa3f5572cdeb597c2bceedd93a7f8"/><file name="image-bg.png" hash="a588b9cced95a25fc18e28c775d9a001"/><file name="info.png" hash="3f0d2ed85b81e8251f294457c6bfa404"/><file name="lightStar.png" hash="b5dc40d5b793dae6a069357f49cccc24"/><file name="lightStar2.png" hash="75928926a6112540c9cb073157cb7d95"/><file name="lines-h.png" hash="ea3d95812c9838affc6df2f3a3cb1977"/><file name="lines-v.png" hash="9e3ffee29ba28477d50da9642019bc0a"/><file name="login-btn-left-alt.png" hash="71bb6c7d24252aace27bee711d7616f4"/><file name="login-btn-left.png" hash="cbbf9afc6e9fc433f57270e88b63f351"/><file name="login-btn-right.png" hash="438fcc598d012bf6d33184e95accfd24"/><file name="login-btn.png" hash="051ee2c1a8ce3f7b8de3293cd2e2ed85"/><file name="logo-small.png" hash="9b3477a4552bcb878b4943aae5351622"/><file name="logo_25.png" hash="ba41ed568d916175c32803b614442447"/><file name="men.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="mm-frame.gif" hash="eebf30806f1dbf2118e7ec39a016c86d"/><file name="mobile-catalog.css" hash="80cbd74984354df2d86f4ad68b9123a3"/><file name="mobile-home.css" hash="b57641c73c4eae08e0a02cd7291d9465"/><file name="rowBgIcon.gif" hash="9ee89b961ae2bb047672ba5d2d2677c6"/><file name="slider.gif" hash="c6b87bf15b85b18c0515e2cbefaabe60"/><file name="smallIcon.png" hash="e76d2a6364042f41b3f35fc8cdc9c0ee"/><file name="star-active.png" hash="d4ab959a92bda610527a3e3942c4c0b0"/><file name="star-inactive.png" hash="f7fb99710be4c03ac23b1206f20e761d"/><file name="t-shirt.gif" hash="7505efdaabf13c4f8e26f7cfe15c8c96"/><file name="t-shirt.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="women.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="youth.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/></dir><file name="btn_edit.gif" hash="e7ecc9fea5c3813957814050508507a5"/><file name="dropdown-arrow.gif" hash="332e99ca6b4d1e0d39972e04fb0b2395"/><file name="empty.png" hash="23dc9dc3c4751f83c2df7a5c42668824"/><file name="full-arrow-left.gif" hash="8ec91b60d38d1a16cba7670f2088a5c7"/><file name="full-arrow.gif" hash="36ddff0fca1c7d8900cb3633e0a30cea"/><file name="gel_green.png" hash="591959d831e8e42c9175d12a88f0bae2"/><file name="gel_red.png" hash="db442c023014df9da32b84bc1bb5a39f"/><file name="l-arrow.gif" hash="ee49f7eab64657b5131953acef0238fd"/><file name="loading.gif" hash="5d25806dac7cbee5f894b13144783866"/><file name="r-arrow.gif" hash="d0429a9781e915fc9d9ca8875c470d32"/><file name="remove.png" hash="ee9497c5f31933eaab3e9e352495ee12"/><file name="small_logo.gif" hash="d5c8be7c0f16aac2549759c0228492d6"/><file name="swatch_black.gif" hash="fd31d6a3a435c8ad1f7c43f346bb47e4"/><file name="swatch_custom.gif" hash="fb34791a48366957a141e12b563888c2"/><file name="swatch_default.gif" hash="fb34791a48366957a141e12b563888c2"/><file name="swatch_funk_leaf.gif" hash="f1d3ba87efb742b47da879a6f48909c4"/><file name="swatch_hot_red.gif" hash="d9363d45dc2993c2fdc3ea43c5b6f71c"/><file name="swatch_sky_blue.gif" hash="ded1455db119d09a3aedd7474fd1875a"/><file name="swatch_user_custom.gif" hash="a24f31421a1ff56d1be0845f9a7c7020"/><file name="switch-arrow.gif" hash="dc7243962b341f366cd072d486687e6a"/><file name="tab_account.png" hash="27101fbaa78a07426be4768acc4c53ff"/><file name="tab_account_android.png" hash="77605cbc87f75ca17e91a5393765ceb1"/><file name="tab_account_ipad.png" hash="2997de5402195d0720309b73c6446fab"/><file name="tab_cart.png" hash="e803f760ee81cb35183f1122f388b774"/><file name="tab_cart_android.png" hash="477e97f8d03ea8aa674e952709f86578"/><file name="tab_empty.png" hash="bdd4cc355566e8861b2c45424ad94516"/><file name="tab_home.png" hash="dfa104e4da74e4a55d3c98d6ee0f7122"/><file name="tab_home_active.png" hash="bba5eb9bb724c84c1ede9e6f4bec3575"/><file name="tab_home_android.png" hash="1fefc6b070cc21b31b43194a7d85f9d9"/><file name="tab_info_android.png" hash="67fc19d8d926f7aede482f5a7083fc71"/><file name="tab_more.png" hash="2803359cb3e795bf67457e727aa16020"/><file name="tab_page.png" hash="ca05dbc42f944b8d4255f6675f6dd93a"/><file name="tab_search.png" hash="2cf29dbe325558353621b4241543204f"/><file name="tab_search_android.png" hash="932c2c568872fd9e119367c887f0539a"/><file name="tab_shop.png" hash="f36be0d3d27f2b37626247d3f6a55e2a"/><file name="tab_shop_active.png" hash="de907d6a52d477d4319649f9b0e2e4aa"/><file name="tab_shop_android.png" hash="e119fcd20f8cba856d550a64d775ddbb"/><file name="tmp-icon.gif" hash="58b759aecf3bdae26d5aaff7a0be5c90"/><file name="xmlconnect_tab.png" hash="cd99a7e01a42a6c82d866f7684faeb95"/></dir></dir><dir name="xmlconnect"><dir name="fonts"><file name="android_icons-webfont.eot" hash="2fc917efbfb3c933ccfddc108ef05f33"/><file name="android_icons-webfont.svg" hash="e8cb2b5ef019bbc2885c97ed0caaf2a0"/><file name="android_icons-webfont.ttf" hash="bc567dd7a381093fbb652c58cbad9430"/><file name="android_icons-webfont.woff" hash="8310b54d55bf84a8a3f3a86c22a51aef"/><file name="stars-webfont.eot" hash="019beb4b8ec19447657cf3106138bbe3"/><file name="stars-webfont.svg" hash="20cf0312c0b951d173d4531ea18abc6f"/><file name="stars-webfont.ttf" hash="d63d95e9adaf775f410437535622bf60"/><file name="stars-webfont.woff" hash="526d9756131c94139f0f1df5272197fd"/></dir><file name="boxes.css" hash="a3648c3516608a34ee7f53e447b1d9f4"/><file name="dropdown.css" hash="e5388a1fd90df2a2e3860516adef0367"/><file name="iestyles.css" hash="3e8a316291621eee4147373bd3003eb9"/><file name="mobile-android.css" hash="c932d2898a1ffd5545cfd76699260125"/><file name="mobile-catalog.css" hash="ca7c4c2c7643ca1249e00bbd45980fd2"/><file name="mobile-home.css" hash="b10c97acf5ac07c40d1db72b9d413841"/><file name="mobile-ipad-catalog.css" hash="2b35f47bb153c659640dd37beac277f1"/><file name="mobile-ipad-home.css" hash="270c8e4c8111de6c6173f9b6883c85ec"/><file name="remove.png" hash="b4903936d44dc498d2f32b72d9161ff0"/><file name="styles.css" hash="c87a56ddc3001a2e357d648695855f5f"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="xmlconnect"><dir name="catalog"><dir name="category"><dir name="placeholder"><file name="image.jpg" hash="097ab8a3051bc037ea3de0e17f440540"/><file name="small_image.jpg" hash="f825d16f97a640453553c79c48ebaa73"/><file name="thumbnail.jpg" hash="b2b682d28a08a748a73d2cda70ab5a57"/></dir></dir></dir><file name="tab_account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="tab_cart.png" hash="9055ba76e256a51d3fee53a8c41d5226"/><file name="tab_home.png" hash="07d0af93e167b9366d3d4fb3d6cdb31c"/><file name="tab_more.png" hash="b9fc21feb8d7655bc9c2985c37b0de2f"/><file name="tab_page.png" hash="ca05dbc42f944b8d4255f6675f6dd93a"/><file name="tab_search.png" hash="25e880eb2a4d06828e2e1c3f32d22400"/><file name="tab_shop.png" hash="fe602fc2e7093efef5ecc0b027a32d91"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="xmlconnect.xml" hash="67820e2adb2d74a4f0c62efc01b18ecb"/></dir><dir name="template"><dir name="xmlconnect"><dir name="edit"><dir name="tab"><dir name="design"><dir name="preview"><file name="banner_rotator.phtml" hash="89da7cb3dabb72de16c95cd5bd6cc935"/><file name="catalog_android.phtml" hash="591050ccc493b364fb895055c986cd86"/><file name="catalog_hor_ipad.phtml" hash="cc81292b0dfa7aa3e6f39f792b74b80e"/><file name="catalog_ipad.phtml" hash="8cc888f4bbae4ab9fb10f4b70e8b8515"/><file name="catalog_iphone.phtml" hash="7112c646bd841a71877eb621e68614e6"/><file name="home_android.phtml" hash="096341a4da1d21ef2c9ed3a6c054977a"/><file name="home_hor_ipad.phtml" hash="486989d25e68d88b6d4132789a14ce0a"/><file name="home_ipad.phtml" hash="93c4a6a124cfdaebde3abadb9f087bce"/><file name="home_iphone.phtml" hash="c15fdeef53ce2c1f2fdb53e5894feaae"/><file name="productinfo_iphone.phtml" hash="99c2fd2107ad06e625384b56182fd316"/><file name="tab_items_android.phtml" hash="d0b925bbc89f510aac004ffc1b33062a"/><file name="tab_items_ipad.phtml" hash="8ca8d864408bb880b6f6a9999b0e4d26"/><file name="tab_items_iphone.phtml" hash="406b98b55565fb58c1a3e3dc90922d6e"/></dir><file name="autocomplete.phtml" hash="899405427f3311f745e2a4e48a626de0"/><file name="images_android.phtml" hash="325f5377c2dc03c67fc6d8518b06f23a"/><file name="images_ipad.phtml" hash="c143fc2fffae5798c17e98b8ea95ee5d"/><file name="images_iphone.phtml" hash="662948af12653a8ae48414dfbb0e9527"/><file name="image_edit.phtml" hash="4362113375c916fd5b30956a77f5c03e"/><file name="preview_android.phtml" hash="484f96d74d8e196296d5498582a27106"/><file name="preview_ipad.phtml" hash="4475acfd140a51c884b447bbfce9ba61"/><file name="preview_iphone.phtml" hash="5672019ff2f83f4e4baeab6ff9755c7f"/></dir><file name="content.phtml" hash="0e020e28c74c977c8690ad366886cf95"/><file name="design.phtml" hash="a38fbdd0387b167230e6745fc9a5ee7d"/></dir></dir><dir name="form"><dir name="element"><dir name="country"><file name="androidmarket.phtml" hash="053e69572e7b8850f3f96f22c5d5f9f7"/><file name="istore.phtml" hash="275af872365061838828011b0398db02"/></dir><file name="addrow.phtml" hash="46fddf6c4b452a6c529499de2c2f1323"/><file name="app_tabs_android.phtml" hash="7f01e540dc7f88fe69d91b758069a826"/><file name="app_tabs_ipad.phtml" hash="ae6ed3ef1d8bcf7bfbcc8a525002da35"/><file name="app_tabs_iphone.phtml" hash="330a5325e1bed894e12400939d5f5ff2"/><file name="themes.phtml" hash="106356a554f5a6e0910e5b35eda0323d"/></dir></dir><dir name="mobile"><file name="notification_helper.phtml" hash="342fc4bff0154f93555e6d8418018951"/></dir><dir name="submission"><file name="app_icons_preview.phtml" hash="4d4f0f78338338d15605777df69be0e7"/><file name="container.phtml" hash="c576009dd87ddd55ce8b023587128806"/></dir><dir name="template"><file name="preview.phtml" hash="bd26b9a350f430e4a6905133db031bfc"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="xmlconnect.xml" hash="f166ab0a4ea2c769839410ba0ef04c40"/></dir><dir name="template"><dir name="xmlconnect"><dir name="centinel"><file name="authentication.phtml" hash="17420b60e21faff408abf1fcc8a83d31"/></dir><dir name="pbridge"><file name="result.phtml" hash="412b98ba988d6049098414f8cbce09b6"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Mage_XmlConnect.csv" hash="28ea9a9ae90f0c270f85ebdbf2b60565"/></dir></target><target name="mageweb"><dir name="js"><dir name="jscolor"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="demo.html" hash="edf71251cb2be20322d2efb00aee86a6"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="b65a1505390592ac6c0177d6b84774e0"/></dir><dir name="scriptaculous"><file name="builder.js" hash="1174f6fc34ca5d54ba10b0c719386e7c"/><file name="controls.js" hash="8c414e1787c0ac9f10b16b252361c8b2"/><file name="dragdrop.js" hash="95c24654dce8433dee51731efa7b9a04"/><file name="effects.js" hash="d795089f95a22306cca9b337c439c65a"/><file name="scriptaculous.js" hash="d59eba4e0b14b672208b0862ae1c2196"/><file name="slider.js" hash="6043f96a71d2685fecd02e2ab99e84d9"/><file name="sound.js" hash="0f0fab23fa2cb1bc7717fd2bdf45402e"/><file name="unittest.js" hash="99969698b22272f77bdf4c64586862b3"/></dir></dir></target><target name="magecore"><dir name="Mage"><dir name="XmlConnect"><dir name="Block"><dir name="Adminhtml"><dir name="Admin"><dir name="Application"><dir name="Edit"><dir name="Tab"><file name="Settings.php" hash="a47b208a47c76ddf50fbb820fcd59561"/></dir><file name="Form.php" hash="476d53d53aae676d873a8e558873296f"/><file name="Tabs.php" hash="3ee5becdfd696c2f6a1853042119e190"/></dir><file name="Edit.php" hash="ad214481079e0bac647fc3aed802e035"/></dir></dir><dir name="Connect"><dir name="Dashboard"><file name="BestSellers.php" hash="f7a6937309e1e154659a1bd3a8e0024d"/><file name="Customers.php" hash="a569d57ba6946aa95dbb9709eb49061e"/><file name="GraphAmountsData.php" hash="96faf08a7ae5d64a4df65adbe172930c"/><file name="GraphDataAbstract.php" hash="3463bb1397125bb9632f77d5bcecc747"/><file name="GraphInfo.php" hash="21aa1585a48f06037955e7881d05f593"/><file name="GraphOrderData.php" hash="ee34310eb99a996fec35676c26a5eaa6"/><file name="GraphTotalsData.php" hash="2fc1cf4a9b1441dc4c66eed500c34573"/><file name="LastOrders.php" hash="33faf2a032df931fe9e05a327492843d"/><file name="LastSearchTerms.php" hash="b055315ddf33e4213b03dc38cc46e1e6"/><file name="MostViewedProducts.php" hash="a2eaa67c2a862d363a9e6c921492b3b6"/><file name="NewCustomers.php" hash="9d9d635f0250cf39f0d916f1b87742f5"/><file name="SalesInfo.php" hash="bb9152778bc63611409fd6cd95717fb1"/><file name="StoreSwitcher.php" hash="5237ff6b5d540a1bc5d61961d63cd018"/><file name="TopSearchTerms.php" hash="cec4a64ad08d36496ba0586a77f0ea8c"/></dir><file name="Config.php" hash="173da17980f9ca16ecda647c2e404112"/><file name="Dashboard.php" hash="29a6d23dd5353b1adf9e2ca540e5e09c"/><file name="Loginform.php" hash="f7da781b991d3b14d75548133f5876d2"/></dir><dir name="History"><file name="Grid.php" hash="6308d26ad2e05740eb6991e3257000bb"/></dir><dir name="Mobile"><dir name="Edit"><dir name="Tab"><dir name="Design"><dir name="Accordion"><file name="Images.php" hash="c9f251ac77b9689c9c381303be8032f8"/><file name="Tabs.php" hash="caf8302b277ea18303213d43764ed28e"/><file name="Themes.php" hash="9d6dec2260396ad8798202ee1ba6eddc"/></dir><file name="Accordion.php" hash="5b545ce26cbf7452723591cd4c3d250b"/><file name="Images.php" hash="0a72eb16ff861b0e13e3bc3122a4cee3"/><file name="Preview.php" hash="d4a5bccbcfc7f2885917c7082692451e"/><file name="Themes.php" hash="6ae0e49f82cc094f5dd9315887f9e14d"/></dir><dir name="Submission"><file name="History.php" hash="e48ed8d20f12e56a08beb5afcfd954b8"/></dir><file name="Cache.php" hash="607618d233c5dab9415475b4ad61bb59"/><file name="Content.php" hash="c9e6e215c28ebaa0aa5964c19229ae71"/><file name="Design.php" hash="f90d65ffa27e94916da616afc8e221f2"/><file name="Flurryanalytics.php" hash="89ad25f1adf60b1e4232ba29f7f5ad64"/><file name="General.php" hash="1c311c8ca86381df53c570870a20f259"/><file name="Notification.php" hash="beae607b96d8b6f98cd7022185cc8bdd"/><file name="Payment.php" hash="4cb1f8f6c03a1c4a649055faa1e088d5"/><file name="Settings.php" hash="e17af0c14089ec02c46c39369d35ea9f"/><file name="Social.php" hash="3657d0e59e519a23ef71b2ea892aa6c1"/></dir><file name="Form.php" hash="9e9957b476bbd1fb3952c4e4b706b2df"/><file name="Submission.php" hash="b8e1008535fe0c52ebddd0124cb1e15d"/><file name="Tabs.php" hash="b7de5cfa115506fddaf0ea05adbedca6"/></dir><dir name="Form"><dir name="Element"><file name="Addrow.php" hash="331985b65aceb180f82828d6bfda7e8f"/><file name="Color.php" hash="5b3e0678201cb7e88c8c78cd4b9b5173"/><file name="Country.php" hash="77f9bffa5f95cbb230b1e35ab463a08c"/><file name="Datetime.php" hash="1c3904734ec337c5b61bc740a2ade01c"/><file name="Font.php" hash="97fe8057781e10c299430a0cd15eb176"/><file name="Image.php" hash="9a02015de1a57559403f7dc656771ad3"/><file name="Page.php" hash="c3b1ac3639341f84ed95c5807e2188ab"/><file name="Tabs.php" hash="afb7ba2119332ac4382b6b1226d44958"/><file name="Theme.php" hash="4569541d38e137de716069f66ca93656"/></dir></dir><dir name="Grid"><dir name="Renderer"><file name="Bool.php" hash="8e9be8e177a8ea4368fe92fe0f466a60"/><file name="Type.php" hash="b6337cfe77db1a45ff431143055e405f"/></dir></dir><dir name="Preview"><file name="Content.php" hash="771869a996b1630b8bba3293eae9d768"/><file name="Tabitems.php" hash="b9e66e1c2d30c70b353fcbbddabcd13a"/></dir><dir name="Submission"><dir name="Renderer"><dir name="Country"><file name="Androidmarket.php" hash="cc5322cad4892b477d23ff8798ac885d"/><file name="Istore.php" hash="83f84cf61a3b2dab063773c57270c215"/></dir></dir><dir name="Tab"><dir name="Container"><file name="Submission.php" hash="94ec8a46ff9c9271c03df4850690ca89"/></dir><file name="Container.php" hash="bd10d3d94dbe4d422e84be6fe2c1ace6"/></dir><file name="Form.php" hash="a1338b97c57150a7e1a3a7516b421438"/><file name="Tabs.php" hash="0e75e7c201f2639ee73618a90ea9a487"/></dir><dir name="Widget"><file name="Form.php" hash="2bd91c9af96eaf42d1484b263857772b"/></dir><file name="Edit.php" hash="ef6d5a5b9db8e01f38ed3b164bbb9258"/><file name="Grid.php" hash="8ca26959087f2a12d5f9aa3bf1fc650b"/><file name="Submission.php" hash="f15232c6891c6699dfc89b826b54c74d"/></dir><dir name="Queue"><dir name="Edit"><file name="Form.php" hash="77809e160faec639d4e570b46c85c8df"/></dir><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="2de3d991818d5add59e109ac5f0e26ba"/><file name="Application.php" hash="c563b1f5d6cb4fff511bc6cbfdcebe7c"/><file name="Id.php" hash="5a3bd6f7130ff4354884635d1246452c"/><file name="Msgtitle.php" hash="4d89f7f6a6252260f61b673c6cac1e34"/><file name="Pushtitle.php" hash="c411360431127611c84da7690b5c48c2"/><file name="Status.php" hash="78c46092eb556a263dfca7d5bc4941db"/><file name="Template.php" hash="a36ed9dcdc7f3f331452cee2bb508482"/></dir></dir><file name="Edit.php" hash="1610c2fd1b9fcf552fd0f80a0ecdd3b0"/><file name="Grid.php" hash="f34b4443bb916da032b3780834cb0b2d"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="f9b618292fe83e9bfc2d404b88a81036"/></dir><dir name="Grid"><dir name="Renderer"><file name="Application.php" hash="cdae7056f704834da9e400277411ac0b"/></dir></dir><dir name="Preview"><file name="Form.php" hash="99d036e0da9c43dc125b30536fb4e9d5"/></dir><file name="Edit.php" hash="9dfdaa4321d280b27236e007f92e3159"/><file name="Grid.php" hash="22f94f5d0dd944b4c78690cd04092a18"/><file name="Preview.php" hash="891acec6c53c94b2f2dbc892c9fb80dc"/></dir><file name="History.php" hash="d00a4acfccbd558e64ffe4eecb731d9a"/><file name="Mobile.php" hash="e23e9e74e7843c2fd07ab3230069c99f"/><file name="Queue.php" hash="e13f7f2fa44867d5580b7d0e38542bae"/><file name="Template.php" hash="2a577c9a452528e44f69b730cef9f9a1"/></dir><dir name="Cart"><dir name="CartTotals"><dir name="Nodes"><file name="Default.php" hash="13b937bdd961d8ebc5e5c65b985f2952"/><file name="Giftcardaccount.php" hash="5acba9af00832fcf9a79c50f80fd69cb"/></dir><file name="Default.php" hash="b71795f830500dd143a6d508e430183f"/><file name="Grandtotal.php" hash="b59199ee6d44441e3bbd5eed1e7db5b5"/><file name="Shipping.php" hash="28c3bbe92b56d919fead660489c5891f"/><file name="Subtotal.php" hash="8d26443059e865e70076ccb5423d1312"/></dir><dir name="Item"><dir name="Renderer"><file name="Configurable.php" hash="4cd9ea96f9d65dd832cc457cf66af8df"/><file name="Grouped.php" hash="46290fe4e7338f0640022f591f0dfb25"/></dir><file name="Renderer.php" hash="4905f3e3f895df2bcee10f34fc6ce834"/></dir><dir name="Paypal"><dir name="Mecl"><file name="Details.php" hash="bf9e5975e8f44052b3de9ca66b1c5028"/><file name="OrderDetails.php" hash="579615f123d2a6c1e707cb6d777300f1"/><file name="Review.php" hash="d1a828730328382d0fe331b4d794535d"/><file name="Shippingmethods.php" hash="155ce6fb2ff7cd0764e3dc19a343a9af"/></dir><dir name="Mep"><file name="Totals.php" hash="0bd49f7088c1f7823bcfd91b4136bee6"/></dir></dir><file name="CartTotals.php" hash="2c08e3717ad64e12a4a0e0bfb37386ce"/><file name="Crosssell.php" hash="5644046ee3555cdeeee472f1b753b128"/><file name="Info.php" hash="fd227e03835a46895163bda3d5f2d957"/><file name="Items.php" hash="39640b245f135f1e352902315b2360da"/><file name="Totals.php" hash="f327ec2b8659816a4004f832cea8a006"/></dir><dir name="Catalog"><dir name="Category"><file name="Info.php" hash="9dd1d0109dd30edb081e8102c0edc0ab"/></dir><dir name="Product"><dir name="ItemPrice"><file name="Bundle.php" hash="ac457ee3905283123af2609e7476edc5"/><file name="Default.php" hash="47f31b8590fc9d259aab1efc8a5289e0"/><file name="Giftcard.php" hash="1380867166c847b4df0b2ebb65baf819"/></dir><dir name="Options"><file name="Bundle.php" hash="8afc89f78810418d6aee2b7990ed9e7c"/><file name="Configurable.php" hash="8457a4df18d94c3eb6e387d378c4932e"/><file name="Downloadable.php" hash="94525919da37103bb0f23a94f7b2543f"/><file name="Giftcard.php" hash="c93c4ff2f38a72aba417f33ab47b184d"/><file name="Grouped.php" hash="18b054d71746c10ac449c8c1b9f5f018"/><file name="Simple.php" hash="848290eb597b773baf7232dbd3a06d5c"/><file name="Virtual.php" hash="4748e41479698b19e9532226707394cd"/></dir><dir name="Price"><file name="Bundle.php" hash="8b2ada82886d95c9a306bcb5d834bd00"/><file name="Default.php" hash="030ab93e037730f84c4042c80373a8ad"/><file name="Giftcard.php" hash="89d9c395060d9a3a50685d33d08d6a61"/></dir><dir name="Review"><file name="List.php" hash="69da6bc8d8b7f24a789b68f579d467d9"/></dir><file name="Attributes.php" hash="7a8ddf4dd3bb20fa523fec37bf819172"/><file name="Gallery.php" hash="9741f5487e804e500a69235f213981a9"/><file name="ItemPrice.php" hash="56fe6c68fca2d7b4629376241550af5f"/><file name="List.php" hash="9449a5bb46e220f737bd234e9daf66eb"/><file name="Options.php" hash="c39ac92911dc333a5a2dd24f1868e063"/><file name="Price.php" hash="0d2a385ad233ddc0d8396b5ca518c1f7"/><file name="Related.php" hash="0bf2a068cafdff7bfae04c220b5ba075"/><file name="Review.php" hash="4376d0136df5f28d91e1ce79408dfb0e"/></dir><dir name="Search"><file name="Suggest.php" hash="13eb66cd0e6ce373c250f725e3aefc94"/></dir><file name="Category.php" hash="9f2cf762f4c620f0160f075784397011"/><file name="Filters.php" hash="0737e7fa51f4c28fb1af5e97f03d407a"/><file name="Product.php" hash="7403bdf627c47dd055b17f0d28b8d301"/><file name="Search.php" hash="cdb7d74270a7b5d26ede9d1567262577"/></dir><dir name="Checkout"><dir name="Address"><file name="Billing.php" hash="4615ae45f7f1495236fee6ab974d080d"/><file name="Form.php" hash="ce1d1c506fae20562ba4c8caf26be2c5"/><file name="Shipping.php" hash="75a7a08f740a3d84a911e9fcddd9009f"/></dir><dir name="Cart"><dir name="Item"><dir name="Renderer"><file name="Bundle.php" hash="1b668000cfc2ebde728cf47d3c8cf3c6"/><file name="Configurable.php" hash="f7a59b17a721a213d3d353bff28a1f6c"/><file name="Downloadable.php" hash="77f0db4579c50d314c49944cf8e82ff8"/><file name="Giftcard.php" hash="35e740c9159fb7c4d844c58ee1632a51"/><file name="Grouped.php" hash="8475905aa4b2b22781da0295812a7053"/></dir><file name="Renderer.php" hash="983ef17f535df61b104d467a4dc38e11"/></dir></dir><dir name="Onepage"><dir name="Address"><file name="Form.php" hash="d8b1bb4d210fd5063a45a4d831636ab9"/><file name="List.php" hash="ae4eee6377c2714adac0b439d6967a37"/></dir><file name="Address.php" hash="83cb2a5d9649042f4bbade46f03ffb32"/><file name="Review.php" hash="3076ca4cf6cf74382b1ea55c6958c67e"/></dir><dir name="Order"><dir name="Review"><file name="Info.php" hash="40ef23086de1c8b4ae6677b3efed13a5"/></dir><file name="Review.php" hash="8ff677073d7ed80c5b3a614f081525c3"/></dir><dir name="Payment"><dir name="Method"><dir name="Info"><dir name="Paypal"><file name="Abstract.php" hash="ab78a8bc3f721290fc0ef091dd428034"/><file name="Express.php" hash="39ca54d07363a21ebf229aaebec3b43b"/><file name="Mecl.php" hash="b9b729c007d612130a18f5dc7ba86ffc"/></dir><dir name="Pbridge"><dir name="Paypal"><file name="Direct.php" hash="11e9b36e36405e189d1c06fec7636c1f"/></dir><dir name="Paypaluk"><file name="Direct.php" hash="c38fcd3cd36895aa497f1219a6dec898"/></dir><file name="Authorizenet.php" hash="cf5211dedc06d6b04846afbb4b4d4d63"/><file name="Verisign.php" hash="60625366e5f209b1961c76e8c42ee6d8"/></dir><file name="Authorizenet.php" hash="e49ef865c9f3b91d6ad8c49520e4730c"/><file name="Ccsave.php" hash="402de4bc500ec54bcba710ff056d7466"/><file name="Checkmo.php" hash="f7972790bc528511b022a2301dbfddc8"/><file name="Free.php" hash="034edad300ff336fd44e38eeef1603b5"/><file name="Purchaseorder.php" hash="70cc06eaeda3046c298377763b657524"/></dir><dir name="Paypal"><file name="Direct.php" hash="05c0d9c1b3d8f57517b884840df0e3bb"/><file name="Payflow.php" hash="6cb58928782e3216e6f497cb26d2cd15"/></dir><dir name="Pbridge"><file name="Abstract.php" hash="dbb02cdcb87999369b4a1943b6bc937b"/><file name="Authorizenet.php" hash="162304f1a2fcfb2bc9c92dc237609c7e"/><file name="Paypal.php" hash="696dc7a3f6c2ae3dbfeed07d202950b8"/><file name="Paypaluk.php" hash="0a536fb05595ca453f61206460290673"/><file name="Verisign.php" hash="ac966ac970a2682f5a2e6550b38234b4"/></dir><file name="Authorizenet.php" hash="b5759b2cc22e8a3af770d30ab2a5e4a5"/><file name="Ccsave.php" hash="390cf89e313fe26c3c2b233f8e05a5b6"/><file name="Checkmo.php" hash="58f6daa861715458e1cfcb78367c9058"/><file name="List.php" hash="6d31e0b5c7e92fcc82d7328877916c3c"/><file name="ListApi23.php" hash="2b7eb89ac81b6eee8cee82f642a5fd4a"/><file name="Purchaseorder.php" hash="69d66e0bc581777757fcf21eb7c83fe5"/></dir></dir><dir name="Pbridge"><file name="Result.php" hash="36e50da241533ff7b6a1723f9380955c"/></dir><dir name="Shipping"><dir name="Method"><file name="Available.php" hash="df8fc796cd338f84b5ec311388fb8427"/><file name="AvailableList.php" hash="5b13a94645e63980e3d63bb2a9111fbd"/><file name="Avaliable.php" hash="3deb4bd60e6a67e0c2a2ad34b71acb73"/></dir></dir><file name="Agreements.php" hash="fb12f4f1860377603dfaf3e8ea77800c"/></dir><dir name="Cms"><file name="Page.php" hash="c313dfacd7ec573fd368dd16f6b27e77"/></dir><dir name="Customer"><dir name="Address"><file name="Form.php" hash="ce581a5ca20c6f60a546f705a74f71eb"/><file name="List.php" hash="1038364f6c300d3eb8edccc87df1692a"/></dir><dir name="Form"><dir name="Renderer"><file name="Boolean.php" hash="97984783ca2e5725e0ee874a79b5d494"/><file name="Date.php" hash="95d6834bce7d72be7963bfea8bd0abae"/><file name="File.php" hash="38fca3a34090531ab380f6de0293407e"/><file name="Image.php" hash="b08fd3111a864ae9c8d968060796d83c"/><file name="Multiline.php" hash="39e37db8c8cf4aa12ef1f01c6922a315"/><file name="Multiselect.php" hash="42593dfde88fccbef918f3fbc251857b"/><file name="Select.php" hash="b0f2ebeef7c9eb0f5497ceea29f41500"/><file name="Text.php" hash="dc042eb425257b775258408cde5dbe67"/><file name="Textarea.php" hash="08d59b7ee634b548833a6ba3db6e10ad"/></dir></dir><dir name="Order"><dir name="Item"><dir name="Renderer"><file name="Bundle.php" hash="827740726bdac53f90bbe3fdf577681c"/><file name="Default.php" hash="c189184e6177add4394c3e3cbc685445"/><file name="Downloadable.php" hash="fa0ee48bcf21c234986fac7f0dfd7b86"/><file name="Giftcard.php" hash="1e1541616acf5c5d96e61e83a3e795e7"/><file name="Grouped.php" hash="ac2e1bbd54c002e41f545c077e46dc97"/></dir></dir><dir name="Totals"><dir name="Customerbalance"><file name="Refunded.php" hash="c3d5a807fac5b1eaac8c2800b3247346"/></dir><file name="Customerbalance.php" hash="a8a415eda418b5169d443ca69c4c511e"/><file name="Giftcards.php" hash="cd895470473384667f393ece7b159771"/><file name="Tax.php" hash="c65c42b1d55aba00d419a48496d69a00"/></dir><file name="Details.php" hash="c95e47526df1095c14389ce34069b9e2"/><file name="Items.php" hash="92a3776111ec3bd69d1d805549c5ff67"/><file name="List.php" hash="f1833dee63ca0ae6530fcd38f6dbbecf"/><file name="Totals.php" hash="3778e19e0ef18d36cdfbc590d45e3236"/></dir><file name="Downloads.php" hash="42fc55769c91d0bf18891fc2b1745811"/><file name="Form.php" hash="53b66473c6ebddc118ee386960aaef07"/><file name="GiftcardCheck.php" hash="8d9e4127a7d7345664e4807793132516"/><file name="Storecredit.php" hash="b8f617dc8ec212e7d669f7b81c39d961"/></dir><dir name="Review"><file name="Form.php" hash="c16f66092dd8e7c87644da96dd739e51"/></dir><file name="Cart.php" hash="617f01c461fbe3e25c8a08a6391dd718"/><file name="Catalog.php" hash="76f1376986a10ebecdd986def8009f2e"/><file name="Configuration.php" hash="8a160440812ebb065f4bf49642a592ac"/><file name="Home.php" hash="5e6219acf2a5d005fa99a168b257a0d5"/><file name="Homebanners.php" hash="072ca68094e89fcba75bd66f8838b57c"/><file name="Localization.php" hash="6477c7bacb2aa62f88ae9074e2f8b4ef"/><file name="ShoppingCart.php" hash="7c09d6e398f0f0d6e1474e0202198955"/><file name="Wishlist.php" hash="1549defc8b6f9e387b06f3913e2fc463"/></dir><dir name="Controller"><file name="Action.php" hash="3e2e8e918d3e7065afda31c0bfc1eefe"/><file name="AdminAction.php" hash="628c81281f11b4c2eb1464755a80922a"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Admin"><file name="ApplicationController.php" hash="1c7325f6cdf42516f2f628a7df4007c1"/></dir><dir name="Connect"><file name="ConfigController.php" hash="eeea12ce5cff984a5495eabafe4c9a41"/><file name="DashboardController.php" hash="e94b99a018acfa0f396e19ea5e6fb8ae"/><file name="UserController.php" hash="ce81c0c544c9c50d99aef7dc35d23eb9"/></dir><file name="MobileController.php" hash="6f05abc8564ee04cae1d1a758536248e"/></dir><dir name="Paypal"><file name="MeclController.php" hash="dfc6f6694c5aa88968b422ebd15c7867"/><file name="MepController.php" hash="78fe71caf7e3e363cd8f5813850700d9"/></dir><file name="CartController.php" hash="e6b8306d893d5acdae12650d2afb71c6"/><file name="CatalogController.php" hash="ef20b50c7ba008673c5b6141e2262be9"/><file name="CheckoutController.php" hash="20d8b3f394557d1a837996187c180803"/><file name="CmsController.php" hash="97fab23c06e52fd7d6c6a2ca0ce99113"/><file name="ConfigurationController.php" hash="c91bb04de49318851c6969eb2de361cd"/><file name="CustomerController.php" hash="f8e1110a90f34c1b2a3d9211068edc58"/><file name="HomebannersController.php" hash="8d458c7ae50133f57fd44f3ad92f30f4"/><file name="IndexController.php" hash="5aa7a5b60904e3e693bc43285a6b6b5b"/><file name="LocalizationController.php" hash="4b268a95fd62957a4e73b68af36765a0"/><file name="PbridgeController.php" hash="0b9576db18d870416e3a4b25b80c625a"/><file name="ReviewController.php" hash="bfd0de81d2f10e13749966248149968a"/><file name="WishlistController.php" hash="66fe0ceccfa8debd45c9e7ae1b6b9309"/></dir><dir name="etc"><dir name="themes"><file name="custom.xml" hash="cba253341e035e5892cc3ed577fae710"/><file name="default.xml" hash="7a23e5840bd5a7a1f3cf4b9d16c30d63"/><file name="funk_leaf.xml" hash="d143fb6570214bdf5489e5f53770eded"/><file name="hot_red.xml" hash="f6480993958f16e4206048172985ca06"/><file name="sky_blue.xml" hash="cb128be3f0ef9088b23d3947daf29cf8"/></dir><file name="adminhtml.xml" hash="37d58188b6bbaff839b625f340bc4871"/><file name="config.xml" hash="23f2a23b89643a303fab55235563450f"/><file name="system.xml" hash="759fbe862cf96d79eca093de0dd68320"/></dir><dir name="Helper"><dir name="Adminhtml"><dir name="Dashboard"><file name="Order.php" hash="e4d6074df05a8c625117f2808b006185"/></dir></dir><dir name="Catalog"><dir name="Category"><file name="Image.php" hash="d213940270e8ade95a69443a3ca6a261"/></dir><dir name="Product"><file name="Image.php" hash="ffdc43c2fb53414ef96fc6ab966907bb"/></dir></dir><dir name="Customer"><dir name="Form"><file name="Renderer.php" hash="07daa66e7bd0abd3f1ff09350f792e60"/></dir><file name="Order.php" hash="1e63498d476648e5b33afe6c388e2119"/></dir><dir name="Device"><file name="Abstract.php" hash="93ea7193f4706d820f24f384a193900d"/></dir><file name="AdminApplication.php" hash="e19120f445861e2c6e51ab03028d8be4"/><file name="Android.php" hash="5d2514483739f89a27235afc7b9fea38"/><file name="Data.php" hash="b31ff5f2887e132841c19a2a366a82dd"/><file name="Image.php" hash="4777ecc52429772bb4265658fd74c9c9"/><file name="Ipad.php" hash="f6092a7251429298cf6f215f58f5eee0"/><file name="Iphone.php" hash="f85ee452f1eaa4a0c5dbc1bd07d80f2a"/><file name="Payment.php" hash="5b54eccc95ea5c57d8c9ef5d934bc094"/><file name="Theme.php" hash="419408f4180aeeab72a82229adcea1d2"/><file name="Translate.php" hash="fbc31e8be6b2f9d17595a55cee1946a4"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="Search"><file name="Catalog.php" hash="b3d65a22980adadbe77dbf23c726b2ed"/><file name="Category.php" hash="4e473cd813eb955c82477c6edf72e605"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Currency"><file name="Default.php" hash="6c99a20069f641856d5bf65853488907"/></dir><file name="Baseurl.php" hash="5e015aa79db0e904d816064bc242147f"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="Media"><file name="Config.php" hash="fd88aeb90a45d8c0c6392cf5f8f70dc8"/></dir><file name="Image.php" hash="fc5086acd0bef36eceb2bdf6e035a998"/></dir></dir><dir name="Corefix"><dir name="Checkout"><dir name="Type"><file name="Onepage.php" hash="bda31415e3f2dc31e41a4f3ba0ac0bc8"/></dir><file name="Session.php" hash="741c09fdbf105ec0fce818b6fac05eed"/></dir><dir name="Sales"><file name="Quote.php" hash="941ef4c3d2af0c97edb76c7bd20d4a60"/></dir></dir><dir name="Device"><file name="Abstract.php" hash="b651e9f00fdf0fd73e95597c3c90bbc2"/><file name="Android.php" hash="edd798c7b7451ca0eacfcdeebb87f143"/><file name="Ipad.php" hash="98094893388d88c085e2a09e9f115cee"/><file name="Iphone.php" hash="97fe91f028b1887c9762ff9b9c8e4eee"/></dir><dir name="ImageLimits"><file name="Abstract.php" hash="031b93b3a6be36504dbdfcd2b42037e6"/></dir><dir name="Input"><dir name="Filter"><file name="MaliciousCode.php" hash="d5d500781af7b07e11baf5cbef0eb0ce"/></dir></dir><dir name="Mysql4"><dir name="Application"><file name="Collection.php" hash="22fbd44c97d1341eec2316d88cdd615e"/></dir><dir name="CategorySearch"><file name="Collection.php" hash="5c4024edb8005637be5b05bf745dc0b4"/></dir><dir name="Cms"><dir name="Page"><file name="Collection.php" hash="87d245dcf99541c3f87f9bf1e8114307"/></dir></dir><dir name="ConfigData"><file name="Collection.php" hash="daa0613586622c3cdd862f89c5cf6c32"/></dir><dir name="Filter"><file name="Collection.php" hash="3b820fa4fc65de422b40b90479ddd977"/></dir><dir name="History"><file name="Collection.php" hash="ac16db40a3f709981a0225bdd23badb9"/></dir><dir name="Images"><file name="Collection.php" hash="b600ff4516ca6d4d3c261f214c7ee8ae"/></dir><dir name="Queue"><file name="Collection.php" hash="5d975b1556e1f692e3e3ee8d4c3ae400"/></dir><dir name="Template"><file name="Collection.php" hash="b9937ca4d53b92e3a40a8e21bfd19a00"/></dir><file name="Application.php" hash="1cdcd21de7029fb1465bca854950f493"/><file name="ConfigData.php" hash="336e3efe5a1b04350d4c7ca0f73326b9"/><file name="History.php" hash="b8265853f335e44fba51ea1fbc7e7d18"/><file name="Images.php" hash="0af2c93d8000f41dc27df41d3064c114"/><file name="Queue.php" hash="5a8fc030e809b0382f5c016a147d577f"/><file name="Setup.php" hash="779fbf35b0332d076c940013fd480777"/><file name="Template.php" hash="7aa204a046c07ad13ba86e6ef2405bae"/></dir><dir name="Payment"><dir name="Method"><dir name="Paypal"><file name="Config.php" hash="5c3c65374748273093bab7d4bfb012a9"/><file name="Mecl.php" hash="75e1906def3ddcc85b95b1129c8ef5f4"/><file name="Mep.php" hash="ce4386c3e4220c6c3fe7143763468a50"/></dir></dir></dir><dir name="Paypal"><dir name="Mecl"><file name="Checkout.php" hash="4d8f4d3a4c6f3976031fdaa2f9b8611b"/></dir><dir name="Mep"><file name="Checkout.php" hash="1420f7b91a6eb90bb58b3541f82e60d6"/></dir></dir><dir name="Preview"><file name="Abstract.php" hash="95ae2224861c47cae17d286ab0b59444"/><file name="Android.php" hash="a58af778ff2baeabc8318c299fd9af51"/><file name="Ipad.php" hash="ae6aa389e953a9b2e307eab098693644"/><file name="Iphone.php" hash="199a076c592ce599b38049dc9b12d8de"/></dir><dir name="Resource"><dir name="Application"><file name="Collection.php" hash="4e6343b15bef0d8d03ff812534d6b0a0"/></dir><dir name="CategorySearch"><file name="Collection.php" hash="ec6eed47c5ef234e596baf7b361e2049"/></dir><dir name="Cms"><dir name="Page"><file name="Collection.php" hash="0e6f862fc1bf51a0073552e4ff9f12af"/></dir></dir><dir name="ConfigData"><file name="Collection.php" hash="f6e504022bfdfda1a0c930837533076b"/></dir><dir name="Filter"><file name="Collection.php" hash="501f8d89767152a3132c083b2bae3d89"/></dir><dir name="History"><file name="Collection.php" hash="e7d5df7e7c2198cb618c0facfdc603cd"/></dir><dir name="Images"><file name="Collection.php" hash="ffccb03fe49e9a1a49d96cca0aca162d"/></dir><dir name="Queue"><file name="Collection.php" hash="bb08b05a400392e55e396aa15ab8d360"/></dir><dir name="Template"><file name="Collection.php" hash="8e316fd73d5c981985c4d37f1b4b1d86"/></dir><file name="Application.php" hash="fd8a5fd78032e1e926bb97ebf36b707b"/><file name="ConfigData.php" hash="9fbcd1f9158db7f9e78b1585ba524b18"/><file name="History.php" hash="1525ac1b1420f73c6602cc19b576d78c"/><file name="Images.php" hash="1304f72eabcc19ed0f1c0d81dd8443c1"/><file name="Queue.php" hash="0d5448e714caa4cb13963cda2cdcf81a"/><file name="Setup.php" hash="b280e933cf9eda7846adc5fed5d72bf9"/><file name="Template.php" hash="8645648b26fdbed4822185a5cc532bd4"/></dir><dir name="Simplexml"><dir name="Form"><dir name="Element"><dir name="Renderer"><file name="Interface.php" hash="9b314b65fe1eeb81ccfc6ed6047c8e5e"/></dir><dir name="Validator"><file name="Abstract.php" hash="7bfd186b5448c207c63568d87c999617"/><file name="Rule.php" hash="c632915311d7f0913ef76b1d40fac395"/></dir><file name="Abstract.php" hash="cbada33ebe475c1482efe60d6cf9f6c5"/><file name="Checkbox.php" hash="9de46a951f58eaf77328589b91da2fef"/><file name="Collection.php" hash="7ee2575d3dfd6800da0df80bfeab55f5"/><file name="CountryListSelect.php" hash="c04b8df868e75fe5bef3b1195780391e"/><file name="Custom.php" hash="02b868b0885671ec31a06c62121275e2"/><file name="Date.php" hash="da33febe93bc5e79ee83c95b50fdc374"/><file name="Email.php" hash="5e75b3d6767a644b1026aa72cbc02d2a"/><file name="Fieldset.php" hash="772ba5340959516771edc4b1281cfb01"/><file name="File.php" hash="7adf9f3573740cbc69f0977f08bc062d"/><file name="Image.php" hash="4a249c60bfa12ecbffee2ea37f1ce7e1"/><file name="Multiline.php" hash="c04d28d557366d1d48034d5df57d913a"/><file name="Multiselect.php" hash="3566643c9295cc7ad0d7f84180bc1970"/><file name="Password.php" hash="7493a4ff4e57ae63c23fa06b49fd69a6"/><file name="Select.php" hash="d1d10f3482a819d281f8d7f30071f833"/><file name="Text.php" hash="b4ca84ab3a7848c9b711487b418c9d89"/><file name="Textarea.php" hash="e82df346b8046ae24a8efe23ea965069"/><file name="Validator.php" hash="00870fbba161e9a2d49a69d4f3229d1d"/></dir><file name="Abstract.php" hash="6919f553820cdc5f96667e0ec83d66f4"/></dir><dir name="Message"><file name="Abstract.php" hash="d84f4a0db726e3dd2bd3800c6d619888"/><file name="Error.php" hash="b8022e8e3a75cf0d518ceb98297bdaca"/><file name="Success.php" hash="416c64d2a613c3e4ca7b2a95e0ac6635"/></dir><file name="Element.php" hash="ce30e4ec6087bfdb7041922034de8481"/><file name="Form.php" hash="a9771b8058522d208e0c834e1681cabe"/><file name="Message.php" hash="d74c7ab082ec225043fe3d8eb69914bb"/></dir><file name="AdminApplication.php" hash="ec9397fee3ba11e5adbff6772cdd0b3b"/><file name="Application.php" hash="b2163019f3a6b42d022b7ea63250ae50"/><file name="ConfigData.php" hash="b321533eb035cff3c5f3656c1fbd51d5"/><file name="Configuration.php" hash="7de76ee60cfe4b891a2ae089615e4f4e"/><file name="History.php" hash="824e1a700cf1f4ae3b5c7e1b6950686e"/><file name="ImageAction.php" hash="e7938376838177879e465a3b6cf8e76b"/><file name="ImageLimits.php" hash="3ea1ddd0abcd04b9c02aa711d4fca44e"/><file name="Images.php" hash="dadb9fe9cb5a88da750108a6f5bc7643"/><file name="Observer.php" hash="7c44b84c94f2e3b30e0cd84d82e10494"/><file name="Queue.php" hash="d7ace4b050a353b9dccc76c8489c0d88"/><file name="Tabs.php" hash="2b6ea4c0c21dc059990aa2216172412d"/><file name="Template.php" hash="042438993d8155852d741f0febe16dbb"/><file name="Theme.php" hash="368f7c0a13491d939b8e6bf55d01b61a"/></dir><dir name="sql"><dir name="xmlconnect_setup"><file name="mysql4-data-upgrade-1.4.0.13-1.4.0.14.php" hash="0ad84adbf29371e0a7b96fb3e1da2caf"/><file name="mysql4-data-upgrade-1.5.9.9-1.6.0.0.php" hash="9fd3a52a4f03c4ad8fbad031f6745c4a"/><file name="mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php" hash="69dd77f991561a9e5ca78bb5317b7df5"/><file name="mysql4-install-1.4.0.8.php" hash="d722f3f741af029773ebaf514c522b0f"/><file name="mysql4-upgrade-1.4.0.8-1.4.0.9.php" hash="7f6bc966e741f00c44919aa6d4307b8c"/><file name="mysql4-upgrade-1.4.0.9-1.4.0.10.php" hash="b7fec601f2bf620e60c7284c2cf6634e"/><file name="mysql4-upgrade-1.4.0.10-1.4.0.11.php" hash="cf2afadfee0b21d1c2d02071303edfc1"/><file name="mysql4-upgrade-1.4.0.11-1.4.0.12.php" hash="a1333a0c415cbc398cdd0671ab539102"/><file name="mysql4-upgrade-1.4.0.12-1.4.0.13.php" hash="a07f66c79bb1df1208c9000c3496ada1"/><file name="mysql4-upgrade-1.4.0.13-1.4.0.14.php" hash="3852cdcfa482f19981a2e8e1092909bf"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="7f582854960b6c46fc8c5cb694150e97"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="8edcc9324df055ff544b9abc1744031c"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_XmlConnect.xml" hash="f57b14eccad90152c221e4f090a8801b"/></dir></target></contents>
17
  <compatible/>
18
- <dependencies><required><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.4.2.0</min><max>1.5.0.0</max></package></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Magento_Mobile</name>
4
+ <version>1.5.0.0.23.0</version>
5
  <stability>stable</stability>
6
  <license>mixed</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Magento Mobile Xml Interface</summary>
10
  <description>An integration magento with mobile applications (e.g. iPhone, Android, iPad)</description>
11
+ <notes>1.5.0.0.23.0 version of package
12
  internal svn revision #3cd616975d5927903d4f34bde0d9e5e2e727e9ba</notes>
13
  <authors><author><name>Magento Core Team</name><user>auto-converted</user><email>core@magentocommerce.com</email></author></authors>
14
  <date>2012-05-31</date>
15
+ <time>14:58:25</time>
16
+ <contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="xmlconnect"><dir name="design_default"><file name="accordion_open.png" hash="4c89d903ebbc61ee295ef64a60724b10"/><file name="accordion_open_android.png" hash="7ef2f1d193990c3f4c2c90aae9ab3281"/><file name="accordion_open_android_l.png" hash="bc27688afbfd866c618477ea2c7bf0ee"/><file name="accordion_open_android_p.png" hash="2e4549cba575c12ef2a39c12e9ffe173"/><file name="accordion_open_ipad_l.png" hash="dcdda97da6556393b972d6dae8d6bac5"/><file name="accordion_open_ipad_p.png" hash="55cca08a0ab79047961858789ff8c3a7"/><file name="banner_1_2.png" hash="0637d31df6b5a434c9a332ee46122ef4"/><file name="banner_android.png" hash="02695661b8e50e1a001c3369622f322f"/><file name="banner_ipad.png" hash="c1d59a6ec67da1bb76c5142453da7acf"/><file name="banner_ipad_l.png" hash="04e850d481a9ae902f33fd8c1f89cbf0"/><file name="smallIcon_1_6.png" hash="c1ce9e289eaf2c0504d502928693bd89"/></dir><dir name="mobile_preview"><dir name="android"><file name="background_home_landscape.jpg" hash="1f79a1f42ca4e2cf6010ab6c3ef66aa4"/><file name="background_portrait.jpg" hash="197b15e6455ad1a85e1bad6595371fa3"/><file name="bg_button_up.gif" hash="204f590a88933c930b7fc92963accfab"/><file name="bg_catalog_filters.png" hash="7464191ebaf576b73a3c021eb1cfcc25"/><file name="bg_catalog_filters_shadow.png" hash="5021ad60917190026d85fae1d33bdaa9"/><file name="bg_cat_item.png" hash="2859b45c387b66243d4af2ba973b2ae1"/><file name="bg_frame.gif" hash="7062ed9b7563fc658f49ce7cfdd34f1c"/><file name="bg_header.png" hash="d4a46c8850d1d89259921b1c28b5bce1"/><file name="bg_header_catalog.png" hash="c1080cd18a89e21da18fdc6955bf6230"/><file name="bg_header_home.png" hash="dfce0445ca7c7a45c7914a986b596ce0"/><file name="bg_home_header.png" hash="8bc1887a0c5760cc47b77b8a7a320426"/><file name="bg_logo.png" hash="02695661b8e50e1a001c3369622f322f"/><file name="bg_page.png" hash="d65f1d123655c2eaf3bb4a1e6035a08d"/><file name="bg_star.png" hash="fc6de6c4e0ed3478b8840e1ab81da725"/><file name="bg_star_empty.png" hash="3f0421fb8c8f6c4be6ca501168a881e8"/><file name="bg_status_bar.png" hash="52b41106451ac34672f82338bbc5370c"/><file name="ico_account.png" hash="c1fd338c74fcf483155acbd37c430807"/><file name="ico_home.png" hash="2de37f640463b354d68945320bfe3e4f"/><file name="ico_search.png" hash="8b0dd17a3e9c3328e66204fe379c66aa"/><file name="product_image.png" hash="dd975b128ba303e0ae2adc9772e0433c"/><file name="product_image_1.jpg" hash="8994979d4dcc1f339c73cd1f44398a7d"/><file name="product_image_2.jpg" hash="26d6599bdb35d80b25a1e903b40cfa19"/><file name="product_image_3.jpg" hash="d7c6d05196a84341afe0025d01b9dc61"/><file name="product_image_4.jpg" hash="2a88ead3dbbeff1d40168db692841f2f"/></dir><dir name="custom_icons"><file name="account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="actionsBg.jpg" hash="ee3db742cbec9a436ba46118c8a01303"/><file name="addToCart.png" hash="e33876648546e99d875ca92bd2cd78e9"/><file name="addToWishlist.png" hash="1018602b7c5e0e11f0427ace96fd7d52"/><file name="background.gif" hash="bd92833eb2eb32e4a0282cea153ac13f"/><file name="buttons.gif" hash="0cd19a9d9178976906161ea100cba958"/><file name="cart.png" hash="815b4c64fae21b4c162525ece76dc44d"/><file name="home.png" hash="9e473791b022b7c2dfc7d29b1b6de887"/><file name="image-bg.png" hash="14bde5cf8b00dc5f6c60e52a0fa964dc"/><file name="logo-small.png" hash="9b3477a4552bcb878b4943aae5351622"/><file name="rowBgIcon.gif" hash="9ee89b961ae2bb047672ba5d2d2677c6"/><file name="search.png" hash="10bfa7ec3361ce7cbcc5d25087f181eb"/><file name="shop.png" hash="e6639a9fdc143363da82a7d78e126f1c"/><file name="star-active.png" hash="d4ab959a92bda610527a3e3942c4c0b0"/><file name="star-inactive.png" hash="f7fb99710be4c03ac23b1206f20e761d"/><file name="tellAFriend.png" hash="46f8ef48b29f245977d66d9312d87e70"/><file name="viewDetails.png" hash="9bacc63bcc483d3db5614a026d9391f6"/><file name="viewGallery.png" hash="304f3d03949d07055bc056359fe17763"/></dir><dir name="gradients"><file name="footer.png" hash="31a2feed50ef9c8637b412c4211f8300"/><file name="header.png" hash="5386da930a944cd75562216249cce08a"/><file name="header2.png" hash="ad5a2dc6ec93914e925cfe2d43fb30a2"/><file name="header3.png" hash="920ad8c6903e90323a57fb02dca37280"/><file name="item-bg.png" hash="a14886d1f9e14284ac6b4f1b61e68646"/><file name="sort-bg.png" hash="b8053bb772e849909e5b87e4fd1ebbe4"/></dir><dir name="icons"><file name="account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="cart.png" hash="815b4c64fae21b4c162525ece76dc44d"/><file name="home.png" hash="9e473791b022b7c2dfc7d29b1b6de887"/><file name="more.png" hash="f3662ae29923b87eba3a729192aa3df3"/><file name="page.png" hash="2291d77f21de042040bc0864be40138b"/><file name="search.png" hash="10bfa7ec3361ce7cbcc5d25087f181eb"/><file name="shop.png" hash="e6639a9fdc143363da82a7d78e126f1c"/></dir><dir name="ipad"><file name="background_home_landscape.jpg" hash="9e3ef117985113b804531142d539b60a"/><file name="background_portrait.jpg" hash="bdf9e034fd30b923086e6c622ea10451"/><file name="banner_image.png" hash="693bb9d118155a146b21ce9fcfba08da"/><file name="banner_image_l.png" hash="a070a40d57610b5cc7160fe894482a1c"/><file name="bg_catalog_header_hor.png" hash="f61a67aa288e1b8a8df7b4d4527c662e"/><file name="bg_content.jpg" hash="70ddfc8959d878d1231dc7cbee4a063c"/><file name="bg_filters_buttons.png" hash="02fcb0ed7a7268e9f64ebaf06235bc09"/><file name="bg_filters_tooltip.png" hash="3b05ca6e585acd3d766be01eeaa23d47"/><file name="bg_filters_wrap.png" hash="31288784fe95c67de9b45b44458b4155"/><file name="bg_filter_button.png" hash="728f1cd358446881ffd863eff12204a1"/><file name="bg_header.png" hash="e2cf5a575a27e6e4533e3c85e3472a82"/><file name="bg_home_content.jpg" hash="1d55a198279e4f2b163c98c18f699646"/><file name="bg_home_header.png" hash="00f2fbf96d2b915dcbcd921b0301ef3f"/><file name="bg_home_header_hor.png" hash="9bfef728ece003d5b3433d2623ea168c"/><file name="bg_home_products.png" hash="ac6a8a79b959a0c8298b1f607c0f0af8"/><file name="bg_home_shadow.png" hash="c54b071ca3e97a6ee67588ef74b7b44e"/><file name="bg_home_shadow_hor.png" hash="0d21a99c5c749d0e5070e3585ff4a23f"/><file name="bg_product_image.png" hash="4da74325c1a4ee1ca19b414e5d590f75"/><file name="bg_search.png" hash="6ee08d05d0c4ef9ed64b9914b821f408"/><file name="bg_sections.jpg" hash="0ee90005663aced09a9ce6385bdbce2c"/><file name="bg_status_bar.png" hash="17124d9d392bb8e37b202c80a595df54"/><file name="bg_status_bar_hor.png" hash="bd4a9f11ecb1c896145267731d8a951d"/><file name="i_cart.png" hash="1bbe0a0e54eed5bb14b9bfcce83da758"/><file name="i_info.png" hash="3f0fda8b294b67bf698badbcaa99150b"/><file name="i_login.png" hash="deb4089bdc61582c78c90ef192d577e8"/><file name="i_remove.png" hash="4923eb5e76b3c6ba6df5c667db816a0c"/><file name="logo.png" hash="49c19f59b459b6c0b3b99daa3fe7f932"/><file name="logo_big.png" hash="693bb9d118155a146b21ce9fcfba08da"/><file name="product_image.jpg" hash="2bb6c69129bcb18dc93e9f48605647c6"/><file name="sections_arrow.png" hash="7db7144083a31882e8a62cb9579f478f"/><file name="stars.png" hash="70d38cd9883d70e4f6b21ac4874b9868"/></dir><dir name="slider"><file name="actionsBg.jpg" hash="ee3db742cbec9a436ba46118c8a01303"/><file name="addToCart.png" hash="2a146be4bc63713df19cc353e030d44f"/><file name="addToWishlist.png" hash="9b23a4e0d9acfc79f314e9082f14c4de"/><file name="tellAFriend.png" hash="b7600fa2ae52bdb1d6bb86fe4d9f1773"/><file name="viewDetails.png" hash="90cf37c6dbbee1861350b4c05469e3ae"/><file name="viewGallery.png" hash="304f3d03949d07055bc056359fe17763"/></dir><dir name="sort_buttons"><file name="bg_button.png" hash="87d0f1b123f01c3aea3cb8a2b146306e"/><file name="buttons.gif" hash="2f14f1a3f0fb38790779c992a58654ae"/><file name="buttons.png" hash="b4a3f17370e03bf5d2a5cdf7800c25a7"/><file name="button_up.gif" hash="7ad527f99b9975d5634fb2d5cc99e6b3"/><file name="center-active.png" hash="5903988cd458cd794f23a212d51aa725"/><file name="center-inactive.png" hash="135b46aaa5c3b131a5a7e9c45c004e06"/><file name="filters.png" hash="3837ab6fcfe959833dd998533db1ca7f"/><file name="left-active.png" hash="86e94441b96a0d27d0b0a7e5108f86ed"/><file name="left-inactive.png" hash="0ddcb75aa9971cca39a5a65b4bdff8c4"/><file name="right-active.png" hash="320740ff608187301b06a96eab2f9e8e"/><file name="right-inactive.png" hash="cac4b39ab380353ffd5fdbcedb6e0a0a"/></dir><file name="1.gif" hash="817fd84187db3eee00799b0acf316457"/><file name="2.gif" hash="1a842d8f3ac25cfcdeab6c86dd8fea89"/><file name="3.gif" hash="207cd55e968c284bd52c86efdcdda1c7"/><file name="actionsBackground.png" hash="11faa8baee72f3e6a9a02a83915c8658"/><file name="actionsBg.png" hash="9acccd1980f17006942d74a718ebd7da"/><file name="arrow.png" hash="837259a7c365e46034dca728bffe9070"/><file name="background.gif" hash="bd92833eb2eb32e4a0282cea153ac13f"/><file name="background.png" hash="3717f4b4ba725701e2a0604129a3a815"/><file name="banner.png" hash="0637d31df6b5a434c9a332ee46122ef4"/><file name="btn-l.png" hash="92b2454528e9d39119038777cf53329c"/><file name="btn-r.png" hash="8c6aa9fd9203bc10822e0505f11e0c4d"/><file name="circle.png" hash="f4c116cb0554bf936d3b9ee38b7f3d1f"/><file name="grid.png" hash="23faa3f5572cdeb597c2bceedd93a7f8"/><file name="image-bg.png" hash="a588b9cced95a25fc18e28c775d9a001"/><file name="info.png" hash="3f0d2ed85b81e8251f294457c6bfa404"/><file name="lightStar.png" hash="b5dc40d5b793dae6a069357f49cccc24"/><file name="lightStar2.png" hash="75928926a6112540c9cb073157cb7d95"/><file name="lines-h.png" hash="ea3d95812c9838affc6df2f3a3cb1977"/><file name="lines-v.png" hash="9e3ffee29ba28477d50da9642019bc0a"/><file name="login-btn-left-alt.png" hash="71bb6c7d24252aace27bee711d7616f4"/><file name="login-btn-left.png" hash="cbbf9afc6e9fc433f57270e88b63f351"/><file name="login-btn-right.png" hash="438fcc598d012bf6d33184e95accfd24"/><file name="login-btn.png" hash="051ee2c1a8ce3f7b8de3293cd2e2ed85"/><file name="logo-small.png" hash="9b3477a4552bcb878b4943aae5351622"/><file name="logo_25.png" hash="ba41ed568d916175c32803b614442447"/><file name="men.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="mm-frame.gif" hash="eebf30806f1dbf2118e7ec39a016c86d"/><file name="mobile-catalog.css" hash="80cbd74984354df2d86f4ad68b9123a3"/><file name="mobile-home.css" hash="b57641c73c4eae08e0a02cd7291d9465"/><file name="rowBgIcon.gif" hash="9ee89b961ae2bb047672ba5d2d2677c6"/><file name="slider.gif" hash="c6b87bf15b85b18c0515e2cbefaabe60"/><file name="smallIcon.png" hash="e76d2a6364042f41b3f35fc8cdc9c0ee"/><file name="star-active.png" hash="d4ab959a92bda610527a3e3942c4c0b0"/><file name="star-inactive.png" hash="f7fb99710be4c03ac23b1206f20e761d"/><file name="t-shirt.gif" hash="7505efdaabf13c4f8e26f7cfe15c8c96"/><file name="t-shirt.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="women.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/><file name="youth.png" hash="46d7d1773118ef0a27353e8a9f6719fe"/></dir><file name="btn_edit.gif" hash="e7ecc9fea5c3813957814050508507a5"/><file name="dropdown-arrow.gif" hash="332e99ca6b4d1e0d39972e04fb0b2395"/><file name="empty.png" hash="23dc9dc3c4751f83c2df7a5c42668824"/><file name="full-arrow-left.gif" hash="8ec91b60d38d1a16cba7670f2088a5c7"/><file name="full-arrow.gif" hash="36ddff0fca1c7d8900cb3633e0a30cea"/><file name="gel_green.png" hash="591959d831e8e42c9175d12a88f0bae2"/><file name="gel_red.png" hash="db442c023014df9da32b84bc1bb5a39f"/><file name="l-arrow.gif" hash="ee49f7eab64657b5131953acef0238fd"/><file name="loading.gif" hash="5d25806dac7cbee5f894b13144783866"/><file name="r-arrow.gif" hash="d0429a9781e915fc9d9ca8875c470d32"/><file name="remove.png" hash="ee9497c5f31933eaab3e9e352495ee12"/><file name="small_logo.gif" hash="d5c8be7c0f16aac2549759c0228492d6"/><file name="swatch_black.gif" hash="fd31d6a3a435c8ad1f7c43f346bb47e4"/><file name="swatch_custom.gif" hash="fb34791a48366957a141e12b563888c2"/><file name="swatch_default.gif" hash="fb34791a48366957a141e12b563888c2"/><file name="swatch_funk_leaf.gif" hash="f1d3ba87efb742b47da879a6f48909c4"/><file name="swatch_hot_red.gif" hash="d9363d45dc2993c2fdc3ea43c5b6f71c"/><file name="swatch_sky_blue.gif" hash="ded1455db119d09a3aedd7474fd1875a"/><file name="swatch_user_custom.gif" hash="a24f31421a1ff56d1be0845f9a7c7020"/><file name="switch-arrow.gif" hash="dc7243962b341f366cd072d486687e6a"/><file name="tab_account.png" hash="27101fbaa78a07426be4768acc4c53ff"/><file name="tab_account_android.png" hash="77605cbc87f75ca17e91a5393765ceb1"/><file name="tab_account_ipad.png" hash="2997de5402195d0720309b73c6446fab"/><file name="tab_cart.png" hash="e803f760ee81cb35183f1122f388b774"/><file name="tab_cart_android.png" hash="477e97f8d03ea8aa674e952709f86578"/><file name="tab_empty.png" hash="bdd4cc355566e8861b2c45424ad94516"/><file name="tab_home.png" hash="dfa104e4da74e4a55d3c98d6ee0f7122"/><file name="tab_home_active.png" hash="bba5eb9bb724c84c1ede9e6f4bec3575"/><file name="tab_home_android.png" hash="1fefc6b070cc21b31b43194a7d85f9d9"/><file name="tab_info_android.png" hash="67fc19d8d926f7aede482f5a7083fc71"/><file name="tab_more.png" hash="2803359cb3e795bf67457e727aa16020"/><file name="tab_page.png" hash="ca05dbc42f944b8d4255f6675f6dd93a"/><file name="tab_search.png" hash="2cf29dbe325558353621b4241543204f"/><file name="tab_search_android.png" hash="932c2c568872fd9e119367c887f0539a"/><file name="tab_shop.png" hash="f36be0d3d27f2b37626247d3f6a55e2a"/><file name="tab_shop_active.png" hash="de907d6a52d477d4319649f9b0e2e4aa"/><file name="tab_shop_android.png" hash="e119fcd20f8cba856d550a64d775ddbb"/><file name="tmp-icon.gif" hash="58b759aecf3bdae26d5aaff7a0be5c90"/><file name="xmlconnect_tab.png" hash="cd99a7e01a42a6c82d866f7684faeb95"/></dir></dir><dir name="xmlconnect"><dir name="fonts"><file name="android_icons-webfont.eot" hash="2fc917efbfb3c933ccfddc108ef05f33"/><file name="android_icons-webfont.svg" hash="e8cb2b5ef019bbc2885c97ed0caaf2a0"/><file name="android_icons-webfont.ttf" hash="bc567dd7a381093fbb652c58cbad9430"/><file name="android_icons-webfont.woff" hash="8310b54d55bf84a8a3f3a86c22a51aef"/><file name="stars-webfont.eot" hash="019beb4b8ec19447657cf3106138bbe3"/><file name="stars-webfont.svg" hash="20cf0312c0b951d173d4531ea18abc6f"/><file name="stars-webfont.ttf" hash="d63d95e9adaf775f410437535622bf60"/><file name="stars-webfont.woff" hash="526d9756131c94139f0f1df5272197fd"/></dir><file name="boxes.css" hash="a3648c3516608a34ee7f53e447b1d9f4"/><file name="dropdown.css" hash="e5388a1fd90df2a2e3860516adef0367"/><file name="iestyles.css" hash="3e8a316291621eee4147373bd3003eb9"/><file name="mobile-android.css" hash="c932d2898a1ffd5545cfd76699260125"/><file name="mobile-catalog.css" hash="ca7c4c2c7643ca1249e00bbd45980fd2"/><file name="mobile-home.css" hash="b10c97acf5ac07c40d1db72b9d413841"/><file name="mobile-ipad-catalog.css" hash="2b35f47bb153c659640dd37beac277f1"/><file name="mobile-ipad-home.css" hash="270c8e4c8111de6c6173f9b6883c85ec"/><file name="remove.png" hash="b4903936d44dc498d2f32b72d9161ff0"/><file name="styles.css" hash="c87a56ddc3001a2e357d648695855f5f"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="xmlconnect"><dir name="catalog"><dir name="category"><dir name="placeholder"><file name="image.jpg" hash="097ab8a3051bc037ea3de0e17f440540"/><file name="small_image.jpg" hash="f825d16f97a640453553c79c48ebaa73"/><file name="thumbnail.jpg" hash="b2b682d28a08a748a73d2cda70ab5a57"/></dir></dir></dir><file name="tab_account.png" hash="0498d73e47ed47179e5546dc15c17dc7"/><file name="tab_cart.png" hash="9055ba76e256a51d3fee53a8c41d5226"/><file name="tab_home.png" hash="07d0af93e167b9366d3d4fb3d6cdb31c"/><file name="tab_more.png" hash="b9fc21feb8d7655bc9c2985c37b0de2f"/><file name="tab_page.png" hash="ca05dbc42f944b8d4255f6675f6dd93a"/><file name="tab_search.png" hash="25e880eb2a4d06828e2e1c3f32d22400"/><file name="tab_shop.png" hash="fe602fc2e7093efef5ecc0b027a32d91"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="xmlconnect.xml" hash="67820e2adb2d74a4f0c62efc01b18ecb"/></dir><dir name="template"><dir name="xmlconnect"><dir name="edit"><dir name="tab"><dir name="design"><dir name="preview"><file name="banner_rotator.phtml" hash="89da7cb3dabb72de16c95cd5bd6cc935"/><file name="catalog_android.phtml" hash="591050ccc493b364fb895055c986cd86"/><file name="catalog_hor_ipad.phtml" hash="cc81292b0dfa7aa3e6f39f792b74b80e"/><file name="catalog_ipad.phtml" hash="8cc888f4bbae4ab9fb10f4b70e8b8515"/><file name="catalog_iphone.phtml" hash="7112c646bd841a71877eb621e68614e6"/><file name="home_android.phtml" hash="096341a4da1d21ef2c9ed3a6c054977a"/><file name="home_hor_ipad.phtml" hash="486989d25e68d88b6d4132789a14ce0a"/><file name="home_ipad.phtml" hash="93c4a6a124cfdaebde3abadb9f087bce"/><file name="home_iphone.phtml" hash="c15fdeef53ce2c1f2fdb53e5894feaae"/><file name="productinfo_iphone.phtml" hash="99c2fd2107ad06e625384b56182fd316"/><file name="tab_items_android.phtml" hash="d0b925bbc89f510aac004ffc1b33062a"/><file name="tab_items_ipad.phtml" hash="8ca8d864408bb880b6f6a9999b0e4d26"/><file name="tab_items_iphone.phtml" hash="406b98b55565fb58c1a3e3dc90922d6e"/></dir><file name="autocomplete.phtml" hash="2f7eda6609862fb56e6b2907c350eb9b"/><file name="images_android.phtml" hash="325f5377c2dc03c67fc6d8518b06f23a"/><file name="images_ipad.phtml" hash="c143fc2fffae5798c17e98b8ea95ee5d"/><file name="images_iphone.phtml" hash="662948af12653a8ae48414dfbb0e9527"/><file name="image_edit.phtml" hash="4362113375c916fd5b30956a77f5c03e"/><file name="preview_android.phtml" hash="48b6170fed054a5642dceab64deacd96"/><file name="preview_ipad.phtml" hash="29e3c769f1e9750ffdb918c38e3a340a"/><file name="preview_iphone.phtml" hash="9aa092839c3fe2f1574af8a48d5df185"/></dir><file name="content.phtml" hash="31afc11e11770c91669768b19be389d7"/><file name="design.phtml" hash="99b5d41505d1224dca21faaeb65ff5e8"/></dir></dir><dir name="form"><dir name="element"><dir name="country"><file name="androidmarket.phtml" hash="053e69572e7b8850f3f96f22c5d5f9f7"/><file name="istore.phtml" hash="275af872365061838828011b0398db02"/></dir><file name="addrow.phtml" hash="46fddf6c4b452a6c529499de2c2f1323"/><file name="app_tabs_android.phtml" hash="92df75ceecedd911eed98ae8703ac83a"/><file name="app_tabs_ipad.phtml" hash="43649f88a29fe3691e5525d5c32756fe"/><file name="app_tabs_iphone.phtml" hash="4936c1e64fe3da857b1108ab44a8598d"/><file name="themes.phtml" hash="106356a554f5a6e0910e5b35eda0323d"/></dir></dir><dir name="mobile"><file name="notification_helper.phtml" hash="2c614e7d19ed73771526f5c16319cdb3"/></dir><dir name="submission"><file name="app_icons_preview.phtml" hash="0f78504fbcd7878ab339a4cfacc6de8e"/><file name="container.phtml" hash="c576009dd87ddd55ce8b023587128806"/></dir><dir name="template"><file name="preview.phtml" hash="bd26b9a350f430e4a6905133db031bfc"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="xmlconnect.xml" hash="f166ab0a4ea2c769839410ba0ef04c40"/></dir><dir name="template"><dir name="xmlconnect"><dir name="centinel"><file name="authentication.phtml" hash="17420b60e21faff408abf1fcc8a83d31"/></dir><dir name="pbridge"><file name="result.phtml" hash="412b98ba988d6049098414f8cbce09b6"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Mage_XmlConnect.csv" hash="28ea9a9ae90f0c270f85ebdbf2b60565"/></dir></target><target name="mageweb"><dir name="js"><dir name="jscolor"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="demo.html" hash="edf71251cb2be20322d2efb00aee86a6"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="b65a1505390592ac6c0177d6b84774e0"/></dir><dir name="scriptaculous"><file name="builder.js" hash="1174f6fc34ca5d54ba10b0c719386e7c"/><file name="controls.js" hash="8c414e1787c0ac9f10b16b252361c8b2"/><file name="dragdrop.js" hash="95c24654dce8433dee51731efa7b9a04"/><file name="effects.js" hash="d795089f95a22306cca9b337c439c65a"/><file name="scriptaculous.js" hash="d59eba4e0b14b672208b0862ae1c2196"/><file name="slider.js" hash="6043f96a71d2685fecd02e2ab99e84d9"/><file name="sound.js" hash="0f0fab23fa2cb1bc7717fd2bdf45402e"/><file name="unittest.js" hash="99969698b22272f77bdf4c64586862b3"/></dir></dir></target><target name="magecore"><dir name="Mage"><dir name="XmlConnect"><dir name="Block"><dir name="Adminhtml"><dir name="Admin"><dir name="Application"><dir name="Edit"><dir name="Tab"><file name="Settings.php" hash="a8e0037e9dc768aabce0e597923e3007"/></dir><file name="Form.php" hash="476d53d53aae676d873a8e558873296f"/><file name="Tabs.php" hash="3ee5becdfd696c2f6a1853042119e190"/></dir><file name="Edit.php" hash="ad214481079e0bac647fc3aed802e035"/></dir></dir><dir name="Connect"><dir name="Dashboard"><file name="BestSellers.php" hash="f7a6937309e1e154659a1bd3a8e0024d"/><file name="Customers.php" hash="a569d57ba6946aa95dbb9709eb49061e"/><file name="GraphAmountsData.php" hash="96faf08a7ae5d64a4df65adbe172930c"/><file name="GraphDataAbstract.php" hash="3463bb1397125bb9632f77d5bcecc747"/><file name="GraphInfo.php" hash="b422503a0e5d1b0cf9814c6805570ffd"/><file name="GraphOrderData.php" hash="ee34310eb99a996fec35676c26a5eaa6"/><file name="GraphTotalsData.php" hash="2fc1cf4a9b1441dc4c66eed500c34573"/><file name="LastOrders.php" hash="33faf2a032df931fe9e05a327492843d"/><file name="LastSearchTerms.php" hash="b055315ddf33e4213b03dc38cc46e1e6"/><file name="MostViewedProducts.php" hash="a2eaa67c2a862d363a9e6c921492b3b6"/><file name="NewCustomers.php" hash="9d9d635f0250cf39f0d916f1b87742f5"/><file name="SalesInfo.php" hash="bb9152778bc63611409fd6cd95717fb1"/><file name="StoreSwitcher.php" hash="5237ff6b5d540a1bc5d61961d63cd018"/><file name="TopSearchTerms.php" hash="8353054fcb9a86b8da059d88bd8c76dd"/></dir><file name="Config.php" hash="8cf232c664c238da4a4892c254386ffd"/><file name="Dashboard.php" hash="3f8d8a18cef99e95d28410eb805ee944"/><file name="Loginform.php" hash="f72c1f3da749ec75ba524eba48012d7a"/></dir><dir name="History"><file name="Grid.php" hash="6308d26ad2e05740eb6991e3257000bb"/></dir><dir name="Mobile"><dir name="Edit"><dir name="Tab"><dir name="Design"><dir name="Accordion"><file name="Images.php" hash="c9f251ac77b9689c9c381303be8032f8"/><file name="Tabs.php" hash="caf8302b277ea18303213d43764ed28e"/><file name="Themes.php" hash="9d6dec2260396ad8798202ee1ba6eddc"/></dir><file name="Accordion.php" hash="5b545ce26cbf7452723591cd4c3d250b"/><file name="Images.php" hash="7c5737b833caf7953baf4bb7c2ff10c6"/><file name="Preview.php" hash="d4a5bccbcfc7f2885917c7082692451e"/><file name="Themes.php" hash="6ae0e49f82cc094f5dd9315887f9e14d"/></dir><dir name="Submission"><file name="History.php" hash="e48ed8d20f12e56a08beb5afcfd954b8"/></dir><file name="Cache.php" hash="607618d233c5dab9415475b4ad61bb59"/><file name="Content.php" hash="e6b0832faf44ea2389491718cabf8783"/><file name="Design.php" hash="f90d65ffa27e94916da616afc8e221f2"/><file name="Flurryanalytics.php" hash="89ad25f1adf60b1e4232ba29f7f5ad64"/><file name="General.php" hash="1c311c8ca86381df53c570870a20f259"/><file name="Notification.php" hash="beae607b96d8b6f98cd7022185cc8bdd"/><file name="Payment.php" hash="4cb1f8f6c03a1c4a649055faa1e088d5"/><file name="Settings.php" hash="e17af0c14089ec02c46c39369d35ea9f"/><file name="Social.php" hash="3657d0e59e519a23ef71b2ea892aa6c1"/></dir><file name="Form.php" hash="9e9957b476bbd1fb3952c4e4b706b2df"/><file name="Submission.php" hash="b8e1008535fe0c52ebddd0124cb1e15d"/><file name="Tabs.php" hash="b7de5cfa115506fddaf0ea05adbedca6"/></dir><dir name="Form"><dir name="Element"><file name="Addrow.php" hash="331985b65aceb180f82828d6bfda7e8f"/><file name="Color.php" hash="5b3e0678201cb7e88c8c78cd4b9b5173"/><file name="Country.php" hash="77f9bffa5f95cbb230b1e35ab463a08c"/><file name="Datetime.php" hash="1c3904734ec337c5b61bc740a2ade01c"/><file name="Font.php" hash="97fe8057781e10c299430a0cd15eb176"/><file name="Image.php" hash="9a02015de1a57559403f7dc656771ad3"/><file name="Page.php" hash="c3b1ac3639341f84ed95c5807e2188ab"/><file name="Tabs.php" hash="afb7ba2119332ac4382b6b1226d44958"/><file name="Theme.php" hash="4569541d38e137de716069f66ca93656"/></dir></dir><dir name="Grid"><dir name="Renderer"><file name="Bool.php" hash="8e9be8e177a8ea4368fe92fe0f466a60"/><file name="Type.php" hash="b6337cfe77db1a45ff431143055e405f"/></dir></dir><dir name="Preview"><file name="Content.php" hash="771869a996b1630b8bba3293eae9d768"/><file name="Tabitems.php" hash="b9e66e1c2d30c70b353fcbbddabcd13a"/></dir><dir name="Submission"><dir name="Renderer"><dir name="Country"><file name="Androidmarket.php" hash="cc5322cad4892b477d23ff8798ac885d"/><file name="Istore.php" hash="83f84cf61a3b2dab063773c57270c215"/></dir></dir><dir name="Tab"><dir name="Container"><file name="Submission.php" hash="ca8589c9acf5c370ba641cddd8a860bd"/></dir><file name="Container.php" hash="bd10d3d94dbe4d422e84be6fe2c1ace6"/></dir><file name="Form.php" hash="a1338b97c57150a7e1a3a7516b421438"/><file name="Tabs.php" hash="0e75e7c201f2639ee73618a90ea9a487"/></dir><dir name="Widget"><file name="Form.php" hash="2bd91c9af96eaf42d1484b263857772b"/></dir><file name="Edit.php" hash="ef6d5a5b9db8e01f38ed3b164bbb9258"/><file name="Grid.php" hash="8ca26959087f2a12d5f9aa3bf1fc650b"/><file name="Submission.php" hash="f15232c6891c6699dfc89b826b54c74d"/></dir><dir name="Queue"><dir name="Edit"><file name="Form.php" hash="77809e160faec639d4e570b46c85c8df"/></dir><dir name="Grid"><dir name="Renderer"><file name="Action.php" hash="2de3d991818d5add59e109ac5f0e26ba"/><file name="Application.php" hash="c563b1f5d6cb4fff511bc6cbfdcebe7c"/><file name="Id.php" hash="5a3bd6f7130ff4354884635d1246452c"/><file name="Msgtitle.php" hash="4d89f7f6a6252260f61b673c6cac1e34"/><file name="Pushtitle.php" hash="c411360431127611c84da7690b5c48c2"/><file name="Status.php" hash="78c46092eb556a263dfca7d5bc4941db"/><file name="Template.php" hash="a36ed9dcdc7f3f331452cee2bb508482"/></dir></dir><file name="Edit.php" hash="1610c2fd1b9fcf552fd0f80a0ecdd3b0"/><file name="Grid.php" hash="f34b4443bb916da032b3780834cb0b2d"/></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="f9b618292fe83e9bfc2d404b88a81036"/></dir><dir name="Grid"><dir name="Renderer"><file name="Application.php" hash="cdae7056f704834da9e400277411ac0b"/></dir></dir><dir name="Preview"><file name="Form.php" hash="99d036e0da9c43dc125b30536fb4e9d5"/></dir><file name="Edit.php" hash="9dfdaa4321d280b27236e007f92e3159"/><file name="Grid.php" hash="22f94f5d0dd944b4c78690cd04092a18"/><file name="Preview.php" hash="891acec6c53c94b2f2dbc892c9fb80dc"/></dir><file name="History.php" hash="d00a4acfccbd558e64ffe4eecb731d9a"/><file name="Mobile.php" hash="e23e9e74e7843c2fd07ab3230069c99f"/><file name="Queue.php" hash="e13f7f2fa44867d5580b7d0e38542bae"/><file name="Template.php" hash="2a577c9a452528e44f69b730cef9f9a1"/></dir><dir name="Cart"><dir name="CartTotals"><dir name="Nodes"><file name="Default.php" hash="13b937bdd961d8ebc5e5c65b985f2952"/><file name="Giftcardaccount.php" hash="fcd19d01ad211d5b4a01d58eefeb9020"/></dir><file name="Default.php" hash="b71795f830500dd143a6d508e430183f"/><file name="Grandtotal.php" hash="b59199ee6d44441e3bbd5eed1e7db5b5"/><file name="Shipping.php" hash="28c3bbe92b56d919fead660489c5891f"/><file name="Subtotal.php" hash="8d26443059e865e70076ccb5423d1312"/></dir><dir name="Item"><dir name="Renderer"><file name="Configurable.php" hash="4cd9ea96f9d65dd832cc457cf66af8df"/><file name="Grouped.php" hash="46290fe4e7338f0640022f591f0dfb25"/></dir><file name="Renderer.php" hash="4905f3e3f895df2bcee10f34fc6ce834"/></dir><dir name="Paypal"><dir name="Mecl"><file name="Details.php" hash="b9738caf96ef491a5c980febc4ed262c"/><file name="OrderDetails.php" hash="2ef0e74677fd8efc928809b335b1f7d2"/><file name="Review.php" hash="d1a828730328382d0fe331b4d794535d"/><file name="Shippingmethods.php" hash="155ce6fb2ff7cd0764e3dc19a343a9af"/></dir><dir name="Mep"><file name="Totals.php" hash="2311a96d4d3746bc2f46a458bdaaf358"/></dir></dir><file name="CartTotals.php" hash="dfaf11c9810c68d85eb707156b0a6294"/><file name="Crosssell.php" hash="5644046ee3555cdeeee472f1b753b128"/><file name="Info.php" hash="fd227e03835a46895163bda3d5f2d957"/><file name="Items.php" hash="b54b2f28b6e19702bad5fbecde46ad3a"/><file name="Totals.php" hash="249bfe08ca5de8aa8c9a199085a2fd49"/></dir><dir name="Catalog"><dir name="Category"><file name="Info.php" hash="9dd1d0109dd30edb081e8102c0edc0ab"/></dir><dir name="Product"><dir name="ItemPrice"><file name="Bundle.php" hash="ac457ee3905283123af2609e7476edc5"/><file name="Default.php" hash="47f31b8590fc9d259aab1efc8a5289e0"/><file name="Giftcard.php" hash="96397ea38700be477270ecaa435f196e"/></dir><dir name="Options"><file name="Bundle.php" hash="1ecf5d4032c9cc57bc51775e880d14af"/><file name="Configurable.php" hash="9d61eebb2f6288b49c70babe3873f68e"/><file name="Downloadable.php" hash="94525919da37103bb0f23a94f7b2543f"/><file name="Giftcard.php" hash="c93c4ff2f38a72aba417f33ab47b184d"/><file name="Grouped.php" hash="5161fb43ddb26cc9fa8b7bce48e8f2b5"/><file name="Simple.php" hash="848290eb597b773baf7232dbd3a06d5c"/><file name="Virtual.php" hash="4748e41479698b19e9532226707394cd"/></dir><dir name="Price"><file name="Bundle.php" hash="5e3a739b16134411f0258215e35fed34"/><file name="Default.php" hash="4a872c7eacca9892bd36b473a8abb2b0"/><file name="Giftcard.php" hash="d4047d0565e31a873714debe2975d416"/></dir><dir name="Review"><file name="List.php" hash="69da6bc8d8b7f24a789b68f579d467d9"/></dir><file name="Attributes.php" hash="7a8ddf4dd3bb20fa523fec37bf819172"/><file name="Gallery.php" hash="9741f5487e804e500a69235f213981a9"/><file name="ItemPrice.php" hash="56fe6c68fca2d7b4629376241550af5f"/><file name="List.php" hash="9449a5bb46e220f737bd234e9daf66eb"/><file name="Options.php" hash="bbe02280a08c24e6a73e68441e17c14b"/><file name="Price.php" hash="0d2a385ad233ddc0d8396b5ca518c1f7"/><file name="Related.php" hash="0bf2a068cafdff7bfae04c220b5ba075"/><file name="Review.php" hash="4376d0136df5f28d91e1ce79408dfb0e"/></dir><dir name="Search"><file name="Suggest.php" hash="13eb66cd0e6ce373c250f725e3aefc94"/></dir><file name="Category.php" hash="9f2cf762f4c620f0160f075784397011"/><file name="Filters.php" hash="0737e7fa51f4c28fb1af5e97f03d407a"/><file name="Product.php" hash="7403bdf627c47dd055b17f0d28b8d301"/><file name="Search.php" hash="cdb7d74270a7b5d26ede9d1567262577"/></dir><dir name="Checkout"><dir name="Address"><file name="Billing.php" hash="4615ae45f7f1495236fee6ab974d080d"/><file name="Form.php" hash="b31df337a74efb202a0bbc3fe6e92083"/><file name="Shipping.php" hash="75a7a08f740a3d84a911e9fcddd9009f"/></dir><dir name="Cart"><dir name="Item"><dir name="Renderer"><file name="Bundle.php" hash="1b668000cfc2ebde728cf47d3c8cf3c6"/><file name="Configurable.php" hash="94af5542af9ac4a63a511b8e3602eb38"/><file name="Downloadable.php" hash="77f0db4579c50d314c49944cf8e82ff8"/><file name="Giftcard.php" hash="35e740c9159fb7c4d844c58ee1632a51"/><file name="Grouped.php" hash="08d61b590ba690537c9272790ce1236c"/></dir><file name="Renderer.php" hash="983ef17f535df61b104d467a4dc38e11"/></dir></dir><dir name="Onepage"><dir name="Address"><file name="Form.php" hash="90fd9a2d6eb6845b567cea7b9dafbe75"/><file name="List.php" hash="c099e2007c0302ab29f453b074fe7da8"/></dir><file name="Address.php" hash="89b4bddb247b0e97f7ae3a85a655516c"/><file name="Review.php" hash="3076ca4cf6cf74382b1ea55c6958c67e"/></dir><dir name="Order"><dir name="Review"><file name="Info.php" hash="f03c0f02e9e1ff1e2c6f764f4df249c0"/></dir><file name="Review.php" hash="8ff677073d7ed80c5b3a614f081525c3"/></dir><dir name="Payment"><dir name="Method"><dir name="Info"><dir name="Paypal"><file name="Abstract.php" hash="f84c2b40c674478599c035e4e4a44e5c"/><file name="Express.php" hash="39ca54d07363a21ebf229aaebec3b43b"/><file name="Mecl.php" hash="b9b729c007d612130a18f5dc7ba86ffc"/></dir><dir name="Pbridge"><dir name="Paypal"><file name="Direct.php" hash="11e9b36e36405e189d1c06fec7636c1f"/></dir><dir name="Paypaluk"><file name="Direct.php" hash="c38fcd3cd36895aa497f1219a6dec898"/></dir><file name="Authorizenet.php" hash="cf5211dedc06d6b04846afbb4b4d4d63"/><file name="Verisign.php" hash="460da67badc7b7443257139dcdcc28a1"/></dir><file name="Authorizenet.php" hash="e49ef865c9f3b91d6ad8c49520e4730c"/><file name="Ccsave.php" hash="73f94999e12295f768ba5de9d0f157b7"/><file name="Checkmo.php" hash="f7972790bc528511b022a2301dbfddc8"/><file name="Free.php" hash="034edad300ff336fd44e38eeef1603b5"/><file name="Purchaseorder.php" hash="70cc06eaeda3046c298377763b657524"/></dir><dir name="Paypal"><file name="Direct.php" hash="05c0d9c1b3d8f57517b884840df0e3bb"/><file name="Payflow.php" hash="7c07f8ac14cc6a2a693971771eb0ebc0"/></dir><dir name="Pbridge"><file name="Abstract.php" hash="dbb02cdcb87999369b4a1943b6bc937b"/><file name="Authorizenet.php" hash="162304f1a2fcfb2bc9c92dc237609c7e"/><file name="Paypal.php" hash="696dc7a3f6c2ae3dbfeed07d202950b8"/><file name="Paypaluk.php" hash="0a536fb05595ca453f61206460290673"/><file name="Verisign.php" hash="ac966ac970a2682f5a2e6550b38234b4"/></dir><file name="Authorizenet.php" hash="b5759b2cc22e8a3af770d30ab2a5e4a5"/><file name="Ccsave.php" hash="cbc8ce37010a3677ec06487cc14c4c89"/><file name="Checkmo.php" hash="58f6daa861715458e1cfcb78367c9058"/><file name="List.php" hash="d73009e2a067b66473da322a2247e7f6"/><file name="ListApi23.php" hash="2b7eb89ac81b6eee8cee82f642a5fd4a"/><file name="Purchaseorder.php" hash="69d66e0bc581777757fcf21eb7c83fe5"/></dir></dir><dir name="Pbridge"><file name="Result.php" hash="bd5f9c45fdc8dff1bac3e7236ee419c7"/></dir><dir name="Shipping"><dir name="Method"><file name="Available.php" hash="df8fc796cd338f84b5ec311388fb8427"/><file name="AvailableList.php" hash="5b13a94645e63980e3d63bb2a9111fbd"/><file name="Avaliable.php" hash="3deb4bd60e6a67e0c2a2ad34b71acb73"/></dir></dir><file name="Agreements.php" hash="fb12f4f1860377603dfaf3e8ea77800c"/></dir><dir name="Cms"><file name="Page.php" hash="c313dfacd7ec573fd368dd16f6b27e77"/></dir><dir name="Customer"><dir name="Address"><file name="Form.php" hash="e9edebdcdd56da6c6b52b055fc7a6608"/><file name="List.php" hash="11c81db78979cdb5b2b643d104db15b5"/></dir><dir name="Form"><dir name="Renderer"><file name="Boolean.php" hash="97984783ca2e5725e0ee874a79b5d494"/><file name="Date.php" hash="95d6834bce7d72be7963bfea8bd0abae"/><file name="File.php" hash="38fca3a34090531ab380f6de0293407e"/><file name="Image.php" hash="b08fd3111a864ae9c8d968060796d83c"/><file name="Multiline.php" hash="39e37db8c8cf4aa12ef1f01c6922a315"/><file name="Multiselect.php" hash="42593dfde88fccbef918f3fbc251857b"/><file name="Select.php" hash="b0f2ebeef7c9eb0f5497ceea29f41500"/><file name="Text.php" hash="dc042eb425257b775258408cde5dbe67"/><file name="Textarea.php" hash="08d59b7ee634b548833a6ba3db6e10ad"/></dir></dir><dir name="Order"><dir name="Item"><dir name="Renderer"><file name="Bundle.php" hash="46bf4bde88a23157cde006884d9f02c5"/><file name="Default.php" hash="c189184e6177add4394c3e3cbc685445"/><file name="Downloadable.php" hash="cc7024f239b8e4b4e090449de512977c"/><file name="Giftcard.php" hash="1e1541616acf5c5d96e61e83a3e795e7"/><file name="Grouped.php" hash="ac2e1bbd54c002e41f545c077e46dc97"/></dir></dir><dir name="Totals"><dir name="Customerbalance"><file name="Refunded.php" hash="c3d5a807fac5b1eaac8c2800b3247346"/></dir><file name="Customerbalance.php" hash="a8a415eda418b5169d443ca69c4c511e"/><file name="Giftcards.php" hash="cd895470473384667f393ece7b159771"/><file name="Tax.php" hash="c65c42b1d55aba00d419a48496d69a00"/></dir><file name="Details.php" hash="c95e47526df1095c14389ce34069b9e2"/><file name="Items.php" hash="92a3776111ec3bd69d1d805549c5ff67"/><file name="List.php" hash="f36e2fc5f3236bfae51b140343c56045"/><file name="Totals.php" hash="3778e19e0ef18d36cdfbc590d45e3236"/></dir><file name="Downloads.php" hash="42fc55769c91d0bf18891fc2b1745811"/><file name="Form.php" hash="02812884e99c802eee5d18178afa37d3"/><file name="GiftcardCheck.php" hash="8d9e4127a7d7345664e4807793132516"/><file name="Storecredit.php" hash="88ce4306d04a263c4f0350a3d7921f5a"/></dir><dir name="Review"><file name="Form.php" hash="fe488993d56ef335693099d35ce86cbb"/></dir><file name="Cart.php" hash="721e8ad10aa397fcb22b884b2488327c"/><file name="Catalog.php" hash="0c99c53915ae51c9bf2f24a922ad9a38"/><file name="Configuration.php" hash="cf428dca1ff89197bc88b110b8a2a11e"/><file name="Home.php" hash="5e6219acf2a5d005fa99a168b257a0d5"/><file name="Homebanners.php" hash="f571f4bb6bbed761c951fe4bddab067e"/><file name="Localization.php" hash="9a0a3bfe872b96cf0a131ee24ac5cfd9"/><file name="ShoppingCart.php" hash="7c09d6e398f0f0d6e1474e0202198955"/><file name="Wishlist.php" hash="e6986bc23707288465142bf873e5958d"/></dir><dir name="Controller"><file name="Action.php" hash="3e2e8e918d3e7065afda31c0bfc1eefe"/><file name="AdminAction.php" hash="c032e0ab29fe601522793d1c91f145fd"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Admin"><file name="ApplicationController.php" hash="1c7325f6cdf42516f2f628a7df4007c1"/></dir><dir name="Connect"><file name="ConfigController.php" hash="1a919b0121bb28224fd69cedb2d1bfc6"/><file name="DashboardController.php" hash="e94b99a018acfa0f396e19ea5e6fb8ae"/><file name="UserController.php" hash="ce81c0c544c9c50d99aef7dc35d23eb9"/></dir><file name="MobileController.php" hash="5ddab5c813f886f2666bb9436dc7925d"/></dir><dir name="Paypal"><file name="MeclController.php" hash="dfc6f6694c5aa88968b422ebd15c7867"/><file name="MepController.php" hash="1e88760a98b8db33fefb72c8663d6c67"/></dir><file name="CartController.php" hash="8328fe491faf3cf57259ce24377f74d8"/><file name="CatalogController.php" hash="3b09c93e1be0a8c3307f715b7f5f6f0f"/><file name="CheckoutController.php" hash="15db7b5aad4fceba4ed109474f6e1c78"/><file name="CmsController.php" hash="97fab23c06e52fd7d6c6a2ca0ce99113"/><file name="ConfigurationController.php" hash="c91bb04de49318851c6969eb2de361cd"/><file name="CustomerController.php" hash="f8e1110a90f34c1b2a3d9211068edc58"/><file name="HomebannersController.php" hash="8d458c7ae50133f57fd44f3ad92f30f4"/><file name="IndexController.php" hash="5aa7a5b60904e3e693bc43285a6b6b5b"/><file name="LocalizationController.php" hash="4b268a95fd62957a4e73b68af36765a0"/><file name="PbridgeController.php" hash="0b9576db18d870416e3a4b25b80c625a"/><file name="ReviewController.php" hash="bfd0de81d2f10e13749966248149968a"/><file name="WishlistController.php" hash="63ae70b55a906743349309d7c839756a"/></dir><dir name="etc"><dir name="themes"><file name="custom.xml" hash="cba253341e035e5892cc3ed577fae710"/><file name="default.xml" hash="7a23e5840bd5a7a1f3cf4b9d16c30d63"/><file name="funk_leaf.xml" hash="d143fb6570214bdf5489e5f53770eded"/><file name="hot_red.xml" hash="f6480993958f16e4206048172985ca06"/><file name="sky_blue.xml" hash="cb128be3f0ef9088b23d3947daf29cf8"/></dir><file name="adminhtml.xml" hash="37d58188b6bbaff839b625f340bc4871"/><file name="config.xml" hash="23f2a23b89643a303fab55235563450f"/><file name="system.xml" hash="759fbe862cf96d79eca093de0dd68320"/></dir><dir name="Helper"><dir name="Adminhtml"><dir name="Dashboard"><file name="Order.php" hash="e4d6074df05a8c625117f2808b006185"/></dir></dir><dir name="Catalog"><dir name="Category"><file name="Image.php" hash="d213940270e8ade95a69443a3ca6a261"/></dir><dir name="Product"><file name="Image.php" hash="ffdc43c2fb53414ef96fc6ab966907bb"/></dir></dir><dir name="Customer"><dir name="Form"><file name="Renderer.php" hash="94d503489f7f49ff5d89016651e13edd"/></dir><file name="Order.php" hash="28889493432775ec7c6644c58cb80c04"/></dir><dir name="Device"><file name="Abstract.php" hash="93ea7193f4706d820f24f384a193900d"/></dir><file name="AdminApplication.php" hash="7f865c39dd5051d4771de7996924ec7c"/><file name="Android.php" hash="af57fcc239e84084b7aa0bb7e15a3398"/><file name="Data.php" hash="d950f724015b89d16f39c020bd35643c"/><file name="Image.php" hash="e5cea8c4158867092c31ef628e73bdf5"/><file name="Ipad.php" hash="f6092a7251429298cf6f215f58f5eee0"/><file name="Iphone.php" hash="e2c408ec83a017c7f958c5eef5495b14"/><file name="Payment.php" hash="5b54eccc95ea5c57d8c9ef5d934bc094"/><file name="Theme.php" hash="1142a66b2224130c5f66d70c6dfa4ee1"/><file name="Translate.php" hash="fbc31e8be6b2f9d17595a55cee1946a4"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="Search"><file name="Catalog.php" hash="b3d65a22980adadbe77dbf23c726b2ed"/><file name="Category.php" hash="aed9a32af1bc33543a310394dfd4eff8"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Currency"><file name="Default.php" hash="6c99a20069f641856d5bf65853488907"/></dir><file name="Baseurl.php" hash="5e015aa79db0e904d816064bc242147f"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="Media"><file name="Config.php" hash="fd88aeb90a45d8c0c6392cf5f8f70dc8"/></dir><file name="Image.php" hash="fc5086acd0bef36eceb2bdf6e035a998"/></dir></dir><dir name="Device"><file name="Abstract.php" hash="b651e9f00fdf0fd73e95597c3c90bbc2"/><file name="Android.php" hash="edd798c7b7451ca0eacfcdeebb87f143"/><file name="Ipad.php" hash="98094893388d88c085e2a09e9f115cee"/><file name="Iphone.php" hash="97fe91f028b1887c9762ff9b9c8e4eee"/></dir><dir name="ImageLimits"><file name="Abstract.php" hash="031b93b3a6be36504dbdfcd2b42037e6"/></dir><dir name="Input"><dir name="Filter"><file name="MaliciousCode.php" hash="d5d500781af7b07e11baf5cbef0eb0ce"/></dir></dir><dir name="Mysql4"><dir name="Application"><file name="Collection.php" hash="22fbd44c97d1341eec2316d88cdd615e"/></dir><dir name="CategorySearch"><file name="Collection.php" hash="5c4024edb8005637be5b05bf745dc0b4"/></dir><dir name="Cms"><dir name="Page"><file name="Collection.php" hash="87d245dcf99541c3f87f9bf1e8114307"/></dir></dir><dir name="ConfigData"><file name="Collection.php" hash="daa0613586622c3cdd862f89c5cf6c32"/></dir><dir name="Filter"><file name="Collection.php" hash="3b820fa4fc65de422b40b90479ddd977"/></dir><dir name="History"><file name="Collection.php" hash="ac16db40a3f709981a0225bdd23badb9"/></dir><dir name="Images"><file name="Collection.php" hash="b600ff4516ca6d4d3c261f214c7ee8ae"/></dir><dir name="Queue"><file name="Collection.php" hash="5d975b1556e1f692e3e3ee8d4c3ae400"/></dir><dir name="Template"><file name="Collection.php" hash="b9937ca4d53b92e3a40a8e21bfd19a00"/></dir><file name="Application.php" hash="1cdcd21de7029fb1465bca854950f493"/><file name="ConfigData.php" hash="336e3efe5a1b04350d4c7ca0f73326b9"/><file name="History.php" hash="b8265853f335e44fba51ea1fbc7e7d18"/><file name="Images.php" hash="0af2c93d8000f41dc27df41d3064c114"/><file name="Queue.php" hash="5a8fc030e809b0382f5c016a147d577f"/><file name="Setup.php" hash="779fbf35b0332d076c940013fd480777"/><file name="Template.php" hash="7aa204a046c07ad13ba86e6ef2405bae"/></dir><dir name="Payment"><dir name="Method"><dir name="Paypal"><file name="Config.php" hash="5c3c65374748273093bab7d4bfb012a9"/><file name="Mecl.php" hash="ca1326816719d3b4ecb8eec0740febf1"/><file name="Mep.php" hash="ce4386c3e4220c6c3fe7143763468a50"/></dir></dir></dir><dir name="Paypal"><dir name="Mecl"><file name="Checkout.php" hash="4d8f4d3a4c6f3976031fdaa2f9b8611b"/></dir><dir name="Mep"><file name="Checkout.php" hash="363013017df11a413f7cc1425bc9984e"/></dir></dir><dir name="Preview"><file name="Abstract.php" hash="95ae2224861c47cae17d286ab0b59444"/><file name="Android.php" hash="a58af778ff2baeabc8318c299fd9af51"/><file name="Ipad.php" hash="ae6aa389e953a9b2e307eab098693644"/><file name="Iphone.php" hash="199a076c592ce599b38049dc9b12d8de"/></dir><dir name="Resource"><dir name="Application"><file name="Collection.php" hash="4e6343b15bef0d8d03ff812534d6b0a0"/></dir><dir name="CategorySearch"><file name="Collection.php" hash="ec6eed47c5ef234e596baf7b361e2049"/></dir><dir name="Cms"><dir name="Page"><file name="Collection.php" hash="0e6f862fc1bf51a0073552e4ff9f12af"/></dir></dir><dir name="ConfigData"><file name="Collection.php" hash="f6e504022bfdfda1a0c930837533076b"/></dir><dir name="Filter"><file name="Collection.php" hash="501f8d89767152a3132c083b2bae3d89"/></dir><dir name="History"><file name="Collection.php" hash="e7d5df7e7c2198cb618c0facfdc603cd"/></dir><dir name="Images"><file name="Collection.php" hash="ffccb03fe49e9a1a49d96cca0aca162d"/></dir><dir name="Queue"><file name="Collection.php" hash="bb08b05a400392e55e396aa15ab8d360"/></dir><dir name="Template"><file name="Collection.php" hash="8e316fd73d5c981985c4d37f1b4b1d86"/></dir><file name="Application.php" hash="fd8a5fd78032e1e926bb97ebf36b707b"/><file name="ConfigData.php" hash="9fbcd1f9158db7f9e78b1585ba524b18"/><file name="History.php" hash="1525ac1b1420f73c6602cc19b576d78c"/><file name="Images.php" hash="1304f72eabcc19ed0f1c0d81dd8443c1"/><file name="Queue.php" hash="0d5448e714caa4cb13963cda2cdcf81a"/><file name="Setup.php" hash="b280e933cf9eda7846adc5fed5d72bf9"/><file name="Template.php" hash="8645648b26fdbed4822185a5cc532bd4"/></dir><dir name="Simplexml"><dir name="Form"><dir name="Element"><dir name="Renderer"><file name="Interface.php" hash="9b314b65fe1eeb81ccfc6ed6047c8e5e"/></dir><dir name="Validator"><file name="Abstract.php" hash="c7183c507611fb44750db227caeaeee8"/><file name="Rule.php" hash="c632915311d7f0913ef76b1d40fac395"/></dir><file name="Abstract.php" hash="cbada33ebe475c1482efe60d6cf9f6c5"/><file name="Checkbox.php" hash="9de46a951f58eaf77328589b91da2fef"/><file name="Collection.php" hash="7ee2575d3dfd6800da0df80bfeab55f5"/><file name="CountryListSelect.php" hash="c04b8df868e75fe5bef3b1195780391e"/><file name="Custom.php" hash="02b868b0885671ec31a06c62121275e2"/><file name="Date.php" hash="da33febe93bc5e79ee83c95b50fdc374"/><file name="Email.php" hash="5e75b3d6767a644b1026aa72cbc02d2a"/><file name="Fieldset.php" hash="772ba5340959516771edc4b1281cfb01"/><file name="File.php" hash="7adf9f3573740cbc69f0977f08bc062d"/><file name="Image.php" hash="4a249c60bfa12ecbffee2ea37f1ce7e1"/><file name="Multiline.php" hash="c04d28d557366d1d48034d5df57d913a"/><file name="Multiselect.php" hash="3566643c9295cc7ad0d7f84180bc1970"/><file name="Password.php" hash="7493a4ff4e57ae63c23fa06b49fd69a6"/><file name="Select.php" hash="d1d10f3482a819d281f8d7f30071f833"/><file name="Text.php" hash="b4ca84ab3a7848c9b711487b418c9d89"/><file name="Textarea.php" hash="e82df346b8046ae24a8efe23ea965069"/><file name="Validator.php" hash="00870fbba161e9a2d49a69d4f3229d1d"/></dir><file name="Abstract.php" hash="6919f553820cdc5f96667e0ec83d66f4"/></dir><dir name="Message"><file name="Abstract.php" hash="d84f4a0db726e3dd2bd3800c6d619888"/><file name="Error.php" hash="9190edb92b1627146fe079f38fd8901e"/><file name="Success.php" hash="416c64d2a613c3e4ca7b2a95e0ac6635"/></dir><file name="Element.php" hash="ce30e4ec6087bfdb7041922034de8481"/><file name="Form.php" hash="a9771b8058522d208e0c834e1681cabe"/><file name="Message.php" hash="d74c7ab082ec225043fe3d8eb69914bb"/></dir><file name="Application.php" hash="4f733be793e89e805a5ee6b42ecd88db"/><file name="ConfigData.php" hash="3dbf4a5f33d9755279ba3724629b0c7e"/><file name="Configuration.php" hash="204c30a0e1b830b4a4f814fd91c20335"/><file name="History.php" hash="824e1a700cf1f4ae3b5c7e1b6950686e"/><file name="ImageAction.php" hash="e7938376838177879e465a3b6cf8e76b"/><file name="ImageLimits.php" hash="feb96ef9eb6a9b2954eafd23d6a43d71"/><file name="Images.php" hash="075cf669768045b8b6d486887c10e99b"/><file name="Observer.php" hash="7c44b84c94f2e3b30e0cd84d82e10494"/><file name="Queue.php" hash="d7ace4b050a353b9dccc76c8489c0d88"/><file name="Tabs.php" hash="2b6ea4c0c21dc059990aa2216172412d"/><file name="Template.php" hash="042438993d8155852d741f0febe16dbb"/><file name="Theme.php" hash="368f7c0a13491d939b8e6bf55d01b61a"/></dir><dir name="sql"><dir name="xmlconnect_setup"><file name="mysql4-data-upgrade-1.4.0.13-1.4.0.14.php" hash="0ad84adbf29371e0a7b96fb3e1da2caf"/><file name="mysql4-data-upgrade-1.5.9.9-1.6.0.0.php" hash="9fd3a52a4f03c4ad8fbad031f6745c4a"/><file name="mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php" hash="b691f9ca036ae009638ee1bc0b8ed8a8"/><file name="mysql4-install-1.4.0.8.php" hash="d722f3f741af029773ebaf514c522b0f"/><file name="mysql4-upgrade-1.4.0.8-1.4.0.9.php" hash="7f6bc966e741f00c44919aa6d4307b8c"/><file name="mysql4-upgrade-1.4.0.9-1.4.0.10.php" hash="b7fec601f2bf620e60c7284c2cf6634e"/><file name="mysql4-upgrade-1.4.0.10-1.4.0.11.php" hash="cf2afadfee0b21d1c2d02071303edfc1"/><file name="mysql4-upgrade-1.4.0.11-1.4.0.12.php" hash="a1333a0c415cbc398cdd0671ab539102"/><file name="mysql4-upgrade-1.4.0.12-1.4.0.13.php" hash="a07f66c79bb1df1208c9000c3496ada1"/><file name="mysql4-upgrade-1.4.0.13-1.4.0.14.php" hash="3852cdcfa482f19981a2e8e1092909bf"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="7dafff785c68b075a23c30fea003daf8"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="8edcc9324df055ff544b9abc1744031c"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_XmlConnect.xml" hash="f57b14eccad90152c221e4f090a8801b"/></dir></target></contents>
17
  <compatible/>
18
+ <dependencies><required><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.5.0.1</min><max>1.6.0.0</max></package></required></dependencies>
19
  </package>