socialcommerce_suite_by_turnto - Version 2.1.2

Version Notes

TurnTo Admin Extension
2.0 Adds support for Single Sign On
2.1 Re-wrote catalog feed generator

Download this release

Release Info

Developer TurnTo Networks
Extension socialcommerce_suite_by_turnto
Version 2.1.2
Comparing to
See all releases


Code changes from version 2.0.0 to 2.1.2

app/code/community/Turnto/Admin/controllers/.IndexController.php.swp ADDED
Binary file
app/code/community/Turnto/Admin/controllers/AdminControllers/TurntoController.php CHANGED
@@ -7,9 +7,17 @@ class Turnto_Admin_AdminControllers_TurntoController extends Mage_Adminhtml_Cont
7
  $this->loadLayout();
8
 
9
  $resource = Mage::getSingleton('core/resource');
10
- $readConnection = $resource->getConnection('core_read');
11
- $result = $readConnection->fetchAll('select scope_id, value from core_config_data where path = \'web/unsecure/base_url\'');
12
- Mage::register('sites', $result);
 
 
 
 
 
 
 
 
13
 
14
  $this->_addLeft($this->getLayout()->createBlock('Turnto_Admin_Block_ShowTabsAdminBlock'));
15
 
@@ -45,26 +53,29 @@ class Turnto_Admin_AdminControllers_TurntoController extends Mage_Adminhtml_Cont
45
  }
46
 
47
  $scope = $post['scope'];
48
- if(!isset($scope)){
49
- $scope = 0;
 
 
 
50
  }
51
 
52
  $resource = Mage::getSingleton('core/resource');
53
  $readConnection = $resource->getConnection('core_read');
54
-
55
  $stmt = $readConnection->prepare(
56
  'select sales_flat_order.entity_id as orderid, '
57
  .'sales_flat_order_item.created_at as orderdate, '
58
  .'customer_email as email, '
59
  .'ifnull(parent.name, sales_flat_order_item.name) as itemtitle, '
60
- .'concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), ifnull(parent.url_path, catalog_product_flat_1.url_path)) as itemurl, '
61
  .'item_id as itemlineid, '
62
  .'postcode as zip, '
63
  .'customer_firstname as firstname, '
64
  .'customer_lastname as lastname, '
65
  .'ifnull(parent.sku, sales_flat_order_item.sku) as sku, '
66
  .'grand_total as price, '
67
- .'concat((select concat(value,\'/media/catalog/product/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), ifnull(parent.small_image, catalog_product_flat_1.small_image)) as itemimageurl '
68
  .'from sales_flat_order,'
69
  .'sales_flat_order_item, '
70
  .'sales_flat_order_address, '
@@ -72,7 +83,7 @@ class Turnto_Admin_AdminControllers_TurntoController extends Mage_Adminhtml_Cont
72
  .'left join catalog_product_super_link on catalog_product_flat_1.entity_id = catalog_product_super_link.product_id '
73
  .'left join catalog_product_flat_1 as parent on catalog_product_super_link.parent_id = parent.entity_id '
74
  .'where sales_flat_order.entity_id = sales_flat_order_item.order_id '
75
- .'and sales_flat_order.entity_id = sales_flat_order_address.entity_id '
76
  .'and sales_flat_order_item.product_id = catalog_product_flat_1.entity_id '
77
  .'and sales_flat_order_item.created_at > str_to_date(\''.$startDate.'\', \'%m/%d/%Y\')', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
78
  $stmt->execute();
@@ -99,58 +110,105 @@ class Turnto_Admin_AdminControllers_TurntoController extends Mage_Adminhtml_Cont
99
  else{
100
  /* form processing */
101
  $scope = $post['scope'];
102
- if(!isset($scope)){
103
- $scope = 0;
104
- }
105
 
106
- $resource = Mage::getSingleton('core/resource');
107
- $readConnection = $resource->getConnection('core_read');
108
-
109
- $result = $readConnection->fetchAll(
110
- '(select sku as SKU, '
111
- .' concat((select concat(value, \'media/catalog/product\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), small_image) as IMAGEURL, '
112
- .' name as TITLE, '
113
- .' price as PRICE, '
114
- .' \'\' as CURRENCY, '
115
- .' \'Y\' as ACTIVE, '
116
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
117
- .' (select ifnull(group_concat(category_id), \'\') from catalog_category_product where product_id = entity_id and category_id <> \'1\') as CATEGORY, '
118
- .' \'\' as KEYWORDS, '
119
- .' \'\' as REPLACEMENTSKU, '
120
- .' \'Y\' as INSTOCK, '
121
- .' \'\' as VIRTUALPARENTCODE, '
122
- .' \'\' as CATEGORYPATHJSON, '
123
- .' \'n\' as ISCATEGORY from catalog_product_flat_1 where not exists (select 1 from catalog_product_super_link where product_id = catalog_product_flat_1.entity_id)) '
124
- .'UNION ALL '
125
- .'(select entity_id as SKU, '
126
- .' \'\' as IMAGEURL, '
127
- .' name as TITLE, '
128
- .' \'\' as PRICE, '
129
- .' \'\' as CURRENCY, '
130
- .' \'Y\' as ACTIVE, '
131
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
132
- .' (select ifnull(parent_id, \'\') from catalog_category_entity where entity_id = ccfs.entity_id and parent_id <> \'1\') as CATEGORY, '
133
- .' \'\' as KEYWORDS, '
134
- .' \'\' as REPLACEMENTSKU, '.'\'Y\' as INSTOCK, '
135
- .' \'\' as VIRTUALPARENTCODE, '
136
- .' \'\' as CATEGORYPATHJSON, '
137
- .' \'y\' as ISCATEGORY '
138
- .'from catalog_category_flat_store_1 ccfs where entity_id <> \'1\')');
139
 
140
  $handle = fopen($path . 'catfeed.csv', 'w');
141
 
142
  fwrite($handle, "SKU\tIMAGEURL\tTITLE\tPRICE\tCURRENCY\tACTIVE\tITEMURL\tCATEGORY\tKEYWORDS\tREPLACEMENTSKU\tINSTOCK\tVIRTUALPARENTCODE\tCATEGORYPATHJSON\tISCATEGORY");
143
  fwrite($handle, "\n");
144
-
145
- foreach($result as $row){
146
- foreach($row as $column){
147
- fwrite($handle, str_replace("\t", "\\t", $column));
 
 
 
 
 
 
 
 
 
 
148
  fwrite($handle, "\t");
149
- }
150
-
151
- fwrite($handle, "\n");
152
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  fclose($handle);
155
 
156
  $message = $this->__('The catalog feed was successfully generated. Click the &quot;Download catalog feed&quot; link to download.');
7
  $this->loadLayout();
8
 
9
  $resource = Mage::getSingleton('core/resource');
10
+ $storeList = array();
11
+ foreach (Mage::app()->getWebsites() as $website) {
12
+ foreach ($website->getGroups() as $group) {
13
+ $stores = $group->getStores();
14
+ foreach ($stores as $store) {
15
+ array_push($storeList, $store);
16
+ }
17
+ }
18
+ }
19
+
20
+ Mage::register('sites', $storeList);
21
 
22
  $this->_addLeft($this->getLayout()->createBlock('Turnto_Admin_Block_ShowTabsAdminBlock'));
23
 
53
  }
54
 
55
  $scope = $post['scope'];
56
+ $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
57
+ $baseMediaUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
58
+ if(isset($scope)){
59
+ $baseUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
60
+ $baseMediaUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
61
  }
62
 
63
  $resource = Mage::getSingleton('core/resource');
64
  $readConnection = $resource->getConnection('core_read');
65
+
66
  $stmt = $readConnection->prepare(
67
  'select sales_flat_order.entity_id as orderid, '
68
  .'sales_flat_order_item.created_at as orderdate, '
69
  .'customer_email as email, '
70
  .'ifnull(parent.name, sales_flat_order_item.name) as itemtitle, '
71
+ .'concat('.$readConnection->quote($baseUrl).', ifnull(parent.url_path, catalog_product_flat_1.url_path)) as itemurl, '
72
  .'item_id as itemlineid, '
73
  .'postcode as zip, '
74
  .'customer_firstname as firstname, '
75
  .'customer_lastname as lastname, '
76
  .'ifnull(parent.sku, sales_flat_order_item.sku) as sku, '
77
  .'grand_total as price, '
78
+ .'concat('.$readConnection->quote($baseMediaUrl).', ifnull(parent.small_image, catalog_product_flat_1.small_image)) as itemimageurl '
79
  .'from sales_flat_order,'
80
  .'sales_flat_order_item, '
81
  .'sales_flat_order_address, '
83
  .'left join catalog_product_super_link on catalog_product_flat_1.entity_id = catalog_product_super_link.product_id '
84
  .'left join catalog_product_flat_1 as parent on catalog_product_super_link.parent_id = parent.entity_id '
85
  .'where sales_flat_order.entity_id = sales_flat_order_item.order_id '
86
+ .'and sales_flat_order.entity_id = sales_flat_order_address.parent_id '
87
  .'and sales_flat_order_item.product_id = catalog_product_flat_1.entity_id '
88
  .'and sales_flat_order_item.created_at > str_to_date(\''.$startDate.'\', \'%m/%d/%Y\')', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
89
  $stmt->execute();
110
  else{
111
  /* form processing */
112
  $scope = $post['scope'];
 
 
 
113
 
114
+ $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
115
+ $baseMediaUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
116
+ if(isset($scope)){
117
+ $baseUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
118
+ $baseMediaUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
119
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
 
121
  $handle = fopen($path . 'catfeed.csv', 'w');
122
 
123
  fwrite($handle, "SKU\tIMAGEURL\tTITLE\tPRICE\tCURRENCY\tACTIVE\tITEMURL\tCATEGORY\tKEYWORDS\tREPLACEMENTSKU\tINSTOCK\tVIRTUALPARENTCODE\tCATEGORYPATHJSON\tISCATEGORY");
124
  fwrite($handle, "\n");
125
+
126
+ $products = Mage::getModel('catalog/product')->setStoreId($scope)->getCollection()->addAttributeToSelect('name')->addAttributeToSelect('*')->addAttributeToSelect('price')->addAttributeToSelect('image');
127
+ if ($products) {
128
+ foreach ($products as $product) {
129
+ $product->setStoreId($scope);
130
+ fwrite($handle, $product->getSku());
131
+ fwrite($handle, "\t");
132
+ if($product->getImage() != null && $product->getImage() != "no_selection") {
133
+ fwrite($handle, Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getImage() ));
134
+ } else if ($product->getSmallImage() != null && $product->getSmallImage() != "no_selection") {
135
+ fwrite($handle, Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getSmallImage() ));
136
+ } else if ($product->getThumbnail() != null && $product->getThumbnail() != "no_selection") {
137
+ fwrite($handle, Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getThumbnail() ));
138
+ }
139
  fwrite($handle, "\t");
140
+ fwrite($handle, $product->getName());
141
+ fwrite($handle, "\t");
142
+ fwrite($handle, $product->getPrice());
143
+ fwrite($handle, "\t");
144
+ //CURRENCY
145
+ fwrite($handle, "\t");
146
+ //ACTIVE
147
+ fwrite($handle, "Y");
148
+ fwrite($handle, "\t");
149
+ //ITEMURL
150
+ fwrite($handle, $product->getProductUrl());
151
+ fwrite($handle, "\t");
152
+ //CATEGORY
153
+ $ids = $product->getCategoryIds();
154
+ fwrite($handle, (isset($ids[0]) ? $ids[0] : ''));
155
+ fwrite($handle, "\t");
156
+ // KEYWORDS
157
+ fwrite($handle, "\t");
158
+ // REPLACEMENTSKU
159
+ fwrite($handle, "\t");
160
+ //VIRTUALPARENTCODE
161
+ fwrite($handle, "\t");
162
+ //CATEGORYPATHJSON
163
+ fwrite($handle, "\t");
164
+ //ISCATEGORY
165
+ fwrite($handle, "n");
166
+ fwrite($handle, "\n");
167
+ }
168
+ }
169
 
170
+ $categories = Mage::getModel('catalog/category')->setStoreId($scope)->getCollection()->addAttributeToSelect('name');
171
+ if ($categories) {
172
+ foreach ($categories as $category) {
173
+ if ($category->getId() == 1) {
174
+ continue;
175
+ }
176
+ $category->setStoreId($scope);
177
+ fwrite($handle, $category->getId());
178
+ fwrite($handle, "\t");
179
+ //IMAGEURL
180
+ fwrite($handle, "\t");
181
+ //TITLE
182
+ fwrite($handle, $category->getName());
183
+ fwrite($handle, "\t");
184
+ //PRICE
185
+ fwrite($handle, "\t");
186
+ //CURRENCY
187
+ fwrite($handle, "\t");
188
+ //ACTIVE
189
+ fwrite($handle, "Y");
190
+ fwrite($handle, "\t");
191
+ //ITEMURL
192
+ fwrite($handle, $category->getUrl());
193
+ fwrite($handle, "\t");
194
+ //CATEGORY
195
+ fwrite($handle, $category->getParentCategory()->getId());
196
+ fwrite($handle, "\t");
197
+ //KEYWORDS
198
+ fwrite($handle, "\t");
199
+ //REPLACEMENTSKU
200
+ fwrite($handle, "\t");
201
+ //VIRTUALPARENTCODE
202
+ fwrite($handle, "\t");
203
+ //CATEGORYPATHJSON
204
+ fwrite($handle, "\t");
205
+ //ISCATEGORY
206
+ fwrite($handle, "Y");
207
+ fwrite($handle, "\n");
208
+
209
+ }
210
+ }
211
+
212
  fclose($handle);
213
 
214
  $message = $this->__('The catalog feed was successfully generated. Click the &quot;Download catalog feed&quot; link to download.');
app/code/community/Turnto/Admin/controllers/AdminControllers/TurntoController.php.bkup DELETED
@@ -1,168 +0,0 @@
1
- <?php
2
-
3
- class Turnto_Admin_AdminControllers_TurntoController extends Mage_Adminhtml_Controller_Action
4
- {
5
- public function indexAction()
6
- {
7
- $this->loadLayout();
8
-
9
- $resource = Mage::getSingleton('core/resource');
10
- $readConnection = $resource->getConnection('core_read');
11
- $result = $readConnection->fetchAll('select website_id, name from core_website where website_id != 0');
12
- Mage::register('sites', $result);
13
-
14
- $this->_addLeft($this->getLayout()->createBlock('Turnto_Admin_Block_ShowTabsAdminBlock'));
15
-
16
- $this->renderLayout();
17
- }
18
-
19
- public function redirectAction()
20
- {
21
- $this->_redirectUrl('http://www.turnto.com');
22
- }
23
-
24
- public function postAction()
25
- {
26
- $post = $this->getRequest()->getPost();
27
- $catalogFeed = true;
28
-
29
- try {
30
- if (empty($post)) {
31
- Mage::throwException($this->__('Invalid form data.'));
32
- }
33
-
34
- $path = Mage::getBaseDir('media') . DS . 'turnto/';
35
- mkdir($path, 0755);
36
-
37
- if($post['feed_type'] == 'historical'){
38
- /* form processing */
39
- $startDate = $post['start_date'];
40
-
41
- if($startDate == null || $startDate == ""){
42
- Mage::getSingleton('adminhtml/session')->addError("Start Date is required");
43
- $this->_redirect('*/*/', array('active_tab' => 'turnto_hist_feed_tab'));
44
- return;
45
- }
46
-
47
- $scope = $post['scope'];
48
- if(!isset($scope)){
49
- $scope = 0;
50
- }
51
-
52
- $resource = Mage::getSingleton('core/resource');
53
- $readConnection = $resource->getConnection('core_read');
54
-
55
- $result = $readConnection->fetchAll(
56
- 'select sales_flat_order.entity_id as orderid, '
57
- .'sales_flat_order_item.created_at as orderdate, '
58
- .'customer_email as email, '
59
- .'ifnull(parent.name, sales_flat_order_item.name) as itemtitle, '
60
- .'concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), ifnull(parent.url_path, catalog_product_flat_1.url_path)) as itemurl, '
61
- .'item_id as itemlineid, '
62
- .'postcode as zip, '
63
- .'customer_firstname as firstname, '
64
- .'customer_lastname as lastname, '
65
- .'ifnull(parent.sku, sales_flat_order_item.sku) as sku, '
66
- .'grand_total as price, '
67
- .'concat((select concat(value,\'/media/catalog/product/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), ifnull(parent.small_image, catalog_product_flat_1.small_image)) as itemimageurl '
68
- .'from sales_flat_order,'
69
- .'sales_flat_order_item, '
70
- .'sales_flat_order_address, '
71
- .'catalog_product_flat_1 '
72
- .'left join catalog_product_super_link on catalog_product_flat_1.entity_id = catalog_product_super_link.product_id '
73
- .'left join catalog_product_flat_1 as parent on catalog_product_super_link.parent_id = parent.entity_id '
74
- .'where sales_flat_order.entity_id = sales_flat_order_item.order_id '
75
- .'and sales_flat_order.entity_id = sales_flat_order_address.entity_id '
76
- .'and sales_flat_order_item.product_id = catalog_product_flat_1.entity_id '
77
- .'and sales_flat_order_item.created_at > str_to_date(\''.$startDate.'\', \'%m/%d/%Y\')');
78
-
79
- $handle = fopen($path . 'histfeed.csv', 'w');
80
-
81
- fwrite($handle, "ORDERID\tORDERDATE\tEMAIL\tITEMTITLE\tITEMURL\tITEMLINEID\tZIP\tFIRSTNAME\tLASTNAME\tSKU\tPRICE\tITEMIMAGEURL");
82
- fwrite($handle, "\n");
83
-
84
- foreach($result as $row){
85
- foreach($row as $column){
86
- fwrite($handle, $column);
87
- fwrite($handle, "\t");
88
- }
89
-
90
- fwrite($handle, "\n");
91
- }
92
-
93
- fclose($handle);
94
-
95
- $message = $this->__('The historical feed was successfully generated. Click the &quot;Download historical feed&quot; link to download.');
96
- $catalogFeed = false;
97
- }
98
- else{
99
- /* form processing */
100
- $scope = $post['scope'];
101
- if(!isset($scope)){
102
- $scope = 0;
103
- }
104
-
105
- $resource = Mage::getSingleton('core/resource');
106
- $readConnection = $resource->getConnection('core_read');
107
-
108
- $result = $readConnection->fetchAll(
109
- '(select sku as SKU, '
110
- .' concat((select concat(value, \'media/catalog/product\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), small_image) as IMAGEURL, '
111
- .' name as TITLE, '
112
- .' price as PRICE, '
113
- .' \'\' as CURRENCY, '
114
- .' \'Y\' as ACTIVE, '
115
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
116
- .' (select ifnull(group_concat(category_id), \'\') from catalog_category_product where product_id = entity_id and category_id <> \'1\') as CATEGORY, '
117
- .' \'\' as KEYWORDS, '
118
- .' \'\' as REPLACEMENTSKU, '
119
- .' \'Y\' as INSTOCK, '
120
- .' \'\' as VIRTUALPARENTCODE, '
121
- .' \'\' as CATEGORYPATHJSON, '
122
- .' \'n\' as ISCATEGORY from catalog_product_flat_1 where not exists (select 1 from catalog_product_super_link where product_id = catalog_product_flat_1.entity_id)) '
123
- .'UNION ALL '
124
- .'(select entity_id as SKU, '
125
- .' \'\' as IMAGEURL, '
126
- .' name as TITLE, '
127
- .' \'\' as PRICE, '
128
- .' \'\' as CURRENCY, '
129
- .' \'Y\' as ACTIVE, '
130
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
131
- .' (select ifnull(parent_id, \'\') from catalog_category_entity where entity_id = ccfs.entity_id and parent_id <> \'1\') as CATEGORY, '
132
- .' \'\' as KEYWORDS, '
133
- .' \'\' as REPLACEMENTSKU, '.'\'Y\' as INSTOCK, '
134
- .' \'\' as VIRTUALPARENTCODE, '
135
- .' \'\' as CATEGORYPATHJSON, '
136
- .' \'y\' as ISCATEGORY '
137
- .'from catalog_category_flat_store_1 ccfs where entity_id <> \'1\')');
138
-
139
- $handle = fopen($path . 'catfeed.csv', 'w');
140
-
141
- fwrite($handle, "SKU\tIMAGEURL\tTITLE\tPRICE\tCURRENCY\tACTIVE\tITEMURL\tCATEGORY\tKEYWORDS\tREPLACEMENTSKU\tINSTOCK\tVIRTUALPARENTCODE\tCATEGORYPATHJSON\tISCATEGORY");
142
- fwrite($handle, "\n");
143
-
144
- foreach($result as $row){
145
- foreach($row as $column){
146
- fwrite($handle, $column);
147
- fwrite($handle, "\t");
148
- }
149
-
150
- fwrite($handle, "\n");
151
- }
152
-
153
- fclose($handle);
154
-
155
- $message = $this->__('The catalog feed was successfully generated. Click the &quot;Download catalog feed&quot; link to download.');
156
- }
157
- Mage::getSingleton('adminhtml/session')->addSuccess($message);
158
- } catch (Exception $e) {
159
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
160
- }
161
-
162
- if($catalogFeed){
163
- $this->_redirect('*/*/', array('active_tab' => 'turnto_catalog_feed_tab'));
164
- }else{
165
- $this->_redirectUrl(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'media/turnto/histfeed.csv');
166
- }
167
- }
168
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Turnto/Admin/controllers/IndexController.php CHANGED
@@ -7,52 +7,113 @@ class Turnto_Admin_IndexController extends Mage_Core_Controller_Front_Action{
7
 
8
  $params = $this->getRequest()->getParams();
9
  $scope = $params['scope'];
10
- if(!isset($scope)){
11
- $scope = 0;
12
- }
 
 
 
13
 
14
- $result = $readConnection->fetchAll(
15
- '(select sku as SKU, '
16
- .' concat((select concat(value, \'media/catalog/product\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), small_image) as IMAGEURL, '
17
- .' name as TITLE, '
18
- .' price as PRICE, '
19
- .' \'\' as CURRENCY, '
20
- .' \'Y\' as ACTIVE, '
21
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
22
- .' (select ifnull(group_concat(category_id), \'\') from catalog_category_product where product_id = entity_id and category_id <> \'1\') as CATEGORY, '
23
- .' \'\' as KEYWORDS, '
24
- .' \'\' as REPLACEMENTSKU, '
25
- .' \'Y\' as INSTOCK, '
26
- .' \'\' as VIRTUALPARENTCODE, '
27
- .' \'\' as CATEGORYPATHJSON, '
28
- .' \'n\' as ISCATEGORY from catalog_product_flat_1) '
29
- .'UNION ALL '
30
- .'(select entity_id as SKU, '
31
- .' \'\' as IMAGEURL, '
32
- .' name as TITLE, '
33
- .' \'\' as PRICE, '
34
- .' \'\' as CURRENCY, '
35
- .' \'Y\' as ACTIVE, '
36
- .' concat((select concat(value, \'index.php/\') from core_config_data where path = \'web/unsecure/base_url\' and scope_id = \''.$scope.'\'), url_path) as ITEMURL, '
37
- .' (select ifnull(parent_id, \'\') from catalog_category_entity where entity_id = ccfs.entity_id and parent_id <> \'1\') as CATEGORY, '
38
- .' \'\' as KEYWORDS, '
39
- .' \'\' as REPLACEMENTSKU, '.'\'Y\' as INSTOCK, '
40
- .' \'\' as VIRTUALPARENTCODE, '
41
- .' \'\' as CATEGORYPATHJSON, '
42
- .' \'y\' as ISCATEGORY '
43
- .'from catalog_category_flat_store_1 ccfs where entity_id <> \'1\')');
44
-
45
  echo "SKU\tIMAGEURL\tTITLE\tPRICE\tCURRENCY\tACTIVE\tITEMURL\tCATEGORY\tKEYWORDS\tREPLACEMENTSKU\tINSTOCK\tVIRTUALPARENTCODE\tCATEGORYPATHJSON\tISCATEGORY";
46
  echo "\n";
47
-
48
- foreach($result as $row){
49
- foreach($row as $column){
50
- echo str_replace("\t", "\\t", $column);
 
 
 
 
 
 
 
 
51
  echo "\t";
52
- }
53
-
54
- echo "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  }
57
  }
58
 
7
 
8
  $params = $this->getRequest()->getParams();
9
  $scope = $params['scope'];
10
+ $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
11
+ $baseMediaUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
12
+ if(isset($scope)){
13
+ $baseUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
14
+ $baseMediaUrl = Mage::app()->getStore($scope)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product';
15
+ }
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  echo "SKU\tIMAGEURL\tTITLE\tPRICE\tCURRENCY\tACTIVE\tITEMURL\tCATEGORY\tKEYWORDS\tREPLACEMENTSKU\tINSTOCK\tVIRTUALPARENTCODE\tCATEGORYPATHJSON\tISCATEGORY";
18
  echo "\n";
19
+
20
+ $products = Mage::getModel('catalog/product')->setStoreId($scope)->getCollection()->addAttributeToSelect('name')->addAttributeToSelect('*')->addAttributeToSelect('price')->addAttributeToSelect('image');
21
+ if ($products) {
22
+ foreach ($products as $product) {
23
+ $parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
24
+ if(isset($parents[0]))
25
+ {
26
+ // skip products with a parent
27
+ continue;
28
+ }
29
+ $product->setStoreId($scope);
30
+ echo $product->getSku();
31
  echo "\t";
32
+ //echo Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getImage() );
33
+ if($product->getImage() != null && $product->getImage() != "no_selection") {
34
+ echo Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getImage() );
35
+ } else if ($product->getSmallImage() != null && $product->getSmallImage() != "no_selection") {
36
+ echo Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getSmallImage() );
37
+ } else if ($product->getThumbnail() != null && $product->getThumbnail() != "no_selection") {
38
+ echo Mage::getModel('catalog/product_media_config')->getMediaUrl( $product->getThumbnail() );
39
+ }
40
+ echo "\t";
41
+ echo $product->getName();
42
+ echo "\t";
43
+ echo $product->getPrice();
44
+ echo "\t";
45
+ //CURRENCY
46
+ echo "\t";
47
+ //ACTIVE
48
+ echo 'Y';
49
+ echo "\t";
50
+ //ITEMURL
51
+ echo $product->getProductUrl();
52
+ echo "\t";
53
+ //CATEGORY
54
+ $ids = $product->getCategoryIds();
55
+ echo (isset($ids[0]) ? $ids[0] : '');
56
+ echo "\t";
57
+ // KEYWORDS
58
+ echo "\t";
59
+ // REPLACEMENTSKU
60
+ echo "\t";
61
+ //VIRTUALPARENTCODE
62
+ echo "\t";
63
+ //CATEGORYPATHJSON
64
+ echo "\t";
65
+ //ISCATEGORY
66
+ echo "n";
67
+ echo "\n";
68
+ }
69
  }
70
+
71
+ $categories = Mage::getModel('catalog/category')->setStoreId($scope)->getCollection()->addAttributeToSelect('*');
72
+ if ($categories) {
73
+ foreach ($categories as $category) {
74
+ if ($category->getId() == 1) {
75
+ continue;
76
+ }
77
+ $category->setStoreId($scope);
78
+ echo $category->getId();
79
+ echo "\t";
80
+ //IMAGEURL
81
+ echo "\t";
82
+ //TITLE
83
+ echo $category->getName();
84
+ echo "\t";
85
+ //PRICE
86
+ echo "\t";
87
+ //CURRENCY
88
+ echo "\t";
89
+ //ACTIVE
90
+ echo "Y";
91
+ echo "\t";
92
+ //ITEMURL
93
+ echo $category->getUrl();
94
+ echo "\t";
95
+ //CATEGORY
96
+ echo $category->getParentCategory()->getId();
97
+ echo "\t";
98
+ //KEYWORDS
99
+ echo "\t";
100
+ //REPLACEMENTSKU
101
+ echo "\t";
102
+ //VIRTUALPARENTCODE
103
+ echo "\t";
104
+ //CATEGORYPATHJSON
105
+ echo "\t";
106
+ //ISCATEGORY
107
+ echo "Y";
108
+ echo "\n";
109
+
110
+ }
111
+ }
112
+
113
+
114
+ return;
115
+
116
+
117
  }
118
  }
119
 
app/code/community/Turnto/Login/Block/Reg.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Turnto_Login_Block_Reg extends Mage_Core_Block_Template
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ //$this->setTemplate('customer/form/login.phtml');
10
+ }
11
+ }
app/code/community/Turnto/Login/controllers/IndexController.php CHANGED
@@ -7,6 +7,20 @@ class Turnto_Login_IndexController extends Mage_Core_Controller_Front_Action {
7
  $this->renderLayout();
8
  }
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  /**
12
  * Retrieve customer session model object
@@ -24,13 +38,14 @@ class Turnto_Login_IndexController extends Mage_Core_Controller_Front_Action {
24
  */
25
  public function loginAction()
26
  {
27
- $result["error"]=0;
28
 
29
- $this->getResponse()->setHeader('Content-Type', 'application/json');
30
 
31
  if ($this->_getSession()->isLoggedIn()) {
32
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
33
- return;
 
34
  }
35
  $session = $this->_getSession();
36
 
@@ -42,19 +57,21 @@ class Turnto_Login_IndexController extends Mage_Core_Controller_Front_Action {
42
  if ($session->getCustomer()->getIsJustConfirmed()) {
43
  $this->_welcomeCustomer($session->getCustomer(), true);
44
  }
 
 
45
  } catch (Mage_Core_Exception $e) {
46
  switch ($e->getCode()) {
47
  case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
48
- $result["error"] = 1;
49
  $value = Mage::helper('customer')->getEmailConfirmationUrl($login['username']);
50
  $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
51
  break;
52
  case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
53
- $result["error"] = 1;
54
  $message = $e->getMessage();
55
  break;
56
  default:
57
- $result["error"] = 1;
58
  $message = $e->getMessage();
59
  }
60
  $session->addError($message);
@@ -63,13 +80,14 @@ class Turnto_Login_IndexController extends Mage_Core_Controller_Front_Action {
63
  // Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
64
  }
65
  } else {
66
- $result["error"] = 1;
67
  $session->addError($this->__('Login and password are required.'));
68
  }
69
  }
70
 
71
  //$this->_loginPostRedirect();
72
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
 
73
  }
74
 
75
  public function getUserStatusAction()
@@ -100,6 +118,126 @@ class Turnto_Login_IndexController extends Mage_Core_Controller_Front_Action {
100
  {
101
  $this->_getSession()->logout()->setBeforeAuthUrl(Mage::getUrl());
102
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  }
104
 
105
 
7
  $this->renderLayout();
8
  }
9
 
10
+ public function regAction()
11
+ {
12
+ $this->loadLayout();
13
+
14
+ $this->renderLayout();
15
+ }
16
+
17
+
18
+ public function successAction()
19
+ {
20
+ echo '<html><head></head><body><script type="text/javascript">parent.TurnTo.localAuthenticationComplete();</script><h3>Loading...</h3></body></html>';
21
+ }
22
+
23
+
24
 
25
  /**
26
  * Retrieve customer session model object
38
  */
39
  public function loginAction()
40
  {
41
+ //$result["error"]=0;
42
 
43
+ //$this->getResponse()->setHeader('Content-Type', 'application/json');
44
 
45
  if ($this->_getSession()->isLoggedIn()) {
46
+ //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
47
+ $this->_redirectSuccess(Mage::getUrl('*/*/success', array('_secure'=>false)));
48
+ return;
49
  }
50
  $session = $this->_getSession();
51
 
57
  if ($session->getCustomer()->getIsJustConfirmed()) {
58
  $this->_welcomeCustomer($session->getCustomer(), true);
59
  }
60
+ $this->_redirectSuccess(Mage::getUrl('*/*/success', array('_secure'=>false)));
61
+ return;
62
  } catch (Mage_Core_Exception $e) {
63
  switch ($e->getCode()) {
64
  case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
65
+ //$result["error"] = 1;
66
  $value = Mage::helper('customer')->getEmailConfirmationUrl($login['username']);
67
  $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
68
  break;
69
  case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
70
+ //$result["error"] = 1;
71
  $message = $e->getMessage();
72
  break;
73
  default:
74
+ //$result["error"] = 1;
75
  $message = $e->getMessage();
76
  }
77
  $session->addError($message);
80
  // Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
81
  }
82
  } else {
83
+ //$result["error"] = 1;
84
  $session->addError($this->__('Login and password are required.'));
85
  }
86
  }
87
 
88
  //$this->_loginPostRedirect();
89
+ //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
90
+ $this->_redirectError(Mage::getUrl('*/*/index', array('_secure' => true)));
91
  }
92
 
93
  public function getUserStatusAction()
118
  {
119
  $this->_getSession()->logout()->setBeforeAuthUrl(Mage::getUrl());
120
  }
121
+
122
+ public function registerAction()
123
+ {
124
+ $session = $this->_getSession();
125
+ if ($session->isLoggedIn()) {
126
+ $this->_redirect('*/*/');
127
+ return;
128
+ }
129
+ $session->setEscapeMessages(true); // prevent XSS injection in user input
130
+ if ($this->getRequest()->isPost()) {
131
+ $errors = array();
132
+
133
+ if (!$customer = Mage::registry('current_customer')) {
134
+ $customer = Mage::getModel('customer/customer')->setId(null);
135
+ }
136
+
137
+ /* @var $customerForm Mage_Customer_Model_Form */
138
+ $customerForm = Mage::getModel('customer/form');
139
+ $customerForm->setFormCode('customer_account_create')
140
+ ->setEntity($customer);
141
+
142
+ $customerData = $customerForm->extractData($this->getRequest());
143
+
144
+ if ($this->getRequest()->getParam('is_subscribed', false)) {
145
+ $customer->setIsSubscribed(1);
146
+ }
147
+
148
+ /**
149
+ * Initialize customer group id
150
+ */
151
+ $customer->getGroupId();
152
+
153
+ if ($this->getRequest()->getPost('create_address')) {
154
+ /* @var $address Mage_Customer_Model_Address */
155
+ $address = Mage::getModel('customer/address');
156
+ /* @var $addressForm Mage_Customer_Model_Form */
157
+ $addressForm = Mage::getModel('customer/form');
158
+ $addressForm->setFormCode('customer_register_address')
159
+ ->setEntity($address);
160
+
161
+ $addressData = $addressForm->extractData($this->getRequest(), 'address', false);
162
+ $addressErrors = $addressForm->validateData($addressData);
163
+ if ($addressErrors === true) {
164
+ $address->setId(null)
165
+ ->setIsDefaultBilling($this->getRequest()->getParam('default_billing', false))
166
+ ->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false));
167
+ $addressForm->compactData($addressData);
168
+ $customer->addAddress($address);
169
+
170
+ $addressErrors = $address->validate();
171
+ if (is_array($addressErrors)) {
172
+ $errors = array_merge($errors, $addressErrors);
173
+ }
174
+ } else {
175
+ $errors = array_merge($errors, $addressErrors);
176
+ }
177
+ }
178
+
179
+ try {
180
+ $customerErrors = $customerForm->validateData($customerData);
181
+ if ($customerErrors !== true) {
182
+ $errors = array_merge($customerErrors, $errors);
183
+ } else {
184
+ $customerForm->compactData($customerData);
185
+ $customer->setPassword($this->getRequest()->getPost('password'));
186
+ $customer->setConfirmation($this->getRequest()->getPost('confirmation'));
187
+ $customerErrors = $customer->validate();
188
+ if (is_array($customerErrors)) {
189
+ $errors = array_merge($customerErrors, $errors);
190
+ }
191
+ }
192
+
193
+ $validationResult = count($errors) == 0;
194
+
195
+ if (true === $validationResult) {
196
+ $customer->save();
197
+
198
+ if ($customer->isConfirmationRequired()) {
199
+ $customer->sendNewAccountEmail('confirmation', $session->getBeforeAuthUrl());
200
+ $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.', Mage::helper('customer')->getEmailConfirmationUrl($customer->getEmail())));
201
+ $this->_redirectSuccess(Mage::getUrl('*/*/success', array('_secure'=>false)));
202
+ //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
203
+ return;
204
+ } else {
205
+ $session->setCustomerAsLoggedIn($customer);
206
+ //$url = $this->_welcomeCustomer($customer);
207
+ //$this->_redirectSuccess($url);
208
+ $this->_redirectSuccess(Mage::getUrl('*/*/success', array('_secure'=>false)));
209
+ //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
210
+ return;
211
+ }
212
+ } else {
213
+ $session->setCustomerFormData($this->getRequest()->getPost());
214
+ if (is_array($errors)) {
215
+ foreach ($errors as $errorMessage) {
216
+ $session->addError($errorMessage);
217
+ }
218
+ } else {
219
+ $session->addError($this->__('Invalid customer data'));
220
+ }
221
+ }
222
+ } catch (Mage_Core_Exception $e) {
223
+ $session->setCustomerFormData($this->getRequest()->getPost());
224
+ if ($e->getCode() === Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) {
225
+ $url = Mage::getUrl('customer/account/forgotpassword');
226
+ $message = $this->__('There is already an account with this email address. If you are sure that it is your email address, <a href="%s">click here</a> to get your password and access your account.', $url);
227
+ $session->setEscapeMessages(false);
228
+ } else {
229
+ $message = $e->getMessage();
230
+ }
231
+ $session->addError($message);
232
+ } catch (Exception $e) {
233
+ $session->setCustomerFormData($this->getRequest()->getPost())
234
+ ->addException($e, $this->__('Cannot save the customer.'));
235
+ }
236
+ }
237
+
238
+ //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
239
+ $this->_redirectError(Mage::getUrl('*/*/reg', array('_secure' => true)));
240
+ }
241
  }
242
 
243
 
app/design/adminhtml/default/default/template/turnto/catalog_feed_tab.phtml CHANGED
@@ -39,7 +39,7 @@ To manually create a catalog feed press Generate to build a catalog feed. This f
39
  <?php
40
  $sites = Mage::registry('sites');
41
  foreach($sites as $site) {
42
- echo '<option value="'.$site['scope_id'].'">'.$site['scope_id'].': '.$site['value'].'</option>';
43
  }
44
  ?>
45
  </td>
39
  <?php
40
  $sites = Mage::registry('sites');
41
  foreach($sites as $site) {
42
+ echo '<option value="'.$site->getId().'">'.$site->getId().': '.$site->getName().'</option>';
43
  }
44
  ?>
45
  </td>
app/design/adminhtml/default/default/template/turnto/historical_feed_tab.phtml CHANGED
@@ -14,7 +14,7 @@
14
  <?php
15
  $sites = Mage::registry('sites');
16
  foreach($sites as $site) {
17
- echo '<option value="'.$site['scope_id'].'">'.$site['scope_id'].': '.$site['value'].'</option>';
18
  }
19
  ?>
20
  </td>
14
  <?php
15
  $sites = Mage::registry('sites');
16
  foreach($sites as $site) {
17
+ echo '<option value="'.$site->getId().'">'.$site->getId().': '.$site->getName().'</option>';
18
  }
19
  ?>
20
  </td>
app/design/frontend/default/default/layout/turnto_login.xml CHANGED
@@ -38,4 +38,43 @@
38
  <action method="addItem"><type>skin_js</type><name>js/ie6.js</name><params/><if>lt IE 7</if></action>
39
  </block>
40
  </turnto_login_index_index>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  </layout>
38
  <action method="addItem"><type>skin_js</type><name>js/ie6.js</name><params/><if>lt IE 7</if></action>
39
  </block>
40
  </turnto_login_index_index>
41
+
42
+
43
+ <turnto_login_index_reg>
44
+ <reference name="root">
45
+ <action method="setTemplate">
46
+ <template>turnto/login/reg.phtml</template>
47
+ <!--<template>customer/form/login.phtml</template>-->
48
+ </action>
49
+ </reference>
50
+ <reference name="content">
51
+ <block type="customer/form_register" name="customer_form_register" template="turnto/login/reg_form.phtml"/>
52
+ </reference>
53
+ <block type="page/html_head" name="head" as="head">
54
+ <action method="addJs"><script>prototype/prototype.js</script></action>
55
+ <action method="addJs" ifconfig="dev/js/deprecation"><script>prototype/deprecation.js</script></action>
56
+ <action method="addJs"><script>lib/ccard.js</script></action>
57
+ <action method="addJs"><script>prototype/validation.js</script></action>
58
+ <action method="addJs"><script>scriptaculous/builder.js</script></action>
59
+ <action method="addJs"><script>scriptaculous/effects.js</script></action>
60
+ <action method="addJs"><script>scriptaculous/dragdrop.js</script></action>
61
+ <action method="addJs"><script>scriptaculous/controls.js</script></action>
62
+ <action method="addJs"><script>scriptaculous/slider.js</script></action>
63
+ <action method="addJs"><script>varien/js.js</script></action>
64
+ <action method="addJs"><script>varien/form.js</script></action>
65
+ <action method="addJs"><script>varien/menu.js</script></action>
66
+ <action method="addJs"><script>mage/translate.js</script></action>
67
+ <action method="addJs"><script>mage/cookies.js</script></action>
68
+
69
+ <block type="page/js_cookie" name="js_cookies" template="page/js/cookie.phtml"/>
70
+
71
+ <action method="addCss"><stylesheet>css/styles.css</stylesheet></action>
72
+ <action method="addItem"><type>skin_css</type><name>css/styles-ie.css</name><params/><if>lt IE 8</if></action>
73
+ <action method="addCss"><stylesheet>css/widgets.css</stylesheet></action>
74
+ <action method="addCss"><stylesheet>css/print.css</stylesheet><params>media="print"</params></action>
75
+
76
+ <action method="addItem"><type>js</type><name>lib/ds-sleight.js</name><params/><if>lt IE 7</if></action>
77
+ <action method="addItem"><type>skin_js</type><name>js/ie6.js</name><params/><if>lt IE 7</if></action>
78
+ </block>
79
+ </turnto_login_index_reg>
80
  </layout>
app/design/frontend/default/default/template/turnto/login/login_form.phtml CHANGED
@@ -35,15 +35,18 @@
35
  <div class="page-title">
36
  <h1><?php echo $this->__('Login') ?></h1>
37
  </div>
38
- <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
39
- <form method="post" id="login-form">
40
- <div class="col1-set">
41
- <!--<div class="col-1 new-users">
 
 
 
42
  <div class="content">
43
  <h2><?php echo $this->__('New Customers') ?></h2>
44
  <p><?php echo $this->__('By creating an account with our store, you will be able to move through the checkout process faster, store multiple shipping addresses, view and track your orders in your account and more.') ?></p>
45
  </div>
46
- </div>-->
47
  <div class="col-2 registered-users">
48
  <div class="content">
49
  <h2><?php echo $this->__('Registered Customers') ?></h2>
@@ -66,47 +69,48 @@
66
  </div>
67
  </div>
68
  </div>
69
- <div class="col1-set">
70
- <!--<div class="col-1 new-users">
71
  <div class="buttons-set">
72
- <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo $this->getCreateAccountUrl() ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button>
 
73
  </div>
74
- </div>-->
75
  <div class="col-2 registered-users">
76
  <div class="buttons-set">
77
  <a href="<?php echo $this->getForgotPasswordUrl() ?>" target="_parent" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a>
78
- <button type="button" class="button" onclick="handlerFunction();return false;" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button>
79
  </div>
80
  </div>
81
  </div>
82
  </form>
83
  <script type="text/javascript">
84
  //<![CDATA[
85
- function handlerFunction(){
86
 
87
  // Making Ajax Request
88
- var request = new Ajax.Request(
89
- '<?php echo $this->getUrl("*/*/login") ?>',
90
- {
91
- method: 'post',
92
- onComplete: function(transport){ // Defining Complete Callback Function
93
 
94
  // Getting Ajax Response Text Which is JSON Object
95
- var jsonResponse=JSON.parse(transport.responseText);
96
  //Checking JSON Objects property and performing related action
97
  // You will understand the response Text format after going through the controller description (Below)
98
- if(jsonResponse.error){
99
- alert("Error Occured");
100
- return false;
101
- }
102
- else{
103
- parent.TurnTo.localAuthenticationComplete();
104
- }
105
- },
106
- parameters: Form.serialize($("login-form")) // Seriallizing the form input values
107
- }
108
- );
109
- }
110
  //]]>
111
  </script>
112
  </div>
35
  <div class="page-title">
36
  <h1><?php echo $this->__('Login') ?></h1>
37
  </div>
38
+ <?php
39
+ $this->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('customer/session')->getMessages(true));
40
+ echo $this->getMessagesBlock()->getGroupedHtml();
41
+ ?>
42
+ <form method="post" id="login-form" action="<?php echo $this->getUrl("*/*/login") ?>">
43
+ <div class="col2-set">
44
+ <div class="col-1 new-users">
45
  <div class="content">
46
  <h2><?php echo $this->__('New Customers') ?></h2>
47
  <p><?php echo $this->__('By creating an account with our store, you will be able to move through the checkout process faster, store multiple shipping addresses, view and track your orders in your account and more.') ?></p>
48
  </div>
49
+ </div>
50
  <div class="col-2 registered-users">
51
  <div class="content">
52
  <h2><?php echo $this->__('Registered Customers') ?></h2>
69
  </div>
70
  </div>
71
  </div>
72
+ <div class="col2-set">
73
+ <div class="col-1 new-users">
74
  <div class="buttons-set">
75
+ <!--<button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo $this->getCreateAccountUrl() ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button>-->
76
+ <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo $this->getUrl('*/*/reg') ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button>
77
  </div>
78
+ </div>
79
  <div class="col-2 registered-users">
80
  <div class="buttons-set">
81
  <a href="<?php echo $this->getForgotPasswordUrl() ?>" target="_parent" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a>
82
+ <button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button>
83
  </div>
84
  </div>
85
  </div>
86
  </form>
87
  <script type="text/javascript">
88
  //<![CDATA[
89
+ //function handlerFunction(){
90
 
91
  // Making Ajax Request
92
+ //var request = new Ajax.Request(
93
+ // '<?php echo $this->getUrl("*/*/login") ?>',
94
+ // {
95
+ // method: 'post',
96
+ // onComplete: function(transport){ // Defining Complete Callback Function
97
 
98
  // Getting Ajax Response Text Which is JSON Object
99
+ // var jsonResponse=JSON.parse(transport.responseText);
100
  //Checking JSON Objects property and performing related action
101
  // You will understand the response Text format after going through the controller description (Below)
102
+ // if(jsonResponse.error){
103
+ // alert("Error Occured");
104
+ // return false;
105
+ // }
106
+ // else{
107
+ // parent.TurnTo.localAuthenticationComplete();
108
+ // }
109
+ // },
110
+ // parameters: Form.serialize($("login-form")) // Seriallizing the form input values
111
+ // }
112
+ // );
113
+ // }
114
  //]]>
115
  </script>
116
  </div>
app/design/frontend/default/default/template/turnto/login/reg.phtml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <html>
2
+ <head>
3
+ <?php echo $this->getChildHtml('head') ?>
4
+ </head>
5
+ <body>
6
+ <?php echo $this->getChildHtml('content') ?>
7
+ </body>
8
+ </html>
app/design/frontend/default/default/template/turnto/login/reg_form.phtml ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
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 design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Create account form template
30
+ *
31
+ * @see Mage_Customer_Block_Form_Register
32
+ */
33
+ ?>
34
+ <div class="account-create">
35
+ <div class="page-title">
36
+ <h1><?php echo $this->__('Create an Account') ?></h1>
37
+ </div>
38
+ <?php echo $this->getChildHtml('form_fields_before')?>
39
+ <?php
40
+ $this->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('customer/session')->getMessages(true));
41
+ echo $this->getMessagesBlock()->getGroupedHtml();
42
+ ?>
43
+ <form action="<?php echo $this->getUrl("*/*/register") ?>" method="post" id="form-validate">
44
+ <div class="fieldset">
45
+ <input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
46
+ <input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
47
+ <h2 class="legend"><?php echo $this->__('Personal Information') ?></h2>
48
+ <ul class="form-list">
49
+ <li class="fields">
50
+ <?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getFormData())->toHtml() ?>
51
+ </li>
52
+ <li>
53
+ <label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
54
+ <div class="input-box">
55
+ <input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
56
+ </div>
57
+ </li>
58
+ <?php if ($this->isNewsletterEnabled()): ?>
59
+ <li class="control">
60
+ <div class="input-box">
61
+ <input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
62
+ </div>
63
+ <label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
64
+ </li>
65
+ <?php endif ?>
66
+ <?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
67
+ <?php if ($_dob->isEnabled()): ?>
68
+ <li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li>
69
+ <?php endif ?>
70
+ <?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
71
+ <?php if ($_taxvat->isEnabled()): ?>
72
+ <li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li>
73
+ <?php endif ?>
74
+ <?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
75
+ <?php if ($_gender->isEnabled()): ?>
76
+ <li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
77
+ <?php endif ?>
78
+ </ul>
79
+ </div>
80
+ <?php if($this->getShowAddressFields()): ?>
81
+ <div class="fieldset">
82
+ <input type="hidden" name="create_address" value="1" />
83
+ <h2 class="legend"><?php echo $this->__('Address Information') ?></h2>
84
+ <ul class="form-list">
85
+ <li class="fields">
86
+ <div class="field">
87
+ <label for="company"><?php echo $this->__('Company') ?></label>
88
+ <div class="input-box">
89
+ <input type="text" name="company" id="company" value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
90
+ </div>
91
+ </div>
92
+ <div class="field">
93
+ <label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
94
+ <div class="input-box">
95
+ <input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" />
96
+ </div>
97
+ </div>
98
+ </li>
99
+ <li class="wide">
100
+ <label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
101
+ <div class="input-box">
102
+ <input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
103
+ </div>
104
+ </li>
105
+ <?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
106
+ <li class="wide">
107
+ <div class="input-box">
108
+ <input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
109
+ </div>
110
+ </li>
111
+ <?php endfor ?>
112
+ <li class="fields">
113
+ <div class="field">
114
+ <label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
115
+ <div class="input-box">
116
+ <input type="text" name="city" value="<?php echo $this->htmlEscape($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
117
+ </div>
118
+ </div>
119
+ <div class="field">
120
+ <label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
121
+ <div class="input-box">
122
+ <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
123
+ <option value=""><?php echo $this->__('Please select region, state or province') ?></option>
124
+ </select>
125
+ <script type="text/javascript">
126
+ //<![CDATA[
127
+ $('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>");
128
+ //]]>
129
+ </script>
130
+ <input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
131
+ </div>
132
+ </div>
133
+ </li>
134
+ <li class="fields">
135
+ <div class="field">
136
+ <label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
137
+ <div class="input-box">
138
+ <input type="text" name="postcode" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
139
+ </div>
140
+ </div>
141
+ <div class="field">
142
+ <label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
143
+ <div class="input-box">
144
+ <?php echo $this->getCountryHtmlSelect() ?>
145
+ </div>
146
+ </div>
147
+ </li>
148
+ </ul>
149
+ <input type="hidden" name="default_billing" value="1" />
150
+ <input type="hidden" name="default_shipping" value="1" />
151
+ </div>
152
+ <?php endif; ?>
153
+ <div class="fieldset">
154
+ <h2 class="legend"><?php echo $this->__('Login Information') ?></h2>
155
+ <ul class="form-list">
156
+ <li class="fields">
157
+ <div class="field">
158
+ <label for="password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
159
+ <div class="input-box">
160
+ <input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
161
+ </div>
162
+ </div>
163
+ <div class="field">
164
+ <label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
165
+ <div class="input-box">
166
+ <input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" />
167
+ </div>
168
+ </div>
169
+ </li>
170
+ </ul>
171
+ </div>
172
+ <div class="buttons-set">
173
+ <p class="required"><?php echo $this->__('* Required Fields') ?></p>
174
+ <!--<p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>" class="back-link"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>-->
175
+ <button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
176
+ </div>
177
+ </form>
178
+ <script type="text/javascript">
179
+ //<![CDATA[
180
+ var dataForm = new VarienForm('form-validate', true);
181
+ <?php if($this->getShowAddressFields()): ?>
182
+ new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
183
+ <?php endif; ?>
184
+ //]]>
185
+ </script>
186
+ </div>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>socialcommerce_suite_by_turnto</name>
4
- <version>2.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.turntonetworks.com/terms-of-use">TurnTo Networks</license>
7
  <channel>community</channel>
@@ -9,11 +9,12 @@
9
  <summary>Connect your shoppers to your customers</summary>
10
  <description>The TurnTo Social Commerce Suite helps you put the good will you have earned from your customers to work by opening direct communications between your shoppers and your past customers.</description>
11
  <notes>TurnTo Admin Extension&#xD;
12
- 2.0 Adds support for Single Sign On</notes>
 
13
  <authors><author><name>TurnTo Networks</name><user>TurnTo</user><email>contact@turnto.com</email></author></authors>
14
- <date>2012-10-02</date>
15
- <time>19:26:27</time>
16
- <contents><target name="magecommunity"><dir name="Turnto"><dir name="Admin"><dir name="Block"><file name="CatalogFeed.php" hash="f974cfdc687bf5edb3fdccb879547200"/><file name="HistoricalFeed.php" hash="a4d2b29c6d8bb2ed59aa884e02abc23b"/><file name="Overview.php" hash="51c8ed09153f1dc3b3d02aa0ab83f195"/><file name="ShowTabsAdminBlock.php" hash="d904239a91cc367e93c138eff3e2b074"/></dir><dir name="Helper"><file name="Data.php" hash="78a1e318ccf05caac4ca7a8c2bd74e43"/></dir><dir name="controllers"><dir name="AdminControllers"><file name="TurntoController.php" hash="e31176d9c91ab73421524f3943bd976c"/><file name="TurntoController.php.bkup" hash="3ca533bdc29d903c7dbcac92f04c9b8a"/></dir><file name="IndexController.php" hash="8bb1663b15a84d13afac885767ecfd85"/></dir><dir name="etc"><file name="config.xml" hash="27ba1dd7b8e34b0587ac647142aee2c7"/></dir></dir><dir name="Login"><dir name="Block"><file name="Login.php" hash="a51bc0ee76d20a9f4cb32bb21420ecd9"/></dir><dir name="Helper"><file name="Data.php" hash="e87f15957335101d5ae643befcc06817"/></dir><dir name="controllers"><file name="IndexController.php" hash="d7b7fbacd9e3d8b38e3f6b735ea91164"/></dir><dir name="etc"><file name="config.xml" hash="f165478215331e4eea171856de2b65fe"/></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Turnto_Admin.xml" hash="0932b63ab068e1e8b12ff7b997ae83ee"/><file name="Turnto_Login.xml" hash="734c463c75970bd14ac7d7a90fa2de11"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="turnto"><file name="catalog_feed_tab.phtml" hash="3e639b29b83f8bba4b88f8b48e6764b3"/><file name="historical_feed_tab.phtml" hash="fa852afe272fddc39e14f59e3dafe014"/><file name="overview.phtml" hash="4cc20b32c3b0cd36cd349f0be44e4615"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="turnto"><dir name="login"><file name="login.phtml" hash="7ec602a8ca09180f324229a77ea3e2db"/><file name="login_form.phtml" hash="dab0c01566d020d031fd7eab94f783a1"/></dir></dir></dir><dir name="layout"><file name="turnto_login.xml" hash="bdb3f58d316e9fb6d9bb196e509af06c"/></dir></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>socialcommerce_suite_by_turnto</name>
4
+ <version>2.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.turntonetworks.com/terms-of-use">TurnTo Networks</license>
7
  <channel>community</channel>
9
  <summary>Connect your shoppers to your customers</summary>
10
  <description>The TurnTo Social Commerce Suite helps you put the good will you have earned from your customers to work by opening direct communications between your shoppers and your past customers.</description>
11
  <notes>TurnTo Admin Extension&#xD;
12
+ 2.0 Adds support for Single Sign On&#xD;
13
+ 2.1 Re-wrote catalog feed generator</notes>
14
  <authors><author><name>TurnTo Networks</name><user>TurnTo</user><email>contact@turnto.com</email></author></authors>
15
+ <date>2014-08-11</date>
16
+ <time>19:38:24</time>
17
+ <contents><target name="magecommunity"><dir name="Turnto"><dir name="Admin"><dir name="Block"><file name="CatalogFeed.php" hash="f974cfdc687bf5edb3fdccb879547200"/><file name="HistoricalFeed.php" hash="a4d2b29c6d8bb2ed59aa884e02abc23b"/><file name="Overview.php" hash="51c8ed09153f1dc3b3d02aa0ab83f195"/><file name="ShowTabsAdminBlock.php" hash="d904239a91cc367e93c138eff3e2b074"/></dir><dir name="Helper"><file name="Data.php" hash="78a1e318ccf05caac4ca7a8c2bd74e43"/></dir><dir name="controllers"><dir name="AdminControllers"><file name="TurntoController.php" hash="72374095498b8f1d8d6aaee8e9abb7ce"/></dir><file name="IndexController.php" hash="38e7ea32a280d77f89d38f6e7f767138"/><file name=".IndexController.php.swp" hash="5c6828d792a9488bd97ec92017881459"/></dir><dir name="etc"><file name="config.xml" hash="27ba1dd7b8e34b0587ac647142aee2c7"/></dir></dir><dir name="Login"><dir name="Block"><file name="Login.php" hash="a51bc0ee76d20a9f4cb32bb21420ecd9"/><file name="Reg.php" hash="4eece8d78391b6578b0ba5e2c764dba5"/></dir><dir name="Helper"><file name="Data.php" hash="e87f15957335101d5ae643befcc06817"/></dir><dir name="controllers"><file name="IndexController.php" hash="087867555ca6d8174fb1301f3b558720"/></dir><dir name="etc"><file name="config.xml" hash="f165478215331e4eea171856de2b65fe"/></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Turnto_Admin.xml" hash="0932b63ab068e1e8b12ff7b997ae83ee"/><file name="Turnto_Login.xml" hash="734c463c75970bd14ac7d7a90fa2de11"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="turnto"><file name="catalog_feed_tab.phtml" hash="65f52f02bf6afa8c414faf95eeb1b826"/><file name="historical_feed_tab.phtml" hash="510bee39f490fe289e28e796ba0d43f2"/><file name="overview.phtml" hash="4cc20b32c3b0cd36cd349f0be44e4615"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="turnto"><dir name="login"><file name="login.phtml" hash="7ec602a8ca09180f324229a77ea3e2db"/><file name="login_form.phtml" hash="a176124e54fc105d09e8a219114d9cfe"/><file name="reg.phtml" hash="7ec602a8ca09180f324229a77ea3e2db"/><file name="reg_form.phtml" hash="8d513aa7b9b582f748f5a484f2e81568"/></dir></dir></dir><dir name="layout"><file name="turnto_login.xml" hash="e9c1993c14add5a7be5c4079547d3609"/></dir></dir></dir></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>