Version Notes
1.4.2.0.23.0 version of package
internal svn revision #3cd616975d5927903d4f34bde0d9e5e2e727e9ba
Download this release
Release Info
Developer | Magento Core Team |
Extension | Magento_Mobile |
Version | 1.4.2.0.23.0 |
Comparing to | |
See all releases |
Code changes from version 1.4.1.0.23.0 to 1.4.2.0.23.0
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Admin/Application/Edit/Tab/Settings.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Config.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/GraphInfo.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/GraphTotalsData.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/LastOrders.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/LastSearchTerms.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/SalesInfo.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/TopSearchTerms.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Loginform.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Content.php +20 -0
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design/Images.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Notification/Helper.php +0 -167
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Submission/Tab/Container/Submission.php +17 -17
- app/code/core/Mage/XmlConnect/Block/Adminhtml/Template/Preview.php +2 -0
- app/code/core/Mage/XmlConnect/Block/Cart.php +13 -12
- app/code/core/Mage/XmlConnect/Block/Cart/CartTotals.php +29 -0
- app/code/core/Mage/XmlConnect/Block/Cart/CartTotals/Nodes/Giftcardaccount.php +4 -4
- app/code/core/Mage/XmlConnect/Block/Cart/Item/Renderer/Configurable.php +3 -75
- app/code/core/Mage/XmlConnect/Block/Cart/Items.php +11 -11
- app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Details.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/OrderDetails.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Review.php +0 -20
- app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Shippingmethods.php +2 -76
- app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mep/Totals.php +6 -14
- app/code/core/Mage/XmlConnect/Block/Cart/Totals.php +5 -4
- app/code/core/Mage/XmlConnect/Block/Catalog.php +4 -4
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/ItemPrice/Giftcard.php +11 -12
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Bundle.php +20 -20
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Configurable.php +27 -27
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Giftcard.php +70 -108
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Grouped.php +10 -10
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Simple.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Virtual.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Bundle.php +3 -3
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Default.php +237 -237
- app/code/core/Mage/XmlConnect/Block/Catalog/Product/Price/Giftcard.php +6 -6
- app/code/core/Mage/XmlConnect/Block/Checkout/Address/Form.php +1 -48
- app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Configurable.php +1 -2
- app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Grouped.php +1 -2
- app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/Form.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/List.php +34 -41
- app/code/core/Mage/XmlConnect/Block/Checkout/Order/Review/Info.php +12 -12
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Ccsave.php +3 -3
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Ccsave.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Paypal/Abstract.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Info/Pbridge/Verisign.php +2 -2
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/List.php +2 -28
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/ListApi23.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Paypal/Payflow.php +10 -10
- app/code/core/Mage/XmlConnect/Block/Checkout/Pbridge/Result.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Configuration.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Customer/Address/Form.php +0 -35
- app/code/core/Mage/XmlConnect/Block/Customer/Address/List.php +39 -46
- app/code/core/Mage/XmlConnect/Block/Customer/Form.php +121 -1
- app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Bundle.php +7 -6
- app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Downloadable.php +12 -0
- app/code/core/Mage/XmlConnect/Block/Customer/Order/List.php +10 -10
- app/code/core/Mage/XmlConnect/Block/Customer/Storecredit.php +9 -7
- app/code/core/Mage/XmlConnect/Block/Home.php +0 -1
- app/code/core/Mage/XmlConnect/Block/Homebanners.php +5 -4
- app/code/core/Mage/XmlConnect/Block/Localization.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Review/Form.php +1 -1
- app/code/core/Mage/XmlConnect/Block/Wishlist.php +2 -2
- app/code/core/Mage/XmlConnect/Controller/AdminAction.php +3 -10
- app/code/core/Mage/XmlConnect/Helper/AdminApplication.php +2 -2
- app/code/core/Mage/XmlConnect/Helper/Android.php +86 -35
- app/code/core/Mage/XmlConnect/Helper/Customer/Form/Renderer.php +3 -3
- app/code/core/Mage/XmlConnect/Helper/Customer/Order.php +10 -10
- app/code/core/Mage/XmlConnect/Helper/Data.php +2 -1
- app/code/core/Mage/XmlConnect/Helper/Image.php +1 -3
- app/code/core/Mage/XmlConnect/Helper/Iphone.php +226 -11
- app/code/core/Mage/XmlConnect/Helper/Theme.php +1 -2
- app/code/core/Mage/XmlConnect/Model/AdminApplication.php +40 -0
- app/code/core/Mage/XmlConnect/Model/Application.php +6 -10
- app/code/core/Mage/XmlConnect/Model/ConfigData.php +8 -5
- app/code/core/Mage/XmlConnect/Model/Configuration.php +1 -1
- app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Session.php +137 -0
- app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Type/Onepage.php +465 -0
- app/code/core/Mage/XmlConnect/Model/Corefix/Sales/Quote.php +427 -0
- app/code/core/Mage/XmlConnect/Model/ImageLimits.php +8 -3
- app/code/core/Mage/XmlConnect/Model/Images.php +21 -29
- app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mecl.php +3 -28
- app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mep.php +2 -6
- app/code/core/Mage/XmlConnect/Model/Paypal/Mecl/Checkout.php +24 -0
- app/code/core/Mage/XmlConnect/Model/Paypal/Mep/Checkout.php +3 -2
- app/code/core/Mage/XmlConnect/Model/Queue.php +2 -8
- app/code/core/Mage/XmlConnect/Model/Resource/Application.php +5 -5
- app/code/core/Mage/XmlConnect/Model/Resource/ConfigData.php +5 -10
- app/code/core/Mage/XmlConnect/Model/Resource/History.php +2 -4
- app/code/core/Mage/XmlConnect/Model/Simplexml/Form/Element/Validator/Abstract.php +15 -14
- app/code/core/Mage/XmlConnect/Model/Simplexml/Message/Error.php +3 -2
- app/code/core/Mage/XmlConnect/Model/Tabs.php +1 -0
- app/code/core/Mage/XmlConnect/Model/Template.php +1 -7
- app/code/core/Mage/XmlConnect/controllers/Adminhtml/Connect/ConfigController.php +2 -2
- app/code/core/Mage/XmlConnect/controllers/CartController.php +2 -2
- app/code/core/Mage/XmlConnect/controllers/CatalogController.php +62 -2
- app/code/core/Mage/XmlConnect/controllers/CheckoutController.php +1 -0
- app/code/core/Mage/XmlConnect/controllers/CustomerController.php +71 -54
- app/code/core/Mage/XmlConnect/controllers/Paypal/MeclController.php +47 -18
- app/code/core/Mage/XmlConnect/controllers/Paypal/MepController.php +6 -4
- app/code/core/Mage/XmlConnect/controllers/WishlistController.php +3 -4
- app/code/core/Mage/XmlConnect/etc/config.xml +0 -2
- app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php +5 -4
- app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php +4 -3
- app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml +3 -3
- app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/autocomplete.phtml +3 -3
- app/design/adminhtml/default/default/template/xmlconnect/form/element/addrow.phtml +1 -1
- app/design/adminhtml/default/default/template/xmlconnect/submission/app_icons_preview.phtml +2 -0
- 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' =>
|
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' => 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
|
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_Template
|
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
|
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_Template
|
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
|
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Time range filter options
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/GraphTotalsData.php
CHANGED
@@ -52,7 +52,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_GraphTotalsData extends
|
|
52 |
*/
|
53 |
protected function _initCollection($storeId, $rangeId)
|
54 |
{
|
55 |
-
if (!
|
56 |
return $this;
|
57 |
}
|
58 |
|
52 |
*/
|
53 |
protected function _initCollection($storeId, $rangeId)
|
54 |
{
|
55 |
+
if (!Mage::helper('core')->isModuleEnabled('Mage_Reports')) {
|
56 |
return $this;
|
57 |
}
|
58 |
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/LastOrders.php
CHANGED
@@ -46,7 +46,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_LastOrders extends Mage_
|
|
46 |
*/
|
47 |
public function addLastOrdersToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $xmlObj)
|
48 |
{
|
49 |
-
if (!
|
50 |
return $this;
|
51 |
}
|
52 |
|
46 |
*/
|
47 |
public function addLastOrdersToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $xmlObj)
|
48 |
{
|
49 |
+
if (!Mage::helper('core')->isModuleEnabled('Mage_Reports')) {
|
50 |
return $this;
|
51 |
}
|
52 |
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/LastSearchTerms.php
CHANGED
@@ -57,7 +57,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_LastSearchTerms
|
|
57 |
*/
|
58 |
protected function _initCollection($storeId)
|
59 |
{
|
60 |
-
if (!
|
61 |
return $this;
|
62 |
}
|
63 |
/** @var $_collection Mage_CatalogSearch_Model_Resource_Query_Collection */
|
57 |
*/
|
58 |
protected function _initCollection($storeId)
|
59 |
{
|
60 |
+
if (!Mage::helper('core')->isModuleEnabled('Mage_CatalogSearch')) {
|
61 |
return $this;
|
62 |
}
|
63 |
/** @var $_collection Mage_CatalogSearch_Model_Resource_Query_Collection */
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/SalesInfo.php
CHANGED
@@ -70,7 +70,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_SalesInfo extends Mage_A
|
|
70 |
*/
|
71 |
protected function _prepareLayout()
|
72 |
{
|
73 |
-
if (!
|
74 |
return $this;
|
75 |
}
|
76 |
|
70 |
*/
|
71 |
protected function _prepareLayout()
|
72 |
{
|
73 |
+
if (!Mage::helper('core')->isModuleEnabled('Mage_Reports')) {
|
74 |
return $this;
|
75 |
}
|
76 |
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Connect/Dashboard/TopSearchTerms.php
CHANGED
@@ -57,7 +57,7 @@ class Mage_XmlConnect_Block_Adminhtml_Connect_Dashboard_TopSearchTerms
|
|
57 |
*/
|
58 |
protected function _initCollection($storeId)
|
59 |
{
|
60 |
-
if (!
|
61 |
return $this;
|
62 |
}
|
63 |
/** @var $_collection Mage_CatalogSearch_Model_Resource_Query_Collection */
|
@@ -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
|
86 |
*/
|
87 |
public function addTopSearchTermsToXmlObj(Mage_XmlConnect_Model_Simplexml_Element $xmlObj)
|
88 |
{
|
57 |
*/
|
58 |
protected function _initCollection($storeId)
|
59 |
{
|
60 |
+
if (!Mage::helper('core')->isModuleEnabled('Mage_CatalogSearch')) {
|
61 |
return $this;
|
62 |
}
|
63 |
/** @var $_collection Mage_CatalogSearch_Model_Resource_Query_Collection */
|
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 |
{
|
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
|
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Render login form xml
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Content.php
CHANGED
@@ -104,6 +104,26 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Content
|
|
104 |
return $this;
|
105 |
}
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
/**
|
108 |
* Prepare label for tab
|
109 |
*
|
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 |
*
|
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
|
172 |
*/
|
173 |
public function getConfig()
|
174 |
{
|
168 |
/**
|
169 |
* Retrieve image config object
|
170 |
*
|
171 |
+
* @return Varien_Config
|
172 |
*/
|
173 |
public function getConfig()
|
174 |
{
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Notification/Helper.php
DELETED
@@ -1,167 +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 |
-
class Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Notification_Helper extends Mage_XmlConnect_Block_Adminhtml_Mobile_Widget_Form
|
27 |
-
implements Mage_Adminhtml_Block_Widget_Tab_Interface
|
28 |
-
{
|
29 |
-
/**
|
30 |
-
* Construnctor
|
31 |
-
* Setting view options
|
32 |
-
*/
|
33 |
-
public function __construct()
|
34 |
-
{
|
35 |
-
parent::__construct();
|
36 |
-
$this->setShowGlobalIcon(true);
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Prepare form before rendering HTML
|
41 |
-
* Setting Form Fieldsets and fields
|
42 |
-
*
|
43 |
-
* @return Mage_Adminhtml_Block_Widget_Form
|
44 |
-
*/
|
45 |
-
protected function _prepareForm()
|
46 |
-
{
|
47 |
-
$form = new Varien_Data_Form();
|
48 |
-
|
49 |
-
$this->setForm($form);
|
50 |
-
|
51 |
-
$data = $this->getApplication()->getFormData();
|
52 |
-
|
53 |
-
$yesNoValues = Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray();
|
54 |
-
|
55 |
-
$fieldset = $form->addFieldset('notifications', array(
|
56 |
-
'legend' => Mage::helper('xmlconnect')->__('Push Notification'),
|
57 |
-
));
|
58 |
-
|
59 |
-
$notificationEnabled = $fieldset->addField('conf/native/notifisations/isActive', 'select', array(
|
60 |
-
'label' => Mage::helper('xmlconnect')->__('Enable AirMail Message Push notification'),
|
61 |
-
'name' => 'conf[native][notifications][isActive]',
|
62 |
-
'values' => $yesNoValues,
|
63 |
-
'value' => (isset($data['conf[native][notifications][isActive]']) ? $data['conf[native][notifications][isActive]'] : '0'),
|
64 |
-
));
|
65 |
-
|
66 |
-
$applicationKey = $fieldset->addField('conf/native/notifications/applicationKey', 'text', array(
|
67 |
-
'label' => Mage::helper('xmlconnect')->__('Application Key'),
|
68 |
-
'name' => 'conf[native][notifications][applicationKey]',
|
69 |
-
'value' => (isset($data['conf[native][notifications][applicationKey]']) ? $data['conf[native][notifications][applicationKey]'] : ''),
|
70 |
-
'required' => true
|
71 |
-
));
|
72 |
-
|
73 |
-
$applicationSecret = $fieldset->addField('conf/native/notifications/applicationSecret', 'text', array(
|
74 |
-
'label' => Mage::helper('xmlconnect')->__('Application Secret'),
|
75 |
-
'name' => 'conf[native][notifications][applicationSecret]',
|
76 |
-
'value' => (isset($data['conf[native][notifications][applicationSecret]']) ? $data['conf[native][notifications][applicationSecret]'] : ''),
|
77 |
-
'required' => true
|
78 |
-
));
|
79 |
-
|
80 |
-
|
81 |
-
$applicationMasterSecret = $fieldset->addField('conf/native/notifications/applicationMasterSecret', 'text', array(
|
82 |
-
'label' => Mage::helper('xmlconnect')->__('Application Master Secret'),
|
83 |
-
'name' => 'conf[native][notifications][applicationMasterSecret]',
|
84 |
-
'value' => (isset($data['conf[native][notifications][applicationMasterSecret]']) ? $data['conf[native][notifications][applicationMasterSecret]'] : ''),
|
85 |
-
'required' => true
|
86 |
-
));
|
87 |
-
|
88 |
-
$mailboxTitle = $fieldset->addField('conf/native/notifications/mailboxTitle', 'text', array(
|
89 |
-
'label' => Mage::helper('xmlconnect')->__('Mailbox title'),
|
90 |
-
'name' => 'conf[native][notifications][mailboxTitle]',
|
91 |
-
'value' => (isset($data['conf[native][notifications][mailboxTitle]']) ? $data['conf[native][notifications][mailboxTitle]'] : ''),
|
92 |
-
'required' => true,
|
93 |
-
'note' => Mage::helper('xmlconnect')->__('The Mailbox title will be shown in the More Info tab. To understand more about the title, please <a href="some link">click here</a>')
|
94 |
-
));
|
95 |
-
|
96 |
-
// field dependencies
|
97 |
-
$this->setChild('form_after', $this->getLayout()->createBlock('adminhtml/widget_form_element_dependence')
|
98 |
-
->addFieldMap($applicationKey->getHtmlId(), $applicationKey->getName())
|
99 |
-
->addFieldMap($applicationSecret->getHtmlId(), $applicationSecret->getName())
|
100 |
-
->addFieldMap($applicationMasterSecret->getHtmlId(), $applicationMasterSecret->getName())
|
101 |
-
->addFieldMap($mailboxTitle->getHtmlId(), $mailboxTitle->getName())
|
102 |
-
->addFieldMap($notificationEnabled->getHtmlId(), $notificationEnabled->getName())
|
103 |
-
->addFieldDependence(
|
104 |
-
$applicationKey->getName(),
|
105 |
-
$notificationEnabled->getName(),
|
106 |
-
1)
|
107 |
-
->addFieldDependence(
|
108 |
-
$applicationSecret->getName(),
|
109 |
-
$notificationEnabled->getName(),
|
110 |
-
1)
|
111 |
-
->addFieldDependence(
|
112 |
-
$applicationMasterSecret->getName(),
|
113 |
-
$notificationEnabled->getName(),
|
114 |
-
1)
|
115 |
-
->addFieldDependence(
|
116 |
-
$mailboxTitle->getName(),
|
117 |
-
$notificationEnabled->getName(),
|
118 |
-
1)
|
119 |
-
);
|
120 |
-
|
121 |
-
return parent::_prepareForm();
|
122 |
-
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Tab label getter
|
126 |
-
*
|
127 |
-
* @return string
|
128 |
-
*/
|
129 |
-
public function getTabLabel()
|
130 |
-
{
|
131 |
-
return Mage::helper('xmlconnect')->__('Push Notification');
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* Tab title getter
|
136 |
-
*
|
137 |
-
* @return string
|
138 |
-
*/
|
139 |
-
public function getTabTitle()
|
140 |
-
{
|
141 |
-
return Mage::helper('xmlconnect')->__('Push Notification');
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* Check if tab can be shown
|
146 |
-
*
|
147 |
-
* @return bool
|
148 |
-
*/
|
149 |
-
public function canShowTab()
|
150 |
-
{
|
151 |
-
return (bool) !Mage::getSingleton('adminhtml/session')->getNewApplication();
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Check if tab hidden
|
156 |
-
*
|
157 |
-
* @return bool
|
158 |
-
*/
|
159 |
-
public function isHidden()
|
160 |
-
{
|
161 |
-
if (!$this->getData('conf/special/notifications_submitted')) {
|
162 |
-
return false;
|
163 |
-
} else {
|
164 |
-
return true;
|
165 |
-
}
|
166 |
-
}
|
167 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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' => '
|
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).
|
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.
|
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.
|
280 |
|
281 |
$this->addImage($fieldset, 'conf/submit/logo', $this->__('Custom App Icon'),
|
282 |
-
$this->__('Icon that will appear on the user
|
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).
|
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.
|
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.
|
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).
|
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.
|
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.
|
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).
|
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.
|
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.
|
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.
|
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.
|
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.
|
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' => '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). 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 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: 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 |
|
app/code/core/Mage/XmlConnect/Block/Adminhtml/Template/Preview.php
CHANGED
@@ -60,7 +60,9 @@ class Mage_XmlConnect_Block_Adminhtml_Template_Preview extends Mage_Adminhtml_Bl
|
|
60 |
$storeId = Mage::app()->getDefaultStoreView()->getId();
|
61 |
}
|
62 |
|
|
|
63 |
$templateProcessed = $template->getProcessedTemplate(array(), true);
|
|
|
64 |
|
65 |
return $templateProcessed;
|
66 |
}
|
60 |
$storeId = Mage::app()->getDefaultStoreView()->getId();
|
61 |
}
|
62 |
|
63 |
+
$template->emulateDesign($storeId);
|
64 |
$templateProcessed = $template->getProcessedTemplate(array(), true);
|
65 |
+
$template->revertDesign();
|
66 |
|
67 |
return $templateProcessed;
|
68 |
}
|
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 |
-
$
|
88 |
if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
|
89 |
&& $item->getWeeeTaxAppliedAmount()
|
90 |
) {
|
91 |
-
$inclPrice = $
|
92 |
} else {
|
93 |
-
$inclPrice = $
|
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 |
-
$
|
154 |
if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
|
155 |
&& $item->getWeeeTaxAppliedAmount()
|
156 |
) {
|
157 |
-
$inclPrice = $
|
158 |
} else {
|
159 |
-
$inclPrice = $
|
160 |
}
|
161 |
}
|
162 |
|
@@ -172,6 +172,7 @@ class Mage_XmlConnect_Block_Cart extends Mage_Checkout_Block_Cart_Abstract
|
|
172 |
if ($this->helper('tax')->displayCartBothPrices()) {
|
173 |
$subtotalPriceXmlObj->addAttribute('excluding_tax', $exclPrice);
|
174 |
$subtotalPriceXmlObj->addAttribute('including_tax', $inclPrice);
|
|
|
175 |
$subtotalFormattedPriceXmlObj->addAttribute('excluding_tax', $formattedExclPrice);
|
176 |
$subtotalFormattedPriceXmlObj->addAttribute('including_tax', $formattedInclPrice);
|
177 |
} else {
|
@@ -188,14 +189,14 @@ class Mage_XmlConnect_Block_Cart extends Mage_Checkout_Block_Cart_Abstract
|
|
188 |
/**
|
189 |
* Options list
|
190 |
*/
|
191 |
-
$
|
192 |
-
if ($
|
193 |
$itemOptionsXml = $itemXml->addChild('options');
|
194 |
-
foreach ($
|
195 |
-
$
|
196 |
$optionXml = $itemOptionsXml->addChild('option');
|
197 |
-
$optionXml->addAttribute('label', $xmlObject->xmlAttribute($
|
198 |
-
$optionXml->addAttribute('text', $xmlObject->xmlAttribute($
|
199 |
}
|
200 |
}
|
201 |
|
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 |
|
172 |
if ($this->helper('tax')->displayCartBothPrices()) {
|
173 |
$subtotalPriceXmlObj->addAttribute('excluding_tax', $exclPrice);
|
174 |
$subtotalPriceXmlObj->addAttribute('including_tax', $inclPrice);
|
175 |
+
|
176 |
$subtotalFormattedPriceXmlObj->addAttribute('excluding_tax', $formattedExclPrice);
|
177 |
$subtotalFormattedPriceXmlObj->addAttribute('including_tax', $formattedInclPrice);
|
178 |
} else {
|
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,6 +40,13 @@ class Mage_XmlConnect_Block_Cart_CartTotals extends Mage_Checkout_Block_Cart_Tot
|
|
40 |
*/
|
41 |
protected $_defaultRenderer = 'xmlconnect/cart_cartTotals_default';
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
/**
|
44 |
* Render cart totals xml
|
45 |
*
|
@@ -92,4 +99,26 @@ class Mage_XmlConnect_Block_Cart_CartTotals extends Mage_Checkout_Block_Cart_Tot
|
|
92 |
$block->setTotals($this->getTotals());
|
93 |
return $block;
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
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 |
$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 |
}
|
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 |
-
$
|
49 |
-
if (!$
|
50 |
-
$
|
51 |
}
|
52 |
$code = $this->getTotal()->getCode();
|
53 |
|
54 |
/** @var $giftCardsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
|
55 |
$giftCardsXmlObj = $cartXmlObject->addCustomChild($code);
|
56 |
|
57 |
-
foreach ($
|
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/Item/Renderer/Configurable.php
CHANGED
@@ -80,80 +80,8 @@ class Mage_XmlConnect_Block_Cart_Item_Renderer_Configurable extends Mage_XmlConn
|
|
80 |
*/
|
81 |
public function getOptionList()
|
82 |
{
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
/**
|
87 |
-
* Retrieves configuration options for configurable product
|
88 |
-
*
|
89 |
-
* @param Mage_Sales_Model_Quote_Item $item
|
90 |
-
* @return array
|
91 |
-
*/
|
92 |
-
protected function _getConfigurableOptions($item)
|
93 |
-
{
|
94 |
-
$product = $item->getProduct();
|
95 |
-
$typeId = $product->getTypeId();
|
96 |
-
if ($typeId != Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
|
97 |
-
Mage::throwException($this->__('Wrong product type to extract configurable options.'));
|
98 |
-
}
|
99 |
-
$attributes = $product->getTypeInstance(true)
|
100 |
-
->getSelectedAttributesInfo($product);
|
101 |
-
return array_merge($attributes, $this->_getCustomOptions($item));
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Retrieves product configuration options
|
106 |
-
*
|
107 |
-
* @param Mage_Sales_Model_Quote_Item $item
|
108 |
-
* @return array
|
109 |
-
*/
|
110 |
-
protected function _getCustomOptions($item)
|
111 |
-
{
|
112 |
-
$product = $item->getProduct();
|
113 |
-
$options = array();
|
114 |
-
$optionIds = $item->getOptionByCode('option_ids');
|
115 |
-
if ($optionIds) {
|
116 |
-
$options = array();
|
117 |
-
foreach (explode(',', $optionIds->getValue()) as $optionId) {
|
118 |
-
$option = $product->getOptionById($optionId);
|
119 |
-
if ($option) {
|
120 |
-
$itemOption = $item->getOptionByCode('option_' . $option->getId());
|
121 |
-
$group = $option->groupFactory($option->getType())
|
122 |
-
->setOption($option)
|
123 |
-
->setConfigurationItem($item)
|
124 |
-
->setConfigurationItemOption($itemOption);
|
125 |
-
|
126 |
-
if ('file' == $option->getType()) {
|
127 |
-
$downloadParams = $item->getFileDownloadParams();
|
128 |
-
if ($downloadParams) {
|
129 |
-
$url = $downloadParams->getUrl();
|
130 |
-
if ($url) {
|
131 |
-
$group->setCustomOptionDownloadUrl($url);
|
132 |
-
}
|
133 |
-
$urlParams = $downloadParams->getUrlParams();
|
134 |
-
if ($urlParams) {
|
135 |
-
$group->setCustomOptionUrlParams($urlParams);
|
136 |
-
}
|
137 |
-
}
|
138 |
-
}
|
139 |
-
|
140 |
-
$options[] = array(
|
141 |
-
'label' => $option->getTitle(),
|
142 |
-
'value' => $group->getFormattedOptionValue($itemOption->getValue()),
|
143 |
-
'print_value' => $group->getPrintableOptionValue($itemOption->getValue()),
|
144 |
-
'option_id' => $option->getId(),
|
145 |
-
'option_type' => $option->getType(),
|
146 |
-
'custom_view' => $group->isCustomizedView()
|
147 |
-
);
|
148 |
-
}
|
149 |
-
}
|
150 |
-
}
|
151 |
-
|
152 |
-
$addOptions = $item->getOptionByCode('additional_options');
|
153 |
-
if ($addOptions) {
|
154 |
-
$options = array_merge($options, unserialize($addOptions->getValue()));
|
155 |
-
}
|
156 |
-
|
157 |
-
return $options;
|
158 |
}
|
159 |
}
|
80 |
*/
|
81 |
public function getOptionList()
|
82 |
{
|
83 |
+
/* @var $helper Mage_Catalog_Helper_Product_Configuration */
|
84 |
+
$helper = Mage::helper('catalog/product_configuration');
|
85 |
+
return $helper->getConfigurableOptions($this->getItem());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
}
|
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 |
-
$
|
81 |
if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
|
82 |
&& $item->getWeeeTaxAppliedAmount()
|
83 |
) {
|
84 |
-
$inclPrice = $
|
85 |
} else {
|
86 |
-
$inclPrice = $
|
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 |
-
$
|
166 |
if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
|
167 |
&& $item->getWeeeTaxAppliedAmount()
|
168 |
) {
|
169 |
-
$subtotalInclTax = $
|
170 |
} else {
|
171 |
-
$subtotalInclTax = $
|
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 |
-
$
|
216 |
-
if ($
|
217 |
$itemOptionsXml = $itemXml->addCustomChild('options');
|
218 |
-
foreach ($
|
219 |
-
$
|
220 |
$itemOptionsXml->addCustomChild('option', null, array(
|
221 |
'label' => $xmlObject->xmlAttribute($_option['label']),
|
222 |
-
'text' => $xmlObject->xmlAttribute($
|
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 $
|
46 |
-
$this->getItemXml($
|
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 $
|
46 |
-
$this->getItemXml($
|
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/Mecl/Review.php
CHANGED
@@ -33,26 +33,6 @@
|
|
33 |
*/
|
34 |
class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Review extends Mage_Paypal_Block_Express_Review
|
35 |
{
|
36 |
-
/**
|
37 |
-
* Get shipping rate code title and its price
|
38 |
-
*
|
39 |
-
* @param Varien_Object $rate
|
40 |
-
* @return string
|
41 |
-
*/
|
42 |
-
protected function _renderShippingRateOption($rate)
|
43 |
-
{
|
44 |
-
$result = $rate->getMethodTitle();
|
45 |
-
$_excl = $this->getShippingPrice($rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax());
|
46 |
-
$_incl = $this->getShippingPrice($rate->getPrice(), true);
|
47 |
-
|
48 |
-
$result .= ' - ' . $_excl;
|
49 |
-
|
50 |
-
if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl) {
|
51 |
-
$result .= ' (' . $this->__('Incl. Tax') . ' ' . $_incl .')';
|
52 |
-
}
|
53 |
-
return $result;
|
54 |
-
}
|
55 |
-
|
56 |
/**
|
57 |
* Render PayPal MECL details xml
|
58 |
*
|
33 |
*/
|
34 |
class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Review extends Mage_Paypal_Block_Express_Review
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Render PayPal MECL details xml
|
38 |
*
|
app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mecl/Shippingmethods.php
CHANGED
@@ -70,7 +70,7 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods extends Mage_Paypal
|
|
70 |
|
71 |
if (Mage::helper('xmlconnect')->checkApiVersion(Mage_XmlConnect_Helper_Data::DEVICE_API_V_23)) {
|
72 |
if ($this->getCanEditShippingMethod() || !$this->getCurrentShippingRate()) {
|
73 |
-
$groups = $this->
|
74 |
if ($groups) {
|
75 |
$currentRate = $this->getCurrentShippingRate();
|
76 |
foreach ($groups as $code => $rates) {
|
@@ -108,7 +108,7 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods extends Mage_Paypal
|
|
108 |
}
|
109 |
} else {
|
110 |
if ($this->getCanEditShippingMethod() || !$this->getCurrentShippingRate()) {
|
111 |
-
$groups = $this->
|
112 |
if ($groups) {
|
113 |
$currentRate = $this->getCurrentShippingRate();
|
114 |
foreach ($groups as $code => $rates) {
|
@@ -170,78 +170,4 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods extends Mage_Paypal
|
|
170 |
$attributes = $code ? array('label' => $this->getCarrierName($code)) : array();
|
171 |
return $methodListXmlObj->addCustomChild('method', null, $attributes)->addCustomChild('rates');
|
172 |
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Get either shipping rate code or empty value on error
|
176 |
-
*
|
177 |
-
* @param Varien_Object $rate
|
178 |
-
* @return string
|
179 |
-
*/
|
180 |
-
public function renderShippingRateValue(Varien_Object $rate)
|
181 |
-
{
|
182 |
-
if ($rate->getErrorMessage()) {
|
183 |
-
return '';
|
184 |
-
}
|
185 |
-
return $rate->getCode();
|
186 |
-
}
|
187 |
-
|
188 |
-
/**
|
189 |
-
* Get current shipping rate
|
190 |
-
*
|
191 |
-
* @return Mage_Sales_Model_Quote_Address_Rate|bool
|
192 |
-
*/
|
193 |
-
public function getCurrentShippingRate()
|
194 |
-
{
|
195 |
-
/** @var $address Mage_Sales_Model_Quote_Address */
|
196 |
-
$address = $this->getAddress();
|
197 |
-
return $address->getShippingRateByCode($address->getShippingMethod());
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Get shipping rate code title and its price or error message
|
202 |
-
*
|
203 |
-
* @param Varien_Object $rate
|
204 |
-
* @param string $format
|
205 |
-
* @param string $inclTaxFormat
|
206 |
-
* @return string
|
207 |
-
*/
|
208 |
-
public function renderShippingRateOption($rate, $format = '%s - %s%s', $inclTaxFormat = ' (%s %s)')
|
209 |
-
{
|
210 |
-
$renderedInclTax = '';
|
211 |
-
if ($rate->getErrorMessage()) {
|
212 |
-
$price = $rate->getErrorMessage();
|
213 |
-
} else {
|
214 |
-
$price = $this->_getShippingPrice($rate->getPrice(), $this->helper('tax')
|
215 |
-
->displayShippingPriceIncludingTax());
|
216 |
-
$incl = $this->_getShippingPrice($rate->getPrice(), true);
|
217 |
-
if (($incl != $price) && $this->helper('tax')->displayShippingBothPrices()) {
|
218 |
-
$renderedInclTax = sprintf($inclTaxFormat, Mage::helper('tax')->__('Incl. Tax'), $incl);
|
219 |
-
}
|
220 |
-
}
|
221 |
-
return sprintf($format, $rate->getMethodTitle(), $price, $renderedInclTax);
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* Return formatted shipping price
|
226 |
-
*
|
227 |
-
* @param float $price
|
228 |
-
* @param bool $isInclTax
|
229 |
-
*
|
230 |
-
* @return bool
|
231 |
-
*/
|
232 |
-
protected function _getShippingPrice($price, $isInclTax)
|
233 |
-
{
|
234 |
-
return $this->_formatPrice($this->helper('tax')->getShippingPrice($price, $isInclTax, $this->_address));
|
235 |
-
}
|
236 |
-
|
237 |
-
/**
|
238 |
-
* Format price base on store convert price method
|
239 |
-
*
|
240 |
-
* @param float $price
|
241 |
-
* @return string
|
242 |
-
*/
|
243 |
-
protected function _formatPrice($price)
|
244 |
-
{
|
245 |
-
return $this->_quote->getStore()->convertPrice($price, true);
|
246 |
-
}
|
247 |
}
|
70 |
|
71 |
if (Mage::helper('xmlconnect')->checkApiVersion(Mage_XmlConnect_Helper_Data::DEVICE_API_V_23)) {
|
72 |
if ($this->getCanEditShippingMethod() || !$this->getCurrentShippingRate()) {
|
73 |
+
$groups = $this->getShippingRateGroups();
|
74 |
if ($groups) {
|
75 |
$currentRate = $this->getCurrentShippingRate();
|
76 |
foreach ($groups as $code => $rates) {
|
108 |
}
|
109 |
} else {
|
110 |
if ($this->getCanEditShippingMethod() || !$this->getCurrentShippingRate()) {
|
111 |
+
$groups = $this->getShippingRateGroups();
|
112 |
if ($groups) {
|
113 |
$currentRate = $this->getCurrentShippingRate();
|
114 |
foreach ($groups as $code => $rates) {
|
170 |
$attributes = $code ? array('label' => $this->getCarrierName($code)) : array();
|
171 |
return $methodListXmlObj->addCustomChild('method', null, $attributes)->addCustomChild('rates');
|
172 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
}
|
app/code/core/Mage/XmlConnect/Block/Cart/Paypal/Mep/Totals.php
CHANGED
@@ -40,21 +40,13 @@ class Mage_XmlConnect_Block_Cart_Paypal_Mep_Totals extends Mage_Checkout_Block_C
|
|
40 |
*/
|
41 |
protected function _toHtml()
|
42 |
{
|
43 |
-
$
|
|
|
44 |
/** @var $totalsXmlObj Mage_XmlConnect_Model_Simplexml_Element */
|
45 |
-
$totalsXmlObj
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
if (Mage::helper('paypal')->areCartLineItemsValid($items, $totals, $quote->getBaseGrandTotal())) {
|
50 |
-
foreach ($totals as $key => $total) {
|
51 |
-
$totalAmount = $this->helper('core')->currency($total, false, false);
|
52 |
-
$totalsXmlObj->addChild($key, sprintf('%01.2F', $totalAmount));
|
53 |
-
}
|
54 |
-
} else {
|
55 |
-
Mage::throwException(
|
56 |
-
Mage::helper('xmlconnect')->__('Cart line items are not eligible for exporting to PayPal API')
|
57 |
-
);
|
58 |
}
|
59 |
|
60 |
$paypalTotals = $totalsXmlObj->addChild('paypal_totals');
|
40 |
*/
|
41 |
protected function _toHtml()
|
42 |
{
|
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));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
|
52 |
$paypalTotals = $totalsXmlObj->addChild('paypal_totals');
|
app/code/core/Mage/XmlConnect/Block/Cart/Totals.php
CHANGED
@@ -90,6 +90,7 @@ class Mage_XmlConnect_Block_Cart_Totals extends Mage_Checkout_Block_Cart_Totals
|
|
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,12 +101,12 @@ class Mage_XmlConnect_Block_Cart_Totals extends Mage_Checkout_Block_Cart_Totals
|
|
100 |
}
|
101 |
continue 2;
|
102 |
case 'giftcardaccount':
|
103 |
-
$
|
104 |
-
if (!$
|
105 |
-
$
|
106 |
}
|
107 |
if ($renderer->getTotal()->getValue()) {
|
108 |
-
foreach ($
|
109 |
$title = $this->__('Gift Card (%s)', $cardCode['c']);
|
110 |
$value = $cardCode['c'];
|
111 |
$totalXmlObj = $totalsXmlObj->addChild($code);
|
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 |
}
|
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);
|
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 $
|
120 |
$item = $ordersXmlObject->addChild('item');
|
121 |
-
if ($this->isOrderCurrent($
|
122 |
$item->addAttribute('isDefault', 1);
|
123 |
}
|
124 |
-
$item->addChild('code', $
|
125 |
-
$item->addChild('name', $ordersXmlObject->escapeXml($
|
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,31 +66,30 @@ 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 |
-
* @return null
|
70 |
*/
|
71 |
-
public function collectProductPrices(
|
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 |
-
$
|
80 |
-
$
|
81 |
-
if ($
|
82 |
$pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
|
83 |
-
$pricesXmlObj->addCustomChild('price', $
|
84 |
'id' => 'regular',
|
85 |
'label' => $this->__('Regular'),
|
86 |
-
'formatted_value' => Mage::helper('core')->currency($
|
87 |
));
|
88 |
-
} elseif ($
|
89 |
$pricesXmlObj = $priceListXmlObj->addCustomChild('prices', null, array('id' => 'price'));
|
90 |
-
$pricesXmlObj->addCustomChild('price', $
|
91 |
'id' => 'regular',
|
92 |
'label' => $this->__('From'),
|
93 |
-
'formatted_value' => Mage::helper('core')->currency($
|
94 |
));
|
95 |
}
|
96 |
}
|
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 |
}
|
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
|
68 |
*
|
69 |
* @param Mage_Catalog_Model_Product $product
|
70 |
* @return Mage_XmlConnect_Model_Simplexml_Element
|
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
|
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 $
|
70 |
-
$selections = $
|
71 |
-
$optionId = $
|
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 ($
|
80 |
$type = parent::OPTION_TYPE_CHECKBOX;
|
81 |
}
|
82 |
-
$code = 'bundle_option[' . $
|
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($
|
89 |
-
if ($
|
90 |
$optionNode->addAttribute('is_required', 1);
|
91 |
}
|
92 |
|
93 |
-
foreach ($selections as $
|
94 |
-
if (!$
|
95 |
continue;
|
96 |
}
|
97 |
-
$
|
98 |
if ($product->hasPreconfiguredValues()) {
|
99 |
-
$
|
100 |
}
|
101 |
-
if (null === $
|
102 |
-
$
|
103 |
}
|
104 |
|
105 |
$valueNode = $optionNode->addChild('value');
|
106 |
-
$valueNode->addAttribute('code', $
|
107 |
-
$valueNode->addAttribute('label', $optionsXmlObj->escapeXml($
|
108 |
-
if (!$
|
109 |
-
if ($
|
110 |
$valueNode->addAttribute('is_qty_editable', 1);
|
111 |
}
|
112 |
}
|
113 |
-
$valueNode->addAttribute('qty', $
|
114 |
|
115 |
-
$price = $product->getPriceModel()->getSelectionPreFinalPrice($product, $
|
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, $
|
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
@@ -37,7 +37,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
|
|
37 |
* Generate bundle product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
-
* @param bool
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
@@ -57,28 +57,28 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Configurable extends Mage_Xm
|
|
57 |
/**
|
58 |
* Configurable attributes
|
59 |
*/
|
60 |
-
$
|
61 |
-
if (!sizeof($
|
62 |
return $isObject ? $xmlModel : $xmlModel->asNiceXml();
|
63 |
}
|
64 |
|
65 |
-
$
|
66 |
-
$
|
67 |
-
foreach ($
|
68 |
-
if ($
|
69 |
-
$
|
70 |
}
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
* Allowed products options
|
75 |
*/
|
76 |
-
foreach ($
|
77 |
-
$
|
78 |
|
79 |
-
foreach ($
|
80 |
$productAttribute = $attribute->getProductAttribute();
|
81 |
-
$attributeValue = $
|
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][] = $
|
90 |
}
|
91 |
}
|
92 |
|
93 |
-
foreach ($
|
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 |
-
$
|
133 |
-
reset($
|
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($
|
150 |
-
$this->_prepareRecursivelyRelatedValues($valueNode, $
|
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 |
-
$
|
198 |
-
$
|
199 |
-
$
|
200 |
if ((float)$option['price'] != 0.00) {
|
201 |
-
$
|
202 |
-
$
|
203 |
}
|
204 |
|
205 |
/**
|
206 |
* Recursive relation adding
|
207 |
*/
|
208 |
-
$
|
209 |
-
if (next($
|
210 |
-
reset($
|
211 |
-
$this->_prepareRecursivelyRelatedValues($
|
212 |
}
|
213 |
}
|
214 |
}
|
37 |
* Generate bundle product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
+
* @param bool $isObject
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
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 |
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 |
|
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 |
$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 |
$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 |
}
|
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Giftcard.php
CHANGED
@@ -31,8 +31,7 @@
|
|
31 |
* @package Mage_XmlConnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
-
class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
35 |
-
extends Mage_XmlConnect_Block_Catalog_Product_Options
|
36 |
{
|
37 |
/**
|
38 |
* Get sender name
|
@@ -70,6 +69,21 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
|
70 |
return $senderEmail;
|
71 |
}
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
/**
|
74 |
* Check is message available for current product
|
75 |
*
|
@@ -113,22 +127,6 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
|
113 |
return true;
|
114 |
}
|
115 |
|
116 |
-
/**
|
117 |
-
* Get fixed gift card amounts
|
118 |
-
*
|
119 |
-
* @param $product
|
120 |
-
* @return array
|
121 |
-
*/
|
122 |
-
public function getAmounts($product)
|
123 |
-
{
|
124 |
-
$result = array();
|
125 |
-
foreach ($product->getGiftcardAmounts() as $amount) {
|
126 |
-
$result[] = Mage::app()->getStore()->roundPrice($amount['website_value']);
|
127 |
-
}
|
128 |
-
sort($result);
|
129 |
-
return $result;
|
130 |
-
}
|
131 |
-
|
132 |
/**
|
133 |
* Generate gift card product options xml
|
134 |
*
|
@@ -157,23 +155,24 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
|
157 |
/** @var $coreHelper Mage_Core_Helper_Data */
|
158 |
$coreHelper = Mage::helper('core');
|
159 |
|
|
|
|
|
160 |
/**
|
161 |
* Render fixed amounts options
|
162 |
*/
|
163 |
-
|
164 |
/** @var $fixedAmountsNode Mage_XmlConnect_Model_Simplexml_Element */
|
165 |
$fixedAmountsNode = $optionsXmlObj->addChild('fixed_amounts');
|
166 |
if ($this->isAmountAvailable($product)) {
|
167 |
-
$amounts = $
|
168 |
if (count($amounts)) {
|
169 |
foreach ($amounts as $price) {
|
170 |
$amountNode = $fixedAmountsNode->addChild('amount');
|
171 |
-
$
|
172 |
-
'
|
173 |
-
|
174 |
-
|
175 |
-
)
|
176 |
-
);
|
177 |
$amountNode->addAttribute('price', $price);
|
178 |
}
|
179 |
}
|
@@ -182,34 +181,30 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
|
182 |
/**
|
183 |
* Render open amount options
|
184 |
*/
|
185 |
-
|
186 |
/** @var $openAmountNode Mage_XmlConnect_Model_Simplexml_Element */
|
187 |
$openAmountNode = $optionsXmlObj->addChild('open_amount');
|
188 |
if ($product->getAllowOpenAmount()) {
|
189 |
$openAmountNode->addAttribute('enabled', 1);
|
190 |
|
191 |
-
if ($
|
192 |
-
$
|
|
|
|
|
|
|
193 |
$minAmount = $coreHelper->currency($minPrice, true, false);
|
194 |
} else {
|
195 |
$minAmount = $minPrice = 0;
|
196 |
}
|
197 |
-
$openAmountNode->addAttribute(
|
198 |
-
'formatted_min_amount',
|
199 |
-
$xmlModel->xmlAttribute($minAmount)
|
200 |
-
);
|
201 |
$openAmountNode->addAttribute('min_amount', $minPrice);
|
202 |
|
203 |
-
if ($
|
204 |
-
$maxPrice =
|
205 |
$maxAmount = $coreHelper->currency($maxPrice, true, false);
|
206 |
} else {
|
207 |
$maxAmount = $maxPrice = 0;
|
208 |
}
|
209 |
-
$openAmountNode->addAttribute(
|
210 |
-
'formatted_max_amount',
|
211 |
-
$xmlModel->xmlAttribute($maxAmount)
|
212 |
-
);
|
213 |
$openAmountNode->addAttribute('max_amount', $maxPrice);
|
214 |
} else {
|
215 |
$openAmountNode->addAttribute('enabled', 0);
|
@@ -218,89 +213,56 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
|
|
218 |
/**
|
219 |
* Render Gift Card form options
|
220 |
*/
|
221 |
-
$form = $optionsXmlObj->addCustomChild(
|
222 |
-
'form',
|
223 |
-
|
224 |
-
|
225 |
-
'name' => 'giftcard-send-form',
|
226 |
-
'method' => 'post'
|
227 |
-
)
|
228 |
-
);
|
229 |
|
230 |
-
$senderFieldset = $form->addCustomChild(
|
231 |
-
'
|
232 |
-
|
233 |
-
array(
|
234 |
-
'legend' => $this->__('Sender Information')
|
235 |
-
)
|
236 |
-
);
|
237 |
|
238 |
-
$senderFieldset->addField(
|
239 |
-
'
|
240 |
-
'
|
241 |
-
|
242 |
-
|
243 |
-
'required' => 'true',
|
244 |
-
'value' => $this->getSenderName()
|
245 |
-
)
|
246 |
-
);
|
247 |
|
248 |
-
$recipientFieldset = $form->addCustomChild(
|
249 |
-
'
|
250 |
-
|
251 |
-
array(
|
252 |
-
'legend' => $this->__('Recipient Information')
|
253 |
-
)
|
254 |
-
);
|
255 |
|
256 |
-
$recipientFieldset->addField(
|
257 |
-
'
|
258 |
-
'
|
259 |
-
|
260 |
-
|
261 |
-
'required' => 'true',
|
262 |
-
'value' => $this->getDefaultValue('giftcard_recipient_name')
|
263 |
-
)
|
264 |
-
);
|
265 |
|
266 |
if ($this->isEmailAvailable($product)) {
|
267 |
-
$senderFieldset->addField(
|
268 |
-
'
|
269 |
-
'
|
270 |
-
|
271 |
-
|
272 |
-
'required' => 'true',
|
273 |
-
'value' => $this->getSenderEmail()
|
274 |
-
)
|
275 |
-
);
|
276 |
|
277 |
-
$recipientFieldset->addField(
|
278 |
-
'
|
279 |
-
'
|
280 |
-
|
281 |
-
|
282 |
-
'required' => 'true',
|
283 |
-
'value' => $this->getDefaultValue('giftcard_recipient_email')
|
284 |
-
)
|
285 |
-
);
|
286 |
}
|
287 |
|
288 |
if ($this->isMessageAvailable($product)) {
|
289 |
$messageMaxLength = (int) Mage::getStoreConfig(
|
290 |
Enterprise_GiftCard_Model_Giftcard::XML_PATH_MESSAGE_MAX_LENGTH
|
291 |
);
|
292 |
-
$recipientFieldset->addField(
|
293 |
-
'
|
294 |
-
'
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
'max_length'=> $messageMaxLength,
|
299 |
-
'value' => $this->getDefaultValue('giftcard_message')
|
300 |
-
)
|
301 |
-
);
|
302 |
}
|
303 |
-
|
304 |
return $isObject ? $xmlModel : $xmlModel->asNiceXml();
|
305 |
}
|
306 |
}
|
31 |
* @package Mage_XmlConnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
+
class Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard extends Mage_XmlConnect_Block_Catalog_Product_Options
|
|
|
35 |
{
|
36 |
/**
|
37 |
* Get sender name
|
69 |
return $senderEmail;
|
70 |
}
|
71 |
|
72 |
+
/**
|
73 |
+
* Get pre-configured values from product
|
74 |
+
*
|
75 |
+
* @param $value param id
|
76 |
+
* @return string
|
77 |
+
*/
|
78 |
+
protected function getDefaultValue($value)
|
79 |
+
{
|
80 |
+
if ($this->getProduct()) {
|
81 |
+
return (string) $this->getProduct()->getPreconfiguredValues()->getData($value);
|
82 |
+
} else {
|
83 |
+
return '';
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
/**
|
88 |
* Check is message available for current product
|
89 |
*
|
127 |
return true;
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/**
|
131 |
* Generate gift card product options xml
|
132 |
*
|
155 |
/** @var $coreHelper Mage_Core_Helper_Data */
|
156 |
$coreHelper = Mage::helper('core');
|
157 |
|
158 |
+
$configValue = $this->getDefaultValue('giftcard_amount');
|
159 |
+
|
160 |
/**
|
161 |
* Render fixed amounts options
|
162 |
*/
|
|
|
163 |
/** @var $fixedAmountsNode Mage_XmlConnect_Model_Simplexml_Element */
|
164 |
$fixedAmountsNode = $optionsXmlObj->addChild('fixed_amounts');
|
165 |
if ($this->isAmountAvailable($product)) {
|
166 |
+
$amounts = $priceModel->getSortedAmounts($product);
|
167 |
if (count($amounts)) {
|
168 |
foreach ($amounts as $price) {
|
169 |
$amountNode = $fixedAmountsNode->addChild('amount');
|
170 |
+
if ($configValue == $price) {
|
171 |
+
$amountNode->addAttribute('selected', 1);
|
172 |
+
}
|
173 |
+
$amountNode->addAttribute('formatted_price', $xmlModel->xmlAttribute(
|
174 |
+
$coreHelper->currency($price, true, false)
|
175 |
+
));
|
176 |
$amountNode->addAttribute('price', $price);
|
177 |
}
|
178 |
}
|
181 |
/**
|
182 |
* Render open amount options
|
183 |
*/
|
|
|
184 |
/** @var $openAmountNode Mage_XmlConnect_Model_Simplexml_Element */
|
185 |
$openAmountNode = $optionsXmlObj->addChild('open_amount');
|
186 |
if ($product->getAllowOpenAmount()) {
|
187 |
$openAmountNode->addAttribute('enabled', 1);
|
188 |
|
189 |
+
if ($configValue == 'custom') {
|
190 |
+
$openAmountNode->addAttribute('selected_amount', $this->getDefaultValue('custom_giftcard_amount'));
|
191 |
+
}
|
192 |
+
if ($priceModel->getMinAmount($product)) {
|
193 |
+
$minPrice = $product->getOpenAmountMin();
|
194 |
$minAmount = $coreHelper->currency($minPrice, true, false);
|
195 |
} else {
|
196 |
$minAmount = $minPrice = 0;
|
197 |
}
|
198 |
+
$openAmountNode->addAttribute('formatted_min_amount', $xmlModel->xmlAttribute($minAmount));
|
|
|
|
|
|
|
199 |
$openAmountNode->addAttribute('min_amount', $minPrice);
|
200 |
|
201 |
+
if ($priceModel->getMaxAmount($product)) {
|
202 |
+
$maxPrice = $product->getOpenAmountMax();
|
203 |
$maxAmount = $coreHelper->currency($maxPrice, true, false);
|
204 |
} else {
|
205 |
$maxAmount = $maxPrice = 0;
|
206 |
}
|
207 |
+
$openAmountNode->addAttribute('formatted_max_amount', $xmlModel->xmlAttribute($maxAmount));
|
|
|
|
|
|
|
208 |
$openAmountNode->addAttribute('max_amount', $maxPrice);
|
209 |
} else {
|
210 |
$openAmountNode->addAttribute('enabled', 0);
|
213 |
/**
|
214 |
* Render Gift Card form options
|
215 |
*/
|
216 |
+
$form = $optionsXmlObj->addCustomChild('form', null, array(
|
217 |
+
'name' => 'giftcard-send-form',
|
218 |
+
'method' => 'post'
|
219 |
+
));
|
|
|
|
|
|
|
|
|
220 |
|
221 |
+
$senderFieldset = $form->addCustomChild('fieldset', null, array(
|
222 |
+
'legend' => $this->__('Sender Information')
|
223 |
+
));
|
|
|
|
|
|
|
|
|
224 |
|
225 |
+
$senderFieldset->addField('giftcard_sender_name', 'text', array(
|
226 |
+
'label' => Mage::helper('enterprise_giftcard')->__('Sender Name'),
|
227 |
+
'required' => 'true',
|
228 |
+
'value' => $this->getSenderName()
|
229 |
+
));
|
|
|
|
|
|
|
|
|
230 |
|
231 |
+
$recipientFieldset = $form->addCustomChild('fieldset', null, array(
|
232 |
+
'legend' => $this->__('Recipient Information')
|
233 |
+
));
|
|
|
|
|
|
|
|
|
234 |
|
235 |
+
$recipientFieldset->addField('giftcard_recipient_name', 'text', array(
|
236 |
+
'label' => Mage::helper('enterprise_giftcard')->__('Recipient Name'),
|
237 |
+
'required' => 'true',
|
238 |
+
'value' => $this->getDefaultValue('giftcard_recipient_name')
|
239 |
+
));
|
|
|
|
|
|
|
|
|
240 |
|
241 |
if ($this->isEmailAvailable($product)) {
|
242 |
+
$senderFieldset->addField('giftcard_sender_email', 'email', array(
|
243 |
+
'label' => Mage::helper('enterprise_giftcard')->__('Sender Email'),
|
244 |
+
'required' => 'true',
|
245 |
+
'value' => $this->getSenderEmail()
|
246 |
+
));
|
|
|
|
|
|
|
|
|
247 |
|
248 |
+
$recipientFieldset->addField('giftcard_recipient_email', 'email', array(
|
249 |
+
'label' => Mage::helper('enterprise_giftcard')->__('Recipient Email'),
|
250 |
+
'required' => 'true',
|
251 |
+
'value' => $this->getDefaultValue('giftcard_recipient_email')
|
252 |
+
));
|
|
|
|
|
|
|
|
|
253 |
}
|
254 |
|
255 |
if ($this->isMessageAvailable($product)) {
|
256 |
$messageMaxLength = (int) Mage::getStoreConfig(
|
257 |
Enterprise_GiftCard_Model_Giftcard::XML_PATH_MESSAGE_MAX_LENGTH
|
258 |
);
|
259 |
+
$recipientFieldset->addField('giftcard_message', 'textarea', array(
|
260 |
+
'label' => Mage::helper('enterprise_giftcard')->__('Message'),
|
261 |
+
'required' => 'false',
|
262 |
+
'max_length'=> $messageMaxLength,
|
263 |
+
'value' => $this->getDefaultValue('giftcard_message')
|
264 |
+
));
|
|
|
|
|
|
|
|
|
265 |
}
|
|
|
266 |
return $isObject ? $xmlModel : $xmlModel->asNiceXml();
|
267 |
}
|
268 |
}
|
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 |
-
$
|
59 |
-
if (!sizeof($
|
60 |
return $isObject ? $xmlModel : $xmlModel->asNiceXml();
|
61 |
}
|
62 |
|
63 |
-
foreach ($
|
64 |
-
if (!$
|
65 |
continue;
|
66 |
}
|
67 |
$optionNode = $optionsNode->addChild('option');
|
68 |
|
69 |
-
$optionNode->addAttribute('code', 'super_group[' . $
|
70 |
$optionNode->addAttribute('type', 'product');
|
71 |
-
$optionNode->addAttribute('label', $xmlModel->escapeXml($
|
72 |
$optionNode->addAttribute('is_qty_editable', 1);
|
73 |
-
$optionNode->addAttribute('qty', $
|
74 |
|
75 |
/**
|
76 |
* Process product price
|
77 |
*/
|
78 |
-
if ($
|
79 |
-
$productPrice = $
|
80 |
} else {
|
81 |
-
$productPrice = $
|
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/Options/Simple.php
CHANGED
@@ -37,7 +37,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Simple extends Mage_XmlConne
|
|
37 |
* Generate simple product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
-
* @param bool
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
37 |
* Generate simple product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
+
* @param bool $isObject
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
app/code/core/Mage/XmlConnect/Block/Catalog/Product/Options/Virtual.php
CHANGED
@@ -37,7 +37,7 @@ class Mage_XmlConnect_Block_Catalog_Product_Options_Virtual extends Mage_XmlConn
|
|
37 |
* Generate virtual product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
-
* @param bool
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
37 |
* Generate virtual product options xml
|
38 |
*
|
39 |
* @param Mage_Catalog_Model_Product $product
|
40 |
+
* @param bool $isObject
|
41 |
* @return string | Mage_XmlConnect_Model_Simplexml_Element
|
42 |
*/
|
43 |
public function getProductOptionsXml(Mage_Catalog_Model_Product $product, $isObject = false)
|
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_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(
|
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');
|
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_XmlConnect_Model_Simplexml_Element $item
|
44 |
-
{
|
45 |
$this->setProduct($product)->setDisplayMinimalPrice(true)->setUseLinkForAsLowAs(false);
|
46 |
|
47 |
$priceXmlObj = $item->addChild('price');
|
48 |
-
$
|
49 |
-
if (count($
|
50 |
$tierPricesTextArray = $item->escapeXml(implode(
|
51 |
-
PHP_EOL, $this->_getTierPricesTextArray($
|
52 |
));
|
53 |
$item->addCustomChild('price_tier', $tierPricesTextArray);
|
54 |
}
|
55 |
|
56 |
-
/** @var $
|
57 |
-
$
|
58 |
-
/** @var $
|
59 |
-
$
|
60 |
-
/** @var $
|
61 |
-
$
|
62 |
|
63 |
-
$
|
64 |
-
$
|
65 |
-
$
|
66 |
|
67 |
if (!$product->isGrouped()) {
|
68 |
-
$
|
69 |
-
if ($
|
70 |
-
$
|
71 |
-
$
|
72 |
}
|
73 |
|
74 |
-
$
|
75 |
-
$
|
76 |
-
$
|
77 |
-
$
|
78 |
-
$
|
79 |
-
if ($
|
80 |
-
if ($
|
81 |
/**
|
82 |
* Including
|
83 |
*/
|
84 |
-
if ($
|
85 |
$priceXmlObj->addAttribute(
|
86 |
-
'excluding_tax', $
|
87 |
);
|
88 |
$priceXmlObj->addAttribute(
|
89 |
-
'including_tax', $
|
90 |
);
|
91 |
-
} elseif ($
|
92 |
/**
|
93 |
* Including + Weee
|
94 |
*/
|
95 |
$priceXmlObj->addAttribute(
|
96 |
-
'excluding_tax', $
|
97 |
);
|
98 |
$priceXmlObj->addAttribute(
|
99 |
-
'including_tax', $
|
100 |
);
|
101 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
102 |
-
$
|
103 |
-
$weeeXmlObj->addAttribute('separator', $
|
104 |
-
foreach ($
|
105 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
106 |
$weeeItemXmlObj->addAttribute(
|
107 |
-
'name', $weeeItemXmlObj->escapeXml($
|
108 |
);
|
109 |
$weeeItemXmlObj->addAttribute(
|
110 |
-
'amount', $
|
111 |
);
|
112 |
}
|
113 |
-
} elseif ($
|
114 |
/**
|
115 |
* Including + Weee
|
116 |
*/
|
117 |
$priceXmlObj->addAttribute(
|
118 |
-
'excluding_tax', $
|
119 |
);
|
120 |
$priceXmlObj->addAttribute(
|
121 |
-
'including_tax', $
|
122 |
);
|
123 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
124 |
-
$
|
125 |
-
$weeeXmlObj->addAttribute('separator', $
|
126 |
-
foreach ($
|
127 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
128 |
$weeeItemXmlObj->addAttribute(
|
129 |
-
'name', $weeeItemXmlObj->escapeXml($
|
130 |
);
|
131 |
-
$weeeItemXmlObj->addAttribute('amount', $
|
132 |
-
$
|
133 |
));
|
134 |
}
|
135 |
-
} elseif ($
|
136 |
/**
|
137 |
* Excluding + Weee + Final
|
138 |
*/
|
139 |
-
$priceXmlObj->addAttribute('excluding_tax', $
|
140 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
141 |
-
foreach ($
|
142 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
143 |
$weeeItemXmlObj->addAttribute(
|
144 |
-
'name', $weeeItemXmlObj->escapeXml($
|
145 |
);
|
146 |
$weeeItemXmlObj->addAttribute(
|
147 |
-
'amount', $
|
148 |
);
|
149 |
}
|
150 |
-
$priceXmlObj->addAttribute('including_tax', $
|
151 |
-
$
|
152 |
));
|
153 |
} else {
|
154 |
-
$priceXmlObj->addAttribute('excluding_tax', $
|
155 |
$priceXmlObj->addAttribute(
|
156 |
-
'including_tax', $
|
157 |
);
|
158 |
}
|
159 |
/**
|
160 |
-
* if ($
|
161 |
*/
|
162 |
} else {
|
163 |
/**
|
164 |
* Including
|
165 |
*/
|
166 |
-
if ($
|
167 |
-
$priceXmlObj->addAttribute('regular', $
|
168 |
-
$
|
169 |
));
|
170 |
-
} elseif ($
|
171 |
/**
|
172 |
* Including + Weee
|
173 |
*/
|
174 |
-
$priceXmlObj->addAttribute('regular', $
|
175 |
-
$
|
176 |
));
|
177 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
178 |
-
$
|
179 |
-
$weeeXmlObj->addAttribute('separator', $
|
180 |
-
foreach ($
|
181 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
182 |
$weeeItemXmlObj->addAttribute(
|
183 |
-
'name', $weeeItemXmlObj->escapeXml($
|
184 |
);
|
185 |
$weeeItemXmlObj->addAttribute(
|
186 |
-
'amount', $
|
187 |
);
|
188 |
}
|
189 |
-
} elseif ($
|
190 |
/**
|
191 |
* Including + Weee
|
192 |
*/
|
193 |
-
$priceXmlObj->addAttribute('regular', $
|
194 |
-
$
|
195 |
));
|
196 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
197 |
-
$
|
198 |
-
$weeeXmlObj->addAttribute('separator', $
|
199 |
-
foreach ($
|
200 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
201 |
$weeeItemXmlObj->addAttribute(
|
202 |
-
'name', $weeeItemXmlObj->escapeXml($
|
203 |
);
|
204 |
-
$weeeItemXmlObj->addAttribute('amount', $
|
205 |
-
$
|
206 |
));
|
207 |
}
|
208 |
-
} elseif ($
|
209 |
/**
|
210 |
* Excluding + Weee + Final
|
211 |
*/
|
212 |
-
$priceXmlObj->addAttribute('regular', $
|
213 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
214 |
-
foreach ($
|
215 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
216 |
$weeeItemXmlObj->addAttribute(
|
217 |
-
'name', $weeeItemXmlObj->escapeXml($
|
218 |
);
|
219 |
$weeeItemXmlObj->addAttribute(
|
220 |
-
'amount', $
|
221 |
);
|
222 |
}
|
223 |
$priceXmlObj->addAttribute(
|
224 |
-
'including_tax', $
|
225 |
);
|
226 |
} else {
|
227 |
-
$priceXmlObj->addAttribute('regular', $
|
228 |
}
|
229 |
}
|
230 |
/**
|
231 |
-
* if ($
|
232 |
*/
|
233 |
} else {
|
234 |
-
$
|
235 |
/**
|
236 |
* Including
|
237 |
*/
|
238 |
-
if ($
|
239 |
-
$priceXmlObj->addAttribute('regular', $
|
240 |
-
$
|
241 |
));
|
242 |
-
if ($
|
243 |
-
$priceXmlObj->addAttribute('special_excluding_tax', $
|
244 |
-
$
|
245 |
));
|
246 |
-
$priceXmlObj->addAttribute('special_including_tax', $
|
247 |
-
$
|
248 |
));
|
249 |
} else {
|
250 |
-
$priceXmlObj->addAttribute('special', $
|
251 |
-
$
|
252 |
));
|
253 |
}
|
254 |
-
} elseif ($
|
255 |
/**
|
256 |
* Including + Weee
|
257 |
*/
|
258 |
-
$priceXmlObj->addAttribute('regular', $
|
259 |
-
$
|
260 |
));
|
261 |
-
$priceXmlObj->addAttribute('special_excluding_tax', $
|
262 |
-
$
|
263 |
));
|
264 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
265 |
-
$
|
266 |
-
$weeeXmlObj->addAttribute('separator', $
|
267 |
-
foreach ($
|
268 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
269 |
$weeeItemXmlObj->addAttribute(
|
270 |
-
'name', $weeeItemXmlObj->escapeXml($
|
271 |
);
|
272 |
-
$weeeItemXmlObj->addAttribute('amount', $
|
273 |
-
$
|
274 |
));
|
275 |
}
|
276 |
-
$priceXmlObj->addAttribute('special_including_tax', $
|
277 |
-
$
|
278 |
));
|
279 |
-
} elseif ($
|
280 |
/**
|
281 |
* Including + Weee
|
282 |
*/
|
283 |
-
$priceXmlObj->addAttribute('regular', $
|
284 |
-
$
|
285 |
));
|
286 |
-
$priceXmlObj->addAttribute('special_excluding_tax', $
|
287 |
-
$
|
288 |
));
|
289 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
290 |
-
$
|
291 |
-
$weeeXmlObj->addAttribute('separator', $
|
292 |
-
foreach ($
|
293 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
294 |
$weeeItemXmlObj->addAttribute(
|
295 |
-
'name', $weeeItemXmlObj->escapeXml($
|
296 |
);
|
297 |
-
$weeeItemXmlObj->addAttribute('amount', $
|
298 |
-
$
|
299 |
));
|
300 |
}
|
301 |
-
$priceXmlObj->addAttribute('special_including_tax', $
|
302 |
-
$
|
303 |
));
|
304 |
-
} elseif ($
|
305 |
/**
|
306 |
* Excluding + Weee + Final
|
307 |
*/
|
308 |
-
$priceXmlObj->addAttribute('regular', $
|
309 |
$priceXmlObj->addAttribute(
|
310 |
-
'special_excluding_tax', $
|
311 |
);
|
312 |
$weeeXmlObj = $priceXmlObj->addChild('weee');
|
313 |
-
foreach ($
|
314 |
$weeeItemXmlObj = $weeeXmlObj->addChild('item');
|
315 |
$weeeItemXmlObj->addAttribute(
|
316 |
-
'name', $weeeItemXmlObj->escapeXml($
|
317 |
);
|
318 |
-
$weeeItemXmlObj->addAttribute('amount', $
|
319 |
-
$
|
320 |
));
|
321 |
}
|
322 |
-
$priceXmlObj->addAttribute('special_including_tax', $
|
323 |
-
$
|
324 |
));
|
325 |
} else {
|
326 |
/**
|
327 |
* Excluding
|
328 |
*/
|
329 |
-
$priceXmlObj->addAttribute('regular', $
|
330 |
-
if ($
|
331 |
$priceXmlObj->addAttribute(
|
332 |
-
'special_excluding_tax', $
|
333 |
);
|
334 |
$priceXmlObj->addAttribute(
|
335 |
-
'special_including_tax', $
|
336 |
);
|
337 |
} else {
|
338 |
$priceXmlObj->addAttribute(
|
339 |
-
'special', $
|
340 |
);
|
341 |
}
|
342 |
}
|
343 |
}
|
344 |
|
345 |
-
if ($this->getDisplayMinimalPrice() && $
|
346 |
-
&& $
|
347 |
) {
|
348 |
-
$
|
349 |
|
350 |
-
if ($
|
351 |
-
$
|
352 |
}
|
353 |
|
354 |
if (!$this->getUseLinkForAsLowAs()) {
|
355 |
-
$priceXmlObj->addAttribute('as_low_as', $
|
356 |
-
$
|
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 |
-
$
|
365 |
-
$
|
366 |
|
367 |
-
if ($this->getDisplayMinimalPrice() && $
|
368 |
-
if ($
|
369 |
-
$priceXmlObj->addAttribute('starting_at_excluding_tax', $
|
370 |
-
$
|
371 |
));
|
372 |
-
$priceXmlObj->addAttribute('starting_at_including_tax', $
|
373 |
-
$
|
374 |
));
|
375 |
} else {
|
376 |
-
$
|
377 |
-
if (!$
|
378 |
-
$
|
379 |
}
|
380 |
-
$priceXmlObj->addAttribute('starting_at', $
|
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 $
|
447 |
-
* @param Mage_Catalog_Model_Product $
|
448 |
* @return array
|
449 |
*/
|
450 |
-
protected function _getTierPricesTextArray($
|
451 |
{
|
452 |
$pricesArray = array();
|
453 |
-
if (Mage::helper('weee')->typeOfDisplay($
|
454 |
-
$
|
455 |
}
|
456 |
|
457 |
-
if ($
|
458 |
-
$
|
459 |
}
|
460 |
-
Mage::helper('weee')->processTierPrices($
|
461 |
|
462 |
-
foreach ($
|
463 |
$s = '';
|
464 |
if ($this->helper('tax')->displayBothPrices()) {
|
465 |
-
if (Mage::helper('weee')->typeOfDisplay($
|
466 |
-
$s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $
|
467 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
468 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
469 |
-
if ($
|
470 |
-
$s .= ' (' . $this->__('%1$s incl tax.', $
|
471 |
$separator = ' + ';
|
472 |
-
foreach ($
|
473 |
-
$s .= $separator . $
|
474 |
-
$s .= Mage::helper('core')->currency($
|
475 |
}
|
476 |
$s .= ')';
|
477 |
}
|
478 |
$s .= ' ' . $this->__('each');
|
479 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
480 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
481 |
-
if ($
|
482 |
-
$s .= ' (' . $this->__('%1$s incl tax.', $
|
483 |
$separator = ' + ';
|
484 |
-
foreach ($
|
485 |
-
$s .= $separator . $
|
486 |
$s .= Mage::helper('core')->currency(
|
487 |
-
$
|
488 |
);
|
489 |
}
|
490 |
$s .= ')';
|
491 |
}
|
492 |
$s .= ' ' . $this->__('each');
|
493 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
494 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
495 |
-
if ($
|
496 |
$s .= ' (';
|
497 |
-
foreach ($
|
498 |
-
$s .= $
|
499 |
-
$s .= Mage::helper('core')->currency($
|
500 |
}
|
501 |
-
$s .= ' ' . $this->__('Total incl. Tax: %1$s', $
|
502 |
}
|
503 |
$s .= ' ' . $this->__('each');
|
504 |
} else {
|
505 |
-
$s .= $this->__('Buy %1$s for %2$s (%3$s incl. tax) each', $
|
506 |
}
|
507 |
} else {
|
508 |
if ($this->helper('tax')->displayPriceIncludingTax()) {
|
509 |
-
if (Mage::helper('weee')->typeOfDisplay($
|
510 |
-
$s .= $this->__('Buy %1$s for %2$s each', $
|
511 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
512 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
513 |
-
if ($
|
514 |
$s .= ' (';
|
515 |
$separator = '';
|
516 |
-
foreach ($
|
517 |
-
$s .= $separator . $
|
518 |
-
$s .= Mage::helper('core')->currency($
|
519 |
$separator = ' + ';
|
520 |
}
|
521 |
$s .= ')';
|
522 |
}
|
523 |
$s .= ' ' . $this->__('each');
|
524 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
525 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
526 |
-
if ($
|
527 |
$s .= ' (';
|
528 |
$separator = '';
|
529 |
-
foreach ($
|
530 |
-
$s .= $separator . $
|
531 |
$s .= Mage::helper('core')->currency(
|
532 |
-
$
|
533 |
);
|
534 |
$separator = ' + ';
|
535 |
}
|
536 |
$s .= ')';
|
537 |
}
|
538 |
$s .= ' ' . $this->__('each');
|
539 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
540 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
541 |
-
if ($
|
542 |
$s .= ' (';
|
543 |
-
foreach ($
|
544 |
-
$s .= $
|
545 |
-
$s .= Mage::helper('core')->currency($
|
546 |
}
|
547 |
-
$s .= ' ' . $this->__('Total incl. Tax: %1$s', $
|
548 |
}
|
549 |
$s .= ' ' . $this->__('each');
|
550 |
} else {
|
551 |
-
$s .= $this->__('Buy %1$s for %2$s each', $
|
552 |
}
|
553 |
} else {
|
554 |
-
if (Mage::helper('weee')->typeOfDisplay($
|
555 |
-
$s .= $this->__('Buy %1$s for %2$s each', $
|
556 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
557 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
558 |
-
if ($
|
559 |
$s .= ' (';
|
560 |
$separator = '';
|
561 |
-
foreach ($
|
562 |
-
$s .= $separator . $
|
563 |
-
$s .= Mage::helper('core')->currency($
|
564 |
$separator = ' + ';
|
565 |
}
|
566 |
$s .= ')';
|
567 |
}
|
568 |
$s .= ' ' . $this->__('each');
|
569 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
570 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
571 |
-
if ($
|
572 |
$s .= ' (';
|
573 |
$separator = '';
|
574 |
-
foreach ($
|
575 |
-
$s .= $separator . $
|
576 |
$s .= Mage::helper('core')->currency(
|
577 |
-
$
|
578 |
);
|
579 |
$separator = ' + ';
|
580 |
}
|
581 |
$s .= ')';
|
582 |
}
|
583 |
$s .= ' ' . $this->__('each');
|
584 |
-
} else if (Mage::helper('weee')->typeOfDisplay($
|
585 |
-
$s .= $this->__('Buy %1$s for %2$s', $
|
586 |
-
if ($
|
587 |
$s .= ' (';
|
588 |
-
foreach ($
|
589 |
-
$s .= $
|
590 |
-
$s .= Mage::helper('core')->currency($
|
591 |
}
|
592 |
-
$s .= ' ' . $this->__('Total incl. Tax: %1$s', $
|
593 |
}
|
594 |
$s .= ' ' . $this->__('each');
|
595 |
} else {
|
596 |
-
$s .= $this->__('Buy %1$s for %2$s each', $
|
597 |
}
|
598 |
}
|
599 |
}
|
600 |
-
if (!$
|
601 |
-
$condition1 = ($
|
602 |
-
&& $
|
603 |
|
604 |
-
$condition2 = ($
|
605 |
-
&& $
|
606 |
|
607 |
if ($condition1 || $condition2) {
|
608 |
-
$s .= ' ' . $this->__('and') . ' ' . $this->__('save') . ' ' . $
|
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(
|
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 |
* 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 |
-
$
|
79 |
-
$
|
80 |
-
if ($
|
81 |
-
$priceXmlObj->addAttribute('regular', Mage::helper('core')->currency($
|
82 |
-
} else if ($
|
83 |
$priceXmlObj->addAttribute(
|
84 |
'regular',
|
85 |
Mage::helper('enterprise_giftcard')->__('From') . ': '
|
86 |
-
. Mage::helper('core')->currency($
|
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
|
35 |
{
|
36 |
/**
|
37 |
* Render customer address form xml
|
@@ -111,51 +111,4 @@ class Mage_XmlConnect_Block_Checkout_Address_Form extends Mage_Core_Block_Abstra
|
|
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 |
}
|
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 |
|
112 |
return $fromXmlObj->getXml();
|
113 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Configurable.php
CHANGED
@@ -44,8 +44,7 @@ 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 |
-
) {
|
49 |
$product = $this->getProduct();
|
50 |
}
|
51 |
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 |
$product = $this->getProduct();
|
49 |
}
|
50 |
return $this->helper('xmlconnect/catalog_product_image')->init($product, 'thumbnail');
|
app/code/core/Mage/XmlConnect/Block/Checkout/Cart/Item/Renderer/Grouped.php
CHANGED
@@ -43,8 +43,7 @@ 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 |
-
) {
|
48 |
$product = $this->getGroupedProduct();
|
49 |
}
|
50 |
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 |
$product = $this->getGroupedProduct();
|
48 |
}
|
49 |
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
|
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_Checkout_Block_Agreements
|
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
|
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Render customer address form
|
app/code/core/Mage/XmlConnect/Block/Checkout/Onepage/Address/List.php
CHANGED
@@ -33,28 +33,6 @@
|
|
33 |
*/
|
34 |
class Mage_XmlConnect_Block_Checkout_Onepage_Address_List extends Mage_Checkout_Block_Onepage_Abstract
|
35 |
{
|
36 |
-
/**
|
37 |
-
* Address attribute list to retrieve
|
38 |
-
*
|
39 |
-
* @var array
|
40 |
-
*/
|
41 |
-
protected $_addressAttributes = array(
|
42 |
-
'entity_id',
|
43 |
-
'firstname',
|
44 |
-
'lastname',
|
45 |
-
'company',
|
46 |
-
'street1',
|
47 |
-
'street2',
|
48 |
-
'city',
|
49 |
-
'region',
|
50 |
-
'region_id',
|
51 |
-
'postcode',
|
52 |
-
'country',
|
53 |
-
'country_id',
|
54 |
-
'telephone',
|
55 |
-
'fax'
|
56 |
-
);
|
57 |
-
|
58 |
/**
|
59 |
* Render customer address list xml
|
60 |
*
|
@@ -65,15 +43,15 @@ class Mage_XmlConnect_Block_Checkout_Onepage_Address_List extends Mage_Checkout_
|
|
65 |
/** @var $listChild Mage_XmlConnect_Model_Simplexml_Element */
|
66 |
$listChild = $this->getXmlObj();
|
67 |
|
68 |
-
$
|
69 |
-
$
|
70 |
|
71 |
foreach ($this->getCustomer()->getAddresses() as $address) {
|
72 |
$childOptions = array();
|
73 |
-
if ($
|
74 |
$childOptions['default_billing'] = 1;
|
75 |
}
|
76 |
-
if ($
|
77 |
$childOptions['default_shipping'] = 1;
|
78 |
}
|
79 |
$addressItem = $listChild->addCustomChild('item', null, $childOptions);
|
@@ -88,32 +66,47 @@ class Mage_XmlConnect_Block_Checkout_Onepage_Address_List extends Mage_Checkout_
|
|
88 |
*
|
89 |
* @param Mage_Customer_Model_Address $address
|
90 |
* @param Mage_XmlConnect_Model_Simplexml_Element $item
|
91 |
-
* @return
|
92 |
*/
|
93 |
protected function _prepareAddressData(
|
94 |
Mage_Customer_Model_Address $address, Mage_XmlConnect_Model_Simplexml_Element $item
|
95 |
) {
|
96 |
-
|
97 |
-
|
98 |
-
}
|
99 |
-
|
100 |
-
$address->explodeStreetAddress();
|
101 |
-
$data = $address->getData();
|
102 |
-
$data['country'] = $address->getCountryModel()->getName();
|
103 |
|
104 |
-
foreach ($
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
} else {
|
108 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
}
|
111 |
|
112 |
-
$data = array_intersect_key($data, array_flip($this->_addressAttributes));
|
113 |
foreach ($data as $key => $value) {
|
114 |
-
if (
|
115 |
-
|
116 |
}
|
|
|
117 |
}
|
|
|
118 |
}
|
119 |
}
|
33 |
*/
|
34 |
class Mage_XmlConnect_Block_Checkout_Onepage_Address_List extends Mage_Checkout_Block_Onepage_Abstract
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Render customer address list xml
|
38 |
*
|
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);
|
66 |
*
|
67 |
* @param Mage_Customer_Model_Address $address
|
68 |
* @param Mage_XmlConnect_Model_Simplexml_Element $item
|
69 |
+
* @return Mage_XmlConnect_Block_Checkout_Onepage_Address_List
|
70 |
*/
|
71 |
protected function _prepareAddressData(
|
72 |
Mage_Customer_Model_Address $address, Mage_XmlConnect_Model_Simplexml_Element $item
|
73 |
) {
|
74 |
+
$attributes = Mage::helper('customer/address')->getAttributes();
|
75 |
+
$data = array('entity_id' => $address->getId());
|
|
|
|
|
|
|
|
|
|
|
76 |
|
77 |
+
foreach ($attributes as $attribute) {
|
78 |
+
/* @var $attribute Mage_Customer_Model_Attribute */
|
79 |
+
if (!$attribute->getIsVisible()) {
|
80 |
+
continue;
|
81 |
+
}
|
82 |
+
if ($attribute->getAttributeCode() == 'country_id') {
|
83 |
+
$data['country'] = $address->getCountryModel()->getName();
|
84 |
+
$data['country_id'] = $address->getCountryId();
|
85 |
+
} else if ($attribute->getAttributeCode() == 'region') {
|
86 |
+
$data['region'] = $address->getRegion();
|
87 |
} else {
|
88 |
+
$dataModel = Mage_Customer_Model_Attribute_Data::factory($attribute, $address);
|
89 |
+
$attributeValue = $dataModel->outputValue(
|
90 |
+
Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_ONELINE
|
91 |
+
);
|
92 |
+
if ($attribute->getFrontendInput() == 'multiline') {
|
93 |
+
$values = $dataModel->outputValue(Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_ARRAY);
|
94 |
+
// explode lines
|
95 |
+
foreach ($values as $attributeIndex => $attributeVal) {
|
96 |
+
$key = sprintf('%s%d', $attribute->getAttributeCode(), $attributeIndex + 1);
|
97 |
+
$data[$key] = $attributeVal;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
$data[$attribute->getAttributeCode()] = $attributeValue;
|
101 |
}
|
102 |
}
|
103 |
|
|
|
104 |
foreach ($data as $key => $value) {
|
105 |
+
if (empty($value)) {
|
106 |
+
continue;
|
107 |
}
|
108 |
+
$item->addCustomChild($key, $value);
|
109 |
}
|
110 |
+
return $this;
|
111 |
}
|
112 |
}
|
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 |
-
$
|
82 |
$typeOfDisplay = Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales');
|
83 |
if ($typeOfDisplay && $item->getWeeeTaxAppliedAmount()) {
|
84 |
-
$inclPrice = $
|
85 |
} else {
|
86 |
-
$inclPrice = $
|
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 |
-
$
|
131 |
if (Mage::helper('weee')->typeOfDisplay($item, array(0, 1, 4), 'sales')
|
132 |
&& $item->getWeeeTaxAppliedAmount()
|
133 |
) {
|
134 |
-
$inclPrice = $
|
135 |
} else {
|
136 |
-
$inclPrice = $
|
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 |
-
$
|
170 |
-
if ($
|
171 |
$itemOptionsXml = $itemXml->addChild('options');
|
172 |
-
foreach ($
|
173 |
-
$
|
174 |
$optionXml = $itemOptionsXml->addChild('option');
|
175 |
-
$labelValue = $itemsXmlObj->escapeXml($
|
176 |
$optionXml->addAttribute('label', $labelValue);
|
177 |
-
$textValue = $itemsXmlObj->escapeXml($
|
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 |
-
$
|
84 |
-
$ccMonths = $helper->getArrayAsXmlItemValues($
|
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 |
-
$
|
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 ($
|
48 |
-
foreach ($
|
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 ($
|
48 |
-
foreach ($
|
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 ($
|
48 |
-
foreach ($
|
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('
|
80 |
}
|
81 |
|
82 |
/**
|
@@ -222,7 +222,7 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_List extends Mage_Payment_Bl
|
|
222 |
/** @var $customerBalanceBlock Enterprise_CustomerBalance_Block_Checkout_Onepage_Payment_Additional */
|
223 |
$customerBalanceBlock = $this->getLayout()
|
224 |
->addBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customer_balance');
|
225 |
-
$storeCreditFlag = (int) Mage::
|
226 |
if ($storeCreditFlag && $customerBalanceBlock->isDisplayContainer()) {
|
227 |
$balance = $this->getQuote()->getStore()->formatPrice($customerBalanceBlock->getBalance(), false);
|
228 |
$methodsXmlObj->addCustomChild('customer_balance', null, array(
|
@@ -372,30 +372,4 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_List extends Mage_Payment_Bl
|
|
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 |
}
|
76 |
*/
|
77 |
public function getQuote()
|
78 |
{
|
79 |
+
return Mage::getSingleton('xmlconnect/corefix_checkout_session')->getQuote();
|
80 |
}
|
81 |
|
82 |
/**
|
222 |
/** @var $customerBalanceBlock Enterprise_CustomerBalance_Block_Checkout_Onepage_Payment_Additional */
|
223 |
$customerBalanceBlock = $this->getLayout()
|
224 |
->addBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customer_balance');
|
225 |
+
$storeCreditFlag = (int) Mage::getStoreConfig(Enterprise_CustomerBalance_Helper_Data::XML_PATH_ENABLED);
|
226 |
if ($storeCreditFlag && $customerBalanceBlock->isDisplayContainer()) {
|
227 |
$balance = $this->getQuote()->getStore()->formatPrice($customerBalanceBlock->getBalance(), false);
|
228 |
$methodsXmlObj->addCustomChild('customer_balance', null, array(
|
372 |
}
|
373 |
return $this;
|
374 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
}
|
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/ListApi23.php
CHANGED
@@ -90,7 +90,7 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_ListApi23 extends Mage_XmlCo
|
|
90 |
/** @var $customerBalanceBlock Enterprise_CustomerBalance_Block_Checkout_Onepage_Payment_Additional */
|
91 |
$customerBalanceBlock = $this->getLayout()
|
92 |
->addBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customer_balance');
|
93 |
-
$storeCreditFlag = (int) Mage::
|
94 |
if ($storeCreditFlag && $customerBalanceBlock->isDisplayContainer()) {
|
95 |
$balance = $this->getQuote()->getStore()->formatPrice($customerBalanceBlock->getBalance(), false);
|
96 |
$methodsXmlObj->addCustomChild('method', null, array(
|
90 |
/** @var $customerBalanceBlock Enterprise_CustomerBalance_Block_Checkout_Onepage_Payment_Additional */
|
91 |
$customerBalanceBlock = $this->getLayout()
|
92 |
->addBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customer_balance');
|
93 |
+
$storeCreditFlag = (int) Mage::getStoreConfig(Enterprise_CustomerBalance_Helper_Data::XML_PATH_ENABLED);
|
94 |
if ($storeCreditFlag && $customerBalanceBlock->isDisplayContainer()) {
|
95 |
$balance = $this->getQuote()->getStore()->formatPrice($customerBalanceBlock->getBalance(), false);
|
96 |
$methodsXmlObj->addCustomChild('method', null, array(
|
app/code/core/Mage/XmlConnect/Block/Checkout/Payment/Method/Paypal/Payflow.php
CHANGED
@@ -52,7 +52,7 @@ class Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow extends Mage_
|
|
52 |
{
|
53 |
$method = $this->getData('method');
|
54 |
if (!$method) {
|
55 |
-
$method = Mage::getModel('
|
56 |
$this->setData('method', $method);
|
57 |
}
|
58 |
|
@@ -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 |
-
$
|
79 |
$ccTypes = '';
|
80 |
|
81 |
-
foreach ($this->getCcAvailableTypes() as $
|
82 |
-
if (!$
|
83 |
continue;
|
84 |
}
|
85 |
$ccTypes .= '
|
86 |
-
<item' . ($
|
87 |
<label>' . $_typeName . '</label>
|
88 |
-
<value>' . $
|
89 |
</item>';
|
90 |
}
|
91 |
|
92 |
$ccMonthes = '';
|
93 |
|
94 |
-
$
|
95 |
foreach ($this->getCcMonths() as $k => $v) {
|
96 |
if (!$k) {
|
97 |
continue;
|
98 |
}
|
99 |
$ccMonthes .= '
|
100 |
-
<item' . ($k == $
|
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 |
-
$
|
109 |
foreach ($this->getCcYears() as $k => $v) {
|
110 |
if (!$k) {
|
111 |
continue;
|
112 |
}
|
113 |
$ccYears .= '
|
114 |
-
<item' . ($k == $
|
115 |
<label>' . $v . '</label>
|
116 |
<value>' . ($k ? $k : '') . '</value>
|
117 |
</item>';
|
52 |
{
|
53 |
$method = $this->getData('method');
|
54 |
if (!$method) {
|
55 |
+
$method = Mage::getModel('paypal/payflowpro');
|
56 |
$this->setData('method', $method);
|
57 |
}
|
58 |
|
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
|
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_Template
|
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
|
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Current application model
|
app/code/core/Mage/XmlConnect/Block/Customer/Address/Form.php
CHANGED
@@ -323,41 +323,6 @@ class Mage_XmlConnect_Block_Customer_Address_Form extends Mage_Customer_Block_Ad
|
|
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 |
*
|
323 |
return $this;
|
324 |
}
|
325 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
/**
|
327 |
* Get customer name widget block
|
328 |
*
|
app/code/core/Mage/XmlConnect/Block/Customer/Address/List.php
CHANGED
@@ -31,31 +31,8 @@
|
|
31 |
* @package Mage_XmlConnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
-
class Mage_XmlConnect_Block_Customer_Address_List extends
|
35 |
{
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Address attribute list to retrieve
|
39 |
-
*
|
40 |
-
* @var array
|
41 |
-
*/
|
42 |
-
protected $_addressAttributes = array(
|
43 |
-
'entity_id',
|
44 |
-
'firstname',
|
45 |
-
'lastname',
|
46 |
-
'company',
|
47 |
-
'street1',
|
48 |
-
'street2',
|
49 |
-
'city',
|
50 |
-
'region',
|
51 |
-
'region_id',
|
52 |
-
'postcode',
|
53 |
-
'country',
|
54 |
-
'country_id',
|
55 |
-
'telephone',
|
56 |
-
'fax'
|
57 |
-
);
|
58 |
-
|
59 |
/**
|
60 |
* Render customer address list xml
|
61 |
*
|
@@ -66,10 +43,10 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Abstra
|
|
66 |
$addressXmlObj = Mage::getModel('xmlconnect/simplexml_element', '<address></address>');
|
67 |
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
68 |
|
69 |
-
$
|
70 |
-
$
|
71 |
-
$billingAddress = $customer->getAddressById($
|
72 |
-
$shippingAddress = $customer->getAddressById($
|
73 |
|
74 |
if ($billingAddress && $billingAddress->getId()) {
|
75 |
$item = $addressXmlObj->addChild('item');
|
@@ -83,13 +60,13 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Abstra
|
|
83 |
$item->addAttribute('default_shipping', 1);
|
84 |
$this->prepareAddressData($shippingAddress, $item);
|
85 |
}
|
86 |
-
$
|
87 |
-
if ($
|
88 |
-
foreach ($
|
89 |
$item = $addressXmlObj->addChild('item');
|
90 |
$item->addAttribute('label', $this->__('Additional Address'));
|
91 |
$item->addAttribute('additional', 1);
|
92 |
-
$this->prepareAddressData($
|
93 |
}
|
94 |
}
|
95 |
|
@@ -103,32 +80,48 @@ class Mage_XmlConnect_Block_Customer_Address_List extends Mage_Core_Block_Abstra
|
|
103 |
* @param Mage_Customer_Model_Address $address
|
104 |
* @param Mage_XmlConnect_Model_Simplexml_Element $item
|
105 |
* @return array
|
106 |
-
* @see $this->_addressAttributes
|
107 |
*/
|
108 |
-
public function prepareAddressData(
|
109 |
-
Mage_XmlConnect_Model_Simplexml_Element $item
|
110 |
-
{
|
111 |
if (!$address) {
|
112 |
return array();
|
113 |
}
|
114 |
|
115 |
-
$address->
|
116 |
-
$data = $address->getData();
|
117 |
-
$data['country'] = $address->getCountryModel()->getName();
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
} else {
|
123 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
}
|
126 |
|
127 |
-
$data = array_intersect_key($data, array_flip($this->_addressAttributes));
|
128 |
foreach ($data as $key => $value) {
|
129 |
-
if (
|
130 |
-
|
131 |
}
|
|
|
132 |
}
|
133 |
}
|
134 |
}
|
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
|
38 |
*
|
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 |
|
80 |
* @param Mage_Customer_Model_Address $address
|
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 |
}
|
90 |
|
91 |
+
$attributes = Mage::helper('customer/address')->getAttributes();
|
|
|
|
|
92 |
|
93 |
+
$data = array('entity_id' => $address->getId());
|
94 |
+
|
95 |
+
foreach ($attributes as $attribute) {
|
96 |
+
/* @var $attribute Mage_Customer_Model_Attribute */
|
97 |
+
if (!$attribute->getIsVisible()) {
|
98 |
+
continue;
|
99 |
+
}
|
100 |
+
if ($attribute->getAttributeCode() == 'country_id') {
|
101 |
+
$data['country'] = $address->getCountryModel()->getName();
|
102 |
+
$data['country_id'] = $address->getCountryId();
|
103 |
+
} else if ($attribute->getAttributeCode() == 'region') {
|
104 |
+
$data['region'] = $address->getRegion();
|
105 |
} else {
|
106 |
+
$dataModel = Mage_Customer_Model_Attribute_Data::factory($attribute, $address);
|
107 |
+
$value = $dataModel->outputValue(Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_ONELINE);
|
108 |
+
if ($attribute->getFrontendInput() == 'multiline') {
|
109 |
+
$values = $dataModel->outputValue(Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_ARRAY);
|
110 |
+
// explode lines
|
111 |
+
foreach ($values as $k => $v) {
|
112 |
+
$key = sprintf('%s%d', $attribute->getAttributeCode(), $k + 1);
|
113 |
+
$data[$key] = $v;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
$data[$attribute->getAttributeCode()] = $value;
|
117 |
}
|
118 |
}
|
119 |
|
|
|
120 |
foreach ($data as $key => $value) {
|
121 |
+
if (empty($value)) {
|
122 |
+
continue;
|
123 |
}
|
124 |
+
$item->addChild($key, $item->escapeXml($value));
|
125 |
}
|
126 |
}
|
127 |
}
|
app/code/core/Mage/XmlConnect/Block/Customer/Form.php
CHANGED
@@ -31,8 +31,40 @@
|
|
31 |
* @package Mage_XmlConnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
-
class Mage_XmlConnect_Block_Customer_Form extends
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Render customer form xml
|
38 |
*
|
@@ -196,4 +228,92 @@ class Mage_XmlConnect_Block_Customer_Form extends Mage_Core_Block_Abstract
|
|
196 |
}
|
197 |
return array();
|
198 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
}
|
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 |
}
|
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 |
}
|
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 |
-
$
|
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 ($
|
100 |
$objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
|
101 |
-
$
|
102 |
}
|
103 |
}
|
104 |
|
@@ -182,8 +182,9 @@ 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 |
$items = array_merge(array($parentItem), $parentItem->getChildrenItems());
|
186 |
-
$
|
187 |
|
188 |
/** @var $weeeHelper Mage_Weee_Helper_Data */
|
189 |
$weeeHelper = $this->helper('weee');
|
@@ -230,9 +231,9 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle extends Mage_Bun
|
|
230 |
|
231 |
if ($isOption) {
|
232 |
$attributes = $this->getSelectionAttributes($item);
|
233 |
-
if ($
|
234 |
$objectXml->addAttribute('label', $objectXml->xmlAttribute($attributes['option_label']));
|
235 |
-
$
|
236 |
}
|
237 |
}
|
238 |
|
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 |
+
|
186 |
$items = array_merge(array($parentItem), $parentItem->getChildrenItems());
|
187 |
+
$_prevOptionId = '';
|
188 |
|
189 |
/** @var $weeeHelper Mage_Weee_Helper_Data */
|
190 |
$weeeHelper = $this->helper('weee');
|
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 |
|
app/code/core/Mage/XmlConnect/Block/Customer/Order/Item/Renderer/Downloadable.php
CHANGED
@@ -63,6 +63,12 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
|
|
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,6 +147,12 @@ class Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
|
|
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()));
|
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 |
|
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()));
|
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
|
35 |
{
|
36 |
/**
|
37 |
* Orders count limit
|
@@ -57,18 +57,18 @@ class Mage_XmlConnect_Block_Customer_Order_List extends Mage_Core_Block_Abstract
|
|
57 |
$orders->load();
|
58 |
|
59 |
if (sizeof($orders->getItems())) {
|
60 |
-
foreach ($orders as $
|
61 |
$item = $ordersXmlObj->addChild('item');
|
62 |
-
$item->addChild('entity_id', $
|
63 |
-
$item->addChild('number', $
|
64 |
-
$item->addChild('date', $this->formatDate($
|
65 |
-
if ($
|
66 |
-
$item->addChild('ship_to', $ordersXmlObj->escapeXml($
|
67 |
}
|
68 |
-
$item->addChild('total', $
|
69 |
-
$
|
70 |
));
|
71 |
-
$item->addChild('status', $
|
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_Template
|
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
|
35 |
{
|
36 |
/**
|
37 |
* Render customer store credits xml
|
@@ -46,8 +46,10 @@ class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Abstrac
|
|
46 |
$accountBalance = $this->getLayout()
|
47 |
->addBlock('enterprise_customerbalance/account_balance', 'account_balance');
|
48 |
|
|
|
|
|
49 |
$xmlModel->addCustomChild('balance', null, array(
|
50 |
-
'label' => $
|
51 |
'value' => $accountBalance->getBalance(),
|
52 |
'formatted_value' => Mage::helper('core')->currency($accountBalance->getBalance(), true, false)
|
53 |
));
|
@@ -57,11 +59,11 @@ class Mage_XmlConnect_Block_Customer_Storecredit extends Mage_Core_Block_Abstrac
|
|
57 |
|
58 |
if ($accountHistory->canShow() && $accountHistory->getEvents() && count($accountHistory->getEvents())) {
|
59 |
$balanceHistory = $xmlModel->addCustomChild('balance_history', null, array(
|
60 |
-
'label' => $
|
61 |
-
'action_label' => $
|
62 |
-
'balance_change_label' => $
|
63 |
-
'balance_label' => $
|
64 |
-
'date_label' => $
|
65 |
));
|
66 |
|
67 |
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Render customer store credits xml
|
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 |
|
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) {
|
app/code/core/Mage/XmlConnect/Block/Home.php
CHANGED
@@ -75,7 +75,6 @@ class Mage_XmlConnect_Block_Home extends Mage_XmlConnect_Block_Catalog
|
|
75 |
$itemXmlObj->addChild('label', $homeXmlObj->escapeXml($item->getName()));
|
76 |
$itemXmlObj->addChild('entity_id', $item->getId());
|
77 |
$itemXmlObj->addChild('content_type', $item->hasChildren() ? 'categories' : 'products');
|
78 |
-
|
79 |
$icon = Mage::helper('xmlconnect/catalog_category_image')->initialize($item, 'thumbnail')
|
80 |
->resize(Mage::getModel('xmlconnect/images')->getImageLimitParam('content/category'));
|
81 |
|
75 |
$itemXmlObj->addChild('label', $homeXmlObj->escapeXml($item->getName()));
|
76 |
$itemXmlObj->addChild('entity_id', $item->getId());
|
77 |
$itemXmlObj->addChild('content_type', $item->hasChildren() ? 'categories' : 'products');
|
|
|
78 |
$icon = Mage::helper('xmlconnect/catalog_category_image')->initialize($item, 'thumbnail')
|
79 |
->resize(Mage::getModel('xmlconnect/images')->getImageLimitParam('content/category'));
|
80 |
|
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
|
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
|
42 |
{
|
43 |
return array(
|
44 |
Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID => array(
|
@@ -50,7 +50,8 @@ class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Abstract
|
|
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,7 +69,7 @@ class Mage_XmlConnect_Block_Homebanners extends Mage_Core_Block_Abstract
|
|
68 |
/** @var $imagesModel Mage_XmlConnect_Model_Images */
|
69 |
$imagesModel = Mage::getModel('xmlconnect/images');
|
70 |
|
71 |
-
$bannerTypeCollection = $this->
|
72 |
$deviceType = $deviceHelper->getDeviceType();
|
73 |
foreach ($bannerTypeCollection[$deviceType] as $bannerType) {
|
74 |
|
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 |
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 |
/** @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 |
|
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
|
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_Template
|
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
|
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_Template
|
35 |
{
|
36 |
/**
|
37 |
* Collection of ratings
|
app/code/core/Mage/XmlConnect/Block/Wishlist.php
CHANGED
@@ -69,7 +69,6 @@ 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 |
-
|
73 |
$itemXmlObj->addChild('item_id', $item->getWishlistItemId());
|
74 |
$itemXmlObj->addChild('entity_id', $item->getProductId());
|
75 |
$itemXmlObj->addChild('entity_type_id', $item->getTypeId());
|
@@ -103,7 +102,8 @@ class Mage_XmlConnect_Block_Wishlist extends Mage_Wishlist_Block_Customer_Wishli
|
|
103 |
}
|
104 |
|
105 |
if (!$item->getRatingSummary()) {
|
106 |
-
Mage::getModel('review/review')
|
|
|
107 |
}
|
108 |
$ratingSummary = (int)$item->getRatingSummary()->getRatingSummary();
|
109 |
$itemXmlObj->addChild('rating_summary', round($ratingSummary / 10));
|
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());
|
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));
|
app/code/core/Mage/XmlConnect/Controller/AdminAction.php
CHANGED
@@ -33,11 +33,6 @@
|
|
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,8 +46,7 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
|
|
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,8 +57,7 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
|
|
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,7 +82,7 @@ abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Con
|
|
89 |
*/
|
90 |
public function _checkCookie()
|
91 |
{
|
92 |
-
$AdminDeviceCookie =
|
93 |
$currentDevice = isset($_COOKIE[$AdminDeviceCookie]) ? (string) $_COOKIE[$AdminDeviceCookie] : '';
|
94 |
if (!array_key_exists($currentDevice, Mage_XmlConnect_Helper_Data::getSupportedDevices())) {
|
95 |
$this->_message(
|
33 |
*/
|
34 |
abstract class Mage_XmlConnect_Controller_AdminAction extends Mage_Adminhtml_Controller_Action
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Controller pre-dispatch method
|
38 |
*
|
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 |
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 |
*/
|
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(
|
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 |
-
|
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 |
-
|
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
|
35 |
{
|
36 |
/**
|
37 |
* Submission title length
|
@@ -43,18 +43,6 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
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,26 +55,14 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
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,14 +71,14 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
95 |
protected $_imageIds = array('icon', 'android_loader_image', 'android_logo', 'big_logo');
|
96 |
|
97 |
/**
|
98 |
-
* Country renderer
|
99 |
*
|
100 |
-
* @var
|
101 |
*/
|
102 |
-
protected $
|
103 |
|
104 |
/**
|
105 |
-
* List of
|
106 |
*
|
107 |
* array(
|
108 |
* 'country name' => 'country id at directory model'
|
@@ -142,6 +118,16 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
142 |
'United States' => 'US',
|
143 |
);
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
/**
|
146 |
* Default images list
|
147 |
*
|
@@ -154,13 +140,13 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
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
|
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
|
164 |
));
|
165 |
}
|
166 |
|
@@ -506,7 +492,22 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
506 |
array(
|
507 |
'value' => 'STHeitiK-Light',
|
508 |
'label' => 'STHeitiK-Light',
|
509 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
510 |
}
|
511 |
|
512 |
/**
|
@@ -604,6 +605,21 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
604 |
return $errors;
|
605 |
}
|
606 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
607 |
/**
|
608 |
* Get label for submission country
|
609 |
*
|
@@ -614,6 +630,16 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
614 |
return Mage::helper('xmlconnect')->__('Locations');
|
615 |
}
|
616 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
/**
|
618 |
* Get placement of Country Names for submission country
|
619 |
*
|
@@ -631,14 +657,12 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
631 |
*/
|
632 |
public function getCountryClass()
|
633 |
{
|
634 |
-
return
|
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,4 +719,31 @@ class Mage_XmlConnect_Helper_Android extends Mage_XmlConnect_Helper_Device_Abstr
|
|
695 |
Mage::throwException(Mage::helper('xmlconnect')->__('Banner on Home Screen image missing.'));
|
696 |
}
|
697 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
698 |
}
|
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 |
*/
|
44 |
const SUBMISSION_DESCRIPTION_LENGTH = 4000;
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* Tags identifier for title bar
|
48 |
*/
|
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 |
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 |
'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 |
'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 |
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 |
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 |
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 |
*/
|
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 |
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 |
}
|
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
|
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());
|
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());
|
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 = $
|
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 = $
|
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 = $
|
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 = $
|
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' => $
|
387 |
}
|
388 |
$qty = 1 * $item->getQtyShipped();
|
389 |
if ($qty > 0) {
|
390 |
-
$quantityXml->addCustomChild('value', $qty, array('label' => $
|
391 |
}
|
392 |
$qty = 1 * $item->getQtyCanceled();
|
393 |
if ($qty > 0) {
|
394 |
-
$quantityXml->addCustomChild('value', $qty, array('label' => $
|
395 |
}
|
396 |
$qty = 1 * $item->getQtyRefunded();
|
397 |
if ($qty > 0) {
|
398 |
-
$quantityXml->addCustomChild('value', $qty, array('label' => $
|
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 = $renderer->__('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 = $renderer->__('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 = $renderer->__('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 = $renderer->__('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' => $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 |
|
app/code/core/Mage/XmlConnect/Helper/Data.php
CHANGED
@@ -273,14 +273,15 @@ class Mage_XmlConnect_Helper_Data extends Mage_Core_Helper_Abstract
|
|
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(
|
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(
|
app/code/core/Mage/XmlConnect/Helper/Image.php
CHANGED
@@ -35,15 +35,13 @@ class Mage_XmlConnect_Helper_Image extends Mage_Core_Helper_Abstract
|
|
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;
|
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;
|
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
|
35 |
{
|
36 |
/**
|
37 |
* Submission title length
|
@@ -45,14 +45,11 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
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,6 +62,125 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
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,19 +242,19 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
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
|
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
|
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
|
142 |
));
|
143 |
}
|
144 |
|
@@ -434,15 +550,30 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
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,6 +681,61 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
550 |
return $errors;
|
551 |
}
|
552 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
553 |
/**
|
554 |
* Check image fields
|
555 |
*
|
@@ -609,4 +795,33 @@ class Mage_XmlConnect_Helper_Iphone extends Mage_XmlConnect_Helper_Device_Abstra
|
|
609 |
Mage::throwException(Mage::helper('xmlconnect')->__('App Background image missing.'));
|
610 |
}
|
611 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
612 |
}
|
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 |
|
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 |
'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 |
'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 |
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 |
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 |
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 |
}
|
app/code/core/Mage/XmlConnect/Helper/Theme.php
CHANGED
@@ -209,8 +209,7 @@ EOT;
|
|
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();
|
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();
|
app/code/core/Mage/XmlConnect/Model/AdminApplication.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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/Application.php
CHANGED
@@ -213,7 +213,7 @@ class Mage_XmlConnect_Model_Application extends Mage_Core_Model_Abstract
|
|
213 |
/**
|
214 |
* XML path to config for paypal business account
|
215 |
*/
|
216 |
-
const XML_PATH_PAYPAL_BUSINESS_ACCOUNT = 'paypal/
|
217 |
|
218 |
/**
|
219 |
* XML path to config for default cache time
|
@@ -500,18 +500,14 @@ 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 |
-
|
504 |
-
$result['general']['isAllowedGuestCheckoutForDownloadableProducts'] = '0';
|
505 |
-
} else {
|
506 |
-
$result['general']['isAllowedGuestCheckoutForDownloadableProducts'] = '1';
|
507 |
-
}
|
508 |
|
509 |
/**
|
510 |
* Is enabled Store credit functionality
|
511 |
*/
|
512 |
$isStoreCreditEnable = $canShowHistoryFlag = 0;
|
513 |
if (is_object(Mage::getConfig()->getNode('modules/Enterprise_CustomerBalance'))) {
|
514 |
-
$storeCreditFlag = Mage::getStoreConfig(
|
515 |
$isStoreCreditEnable = (int)$storeCreditFlag;
|
516 |
$canShowHistoryFlag = (int)Mage::getStoreConfigFlag('customer/enterprise_customerbalance/show_history');
|
517 |
}
|
@@ -529,7 +525,7 @@ class Mage_XmlConnect_Model_Application extends Mage_Core_Model_Abstract
|
|
529 |
/**
|
530 |
* PayPal configuration
|
531 |
*/
|
532 |
-
$result['paypal']['businessAccount'] = Mage::
|
533 |
$result['paypal']['merchantLabel'] = $this->getData('conf/special/merchantLabel');
|
534 |
|
535 |
$isActive = 0;
|
@@ -581,11 +577,11 @@ class Mage_XmlConnect_Model_Application extends Mage_Core_Model_Abstract
|
|
581 |
/**
|
582 |
* Check is allowed guest checkout if quote contain downloadable product(s)
|
583 |
*
|
584 |
-
* @return
|
585 |
*/
|
586 |
public function isGuestBuyDownloadableProduct()
|
587 |
{
|
588 |
-
return (
|
589 |
Mage_Downloadable_Model_Observer::XML_PATH_DISABLE_GUEST_CHECKOUT, $this->getStoreId()
|
590 |
);
|
591 |
}
|
213 |
/**
|
214 |
* XML path to config for paypal business account
|
215 |
*/
|
216 |
+
const XML_PATH_PAYPAL_BUSINESS_ACCOUNT = 'paypal/general/business_account';
|
217 |
|
218 |
/**
|
219 |
* XML path to config for default cache time
|
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
|
507 |
*/
|
508 |
$isStoreCreditEnable = $canShowHistoryFlag = 0;
|
509 |
if (is_object(Mage::getConfig()->getNode('modules/Enterprise_CustomerBalance'))) {
|
510 |
+
$storeCreditFlag = Mage::getStoreConfig(Enterprise_CustomerBalance_Helper_Data::XML_PATH_ENABLED);
|
511 |
$isStoreCreditEnable = (int)$storeCreditFlag;
|
512 |
$canShowHistoryFlag = (int)Mage::getStoreConfigFlag('customer/enterprise_customerbalance/show_history');
|
513 |
}
|
525 |
/**
|
526 |
* PayPal configuration
|
527 |
*/
|
528 |
+
$result['paypal']['businessAccount'] = Mage::getModel('paypal/config')->businessAccount;
|
529 |
$result['paypal']['merchantLabel'] = $this->getData('conf/special/merchantLabel');
|
530 |
|
531 |
$isActive = 0;
|
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 |
}
|
app/code/core/Mage/XmlConnect/Model/ConfigData.php
CHANGED
@@ -292,14 +292,17 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
|
|
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 $
|
|
|
300 |
/** @var $applicationModel Mage_XmlConnect_Model_Application */
|
301 |
-
$applicationModel->load($
|
302 |
-
$configData = $this->loadApplicationData($
|
303 |
|
304 |
foreach ($configData[$deprecatedFlag] as $deprecatedConfigKey => $deprecatedConfigValue) {
|
305 |
$pagesConfigPath = 'native/pages/';
|
@@ -308,7 +311,7 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
|
|
308 |
list($id, $type) = explode('/', $pagePath);
|
309 |
$newConfig[$id][$type] = $deprecatedConfigValue;
|
310 |
|
311 |
-
$this->deleteConfig($
|
312 |
}
|
313 |
}
|
314 |
|
@@ -319,7 +322,7 @@ class Mage_XmlConnect_Model_ConfigData extends Mage_Core_Model_Abstract
|
|
319 |
$path = 'staticpage/' . $id;
|
320 |
|
321 |
$this->getResource()->saveConfig(
|
322 |
-
$
|
323 |
);
|
324 |
}
|
325 |
}
|
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 |
list($id, $type) = explode('/', $pagePath);
|
312 |
$newConfig[$id][$type] = $deprecatedConfigValue;
|
313 |
|
314 |
+
$this->deleteConfig($application_id, $deprecatedFlag, $deprecatedConfigKey);
|
315 |
}
|
316 |
}
|
317 |
|
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 |
}
|
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/
|
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/resource_config_data_collection');
|
137 |
} else {
|
138 |
$this->_configDataCollection->clear()->getSelect()->reset();
|
139 |
}
|
app/code/core/Mage/XmlConnect/Model/Corefix/Checkout/Session.php
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
ADDED
@@ -0,0 +1,465 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
ADDED
@@ -0,0 +1,427 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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,16 +204,21 @@ class Mage_XmlConnect_Model_ImageLimits extends Mage_Core_Model_Abstract
|
|
204 |
|
205 |
if ($this->_screenSize && $this->_screenSize != $defaultScreenSize) {
|
206 |
if (!$this->getSizeModel()) {
|
207 |
-
|
208 |
-
|
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 |
|
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 |
|
app/code/core/Mage/XmlConnect/Model/Images.php
CHANGED
@@ -76,10 +76,9 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
|
|
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
|
83 |
{
|
84 |
$convertedImageFile = $this->_convertFileExtensionToPng($imageFile);
|
85 |
$ioAdapter = new Varien_Io_File();
|
@@ -90,12 +89,10 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
|
|
90 |
if (!is_dir($baseImageDir . DS . $item)) {
|
91 |
continue;
|
92 |
}
|
93 |
-
$ioAdapter->rm($baseImageDir . DS . $item . DS .
|
94 |
}
|
95 |
}
|
96 |
-
|
97 |
-
$ioAdapter->rm(self::getBasePath() . DS . basename($imageFile));
|
98 |
-
}
|
99 |
return $this;
|
100 |
}
|
101 |
|
@@ -443,28 +440,23 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
|
|
443 |
$configModel = $applicationModel->getConfigModel();
|
444 |
$deprecatedFlag = Mage_XmlConnect_Model_Application::DEPRECATED_CONFIG_FLAG;
|
445 |
|
446 |
-
foreach ($records as $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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,13 +466,13 @@ class Mage_XmlConnect_Model_Images extends Mage_Core_Model_Abstract
|
|
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
|
481 |
|
482 |
// remove old record from config_data table
|
483 |
-
$configModel->deleteConfig($application_id, $deprecatedFlag, $configPrefix . $configPath);
|
484 |
}
|
485 |
}
|
486 |
return $this;
|
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 |
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 |
$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 |
}
|
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;
|
app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mecl.php
CHANGED
@@ -36,7 +36,7 @@ class Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl extends Mage_Paypal_Model
|
|
36 |
/**
|
37 |
* Store MECL payment method code
|
38 |
*/
|
39 |
-
const MECL_METHOD_CODE =
|
40 |
|
41 |
/**
|
42 |
* Payment method code
|
@@ -45,27 +45,6 @@ class Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl extends Mage_Paypal_Model
|
|
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 |
*
|
@@ -85,12 +64,8 @@ class Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl extends Mage_Paypal_Model
|
|
85 |
$storeId = $quote ? $quote->getStoreId() : Mage::app()->getStore()->getId();
|
86 |
}
|
87 |
|
88 |
-
|
89 |
-
|
90 |
-
. Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS
|
91 |
-
. '/active';
|
92 |
-
|
93 |
-
return (bool) Mage::getStoreConfigFlag($path, $storeId);
|
94 |
}
|
95 |
|
96 |
/**
|
36 |
/**
|
37 |
* Store MECL payment method code
|
38 |
*/
|
39 |
+
const MECL_METHOD_CODE = 'paypal_mecl';
|
40 |
|
41 |
/**
|
42 |
* Payment method code
|
45 |
*/
|
46 |
protected $_code = self::MECL_METHOD_CODE;
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
/**
|
49 |
* Check whether payment method can be used
|
50 |
*
|
64 |
$storeId = $quote ? $quote->getStoreId() : Mage::app()->getStore()->getId();
|
65 |
}
|
66 |
|
67 |
+
return (bool) Mage::getModel('paypal/config')->setStoreId($storeId)
|
68 |
+
->isMethodAvailable(Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS);
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
/**
|
app/code/core/Mage/XmlConnect/Model/Payment/Method/Paypal/Mep.php
CHANGED
@@ -81,12 +81,8 @@ class Mage_XmlConnect_Model_Payment_Method_Paypal_Mep extends Mage_Paypal_Model_
|
|
81 |
$storeId = $quote ? $quote->getStoreId() : Mage::app()->getStore()->getId();
|
82 |
}
|
83 |
|
84 |
-
|
85 |
-
|
86 |
-
. Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS
|
87 |
-
. '/active';
|
88 |
-
|
89 |
-
return (bool) Mage::getStoreConfigFlag($path, $storeId);
|
90 |
}
|
91 |
|
92 |
/**
|
81 |
$storeId = $quote ? $quote->getStoreId() : Mage::app()->getStore()->getId();
|
82 |
}
|
83 |
|
84 |
+
return (bool) Mage::getModel('paypal/config')->setStoreId($storeId)
|
85 |
+
->isMethodAvailable(Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS);
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
|
88 |
/**
|
app/code/core/Mage/XmlConnect/Model/Paypal/Mecl/Checkout.php
CHANGED
@@ -39,4 +39,28 @@ class Mage_XmlConnect_Model_Paypal_Mecl_Checkout extends Mage_Paypal_Model_Expre
|
|
39 |
* @var string
|
40 |
*/
|
41 |
protected $_methodType = Mage_XmlConnect_Model_Payment_Method_Paypal_Config::METHOD_WPP_MECL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
39 |
* @var string
|
40 |
*/
|
41 |
protected $_methodType = Mage_XmlConnect_Model_Payment_Method_Paypal_Config::METHOD_WPP_MECL;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Set sandbox flag and get api
|
45 |
+
*
|
46 |
+
* @return Mage_Paypal_Model_Api_Nvp
|
47 |
+
*/
|
48 |
+
protected function _getApi()
|
49 |
+
{
|
50 |
+
$this->_setSandboxFlag();
|
51 |
+
return parent::_getApi();
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Set sandbox flag
|
56 |
+
*
|
57 |
+
* @return Mage_XmlConnect_Model_Paypal_Mecl_Checkout
|
58 |
+
*/
|
59 |
+
protected function _setSandboxFlag()
|
60 |
+
{
|
61 |
+
$this->_config->sandboxFlag = Mage::helper('payment')
|
62 |
+
->getMethodInstance(Mage_XmlConnect_Model_Payment_Method_Paypal_Config::METHOD_WPP_EXPRESS)
|
63 |
+
->getConfigData('sandbox_flag');
|
64 |
+
return $this;
|
65 |
+
}
|
66 |
}
|
app/code/core/Mage/XmlConnect/Model/Paypal/Mep/Checkout.php
CHANGED
@@ -74,10 +74,11 @@ class Mage_XmlConnect_Model_Paypal_Mep_Checkout
|
|
74 |
*
|
75 |
* @throws Mage_Core_Exception
|
76 |
* @param array $params
|
|
|
77 |
*/
|
78 |
public function __construct($params = array())
|
79 |
{
|
80 |
-
$this->_checkoutSession = Mage::getSingleton('
|
81 |
if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
|
82 |
$this->_quote = $params['quote'];
|
83 |
} else {
|
@@ -114,7 +115,7 @@ class Mage_XmlConnect_Model_Paypal_Mep_Checkout
|
|
114 |
$this->_quote->assignCustomer($customer);
|
115 |
}
|
116 |
if (!Mage::getSingleton('customer/session')->isLoggedIn()
|
117 |
-
&& Mage::getSingleton('
|
118 |
) {
|
119 |
$this->_prepareGuestQuote();
|
120 |
}
|
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 |
$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 |
}
|
app/code/core/Mage/XmlConnect/Model/Queue.php
CHANGED
@@ -31,7 +31,7 @@
|
|
31 |
* @package Mage_Xmlconnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
-
class Mage_XmlConnect_Model_Queue extends
|
35 |
{
|
36 |
/**
|
37 |
* Status in queue identifier
|
@@ -89,16 +89,10 @@ class Mage_XmlConnect_Model_Queue extends Mage_Core_Model_Abstract
|
|
89 |
protected $_appCode;
|
90 |
|
91 |
/**
|
92 |
-
*
|
93 |
*
|
94 |
* @return null
|
95 |
*/
|
96 |
-
const TYPE_TEXT = 1;
|
97 |
-
const TYPE_HTML = 2;
|
98 |
-
|
99 |
-
/**
|
100 |
-
* Initialize queue message
|
101 |
-
*/
|
102 |
protected function _construct()
|
103 |
{
|
104 |
$this->_init('xmlconnect/queue');
|
31 |
* @package Mage_Xmlconnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
+
class Mage_XmlConnect_Model_Queue extends Mage_Core_Model_Template
|
35 |
{
|
36 |
/**
|
37 |
* Status in queue identifier
|
89 |
protected $_appCode;
|
90 |
|
91 |
/**
|
92 |
+
* Initialize queue message
|
93 |
*
|
94 |
* @return null
|
95 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
protected function _construct()
|
97 |
{
|
98 |
$this->_init('xmlconnect/queue');
|
app/code/core/Mage/XmlConnect/Model/Resource/Application.php
CHANGED
@@ -96,11 +96,11 @@ class Mage_XmlConnect_Model_Resource_Application extends Mage_Core_Model_Mysql4_
|
|
96 |
return parent::_afterSave($object);
|
97 |
}
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
public function getExistingStoreDeviceType()
|
105 |
{
|
106 |
$select = $this->_getWriteAdapter()->select()->from($this->getMainTable(), array('store_id', 'type'))
|
96 |
return parent::_afterSave($object);
|
97 |
}
|
98 |
|
99 |
+
/**
|
100 |
+
* Collect existing stores and type unique pairs
|
101 |
+
*
|
102 |
+
* @return array
|
103 |
+
*/
|
104 |
public function getExistingStoreDeviceType()
|
105 |
{
|
106 |
$select = $this->_getWriteAdapter()->select()->from($this->getMainTable(), array('store_id', 'type'))
|
app/code/core/Mage/XmlConnect/Model/Resource/ConfigData.php
CHANGED
@@ -61,11 +61,7 @@ class Mage_XmlConnect_Model_Resource_ConfigData extends Mage_Core_Model_Mysql4_A
|
|
61 |
'value' => $value
|
62 |
);
|
63 |
|
64 |
-
$this->_getWriteAdapter()->insertOnDuplicate(
|
65 |
-
$this->getMainTable(),
|
66 |
-
$newData,
|
67 |
-
array('value')
|
68 |
-
);
|
69 |
return $this;
|
70 |
}
|
71 |
|
@@ -73,12 +69,12 @@ class Mage_XmlConnect_Model_Resource_ConfigData extends Mage_Core_Model_Mysql4_A
|
|
73 |
* Delete config value
|
74 |
*
|
75 |
* @param int $applicationId
|
76 |
-
* @param
|
77 |
-
* @param
|
78 |
* @param bool $pathLike
|
79 |
* @return Mage_XmlConnect_Model_Mysql4_ConfigData
|
80 |
*/
|
81 |
-
public function deleteConfig($applicationId, $category =
|
82 |
{
|
83 |
try {
|
84 |
$this->_getWriteAdapter()->beginTransaction();
|
@@ -88,8 +84,7 @@ class Mage_XmlConnect_Model_Resource_ConfigData extends Mage_Core_Model_Mysql4_A
|
|
88 |
$deleteWhere[] = $writeAdapter->quoteInto('category=?', $category);
|
89 |
}
|
90 |
if ($path) {
|
91 |
-
$deleteWhere[] = $pathLike
|
92 |
-
? $writeAdapter->quoteInto('path like ?', $path . '/%')
|
93 |
: $writeAdapter->quoteInto('path=?', $path);
|
94 |
}
|
95 |
$writeAdapter->delete($this->getMainTable(), $deleteWhere);
|
61 |
'value' => $value
|
62 |
);
|
63 |
|
64 |
+
$this->_getWriteAdapter()->insertOnDuplicate($this->getMainTable(), $newData, array('value'));
|
|
|
|
|
|
|
|
|
65 |
return $this;
|
66 |
}
|
67 |
|
69 |
* Delete config value
|
70 |
*
|
71 |
* @param int $applicationId
|
72 |
+
* @param string $category
|
73 |
+
* @param string $path
|
74 |
* @param bool $pathLike
|
75 |
* @return Mage_XmlConnect_Model_Mysql4_ConfigData
|
76 |
*/
|
77 |
+
public function deleteConfig($applicationId, $category = '', $path = '', $pathLike = true)
|
78 |
{
|
79 |
try {
|
80 |
$this->_getWriteAdapter()->beginTransaction();
|
84 |
$deleteWhere[] = $writeAdapter->quoteInto('category=?', $category);
|
85 |
}
|
86 |
if ($path) {
|
87 |
+
$deleteWhere[] = $pathLike ? $writeAdapter->quoteInto('path like ?', $path . '/%')
|
|
|
88 |
: $writeAdapter->quoteInto('path=?', $path);
|
89 |
}
|
90 |
$writeAdapter->delete($this->getMainTable(), $deleteWhere);
|
app/code/core/Mage/XmlConnect/Model/Resource/History.php
CHANGED
@@ -77,10 +77,8 @@ class Mage_XmlConnect_Model_Resource_History extends Mage_Core_Model_Mysql4_Abst
|
|
77 |
{
|
78 |
$paramArray = array();
|
79 |
$idFieldName = Mage::getModel('xmlconnect/application')->getIdFieldName();
|
80 |
-
$select = $this->_getReadAdapter()->select()
|
81 |
-
->
|
82 |
-
->where($idFieldName . '=?', $id)
|
83 |
-
->order(array('created_at DESC'));
|
84 |
|
85 |
$params = $this->_getReadAdapter()->fetchOne($select);
|
86 |
|
77 |
{
|
78 |
$paramArray = array();
|
79 |
$idFieldName = Mage::getModel('xmlconnect/application')->getIdFieldName();
|
80 |
+
$select = $this->_getReadAdapter()->select()->from($this->getMainTable(), 'params')
|
81 |
+
->where($idFieldName . '=?', $id)->order(array('created_at ' . Zend_Db_Select::SQL_DESC));
|
|
|
|
|
82 |
|
83 |
$params = $this->_getReadAdapter()->fetchOne($select);
|
84 |
|
app/code/core/Mage/XmlConnect/Model/Simplexml/Form/Element/Validator/Abstract.php
CHANGED
@@ -71,21 +71,22 @@ class Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Abstract
|
|
71 |
*/
|
72 |
protected function _setDefaultValidatorTypeMessages()
|
73 |
{
|
|
|
74 |
$this->_validatorTypeMessages = array(
|
75 |
-
'min_length' =>
|
76 |
-
'max_length' =>
|
77 |
-
'alphanumeric' =>
|
78 |
-
'email' =>
|
79 |
-
'required' =>
|
80 |
-
'required_select' =>
|
81 |
-
'numeric' =>
|
82 |
-
'alpha' =>
|
83 |
-
'url' =>
|
84 |
-
'date' =>
|
85 |
-
'max_file_size' =>
|
86 |
-
'file_extensions' =>
|
87 |
-
'max_image_width' =>
|
88 |
-
'max_image_height' =>
|
89 |
);
|
90 |
return $this;
|
91 |
}
|
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 |
}
|
app/code/core/Mage/XmlConnect/Model/Simplexml/Message/Error.php
CHANGED
@@ -85,9 +85,10 @@ class Mage_XmlConnect_Model_Simplexml_Message_Error extends Mage_XmlConnect_Mode
|
|
85 |
*/
|
86 |
protected function _getCustomMessageList()
|
87 |
{
|
|
|
88 |
return array(
|
89 |
-
self::ERROR_CLIENT_SP_SESSION_EXPIRED =>
|
90 |
-
self::ERROR_USER_SP_ACCESS_FORBIDDEN =>
|
91 |
);
|
92 |
}
|
93 |
|
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 |
|
app/code/core/Mage/XmlConnect/Model/Tabs.php
CHANGED
@@ -126,6 +126,7 @@ class Mage_XmlConnect_Model_Tabs
|
|
126 |
$tab->image = Mage::getDesign()->getSkinUrl('images/xmlconnect/' . $tab->image);
|
127 |
$result[] = $tab;
|
128 |
}
|
|
|
129 |
return $result;
|
130 |
}
|
131 |
}
|
126 |
$tab->image = Mage::getDesign()->getSkinUrl('images/xmlconnect/' . $tab->image);
|
127 |
$result[] = $tab;
|
128 |
}
|
129 |
+
|
130 |
return $result;
|
131 |
}
|
132 |
}
|
app/code/core/Mage/XmlConnect/Model/Template.php
CHANGED
@@ -31,14 +31,8 @@
|
|
31 |
* @package Mage_Xmlconnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
-
class Mage_XmlConnect_Model_Template extends
|
35 |
{
|
36 |
-
/**
|
37 |
-
* Types of template
|
38 |
-
*/
|
39 |
-
const TYPE_TEXT = 1;
|
40 |
-
const TYPE_HTML = 2;
|
41 |
-
|
42 |
/**
|
43 |
* Model constructor
|
44 |
*
|
31 |
* @package Mage_Xmlconnect
|
32 |
* @author Magento Core Team <core@magentocommerce.com>
|
33 |
*/
|
34 |
+
class Mage_XmlConnect_Model_Template extends Mage_Core_Model_Template
|
35 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Model constructor
|
38 |
*
|
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' =>
|
91 |
-
'paramName' =>
|
92 |
),
|
93 |
array(
|
94 |
'cookieName' => Mage_XmlConnect_Model_Application::APP_SCREEN_SIZE_NAME,
|
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,
|
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('
|
460 |
}
|
461 |
|
462 |
/**
|
@@ -575,7 +575,7 @@ class Mage_XmlConnect_CartController extends Mage_XmlConnect_Controller_Action
|
|
575 |
*/
|
576 |
public function updateItemOptionsAction()
|
577 |
{
|
578 |
-
$cart
|
579 |
$id = (int) $this->getRequest()->getParam('id');
|
580 |
$params = $this->getRequest()->getParams();
|
581 |
|
456 |
*/
|
457 |
protected function _getSession()
|
458 |
{
|
459 |
+
return Mage::getSingleton('xmlconnect/corefix_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,9 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
|
|
103 |
return;
|
104 |
}
|
105 |
try {
|
|
|
106 |
$this->loadLayout(false);
|
|
|
107 |
$this->renderLayout();
|
108 |
return;
|
109 |
} catch (Mage_Core_Exception $e) {
|
@@ -122,7 +124,9 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
|
|
122 |
public function productViewAction()
|
123 |
{
|
124 |
try {
|
|
|
125 |
$this->loadLayout(false);
|
|
|
126 |
$this->renderLayout();
|
127 |
return;
|
128 |
} catch (Mage_Core_Exception $e) {
|
@@ -220,7 +224,7 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
|
|
220 |
}
|
221 |
/** @var $_helper Mage_CatalogSearch_Helper_Data */
|
222 |
$_helper = Mage::helper('catalogsearch');
|
223 |
-
$queryParam = str_replace('%20', ' ',
|
224 |
$this->getRequest()->setParam($_helper->getQueryParamName(), $queryParam);
|
225 |
/** @var $query Mage_CatalogSearch_Model_Query */
|
226 |
$query = $_helper->getQuery();
|
@@ -277,7 +281,7 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
|
|
277 |
{
|
278 |
/** @var $_helper Mage_CatalogSearch_Helper_Data */
|
279 |
$_helper = Mage::helper('catalogsearch');
|
280 |
-
$queryParam = str_replace('%20', ' ',
|
281 |
$this->getRequest()->setParam($_helper->getQueryParamName(), $queryParam);
|
282 |
/** @var $query Mage_CatalogSearch_Model_Query */
|
283 |
$query = $_helper->getQuery();
|
@@ -450,4 +454,60 @@ class Mage_XmlConnect_CatalogController extends Mage_XmlConnect_Controller_Actio
|
|
450 |
}
|
451 |
return $this;
|
452 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
453 |
}
|
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();
|
110 |
return;
|
111 |
} catch (Mage_Core_Exception $e) {
|
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();
|
131 |
return;
|
132 |
} catch (Mage_Core_Exception $e) {
|
224 |
}
|
225 |
/** @var $_helper Mage_CatalogSearch_Helper_Data */
|
226 |
$_helper = Mage::helper('catalogsearch');
|
227 |
+
$queryParam = str_replace('%20', ' ', $this->getRequest()->getParam('query'));
|
228 |
$this->getRequest()->setParam($_helper->getQueryParamName(), $queryParam);
|
229 |
/** @var $query Mage_CatalogSearch_Model_Query */
|
230 |
$query = $_helper->getQuery();
|
281 |
{
|
282 |
/** @var $_helper Mage_CatalogSearch_Helper_Data */
|
283 |
$_helper = Mage::helper('catalogsearch');
|
284 |
+
$queryParam = str_replace('%20', ' ', $this->getRequest()->getParam('query'));
|
285 |
$this->getRequest()->setParam($_helper->getQueryParamName(), $queryParam);
|
286 |
/** @var $query Mage_CatalogSearch_Model_Query */
|
287 |
$query = $_helper->getQuery();
|
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 |
}
|
app/code/core/Mage/XmlConnect/controllers/CheckoutController.php
CHANGED
@@ -369,6 +369,7 @@ class Mage_XmlConnect_CheckoutController extends Mage_XmlConnect_Controller_Acti
|
|
369 |
'request' => $this->getRequest(),
|
370 |
'quote' => $this->getOnepage()->getQuote()
|
371 |
));
|
|
|
372 |
$this->_message(implode('. ', $result['message']), self::MESSAGE_STATUS_ERROR);
|
373 |
}
|
374 |
}
|
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 |
}
|
app/code/core/Mage/XmlConnect/controllers/CustomerController.php
CHANGED
@@ -139,40 +139,29 @@ class Mage_XmlConnect_CustomerController extends Mage_XmlConnect_Controller_Acti
|
|
139 |
*/
|
140 |
public function editAction()
|
141 |
{
|
142 |
-
if (!$this->
|
143 |
-
$this->_message(
|
144 |
-
$this->__('Customer not logged in.'),
|
145 |
-
self::MESSAGE_STATUS_ERROR,
|
146 |
-
array('logged_in' => '0')
|
147 |
-
);
|
148 |
return;
|
149 |
}
|
150 |
if ($this->getRequest()->isPost()) {
|
151 |
-
$customer =
|
152 |
-
->setId($this->_getSession()->getCustomerId())
|
153 |
-
->setWebsiteId($this->_getSession()->getCustomer()->getWebsiteId());
|
154 |
|
155 |
-
$
|
156 |
-
$
|
|
|
|
|
157 |
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
}
|
162 |
}
|
163 |
|
164 |
-
$errors = $customer->validate();
|
165 |
-
if (!is_array($errors)) {
|
166 |
-
$errors = array();
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* we would like to preserver the existing group id
|
171 |
-
*/
|
172 |
-
if ($this->_getSession()->getCustomerGroupId()) {
|
173 |
-
$customer->setGroupId($this->_getSession()->getCustomerGroupId());
|
174 |
-
}
|
175 |
-
|
176 |
if ($this->getRequest()->getParam('change_password')) {
|
177 |
$currPass = $this->getRequest()->getPost('current_password');
|
178 |
$newPass = $this->getRequest()->getPost('password');
|
@@ -246,18 +235,24 @@ class Mage_XmlConnect_CustomerController extends Mage_XmlConnect_Controller_Acti
|
|
246 |
if ($request->isPost()) {
|
247 |
$errors = array();
|
248 |
|
249 |
-
|
250 |
-
|
|
|
|
|
251 |
}
|
252 |
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
|
|
260 |
}
|
|
|
|
|
|
|
261 |
|
262 |
if ($this->getRequest()->getParam('is_subscribed', false)) {
|
263 |
$customer->setIsSubscribed(1);
|
@@ -269,10 +264,17 @@ class Mage_XmlConnect_CustomerController extends Mage_XmlConnect_Controller_Acti
|
|
269 |
$customer->getGroupId();
|
270 |
|
271 |
try {
|
272 |
-
|
273 |
-
$
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
}
|
277 |
|
278 |
$validationResult = count($errors) == 0;
|
@@ -472,29 +474,44 @@ class Mage_XmlConnect_CustomerController extends Mage_XmlConnect_Controller_Acti
|
|
472 |
if (!$this->_isCustomerLoggedIn()) {
|
473 |
return;
|
474 |
}
|
|
|
475 |
// Save data
|
476 |
if ($this->getRequest()->isPost()) {
|
477 |
-
$
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false));
|
482 |
-
$addressId = $this->getRequest()->getParam('id');
|
483 |
if ($addressId) {
|
484 |
-
$
|
485 |
-
if ($
|
486 |
-
|
487 |
-
) {
|
488 |
-
$address->setId($addressId);
|
489 |
-
} else {
|
490 |
-
$address->setId(null);
|
491 |
}
|
492 |
}
|
493 |
|
494 |
$errors = array();
|
495 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
try {
|
497 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
if (true === $addressValidation) {
|
499 |
$address->save();
|
500 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
@@ -514,8 +531,8 @@ class Mage_XmlConnect_CustomerController extends Mage_XmlConnect_Controller_Acti
|
|
514 |
} catch (Mage_Core_Exception $e) {
|
515 |
$this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
|
516 |
} catch (Exception $e) {
|
517 |
-
Mage::logException($e);
|
518 |
$this->_message($this->__('Can\'t save address.'), self::MESSAGE_STATUS_ERROR);
|
|
|
519 |
}
|
520 |
} else {
|
521 |
$this->_message($this->__('Address data not specified.'), self::MESSAGE_STATUS_ERROR);
|
139 |
*/
|
140 |
public function editAction()
|
141 |
{
|
142 |
+
if (!$this->_isCustomerLoggedIn()) {
|
|
|
|
|
|
|
|
|
|
|
143 |
return;
|
144 |
}
|
145 |
if ($this->getRequest()->isPost()) {
|
146 |
+
$customer = $this->_getSession()->getCustomer();
|
|
|
|
|
147 |
|
148 |
+
/* @var $customerForm Mage_Customer_Model_Form */
|
149 |
+
$customerForm = Mage::getModel('customer/form');
|
150 |
+
$customerForm->setFormCode('customer_account_edit')->setEntity($customer);
|
151 |
+
$customerData = $customerForm->extractData($this->getRequest());
|
152 |
|
153 |
+
$errors = array();
|
154 |
+
$customerErrors = $customerForm->validateData($customerData);
|
155 |
+
if ($customerErrors !== true) {
|
156 |
+
$errors = array_merge($customerErrors, $errors);
|
157 |
+
} else {
|
158 |
+
$customerForm->compactData($customerData);
|
159 |
+
$customerErrors = $customer->validate();
|
160 |
+
if (is_array($customerErrors)) {
|
161 |
+
$errors = array_merge($customerErrors, $errors);
|
162 |
}
|
163 |
}
|
164 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
if ($this->getRequest()->getParam('change_password')) {
|
166 |
$currPass = $this->getRequest()->getPost('current_password');
|
167 |
$newPass = $this->getRequest()->getPost('password');
|
235 |
if ($request->isPost()) {
|
236 |
$errors = array();
|
237 |
|
238 |
+
/** @var $customer Mage_Customer_Model_Customer */
|
239 |
+
$customer = Mage::registry('current_customer');
|
240 |
+
if (is_null($customer)) {
|
241 |
+
$customer = Mage::getModel('customer/customer');
|
242 |
}
|
243 |
|
244 |
+
/** @var $customerForm Mage_Customer_Model_Form */
|
245 |
+
$customerForm = Mage::getModel('customer/form');
|
246 |
+
|
247 |
+
/** Check if registration from checkout page */
|
248 |
+
if ($this->getRequest()->getParam('checkout_page_registration', false)) {
|
249 |
+
$formCode = 'checkout_register';
|
250 |
+
} else {
|
251 |
+
$formCode = 'customer_account_create';
|
252 |
}
|
253 |
+
$customerForm->setFormCode($formCode)->setEntity($customer);
|
254 |
+
|
255 |
+
$customerData = $customerForm->extractData($this->getRequest());
|
256 |
|
257 |
if ($this->getRequest()->getParam('is_subscribed', false)) {
|
258 |
$customer->setIsSubscribed(1);
|
264 |
$customer->getGroupId();
|
265 |
|
266 |
try {
|
267 |
+
$customerErrors = $customerForm->validateData($customerData);
|
268 |
+
if ($customerErrors !== true) {
|
269 |
+
$errors = array_merge($customerErrors, $errors);
|
270 |
+
} else {
|
271 |
+
$customerForm->compactData($customerData);
|
272 |
+
$customer->setPassword($this->getRequest()->getPost('password'));
|
273 |
+
$customer->setConfirmation($this->getRequest()->getPost('confirmation'));
|
274 |
+
$customerErrors = $customer->validate();
|
275 |
+
if (is_array($customerErrors)) {
|
276 |
+
$errors = array_merge($customerErrors, $errors);
|
277 |
+
}
|
278 |
}
|
279 |
|
280 |
$validationResult = count($errors) == 0;
|
474 |
if (!$this->_isCustomerLoggedIn()) {
|
475 |
return;
|
476 |
}
|
477 |
+
|
478 |
// Save data
|
479 |
if ($this->getRequest()->isPost()) {
|
480 |
+
$customer = $this->_getSession()->getCustomer();
|
481 |
+
/* @var $address Mage_Customer_Model_Address */
|
482 |
+
$address = Mage::getModel('customer/address');
|
483 |
+
$addressId = $this->getRequest()->getParam('id');
|
|
|
|
|
484 |
if ($addressId) {
|
485 |
+
$existsAddress = $customer->getAddressById($addressId);
|
486 |
+
if ($existsAddress->getId() && $existsAddress->getCustomerId() == $customer->getId()) {
|
487 |
+
$address->setId($existsAddress->getId());
|
|
|
|
|
|
|
|
|
488 |
}
|
489 |
}
|
490 |
|
491 |
$errors = array();
|
492 |
|
493 |
+
/* @var $addressForm Mage_Customer_Model_Form */
|
494 |
+
$addressForm = Mage::getModel('customer/form');
|
495 |
+
$addressForm->setFormCode('customer_address_edit')->setEntity($address);
|
496 |
+
$addressData = $addressForm->extractData($this->getRequest());
|
497 |
+
$addressErrors = $addressForm->validateData($addressData);
|
498 |
+
if ($addressErrors !== true) {
|
499 |
+
$errors = $addressErrors;
|
500 |
+
}
|
501 |
+
|
502 |
try {
|
503 |
+
$addressForm->compactData($addressData);
|
504 |
+
$address->setCustomerId($customer->getId())
|
505 |
+
->setIsDefaultBilling($this->getRequest()->getParam('default_billing', false))
|
506 |
+
->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false));
|
507 |
+
|
508 |
+
$addressErrors = $address->validate();
|
509 |
+
if ($addressErrors !== true) {
|
510 |
+
$errors = array_merge($errors, $addressErrors);
|
511 |
+
}
|
512 |
+
|
513 |
+
$addressValidation = count($errors) == 0;
|
514 |
+
|
515 |
if (true === $addressValidation) {
|
516 |
$address->save();
|
517 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
531 |
} catch (Mage_Core_Exception $e) {
|
532 |
$this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
|
533 |
} catch (Exception $e) {
|
|
|
534 |
$this->_message($this->__('Can\'t save address.'), self::MESSAGE_STATUS_ERROR);
|
535 |
+
Mage::logException($e);
|
536 |
}
|
537 |
} else {
|
538 |
$this->_message($this->__('Address data not specified.'), self::MESSAGE_STATUS_ERROR);
|
app/code/core/Mage/XmlConnect/controllers/Paypal/MeclController.php
CHANGED
@@ -111,12 +111,16 @@ class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_A
|
|
111 |
try {
|
112 |
$this->_initCheckout();
|
113 |
|
114 |
-
$
|
115 |
-
|
116 |
-
|
117 |
-
|
|
|
|
|
|
|
|
|
118 |
|
119 |
-
if ($token
|
120 |
$this->_initToken($token);
|
121 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
122 |
$message = Mage::getModel('xmlconnect/simplexml_element', '<message></message>');
|
@@ -124,18 +128,12 @@ class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_A
|
|
124 |
$message->addChild('token', $token);
|
125 |
$this->getResponse()->setBody($message->asNiceXml());
|
126 |
} else {
|
127 |
-
$this->_message(
|
128 |
-
$this->__('Token has not been set.'),
|
129 |
-
self::MESSAGE_STATUS_ERROR
|
130 |
-
);
|
131 |
}
|
132 |
} catch (Mage_Core_Exception $e) {
|
133 |
$this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
|
134 |
} catch (Exception $e) {
|
135 |
-
$this->_message(
|
136 |
-
$this->__('Unable to start Mobile Express Checkout.'),
|
137 |
-
self::MESSAGE_STATUS_ERROR
|
138 |
-
);
|
139 |
Mage::logException($e);
|
140 |
}
|
141 |
}
|
@@ -294,8 +292,34 @@ class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_A
|
|
294 |
}
|
295 |
|
296 |
$this->_initCheckout();
|
297 |
-
$
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
$this->_initToken(false); // no need in token anymore
|
300 |
|
301 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
@@ -303,10 +327,10 @@ class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_A
|
|
303 |
$message->addChild('status', self::MESSAGE_STATUS_SUCCESS);
|
304 |
|
305 |
$text = $this->__('Thank you for your purchase! ');
|
306 |
-
$text .= $this->__('Your order # is: %s. ', $
|
307 |
$text .= $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.');
|
308 |
$message->addChild('text', $text);
|
309 |
-
$message->addChild('order_id', $
|
310 |
$this->getResponse()->setBody($message->asNiceXml());
|
311 |
return;
|
312 |
} catch (Mage_Core_Exception $e) {
|
@@ -351,9 +375,14 @@ class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_A
|
|
351 |
protected function _initCheckout()
|
352 |
{
|
353 |
$quote = $this->_getQuote();
|
354 |
-
if (!$quote->hasItems()) {
|
355 |
Mage::throwException($this->__('Unable to initialize PayPal Mobile Express Checkout.'));
|
356 |
}
|
|
|
|
|
|
|
|
|
|
|
357 |
|
358 |
$this->_checkout = Mage::getSingleton($this->_checkoutType, array(
|
359 |
'config' => $this->_config, 'quote' => $quote
|
111 |
try {
|
112 |
$this->_initCheckout();
|
113 |
|
114 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
115 |
+
if ($customer && $customer->getId()) {
|
116 |
+
$this->_checkout->setCustomerWithAddressChange(
|
117 |
+
$customer, null, $this->_getQuote()->getShippingAddress()
|
118 |
+
);
|
119 |
+
}
|
120 |
+
|
121 |
+
$token = $this->_checkout->start(Mage::getUrl('*/*/return'), Mage::getUrl('*/*/cancel'));
|
122 |
|
123 |
+
if ($token) {
|
124 |
$this->_initToken($token);
|
125 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
126 |
$message = Mage::getModel('xmlconnect/simplexml_element', '<message></message>');
|
128 |
$message->addChild('token', $token);
|
129 |
$this->getResponse()->setBody($message->asNiceXml());
|
130 |
} else {
|
131 |
+
$this->_message($this->__('Token has not been set.'), self::MESSAGE_STATUS_ERROR);
|
|
|
|
|
|
|
132 |
}
|
133 |
} catch (Mage_Core_Exception $e) {
|
134 |
$this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
|
135 |
} catch (Exception $e) {
|
136 |
+
$this->_message($this->__('Unable to start Mobile Express Checkout.'), self::MESSAGE_STATUS_ERROR);
|
|
|
|
|
|
|
137 |
Mage::logException($e);
|
138 |
}
|
139 |
}
|
292 |
}
|
293 |
|
294 |
$this->_initCheckout();
|
295 |
+
$this->_checkout->place($this->_initToken());
|
296 |
+
|
297 |
+
// prepare session to success or cancellation page
|
298 |
+
$session = $this->_getCheckoutSession();
|
299 |
+
$session->clearHelperData();
|
300 |
+
|
301 |
+
// "last successful quote"
|
302 |
+
$quoteId = $this->_getQuote()->getId();
|
303 |
+
$session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId);
|
304 |
+
|
305 |
+
// an order may be created
|
306 |
+
$order = $this->_checkout->getOrder();
|
307 |
+
if ($order) {
|
308 |
+
$orderId = $order->getId();
|
309 |
+
$realOrderId = $order->getIncrementId();
|
310 |
+
$session->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId());
|
311 |
+
}
|
312 |
+
|
313 |
+
// recurring profiles may be created along with the order or without it
|
314 |
+
$profiles = $this->_checkout->getRecurringPaymentProfiles();
|
315 |
+
if ($profiles) {
|
316 |
+
$ids = array();
|
317 |
+
foreach($profiles as $profile) {
|
318 |
+
$ids[] = $profile->getId();
|
319 |
+
}
|
320 |
+
$session->setLastRecurringProfileIds($ids);
|
321 |
+
}
|
322 |
+
|
323 |
$this->_initToken(false); // no need in token anymore
|
324 |
|
325 |
/** @var $message Mage_XmlConnect_Model_Simplexml_Element */
|
327 |
$message->addChild('status', self::MESSAGE_STATUS_SUCCESS);
|
328 |
|
329 |
$text = $this->__('Thank you for your purchase! ');
|
330 |
+
$text .= $this->__('Your order # is: %s. ', $realOrderId);
|
331 |
$text .= $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.');
|
332 |
$message->addChild('text', $text);
|
333 |
+
$message->addChild('order_id', $orderId);
|
334 |
$this->getResponse()->setBody($message->asNiceXml());
|
335 |
return;
|
336 |
} catch (Mage_Core_Exception $e) {
|
375 |
protected function _initCheckout()
|
376 |
{
|
377 |
$quote = $this->_getQuote();
|
378 |
+
if (!$quote->hasItems() || $quote->getHasError()) {
|
379 |
Mage::throwException($this->__('Unable to initialize PayPal Mobile Express Checkout.'));
|
380 |
}
|
381 |
+
if (!$quote->validateMinimumAmount()) {
|
382 |
+
$error = Mage::getStoreConfig('sales/minimum_order/error_message');
|
383 |
+
Mage::throwException($error);
|
384 |
+
}
|
385 |
+
$this->_getCheckoutSession()->setCartWasUpdated(false);
|
386 |
|
387 |
$this->_checkout = Mage::getSingleton($this->_checkoutType, array(
|
388 |
'config' => $this->_config, 'quote' => $quote
|
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('
|
60 |
) {
|
61 |
$this->setFlag('', self::FLAG_NO_DISPATCH, true);
|
62 |
$this->_message(
|
@@ -179,6 +179,10 @@ 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 |
$result = $this->_checkout->saveShippingMethod($data);
|
183 |
|
184 |
if (!isset($result['error'])) {
|
@@ -276,7 +280,6 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
|
|
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,7 +299,6 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
|
|
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,7 +319,7 @@ class Mage_XmlConnect_Paypal_MepController extends Mage_XmlConnect_Controller_Ac
|
|
317 |
*/
|
318 |
protected function _getCheckoutSession()
|
319 |
{
|
320 |
-
return Mage::getSingleton('
|
321 |
}
|
322 |
|
323 |
/**
|
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 |
$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 |
$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 |
*/
|
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 |
*/
|
320 |
protected function _getCheckoutSession()
|
321 |
{
|
322 |
+
return Mage::getSingleton('xmlconnect/corefix_checkout_session');
|
323 |
}
|
324 |
|
325 |
/**
|
app/code/core/Mage/XmlConnect/controllers/WishlistController.php
CHANGED
@@ -151,16 +151,16 @@ class Mage_XmlConnect_WishlistController extends Mage_XmlConnect_Controller_Acti
|
|
151 |
}
|
152 |
|
153 |
try {
|
154 |
-
$
|
155 |
if (strlen(trim((string)$request->getParam('description')))) {
|
156 |
-
$
|
157 |
}
|
158 |
$wishlist->save();
|
159 |
|
160 |
Mage::dispatchEvent('wishlist_add_product', array(
|
161 |
'wishlist' => $wishlist,
|
162 |
'product' => $product,
|
163 |
-
'item' => $
|
164 |
));
|
165 |
|
166 |
Mage::helper('wishlist')->calculate();
|
@@ -172,7 +172,6 @@ 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 |
-
Mage::logException($e);
|
176 |
$this->_message(
|
177 |
$this->__('An error occurred while adding item to wishlist.'), self::MESSAGE_STATUS_ERROR
|
178 |
);
|
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 |
}
|
158 |
$wishlist->save();
|
159 |
|
160 |
Mage::dispatchEvent('wishlist_add_product', array(
|
161 |
'wishlist' => $wishlist,
|
162 |
'product' => $product,
|
163 |
+
'item' => $result
|
164 |
));
|
165 |
|
166 |
Mage::helper('wishlist')->calculate();
|
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 |
);
|
app/code/core/Mage/XmlConnect/etc/config.xml
CHANGED
@@ -233,10 +233,8 @@
|
|
233 |
<paypal_mecl>
|
234 |
<active>1</active>
|
235 |
<model>xmlconnect/payment_method_paypal_mecl</model>
|
236 |
-
<payment_action>Sale</payment_action>
|
237 |
<title>PayPal Mobile Express Checkout Library</title>
|
238 |
<allowspecific>0</allowspecific>
|
239 |
-
<solution_type>Sole</solution_type>
|
240 |
<group>paypal</group>
|
241 |
<line_items_enabled>1</line_items_enabled>
|
242 |
</paypal_mecl>
|
233 |
<paypal_mecl>
|
234 |
<active>1</active>
|
235 |
<model>xmlconnect/payment_method_paypal_mecl</model>
|
|
|
236 |
<title>PayPal Mobile Express Checkout Library</title>
|
237 |
<allowspecific>0</allowspecific>
|
|
|
238 |
<group>paypal</group>
|
239 |
<line_items_enabled>1</line_items_enabled>
|
240 |
</paypal_mecl>
|
app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-data-upgrade-1.6.0.0-1.6.0.0.1.php
CHANGED
@@ -39,11 +39,12 @@ $installer = $this;
|
|
39 |
|
40 |
/** @var $configModel Mage_XmlConnect_Model_Application */
|
41 |
$configModel = Mage::getModel('xmlconnect/configData');
|
42 |
-
$select = $configModel->getResource()->getReadConnection()->select()->from(
|
43 |
-
|
44 |
-
)
|
|
|
45 |
|
46 |
-
$result = $configModel->getResource()->getReadConnection()->
|
47 |
|
48 |
if (count($result)) {
|
49 |
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($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);
|
app/code/core/Mage/XmlConnect/sql/xmlconnect_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php
CHANGED
@@ -36,6 +36,7 @@ $historyTableName = $installer->getTable('xmlconnect/history');
|
|
36 |
$templateTableName = $installer->getTable('xmlconnect/template');
|
37 |
$queueTableName = $installer->getTable('xmlconnect/queue');
|
38 |
$storeTableName = $installer->getTable('core/store');
|
|
|
39 |
/**
|
40 |
* Drop foreign keys
|
41 |
*/
|
@@ -355,7 +356,7 @@ $installer->run("ALTER TABLE `{$appTableName}` ADD UNIQUE `UNQ_XMLCONNECT_APPLIC
|
|
355 |
|
356 |
$installer->run("
|
357 |
ALTER TABLE `{$configTableName}`
|
358 |
-
ADD UNIQUE
|
359 |
");
|
360 |
|
361 |
$installer->run("
|
@@ -376,7 +377,7 @@ ALTER TABLE `{$configTableName}`
|
|
376 |
ADD CONSTRAINT `FK_APPLICATION_ID` FOREIGN KEY (`application_id`)
|
377 |
REFERENCES `{$appTableName}` (`application_id`)
|
378 |
ON DELETE CASCADE
|
379 |
-
ON UPDATE CASCADE
|
380 |
");
|
381 |
|
382 |
$installer->run("
|
@@ -384,7 +385,7 @@ ALTER TABLE `{$configTableName}`
|
|
384 |
ADD CONSTRAINT `FK_31EE36D814216200D7C0723145AC510E` FOREIGN KEY (`application_id`)
|
385 |
REFERENCES `{$appTableName}` (`application_id`)
|
386 |
ON DELETE CASCADE
|
387 |
-
ON UPDATE CASCADE
|
388 |
");
|
389 |
|
390 |
$installer->run("
|
36 |
$templateTableName = $installer->getTable('xmlconnect/template');
|
37 |
$queueTableName = $installer->getTable('xmlconnect/queue');
|
38 |
$storeTableName = $installer->getTable('core/store');
|
39 |
+
|
40 |
/**
|
41 |
* Drop foreign keys
|
42 |
*/
|
356 |
|
357 |
$installer->run("
|
358 |
ALTER TABLE `{$configTableName}`
|
359 |
+
ADD UNIQUE `UNQ_XMLCONNECT_CONFIG` (`application_id`,`category`,`path`)
|
360 |
");
|
361 |
|
362 |
$installer->run("
|
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("
|
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("
|
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->
|
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->
|
75 |
'</td>' +
|
76 |
'</tr>';
|
77 |
|
@@ -90,7 +90,7 @@
|
|
90 |
'</span>' +
|
91 |
'</td>' +
|
92 |
'<td class="label">' +
|
93 |
-
'<?php echo $this->
|
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->getAddButtonHtml() ?></th>
|
44 |
</tr>
|
45 |
</thead>
|
46 |
<tbody id='content_pages'>
|
71 |
'</span>' +
|
72 |
'</td>' +
|
73 |
'<td class="label">' +
|
74 |
+
'<?php echo $this->getDeleteButtonHtml() ?>' +
|
75 |
'</td>' +
|
76 |
'</tr>';
|
77 |
|
90 |
'</span>' +
|
91 |
'</td>' +
|
92 |
'<td class="label">' +
|
93 |
+
'<?php echo $this->getDeleteButtonHtml() ?>' +
|
94 |
'</td>' +
|
95 |
'</tr>';
|
96 |
|
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->
|
36 |
-
<strong><?php echo $this->
|
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"
|
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->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>
|
app/design/adminhtml/default/default/template/xmlconnect/form/element/addrow.phtml
CHANGED
@@ -153,4 +153,4 @@ function observeButtonField(element) {
|
|
153 |
}
|
154 |
|
155 |
// ]]>
|
156 |
-
</script>
|
153 |
}
|
154 |
|
155 |
// ]]>
|
156 |
+
</script>
|
app/design/adminhtml/default/default/template/xmlconnect/submission/app_icons_preview.phtml
CHANGED
@@ -27,6 +27,8 @@
|
|
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) : ?>
|
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) : ?>
|
package.xml
CHANGED
@@ -1,19 +1,19 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Magento_Mobile</name>
|
4 |
-
<version>1.4.
|
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.
|
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:
|
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="484f96d74d8e196296d5498582a27106"/><file name="preview_ipad.phtml" hash="4475acfd140a51c884b447bbfce9ba61"/><file name="preview_iphone.phtml" hash="5672019ff2f83f4e4baeab6ff9755c7f"/></dir><file name="content.phtml" hash="31afc11e11770c91669768b19be389d7"/><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="0a3d7fb6fc6bce86f9a9ec4c05e404cd"/><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="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="8337a20bf339b765a4de07a1ec7c1226"/><file name="LastOrders.php" hash="2b85d9464a13d7c2c27774a22e1941a8"/><file name="LastSearchTerms.php" hash="8d32b368c9e05b6c6220f83231cac1f3"/><file name="MostViewedProducts.php" hash="a2eaa67c2a862d363a9e6c921492b3b6"/><file name="NewCustomers.php" hash="9d9d635f0250cf39f0d916f1b87742f5"/><file name="SalesInfo.php" hash="5a4d3888e93f0a39a8ed3d9fff87907a"/><file name="StoreSwitcher.php" hash="5237ff6b5d540a1bc5d61961d63cd018"/><file name="TopSearchTerms.php" hash="0d96bcbe3b96402d55e8c5a8768d07cb"/></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="Notification"><file name="Helper.php" hash="81a9ead32cbfc4e5a4fefa97199c337a"/></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="2a73ca6565940c477dd2a8012bae8a1e"/></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="b2c2a3b93ab7bdaa2c6043f5159cf946"/><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="e4f7192d3411042a9d2fc4c6f2f4647e"/><file name="Shippingmethods.php" hash="811c9f77cf9153f3f3b0eaa8ad99658f"/></dir><dir name="Mep"><file name="Totals.php" hash="15027484087388109276df7ffed9a0e3"/></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="3fa88079105587a8d1cfd6ed8b50bcd7"/><file name="Downloadable.php" hash="94525919da37103bb0f23a94f7b2543f"/><file name="Giftcard.php" hash="7bee9924059801a49940cb13b14f0052"/><file name="Grouped.php" hash="5161fb43ddb26cc9fa8b7bce48e8f2b5"/><file name="Simple.php" hash="bfae595197a2d1f8fc57d963606156f5"/><file name="Virtual.php" hash="f62f8257375d00b44c198b7a2b206a68"/></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="52e0b4c17dbd069608d31220c9e11b4b"/><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="b25b0cebcea23809542b232f6717133e"/></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="243c5d865ae7b3095549a8bab5a9adef"/></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="93758373e2f13607a6d1e219eb20f7ea"/><file name="ListApi23.php" hash="ed498fa3fab026a7e98a737a079c2c35"/><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="ab71f64c51c1391043a5e858feb413b2"/></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="3d96109e1e7d294fa0281c7c98c5160a"/><file name="Catalog.php" hash="0c99c53915ae51c9bf2f24a922ad9a38"/><file name="Configuration.php" hash="cf428dca1ff89197bc88b110b8a2a11e"/><file name="Home.php" hash="4300629b872be16210da5668bd14001d"/><file name="Homebanners.php" hash="f571f4bb6bbed761c951fe4bddab067e"/><file name="Localization.php" hash="9a0a3bfe872b96cf0a131ee24ac5cfd9"/><file name="ShoppingCart.php" hash="7c09d6e398f0f0d6e1474e0202198955"/><file name="Wishlist.php" hash="ac4171ea459444b9baf5f1761688a304"/></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="6f05abc8564ee04cae1d1a758536248e"/></dir><dir name="Paypal"><file name="MeclController.php" hash="94867067f3dcbd4ae1f362a0e9cfe534"/><file name="MepController.php" hash="1e88760a98b8db33fefb72c8663d6c67"/></dir><file name="CartController.php" hash="8328fe491faf3cf57259ce24377f74d8"/><file name="CatalogController.php" hash="5cc6fea862bf81e38cf3a320bcfe33ac"/><file name="CheckoutController.php" hash="15db7b5aad4fceba4ed109474f6e1c78"/><file name="CmsController.php" hash="97fab23c06e52fd7d6c6a2ca0ce99113"/><file name="ConfigurationController.php" hash="c91bb04de49318851c6969eb2de361cd"/><file name="CustomerController.php" hash="6347779c756407a3590ae9315d460a62"/><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="efb7db9e316786ec6f4475446deae5e7"/></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="53ffb8dd6780a4f718a30057b529bab6"/><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="8ead1d5304f1473f7fafff92afb6bf74"/><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="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="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="0a38f8abf97a7c094f633735ee5782b3"/><file name="Mep.php" hash="769b5ffe4c1bbbacca0345cfd104f213"/></dir></dir></dir><dir name="Paypal"><dir name="Mecl"><file name="Checkout.php" hash="7ade034912745974e1e13f2013064249"/></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="e85c72a9d1a19a03cf62fc6c85b3fbb4"/><file name="ConfigData.php" hash="c3da7021cb4e6a9a19ad1657ba94662b"/><file name="History.php" hash="dd881e4c0c028b41b14c8f12f2bb9f33"/><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="ba8c1e9604ab5c9c6251a76be6e5dd49"/><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="a7422d8b84ea9d8ef8a6faefac9c5d39"/><file name="Tabs.php" hash="fd8da86eb4ea07f5211dd0925ad691ce"/><file name="Template.php" hash="cfb77dd82dd17558bb47f49c7ff64f0c"/><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="d1cd542cb99cc5fe402312bf96dfeb75"/><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.
|
19 |
</package>
|
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>
|