Version Notes
v1.2.0
This version now has the common elements from the cross-sell, up-sell and related products extensions.
These elements are not active unless those packages are installed. So if you only have Advertise Colors, this extra code will not be used.
v1.2.1 - this version fixes the adtivation of stores upon installation.
v1.2.2 - fixes a bug in 1.2.1
v1.2.3 - makes the product id available to suggested product calls.
v1.2.4 - minor bug fix
v1.3.0 - new product export methodology to reduce bandwidth and overhead
Download this release
Release Info
Developer | Michael Oxley |
Extension | AdvertiseCommunity |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.4 to 1.3.0
- app/code/community/Advertise/Account/Block/Config/Dataexportmessage.php +41 -0
- app/code/community/Advertise/Account/Model/Config.php +55 -3
- app/code/community/Advertise/Account/controllers/Adminhtml/DataexportbackendController.php +124 -0
- app/code/community/Advertise/Account/etc/system.xml +20 -8
- app/code/community/Advertise/Dataexport/Block/Adminhtml/Dataexportbackend.php +11 -1
- app/code/community/Advertise/Dataexport/Helper/Data.php +9 -1
- app/code/community/Advertise/Dataexport/Model/Exporter.php +66 -20
- app/code/community/Advertise/Dataexport/Model/Exporter/Product.php +162 -0
- app/code/community/Advertise/Dataexport/controllers/Adminhtml/DataexportbackendController.php +7 -1
- app/code/community/Advertise/Dataexport/etc/system.xml +4 -9
- app/design/adminhtml/default/default/template/dataexport/dataexportbackend.phtml +34 -4
- app/design/frontend/base/default/layout/dataexport.xml +14 -0
- package.xml +7 -5
app/code/community/Advertise/Account/Block/Config/Dataexportmessage.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Sets message to explain data export on account settings save
|
5 |
+
* @package Advertise_Account
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Advertise_Account_Block_Config_Dataexportmessage extends Mage_Adminhtml_Block_System_Config_Form_Field
|
9 |
+
{
|
10 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
11 |
+
{
|
12 |
+
/*
|
13 |
+
$modulesString = "";
|
14 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
15 |
+
foreach ($modules as $mod) {
|
16 |
+
if (stripos($mod->getName(), "Advertise_", 0) === 0) {
|
17 |
+
$modulesString = $modulesString . $mod->getName() . " , version " . Mage::getConfig()->getModuleConfig($mod->getName())->version;
|
18 |
+
if ($mod->is('active')) {
|
19 |
+
$modulesString = $modulesString . " (enabled)<br />";
|
20 |
+
} else {
|
21 |
+
$modulesString = $modulesString . " (disabled)<br />";
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
25 |
+
*/
|
26 |
+
$message = "<b>Saving this configuration page will create an Adverti.se account for the supplied Email.<br /><br />
|
27 |
+
At the same time Magento will export the required product data to Adverti.se.</b>
|
28 |
+
<br />
|
29 |
+
When your product range changes you can use the button found on the page <br />
|
30 |
+
<i>Catalog -> Adverti.se -> Retail Intelligence</i><br />
|
31 |
+
to send us updated product data.";
|
32 |
+
/*
|
33 |
+
if (strlen($modulesString) > 0) {
|
34 |
+
$message .= "This data is required for the following installed modules to function:<br />".$modulesString."</b>";
|
35 |
+
}
|
36 |
+
*/
|
37 |
+
return $message;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
?>
|
app/code/community/Advertise/Account/Model/Config.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
|
3 |
{
|
4 |
const ADVERTISE_PROFILE_SAVE_URL = 'http://i.adverti.se/magento/user_data';
|
5 |
-
|
6 |
function _afterSave()
|
7 |
{
|
8 |
$form_values = $this->_getData('fieldset_data');
|
@@ -22,6 +22,24 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
|
|
22 |
$form_values[$field] = Mage::getStoreConfig('advertise_settings/settings/' . $field, $scope_id);
|
23 |
}
|
24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
$id_path = 'advertise_settings/settings/id';
|
27 |
|
@@ -44,7 +62,10 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
|
|
44 |
{
|
45 |
array_push($post_array, sprintf("%s=%s", $form_field_name, $form_field_value));
|
46 |
}
|
47 |
-
|
|
|
|
|
|
|
48 |
$post_string = implode("&", $post_array);
|
49 |
|
50 |
$curl_handle = curl_init();
|
@@ -111,7 +132,38 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
|
|
111 |
Mage::getSingleton('core/session')->addError('Adverti.se error: ' . $error);
|
112 |
}
|
113 |
}
|
114 |
-
|
|
|
|
|
|
|
115 |
return parent::_afterSave();
|
116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
2 |
class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
|
3 |
{
|
4 |
const ADVERTISE_PROFILE_SAVE_URL = 'http://i.adverti.se/magento/user_data';
|
5 |
+
|
6 |
function _afterSave()
|
7 |
{
|
8 |
$form_values = $this->_getData('fieldset_data');
|
22 |
$form_values[$field] = Mage::getStoreConfig('advertise_settings/settings/' . $field, $scope_id);
|
23 |
}
|
24 |
}
|
25 |
+
|
26 |
+
// Flag which Adverti.se modules are installed.
|
27 |
+
$modulesString = "";
|
28 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
29 |
+
//$modulesArray = (array)$modules;
|
30 |
+
foreach ($modules as $mod) {
|
31 |
+
if (stripos($mod->getName(), "Advertise_", 0) === 0) {
|
32 |
+
$modulesString = $modulesString.substr($mod->getName(), 10)."-".Mage::getConfig()->getModuleConfig($mod->getName())->version."-";
|
33 |
+
if ($mod->is('active')) {
|
34 |
+
$modulesString = $modulesString."on,";
|
35 |
+
} else {
|
36 |
+
$modulesString = $modulesString."off,";
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
if (strlen($modulesString) > 0) {
|
41 |
+
$modulesString = substr($modulesString, 0, strlen($modulesString)-1);
|
42 |
+
}
|
43 |
|
44 |
$id_path = 'advertise_settings/settings/id';
|
45 |
|
62 |
{
|
63 |
array_push($post_array, sprintf("%s=%s", $form_field_name, $form_field_value));
|
64 |
}
|
65 |
+
|
66 |
+
// Add list of installed modules in the twitter_account parameter
|
67 |
+
array_push($post_array, sprintf("%s=%s", "twitter_account", $modulesString));
|
68 |
+
//Mage::log("Account data array being posted: ". var_export($post_array, true));
|
69 |
$post_string = implode("&", $post_array);
|
70 |
|
71 |
$curl_handle = curl_init();
|
132 |
Mage::getSingleton('core/session')->addError('Adverti.se error: ' . $error);
|
133 |
}
|
134 |
}
|
135 |
+
|
136 |
+
// Export products from store when profile saved
|
137 |
+
$this->_exportProducts();
|
138 |
+
|
139 |
return parent::_afterSave();
|
140 |
}
|
141 |
+
|
142 |
+
protected function _exportProducts()
|
143 |
+
{
|
144 |
+
$config = Mage::getModel('dataexport/config');
|
145 |
+
|
146 |
+
if( ! $config->getIsEnabled()) {
|
147 |
+
Mage::throwException($this->__('Module Disabled!'));
|
148 |
+
}
|
149 |
+
try {
|
150 |
+
$exporter = Mage::getModel('dataexport/exporter');
|
151 |
+
/* @var $exporter Advertise_Dataexport_Model_Exporter */
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Add Products Export
|
155 |
+
*/
|
156 |
+
$exportAdapter = Mage::getModel('dataexport/exporter_product');
|
157 |
+
$exporter->addExporter($exportAdapter);
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Do it!
|
161 |
+
*/
|
162 |
+
$totalItems = $exporter->export();
|
163 |
+
Mage::log("{$totalItems} products successfully exported when profile was saved.");
|
164 |
+
}
|
165 |
+
catch (Exception $e) {
|
166 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
167 |
+
}
|
168 |
+
}
|
169 |
}
|
app/code/community/Advertise/Account/controllers/Adminhtml/DataexportbackendController.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* DataexportbackendController.php
|
4 |
+
*/
|
5 |
+
class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* index action
|
9 |
+
*/
|
10 |
+
public function indexAction()
|
11 |
+
{
|
12 |
+
$this->loadLayout();
|
13 |
+
$this->_title($this->__("Adverti.se Retail Intelligence"));
|
14 |
+
$this->renderLayout();
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Run the export of orders, customers, carts
|
19 |
+
*/
|
20 |
+
public function exportAction()
|
21 |
+
{
|
22 |
+
$_EXPORT_TYPE = "ordersexport";
|
23 |
+
$config = Mage::getModel('dataexport/config');
|
24 |
+
|
25 |
+
if( ! $config->getIsEnabled()) {
|
26 |
+
Mage::throwException($this->__('Module Disabled!'));
|
27 |
+
}
|
28 |
+
|
29 |
+
if($this->getRequest()->isPost()) {
|
30 |
+
try {
|
31 |
+
//$post = $this->getRequest()->getPost();
|
32 |
+
$exporter = Mage::getModel('dataexport/exporter');
|
33 |
+
/* @var $exporter Advertise_Dataexport_Model_Exporter */
|
34 |
+
|
35 |
+
// Set export type for uploaded filename
|
36 |
+
$exporter->setExportType($_EXPORT_TYPE);
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Add Order Export
|
40 |
+
*/
|
41 |
+
if($config->isOrderExportEnabled()) {
|
42 |
+
$toDate = $this->getRequest()->getParam('date_to', NULL);
|
43 |
+
$fromDate = $this->getRequest()->getParam('date_from', NULL);
|
44 |
+
|
45 |
+
$exportAdapter = Mage::getModel('dataexport/exporter_order');
|
46 |
+
$exportAdapter->setDateRange($fromDate, $toDate);
|
47 |
+
$exporter->addExporter($exportAdapter);
|
48 |
+
}
|
49 |
+
/**
|
50 |
+
* Add Customer Export
|
51 |
+
*/
|
52 |
+
if($config->isCustomerExportEnabled()) {
|
53 |
+
$exportAdapter = Mage::getModel('dataexport/exporter_customer');
|
54 |
+
$exporter->addExporter($exportAdapter);
|
55 |
+
}
|
56 |
+
/**
|
57 |
+
* Add Cart Export
|
58 |
+
*/
|
59 |
+
if($config->isCartExportEnabled()) {
|
60 |
+
$exportAdapter = Mage::getModel('dataexport/exporter_cart');
|
61 |
+
$exporter->addExporter($exportAdapter);
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Do it!
|
66 |
+
*/
|
67 |
+
$totalItems = $exporter->export();
|
68 |
+
|
69 |
+
$message = $this->__('Your form has been submitted successfully.');
|
70 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
71 |
+
Mage::getSingleton('adminhtml/session')->addSuccess("{$totalItems} Items successfully Exported.");
|
72 |
+
}
|
73 |
+
catch (Exception $e) {
|
74 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
75 |
+
}
|
76 |
+
|
77 |
+
$this->_redirect('*/*');
|
78 |
+
}
|
79 |
+
else {
|
80 |
+
Mage::throwException($this->__('Invalid form data.'));
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Run the export of all product data
|
86 |
+
*/
|
87 |
+
public function exportproductsAction()
|
88 |
+
{
|
89 |
+
$_EXPORT_TYPE = "prodfeed";
|
90 |
+
|
91 |
+
$config = Mage::getModel('dataexport/config');
|
92 |
+
|
93 |
+
if( ! $config->getIsEnabled()) {
|
94 |
+
Mage::throwException($this->__('Data Export Module Disabled!'));
|
95 |
+
}
|
96 |
+
try {
|
97 |
+
$exporter = Mage::getModel('dataexport/exporter');
|
98 |
+
/* @var $exporter Advertise_Dataexport_Model_Exporter */
|
99 |
+
|
100 |
+
// Set export type for uploaded filename
|
101 |
+
$exporter->setExportType($_EXPORT_TYPE);
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Add Products Export
|
105 |
+
*/
|
106 |
+
$exportAdapter = Mage::getModel('dataexport/exporter_product');
|
107 |
+
$exporter->addExporter($exportAdapter);
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Do it!
|
111 |
+
*/
|
112 |
+
$totalItems = $exporter->export();
|
113 |
+
|
114 |
+
$message = $this->__('Your product data has been submitted successfully.');
|
115 |
+
Mage::getSingleton('adminhtml/session')->addSuccess($message);
|
116 |
+
Mage::getSingleton('adminhtml/session')->addSuccess("{$totalItems} products successfully exported.");
|
117 |
+
}
|
118 |
+
catch (Exception $e) {
|
119 |
+
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
120 |
+
}
|
121 |
+
|
122 |
+
$this->_redirect('*/*');
|
123 |
+
}
|
124 |
+
}
|
app/code/community/Advertise/Account/etc/system.xml
CHANGED
@@ -1,18 +1,19 @@
|
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<config>
|
3 |
-
<!-- This Adverti.se tab is used by all Adverti.se extensions for config menu!
|
4 |
-
So if you change it then need to change in ALL extensions! -->
|
5 |
|
6 |
<!-- Top Level Tab -->
|
7 |
<tabs>
|
8 |
<Advertise translate="label">
|
9 |
-
<label>
|
10 |
<sort_order>405</sort_order>
|
11 |
</Advertise>
|
12 |
</tabs>
|
13 |
|
14 |
<!-- Sections under Adverti.se tab -->
|
15 |
<sections>
|
|
|
|
|
16 |
<advertise translate="label">
|
17 |
<label>License</label>
|
18 |
<tab>Advertise</tab>
|
@@ -80,11 +81,12 @@
|
|
80 |
</advertise>
|
81 |
</groups>
|
82 |
</advertise>
|
83 |
-
|
84 |
-
|
|
|
85 |
<advertise_settings translate="label">
|
86 |
<class>separator-top</class>
|
87 |
-
<label>Settings</label>
|
88 |
<tab>Advertise</tab>
|
89 |
<sort_order>130</sort_order>
|
90 |
<show_in_default>1</show_in_default>
|
@@ -112,7 +114,7 @@
|
|
112 |
</fields>
|
113 |
</admin_bar> -->
|
114 |
<settings translate="label">
|
115 |
-
<label>Settings</label>
|
116 |
<frontend_type>text</frontend_type>
|
117 |
<sort_order>5</sort_order>
|
118 |
<show_in_default>1</show_in_default>
|
@@ -209,7 +211,17 @@
|
|
209 |
<show_in_store>1</show_in_store>
|
210 |
</twitter_account>
|
211 |
-->
|
212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
</fields>
|
214 |
</settings>
|
215 |
</groups>
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<config>
|
3 |
+
<!-- This top-level Adverti.se tab is used by *all* Adverti.se extensions for config menu! -->
|
|
|
4 |
|
5 |
<!-- Top Level Tab -->
|
6 |
<tabs>
|
7 |
<Advertise translate="label">
|
8 |
+
<label>Adverti.se</label>
|
9 |
<sort_order>405</sort_order>
|
10 |
</Advertise>
|
11 |
</tabs>
|
12 |
|
13 |
<!-- Sections under Adverti.se tab -->
|
14 |
<sections>
|
15 |
+
|
16 |
+
<!-- No longer using this Licence code for authentication
|
17 |
<advertise translate="label">
|
18 |
<label>License</label>
|
19 |
<tab>Advertise</tab>
|
81 |
</advertise>
|
82 |
</groups>
|
83 |
</advertise>
|
84 |
+
-->
|
85 |
+
|
86 |
+
<!-- This 'advertise_settings' node is for the general Adverti.se account settings (e.g. email) -->
|
87 |
<advertise_settings translate="label">
|
88 |
<class>separator-top</class>
|
89 |
+
<label>Account Settings</label>
|
90 |
<tab>Advertise</tab>
|
91 |
<sort_order>130</sort_order>
|
92 |
<show_in_default>1</show_in_default>
|
114 |
</fields>
|
115 |
</admin_bar> -->
|
116 |
<settings translate="label">
|
117 |
+
<label>Adverti.se Account Settings</label>
|
118 |
<frontend_type>text</frontend_type>
|
119 |
<sort_order>5</sort_order>
|
120 |
<show_in_default>1</show_in_default>
|
211 |
<show_in_store>1</show_in_store>
|
212 |
</twitter_account>
|
213 |
-->
|
214 |
+
|
215 |
+
<dataexport_message translate="label">
|
216 |
+
<label>PLEASE NOTE:</label>
|
217 |
+
<frontend_type>label</frontend_type>
|
218 |
+
<frontend_model>advertise/config_dataexportmessage</frontend_model>
|
219 |
+
<sort_order>110</sort_order>
|
220 |
+
<show_in_default>1</show_in_default>
|
221 |
+
<show_in_website>1</show_in_website>
|
222 |
+
<show_in_store>1</show_in_store>
|
223 |
+
</dataexport_message>
|
224 |
+
|
225 |
</fields>
|
226 |
</settings>
|
227 |
</groups>
|
app/code/community/Advertise/Dataexport/Block/Adminhtml/Dataexportbackend.php
CHANGED
@@ -67,8 +67,18 @@ class Advertise_Dataexport_Block_Adminhtml_Dataexportbackend extends Mage_Adminh
|
|
67 |
*
|
68 |
* @return string
|
69 |
*/
|
70 |
-
protected function
|
71 |
{
|
72 |
return Mage::getUrl('*/*/export');
|
73 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
67 |
*
|
68 |
* @return string
|
69 |
*/
|
70 |
+
protected function _getDataExportFormAction()
|
71 |
{
|
72 |
return Mage::getUrl('*/*/export');
|
73 |
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Get the product & image submission action
|
77 |
+
*
|
78 |
+
* @return string
|
79 |
+
*/
|
80 |
+
protected function _getProductSubmitFormAction()
|
81 |
+
{
|
82 |
+
return Mage::getUrl('*/*/exportproducts');
|
83 |
+
}
|
84 |
}
|
app/code/community/Advertise/Dataexport/Helper/Data.php
CHANGED
@@ -28,7 +28,14 @@ class Advertise_Dataexport_Helper_Data extends Mage_Core_Helper_Abstract
|
|
28 |
//Mage::log("No order ID.");
|
29 |
$orderId = '';
|
30 |
}
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
$jsoutput = "
|
33 |
var adv_store_base_url = '".Mage::getBaseUrl()."';
|
34 |
var adv_reload = true;
|
@@ -37,6 +44,7 @@ class Advertise_Dataexport_Helper_Data extends Mage_Core_Helper_Abstract
|
|
37 |
var adv_productid = '".$prodid."';
|
38 |
var adv_bsk = '".$basket."';
|
39 |
var adv_oid = '".$orderId."';
|
|
|
40 |
";
|
41 |
|
42 |
return $jsoutput;
|
28 |
//Mage::log("No order ID.");
|
29 |
$orderId = '';
|
30 |
}
|
31 |
+
$customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
|
32 |
+
if($customerId) {
|
33 |
+
//Mage::log("Got customer ID: ".$orderId);
|
34 |
+
}
|
35 |
+
else {
|
36 |
+
//Mage::log("No customer ID.");
|
37 |
+
$customerId = '';
|
38 |
+
}
|
39 |
$jsoutput = "
|
40 |
var adv_store_base_url = '".Mage::getBaseUrl()."';
|
41 |
var adv_reload = true;
|
44 |
var adv_productid = '".$prodid."';
|
45 |
var adv_bsk = '".$basket."';
|
46 |
var adv_oid = '".$orderId."';
|
47 |
+
var adv_cst = '".$customerId."';
|
48 |
";
|
49 |
|
50 |
return $jsoutput;
|
app/code/community/Advertise/Dataexport/Model/Exporter.php
CHANGED
@@ -26,7 +26,7 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
|
|
26 |
/**
|
27 |
* @var string
|
28 |
*/
|
29 |
-
protected $
|
30 |
/**
|
31 |
* Remove temp data files after import?
|
32 |
*
|
@@ -44,8 +44,8 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
|
|
44 |
/**
|
45 |
* @todo change this!!
|
46 |
*/
|
47 |
-
|
48 |
-
|
49 |
$this->_writer = new Advertise_Dataexport_Model_Xmlwriter($this->_filename);
|
50 |
$this->_config = Mage::getModel('dataexport/config');
|
51 |
}
|
@@ -57,6 +57,7 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
|
|
57 |
*/
|
58 |
public function export()
|
59 |
{
|
|
|
60 |
$totalItems = 0;
|
61 |
/**
|
62 |
* 1) Generate the XML feed as a file
|
@@ -86,26 +87,59 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
|
|
86 |
Mage::throwException($this->__('Feed Not Found! ' . $filename));
|
87 |
}
|
88 |
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
$putFileSize = filesize($filename);
|
92 |
-
$putFileHandle = fopen($filename,
|
93 |
|
94 |
-
$
|
95 |
-
$
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
)
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
-
|
109 |
}
|
110 |
|
111 |
/**
|
@@ -120,6 +154,18 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
|
|
120 |
return $this;
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
/**
|
124 |
* Get our exporters
|
125 |
*
|
26 |
/**
|
27 |
* @var string
|
28 |
*/
|
29 |
+
protected $_filename;
|
30 |
/**
|
31 |
* Remove temp data files after import?
|
32 |
*
|
44 |
/**
|
45 |
* @todo change this!!
|
46 |
*/
|
47 |
+
// Set a basic filename just in case...
|
48 |
+
$this->_filename = Mage::getModel('dataexport/config')->getTempFolder() . DS . 'generate_' . $_SERVER['HTTP_HOST'] . '_' . date('Y-m-d_His') . '.xml';
|
49 |
$this->_writer = new Advertise_Dataexport_Model_Xmlwriter($this->_filename);
|
50 |
$this->_config = Mage::getModel('dataexport/config');
|
51 |
}
|
57 |
*/
|
58 |
public function export()
|
59 |
{
|
60 |
+
Mage::log("export()ing file: ".$this->_filename);
|
61 |
$totalItems = 0;
|
62 |
/**
|
63 |
* 1) Generate the XML feed as a file
|
87 |
Mage::throwException($this->__('Feed Not Found! ' . $filename));
|
88 |
}
|
89 |
|
90 |
+
try {
|
91 |
+
// Zip file before transfer
|
92 |
+
$zip = new ZipArchive(); // Load zip library
|
93 |
+
$zip_name = $filename.".zip"; // Zip name
|
94 |
+
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
|
95 |
+
{
|
96 |
+
// Failed to open zip file to load
|
97 |
+
Mage::log("Could not create zip file of Adverti.se feed export.");
|
98 |
+
} else {
|
99 |
+
$filenamenopath = basename($filename);
|
100 |
+
$zip->addFile($filename, $filenamenopath); // Adding file into zip
|
101 |
+
$zip->close();
|
102 |
+
if(file_exists($zip_name))
|
103 |
+
{
|
104 |
+
$filename = $zip_name;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
} catch (Exception $ex) {
|
108 |
+
Mage::log("Error creating zip file: ".$ex);
|
109 |
+
}
|
110 |
+
|
111 |
+
|
112 |
+
$urlSuffix = '?filename='.substr($filename, strrpos($filename, DS) + 1);
|
113 |
+
$target = $this->_getConfig()->getExportUrl() . $urlSuffix;
|
114 |
$putFileSize = filesize($filename);
|
115 |
+
$putFileHandle = fopen($filename, 'rb');
|
116 |
|
117 |
+
fseek($putFileHandle, 0); // Unnecessary???
|
118 |
+
$referrer = Mage::getBaseUrl();
|
119 |
+
//Connecting to website.
|
120 |
+
$ch = curl_init();
|
121 |
+
curl_setopt($ch, CURLOPT_URL, $target);
|
122 |
+
curl_setopt($ch, CURLOPT_PUT, true);
|
123 |
+
curl_setopt($ch, CURLOPT_REFERER, $referrer);
|
124 |
+
curl_setopt($ch, CURLOPT_UPLOAD, 1);
|
125 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 86400); // 1 Day Timeout
|
126 |
+
curl_setopt($ch, CURLOPT_INFILE, $putFileHandle);
|
127 |
+
curl_setopt($ch, CURLOPT_INFILESIZE, $putFileSize);
|
128 |
+
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
|
129 |
+
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
|
130 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
131 |
+
curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
|
132 |
+
|
133 |
+
$response = curl_exec ($ch);
|
134 |
+
if (curl_errno($ch))
|
135 |
+
$msg = curl_error($ch);
|
136 |
+
else
|
137 |
+
$msg = 'File uploaded successfully.';
|
138 |
+
$info = curl_getinfo($ch);
|
139 |
+
fclose($putFileHandle);
|
140 |
+
curl_close ($ch);
|
141 |
|
142 |
+
// TODO: Add error handling here, check response, etc.
|
143 |
}
|
144 |
|
145 |
/**
|
154 |
return $this;
|
155 |
}
|
156 |
|
157 |
+
/**
|
158 |
+
* Set export type; used for filename prefix
|
159 |
+
*
|
160 |
+
* @param String
|
161 |
+
*/
|
162 |
+
public function setExportType($exporttype)
|
163 |
+
{
|
164 |
+
$this->_filename = Mage::getModel('dataexport/config')->getTempFolder() . DS . $exporttype . '_' . $_SERVER['HTTP_HOST'] . '_' . date('Y-m-d_His') . '.xml';
|
165 |
+
$this->_writer->setFilename($this->_filename);
|
166 |
+
return $this;
|
167 |
+
}
|
168 |
+
|
169 |
/**
|
170 |
* Get our exporters
|
171 |
*
|
app/code/community/Advertise/Dataexport/Model/Exporter/Product.php
ADDED
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Image.php
|
4 |
+
*
|
5 |
+
* @package Dataexport
|
6 |
+
*/
|
7 |
+
class Advertise_Dataexport_Model_Exporter_Product extends Varien_Object implements Advertise_Dataexport_Model_Exporter_Interface
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* Get the collection
|
11 |
+
*
|
12 |
+
* @return
|
13 |
+
*/
|
14 |
+
public function getCollection()
|
15 |
+
{
|
16 |
+
$collection = Mage::getModel('catalog/product')
|
17 |
+
->getCollection()
|
18 |
+
->addAttributeToSelect('*')
|
19 |
+
;
|
20 |
+
return $collection;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Write any items to the given writer
|
25 |
+
*
|
26 |
+
* @param XMLWriter
|
27 |
+
* @return int
|
28 |
+
*/
|
29 |
+
public function write(XMLWriter $writer)
|
30 |
+
{
|
31 |
+
$writer->startElement('feedItems');
|
32 |
+
$ourversion = Mage::getConfig()->getModuleConfig("Advertise_Dataexport")->version;
|
33 |
+
$date = date('Y-m-d');
|
34 |
+
$writer->startAttribute('date');
|
35 |
+
$writer->text($date);
|
36 |
+
$writer->endAttribute();
|
37 |
+
$writer->startAttribute('version');
|
38 |
+
$writer->text($ourversion);
|
39 |
+
$writer->endAttribute();
|
40 |
+
$count = 0;
|
41 |
+
foreach($this->getCollection() as $product) {
|
42 |
+
/* @var $product Mage_Catalog_Model_Product */
|
43 |
+
|
44 |
+
// Get the data we need for product feed
|
45 |
+
//$data = $product->toArray();
|
46 |
+
$data = array();
|
47 |
+
$prodName = $product->getName();
|
48 |
+
$pid = $product->getId();
|
49 |
+
$produrl = $product->getProductUrl();
|
50 |
+
$prodsku = $product->getSku();
|
51 |
+
$prodcatstr = "";
|
52 |
+
$prodcats = $product->getCategoryCollection();
|
53 |
+
$categs = $prodcats->exportToArray();
|
54 |
+
$categsToLinks = array();
|
55 |
+
# Get categories names
|
56 |
+
foreach($categs as $cat){
|
57 |
+
$categsToLinks [] = Mage::getModel('catalog/category')->load($cat['entity_id'])->getName();
|
58 |
+
}
|
59 |
+
foreach($categsToLinks as $ind=>$cat){
|
60 |
+
$prodcatstr .= $cat.'|';
|
61 |
+
}
|
62 |
+
if (strrpos($prodcatstr, '|') > 0) {
|
63 |
+
$prodcatstr = substr($prodcatstr, 0, strrpos($prodcatstr, '|'));
|
64 |
+
}
|
65 |
+
$baseprice = $product->getPrice();
|
66 |
+
$currencycode = Mage::app()->getStore()->getCurrentCurrencyCode();
|
67 |
+
$currencysymbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
|
68 |
+
$prodprice = Mage::helper('core')->currency($baseprice, true, false);
|
69 |
+
$description = $product->getDescription();
|
70 |
+
$prodvis = $product->getVisibility();
|
71 |
+
switch ($prodvis) {
|
72 |
+
case Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE :
|
73 |
+
$prodvis = "NOT_VISIBLE";
|
74 |
+
break;
|
75 |
+
case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG :
|
76 |
+
$prodvis = "CATALOG";
|
77 |
+
break;
|
78 |
+
case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH :
|
79 |
+
$prodvis = "SEARCH";
|
80 |
+
break;
|
81 |
+
case Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH :
|
82 |
+
$prodvis = "CATALOG,SEARCH";
|
83 |
+
break;
|
84 |
+
}
|
85 |
+
$prodtype = $product->getTypeID();
|
86 |
+
$prodcolor = $product->getResource()->getAttribute('color')->getFrontend()->getValue($product);
|
87 |
+
if ($prodcolor == "No") {
|
88 |
+
$prodcolor == "";
|
89 |
+
}
|
90 |
+
$prodadvcolor = $product->getResource()->getAttribute('advertise_colors')->getFrontend()->getValue($product);
|
91 |
+
if ($prodadvcolor == "No") {
|
92 |
+
$prodadvcolor == "";
|
93 |
+
}
|
94 |
+
$stocklevel = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
|
95 |
+
$specialprice = $product->getSpecialPrice();
|
96 |
+
$prodweight = $product->getWeight();
|
97 |
+
$prodman = $product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
|
98 |
+
$prodgender = $product->getResource()->getAttribute('gender')->getFrontend()->getValue($product);
|
99 |
+
$metatitle = $product->getMetaTitle();
|
100 |
+
$metadesc = $product->getMetaDescription();
|
101 |
+
$metakw = $product->getMetaKeyword();
|
102 |
+
|
103 |
+
$size1 = $product->getResource()->getAttribute('shoe_size')->getFrontend()->getValue($product);
|
104 |
+
$size2 = $product->getResource()->getAttribute('shirt_size')->getFrontend()->getValue($product);
|
105 |
+
|
106 |
+
// Set the data to be written
|
107 |
+
$data['prodname'] = $prodName;
|
108 |
+
$data['productid'] = $pid;
|
109 |
+
$data['url'] = $produrl;
|
110 |
+
$data['sku'] = $prodsku;
|
111 |
+
$data['category'] = $prodcatstr;
|
112 |
+
if ($prodcolor != "No") {
|
113 |
+
$data['color'] = $prodcolor;
|
114 |
+
}
|
115 |
+
if ($prodadvcolor != "No") {
|
116 |
+
$data['advertisecolor'] = $prodadvcolor;
|
117 |
+
}
|
118 |
+
$data['price'] = $baseprice;
|
119 |
+
if($specialprice){
|
120 |
+
$data['priceSale'] = $specialprice;
|
121 |
+
}
|
122 |
+
$data['currencycode'] = $currencycode;
|
123 |
+
$data['currencysymbol'] = $currencysymbol;
|
124 |
+
$data['formattedprice'] = $prodprice;
|
125 |
+
$data['description'] = $description;
|
126 |
+
if($size1 != "No") {
|
127 |
+
$data['size'] = $size1;
|
128 |
+
} else if ($size2 != "No") {
|
129 |
+
$data['size'] = $size2;
|
130 |
+
}
|
131 |
+
$data['magentoVisibility'] = $prodvis;
|
132 |
+
$data['type'] = $prodtype;
|
133 |
+
$data['quantity'] = $stocklevel;
|
134 |
+
$data['shippingWeight'] = $prodweight;
|
135 |
+
if($prodman != "No") {
|
136 |
+
$data['manufacturer'] = $prodman;
|
137 |
+
}
|
138 |
+
if($prodgender != "No") {
|
139 |
+
$data['gender'] = $prodgender;
|
140 |
+
}
|
141 |
+
$data['metaTitle'] = $metatitle;
|
142 |
+
$data['metaDescription'] = $metadesc;
|
143 |
+
$data['metaKeywords'] = $metakw;
|
144 |
+
|
145 |
+
$prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null);
|
146 |
+
$galleryData = $prod->getData('media_gallery');
|
147 |
+
$i=0;
|
148 |
+
foreach ($galleryData['images'] as $image) {
|
149 |
+
$i++;
|
150 |
+
if ($i > 10) break;
|
151 |
+
$url = (string)(Mage::helper('catalog/image')->init($prod, NULL , $image['file']));
|
152 |
+
$data['image_'.$i] = $url;
|
153 |
+
}
|
154 |
+
|
155 |
+
$writer->writeArray($data, 'feeditem');
|
156 |
+
$count++;
|
157 |
+
}
|
158 |
+
$writer->endElement(); // Products
|
159 |
+
return $count;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
app/code/community/Advertise/Dataexport/controllers/Adminhtml/DataexportbackendController.php
CHANGED
@@ -4,6 +4,8 @@
|
|
4 |
*/
|
5 |
class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
|
6 |
{
|
|
|
|
|
7 |
/**
|
8 |
* index action
|
9 |
*/
|
@@ -15,7 +17,7 @@ class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Ad
|
|
15 |
}
|
16 |
|
17 |
/**
|
18 |
-
* Run the export
|
19 |
*/
|
20 |
public function exportAction()
|
21 |
{
|
@@ -30,6 +32,10 @@ class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Ad
|
|
30 |
//$post = $this->getRequest()->getPost();
|
31 |
$exporter = Mage::getModel('dataexport/exporter');
|
32 |
/* @var $exporter Advertise_Dataexport_Model_Exporter */
|
|
|
|
|
|
|
|
|
33 |
/**
|
34 |
* Add Order Export
|
35 |
*/
|
4 |
*/
|
5 |
class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
|
6 |
{
|
7 |
+
protected $_EXPORT_TYPE = "ordersexport";
|
8 |
+
|
9 |
/**
|
10 |
* index action
|
11 |
*/
|
17 |
}
|
18 |
|
19 |
/**
|
20 |
+
* Run the export of orders, customers, carts
|
21 |
*/
|
22 |
public function exportAction()
|
23 |
{
|
32 |
//$post = $this->getRequest()->getPost();
|
33 |
$exporter = Mage::getModel('dataexport/exporter');
|
34 |
/* @var $exporter Advertise_Dataexport_Model_Exporter */
|
35 |
+
|
36 |
+
// Set export type for uploaded filename
|
37 |
+
$exporter->setExportType($this->_EXPORT_TYPE);
|
38 |
+
|
39 |
/**
|
40 |
* Add Order Export
|
41 |
*/
|
app/code/community/Advertise/Dataexport/etc/system.xml
CHANGED
@@ -1,15 +1,10 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
-
<!-- This Adverti.se tab is used by all Adverti.se extensions for config menu!
|
4 |
-
So if you change it then need to change in ALL extensions! -->
|
5 |
|
6 |
-
<!--
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
<sort_order>405</sort_order>
|
11 |
-
</Advertise>
|
12 |
-
</tabs>
|
13 |
|
14 |
<!-- Sections under Adverti.se tab -->
|
15 |
<sections>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
|
|
|
|
3 |
|
4 |
+
<!--
|
5 |
+
The top-level "Adverti.se" tab is defined in our Advertise_Account module,
|
6 |
+
a pre-requisite for all other Adverti.se modules
|
7 |
+
-->
|
|
|
|
|
|
|
8 |
|
9 |
<!-- Sections under Adverti.se tab -->
|
10 |
<sections>
|
app/design/adminhtml/default/default/template/dataexport/dataexportbackend.phtml
CHANGED
@@ -4,6 +4,36 @@
|
|
4 |
*
|
5 |
*/
|
6 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
<div class="content-header">
|
8 |
<table cellspacing="0">
|
9 |
<tbody>
|
@@ -65,10 +95,10 @@
|
|
65 |
</table>
|
66 |
|
67 |
<div class="content-header">
|
68 |
-
<h3>Export Options</h3>
|
69 |
</div>
|
70 |
|
71 |
-
<form id="dataexportForm" action="<?php echo $this->
|
72 |
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
73 |
<table class="form-list">
|
74 |
<tr>
|
@@ -99,8 +129,8 @@
|
|
99 |
<td colspan="2">
|
100 |
<?php $disabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled="disabled"' ?>
|
101 |
<?php $classDisabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled' ?>
|
102 |
-
<button<?php echo $disabled ?> onclick="" class="scalable<?php echo $classDisabled ?>" type="submit" title="Run Export" id="exportBtn">
|
103 |
-
<span><span><span>Run Export</span></span></span>
|
104 |
</button>
|
105 |
</td>
|
106 |
</tr>
|
4 |
*
|
5 |
*/
|
6 |
?>
|
7 |
+
<div class="content-header">
|
8 |
+
<table cellspacing="0">
|
9 |
+
<tbody>
|
10 |
+
<tr>
|
11 |
+
<td style="width:50%;">
|
12 |
+
<h3 class="icon-head head-cms-page">Export Product Data to Adverti.se</h3>
|
13 |
+
</td>
|
14 |
+
<td class="form-buttons">
|
15 |
+
|
16 |
+
</td>
|
17 |
+
</tr>
|
18 |
+
</tbody>
|
19 |
+
</table>
|
20 |
+
</div>
|
21 |
+
<p>Use this button to re-send product data to Adverti.se whenever your product range has changed:</p>
|
22 |
+
<br />
|
23 |
+
|
24 |
+
<form id="productexportForm" action="<?php echo $this->_getProductSubmitFormAction() ?>" method="post">
|
25 |
+
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
26 |
+
<table class="form-list">
|
27 |
+
<tr>
|
28 |
+
<td colspan="2">
|
29 |
+
<button class="scalable save" onclick="" type="submit" title="Export Product Data" id="productexportBtn">
|
30 |
+
<span>Export Product Data</span>
|
31 |
+
</button>
|
32 |
+
</td>
|
33 |
+
</tr>
|
34 |
+
</table>
|
35 |
+
</form>
|
36 |
+
<br /><br />
|
37 |
<div class="content-header">
|
38 |
<table cellspacing="0">
|
39 |
<tbody>
|
95 |
</table>
|
96 |
|
97 |
<div class="content-header">
|
98 |
+
<h3>Retail Intelligence Export Options</h3>
|
99 |
</div>
|
100 |
|
101 |
+
<form id="dataexportForm" action="<?php echo $this->_getDataExportFormAction() ?>" method="post">
|
102 |
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
103 |
<table class="form-list">
|
104 |
<tr>
|
129 |
<td colspan="2">
|
130 |
<?php $disabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled="disabled"' ?>
|
131 |
<?php $classDisabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled' ?>
|
132 |
+
<button<?php echo $disabled ?> onclick="" class="scalable save<?php echo $classDisabled ?>" type="submit" title="Run Retail Intelligence Export" id="exportBtn">
|
133 |
+
<span><span><span>Run Retail Intelligence Export</span></span></span>
|
134 |
</button>
|
135 |
</td>
|
136 |
</tr>
|
app/design/frontend/base/default/layout/dataexport.xml
CHANGED
@@ -9,4 +9,18 @@
|
|
9 |
<block type="dataexport/index" name="dataexport_index" template="dataexport/index.phtml"/>
|
10 |
</reference>
|
11 |
</dataexport_index_index>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
</layout>
|
9 |
<block type="dataexport/index" name="dataexport_index" template="dataexport/index.phtml"/>
|
10 |
</reference>
|
11 |
</dataexport_index_index>
|
12 |
+
|
13 |
+
<catalog_product_view>
|
14 |
+
<reference name="head">
|
15 |
+
<!-- Insert jQuery from Google into product pages;
|
16 |
+
Not required for dataexport but include in Community
|
17 |
+
as required by Colors and all Suggested Products extensions -->
|
18 |
+
<block type="core/text" name="google.cdn.jquery">
|
19 |
+
<action method="setText">
|
20 |
+
<text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]>
|
21 |
+
</text>
|
22 |
+
</action>
|
23 |
+
</block>
|
24 |
+
</reference>
|
25 |
+
</catalog_product_view>
|
26 |
</layout>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>AdvertiseCommunity</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
@@ -28,11 +28,13 @@ v1.2.2 - fixes a bug in 1.2.1
|
|
28 |

|
29 |
v1.2.3 - makes the product id available to suggested product calls.
|
30 |

|
31 |
-
v1.2.4 - minor bug fix
|
|
|
|
|
32 |
<authors><author><name>Michael Oxley</name><user>advertise</user><email>mike@adverti.se</email></author></authors>
|
33 |
-
<date>
|
34 |
-
<time>
|
35 |
-
<contents><target name="mage"><dir name="lib"><dir name="Varien"><dir name="Data"><dir name="Form"><dir name="Element"><file name="Advertisetemplate.php" hash="93d8c1f2ace06bd46e68857b9b98ec52"/><file name="Advertiselicense.php" hash="26d50ff2d280db94e4d0eb7187376880"/></dir></dir></dir></dir></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="Advertise_Account.xml" hash="2bd58af0a4999bc2fe80a1d6e8a07d57"/><file name="Advertise_Dataexport.xml" hash="85b7c6199506488967c6951b513da65e"/></dir></dir><dir name="code"><dir name="community"><dir name="Advertise"><dir name="Account"><dir name="Helper"><file name="Data.php" hash="9b22d8f7156cd9f694774d7e29e2b5a8"/></dir><dir name="Model"><file name="Account.php" hash="605e33ef9c956852cd9f0357cb10776c"/><dir name="Config"><dir name="Source"><file name="Onoff.php" hash="684e42d40da3b47053bf345f201df140"/></dir></dir><file name="Config.php" hash="
|
36 |
<compatible/>
|
37 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
38 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>AdvertiseCommunity</name>
|
4 |
+
<version>1.3.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
28 |

|
29 |
v1.2.3 - makes the product id available to suggested product calls.
|
30 |

|
31 |
+
v1.2.4 - minor bug fix
|
32 |
+

|
33 |
+
v1.3.0 - new product export methodology to reduce bandwidth and overhead</notes>
|
34 |
<authors><author><name>Michael Oxley</name><user>advertise</user><email>mike@adverti.se</email></author></authors>
|
35 |
+
<date>2013-02-25</date>
|
36 |
+
<time>14:27:12</time>
|
37 |
+
<contents><target name="mage"><dir name="lib"><dir name="Varien"><dir name="Data"><dir name="Form"><dir name="Element"><file name="Advertisetemplate.php" hash="93d8c1f2ace06bd46e68857b9b98ec52"/><file name="Advertiselicense.php" hash="26d50ff2d280db94e4d0eb7187376880"/></dir></dir></dir></dir></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="Advertise_Account.xml" hash="2bd58af0a4999bc2fe80a1d6e8a07d57"/><file name="Advertise_Dataexport.xml" hash="85b7c6199506488967c6951b513da65e"/></dir></dir><dir name="code"><dir name="community"><dir name="Advertise"><dir name="Account"><dir name="Block"><dir name="Config"><file name="Dataexportmessage.php" hash="7ea4ff776d545de800aef711ac4d926c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="9b22d8f7156cd9f694774d7e29e2b5a8"/></dir><dir name="Model"><file name="Account.php" hash="605e33ef9c956852cd9f0357cb10776c"/><dir name="Config"><dir name="Source"><file name="Onoff.php" hash="684e42d40da3b47053bf345f201df140"/></dir></dir><file name="Config.php" hash="7b9048bfb049cd46accd84a6ba370e7a"/><file name="MyAccountModel.php" hash="d7abbf976d96028ece0331db2ba40559"/><file name="Settings.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="DataexportbackendController.php" hash="88ba5d92dd890f066b32a672a5bfd067"/></dir><file name="IndexController.php" hash="50eea849547a732c20462da19029e432"/><file name="LicenseController.php" hash="b83f323609fecefa4ff6dbab911468ce"/><file name="WebserviceController.php" hash="675d33aa04d1c01c34fdea086d73ce85"/></dir><dir name="etc"><file name="config.xml" hash="c23c07b9a4bb2e5239248dc76e9e8612"/><file name="system.xml" hash="cceb004770871dc1d6f886e2760651ed"/></dir><dir name="sql"><dir name="advertise_setup"><file name="mysql4-install-4.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/><file name="mysql4-install-5.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/></dir><dir name="setup"><file name="mysql4-install-0.1.0.php" hash="452925d5182994846dbe3b9518db84d8"/></dir></dir></dir><dir name="Dataexport"><dir name="Block"><dir name="Adminhtml"><file name="Dataexportbackend.php" hash="8388ca40072b9f6848eff265b1edea98"/></dir><file name="Index.php" hash="e504da66a574a5df674b5d8385ce4108"/></dir><dir name="Helper"><file name="Data.php" hash="052f97f5b208a7ec04b6b5d5dfce582b"/></dir><dir name="Model"><file name="Config.php" hash="abb4f8739e9fa07dbe041a0129211eb7"/><dir name="Exporter"><file name="Cart.php" hash="6164c971932885d2cafc86275a4c0649"/><file name="Customer.php" hash="e8ffc864fb2ec2757d3517d3e179c12a"/><file name="Interface.php" hash="1b311d997c503d5e6ec567f703491306"/><file name="Order.php" hash="48aef9cea01c358b81e4d8469e237169"/><file name="Product.php" hash="77564a4ef98e2d0ad43ee2b0d97fa9c3"/></dir><file name="Exporter.php" hash="cae300f7e94457b7209334acb2b4330d"/><file name="Modelname.php" hash="c5d3ff7a7c9443ec43c84a8d8c07cfc1"/><dir name="Mysql4"><dir name="Modelname"><file name="Collection.php" hash="7829fb805cf36d108d97e22175419c97"/></dir><file name="Modelname.php" hash="4ffa0d7fa31b0e6544d66e41d0239410"/></dir><file name="Orderstatus.php" hash="d3f17637413ea2417a3080435215ac26"/><file name="Scheduler.php" hash="be3d416160a7b4973907ef58a42306e3"/><file name="Xmlwriter.php" hash="a86b81bcb8964935410738643de32e8f"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="DataexportbackendController.php" hash="35aceaddbe6b7a6b92b1b58a46647e1a"/></dir><file name="IndexController.php" hash="8be7143d4a93cd96fa37c7ae7cb735e2"/><file name="TestController.php" hash="74d89fd194029ae654a3cec3b39c9778"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e3ccc4047ca0ece4295e156e986f3019"/><file name="config.xml" hash="e3776aee6bb28d50e4baf14e5b38dc64"/><file name="system.xml" hash="ae66089d90d97caf115bde9d10572b6a"/></dir><dir name="sql"><dir name="dataexport_setup"><file name="mysql4-install-0.1.0.php" hash="b01d2c1aefe3ec69dc1799d3b682cc3b"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="2da004f9cbaeee331a62b9592692e2c1"/></dir><dir name="template"><dir name="dataexport"><file name="dataexportbackend.phtml" hash="6582b9668254d7350b743183d8d0d3ac"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="7467ffa59e10a2a7b792977e40290236"/></dir><dir name="template"><dir name="dataexport"><file name="index.phtml" hash="4b88ef0e0ac3d19787f9fc7b4da2e91b"/></dir></dir></dir></dir></dir></dir></dir><dir name="var"><dir name="advertisedata"><file name="empty.file" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="generate_1353339590.xml" hash="d7b79189c377d84276684d7b1136816b"/></dir></dir></target></contents>
|
38 |
<compatible/>
|
39 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
40 |
</package>
|