neklo_monitor - Version 1.1.3

Version Notes

- Added information about connecting module to mobile application

Download this release

Release Info

Developer NEKLO
Extension neklo_monitor
Version 1.1.3
Comparing to
See all releases


Code changes from version 1.1.2 to 1.1.3

.gitignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ .idea/
2
+
3
+ app/locale/en_US/Neklo_Core.csv
4
+ skin/adminhtml/default/default/neklo/core/
5
+ app/etc/modules/Neklo_Core.xml
6
+ app/design/adminhtml/default/default/layout/neklo/core.xml
7
+ app/design/adminhtml/default/default/template/neklo/core/
8
+ app/code/community/Neklo/Core/
app/code/community/Neklo/Monitor/Block/Adminhtml/System/Config/Frontend/Status.php CHANGED
@@ -5,11 +5,16 @@ class Neklo_Monitor_Block_Adminhtml_System_Config_Frontend_Status extends Mage_A
5
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
6
  {
7
  $element->setBold(true);
8
- if ($this->_getConfig()->isConnected()) {
9
- $element->setValue($this->__('Connected to Gateway'));
 
 
 
 
 
10
  $element->addClass('gateway_status')->addClass('success');
11
  } else {
12
- $element->setValue($this->__('Not Connected to Gateway'));
13
  $element->addClass('gateway_status')->addClass('error');
14
  }
15
  return '<p id="'. $element->getHtmlId() . '" ' . $element->serialize($element->getHtmlAttributes()) . '>' . parent::_getElementHtml($element) .'</p>';
5
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
6
  {
7
  $element->setBold(true);
8
+
9
+ // neklo_monitor_gateway_status_sandbox || neklo_monitor_gateway_status_production
10
+ $name = explode('_', $element->getId());
11
+ $serverType = array_pop($name); // sandbox || production
12
+
13
+ if ($this->_getConfig()->isConnected($serverType)) {
14
+ $element->setValue($this->__('Connected to the %s Gateway', $serverType));
15
  $element->addClass('gateway_status')->addClass('success');
16
  } else {
17
+ $element->setValue($this->__('Not connected to the %s Gateway', $serverType));
18
  $element->addClass('gateway_status')->addClass('error');
19
  }
20
  return '<p id="'. $element->getHtmlId() . '" ' . $element->serialize($element->getHtmlAttributes()) . '>' . parent::_getElementHtml($element) .'</p>';
app/code/community/Neklo/Monitor/Helper/Config.php CHANGED
@@ -82,9 +82,11 @@ class Neklo_Monitor_Helper_Config extends Mage_Core_Helper_Data
82
  return Mage::helper('core')->decrypt(Mage::getStoreConfig(self::GATEWAY_SID . '_' . $serverType));
83
  }
84
 
85
- public function isConnected()
86
  {
87
- $serverType = $this->getGatewayServerType();
 
 
88
  return Mage::getStoreConfigFlag(self::GATEWAY_SID . '_' . $serverType);
89
  }
90
 
82
  return Mage::helper('core')->decrypt(Mage::getStoreConfig(self::GATEWAY_SID . '_' . $serverType));
83
  }
84
 
85
+ public function isConnected($serverType = null)
86
  {
87
+ if (is_null($serverType)) {
88
+ $serverType = $this->getGatewayServerType();
89
+ }
90
  return Mage::getStoreConfigFlag(self::GATEWAY_SID . '_' . $serverType);
91
  }
92
 
app/code/community/Neklo/Monitor/Helper/Date.php CHANGED
@@ -4,7 +4,7 @@ class Neklo_Monitor_Helper_Date extends Mage_Core_Helper_Data
4
  {
5
  public function convertToTimestamp($input)
6
  {
7
- $zDate = new Zend_Date($input);
8
  return (int)$zDate->getTimestamp();
9
  }
10
 
4
  {
5
  public function convertToTimestamp($input)
6
  {
7
+ $zDate = new Zend_Date($input, Varien_Date::DATETIME_INTERNAL_FORMAT);
8
  return (int)$zDate->getTimestamp();
9
  }
10
 
app/code/community/Neklo/Monitor/controllers/CustomerController.php CHANGED
@@ -13,20 +13,21 @@ class Neklo_Monitor_CustomerController extends Neklo_Monitor_Controller_Abstract
13
  $collection = Mage::getResourceModel('customer/customer_collection');
14
  $collection
15
  ->addNameToSelect()
16
- ->addAttributeToSelect('email')
17
- ->addAttributeToSelect('created_at')
18
- ->addAttributeToSelect('group_id')
19
  ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
20
  ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left')
21
  ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left')
22
  ->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left')
23
  ->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left')
24
- ->setOrder('created_at')
25
  ;
26
 
27
  $storeId = $this->_getRequestHelper()->getParam('store', null);
28
- if ($storeId) {
29
- $collection->addFieldToFilter('store_id', $storeId);
 
30
  }
31
 
32
  $queryTimestamp = (int) $this->_getRequestHelper()->getParam('query_timestamp', 0);
@@ -45,6 +46,28 @@ class Neklo_Monitor_CustomerController extends Neklo_Monitor_Controller_Abstract
45
  ->toOptionHash()
46
  ;
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  $customerList = array(
49
  'result' => array(),
50
  );
@@ -67,10 +90,19 @@ class Neklo_Monitor_CustomerController extends Neklo_Monitor_Controller_Abstract
67
  'billing_city' => $customer->getData('billing_city'),
68
  'billing_postcode' => $customer->getData('billing_postcode'),
69
  'billing_telephone' => $customer->getData('billing_telephone'),
 
 
 
70
  );
 
 
 
 
 
71
 
72
  $customerList['result'][] = $customerData;
73
  }
 
74
 
75
  // get new entities count
76
 
@@ -171,6 +203,8 @@ class Neklo_Monitor_CustomerController extends Neklo_Monitor_Controller_Abstract
171
  $collection->setCurPage($page);
172
  $collection->setPageSize(self::PAGE_SIZE);
173
 
 
 
174
  $visitorList = array(
175
  'result' => array(),
176
  );
13
  $collection = Mage::getResourceModel('customer/customer_collection');
14
  $collection
15
  ->addNameToSelect()
16
+ // ->addAttributeToSelect('email')
17
+ // ->addAttributeToSelect('created_at')
18
+ // ->addAttributeToSelect('group_id')
19
  ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
20
  ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left')
21
  ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left')
22
  ->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left')
23
  ->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left')
24
+ ->setOrder('created_at', 'DESC')
25
  ;
26
 
27
  $storeId = $this->_getRequestHelper()->getParam('store', null);
28
+ $store = Mage::app()->getStore($storeId);
29
+ if ($storeId && $store->getId()) {
30
+ $collection->addFieldToFilter('website_id', $store->getWebsiteId());
31
  }
32
 
33
  $queryTimestamp = (int) $this->_getRequestHelper()->getParam('query_timestamp', 0);
46
  ->toOptionHash()
47
  ;
48
 
49
+ $customerIds = $collection->getAllIds();
50
+ /* @var $orders Mage_Sales_Model_Mysql4_Order_Collection */
51
+ $orders = Mage::getResourceModel('sales/order_collection');
52
+ $orders->addFieldToFilter('customer_id', array('in' => $customerIds));
53
+ $orders->addFieldToFilter('state', array('neq' => Mage_Sales_Model_Order::STATE_CANCELED));
54
+
55
+ $expr = ($storeId == 0)
56
+ ? '(main_table.base_subtotal-IFNULL(main_table.base_subtotal_refunded,0)-IFNULL(main_table.base_subtotal_canceled,0))*main_table.base_to_global_rate'
57
+ : 'main_table.base_subtotal-IFNULL(main_table.base_subtotal_canceled,0)-IFNULL(main_table.base_subtotal_refunded,0)';
58
+
59
+ $orders->getSelect()
60
+ ->group('customer_id')
61
+ ->columns(array(
62
+ 'average_order_amount' => 'AVG('.$expr.')',
63
+ 'total_order_amount' => 'SUM('.$expr.')',
64
+ 'order_count' => 'COUNT(entity_id)',
65
+ ));
66
+ $ordersCount = array();
67
+ foreach ($orders as $_data) {
68
+ $ordersCount[$_data->getCustomerId()] = $_data->getData();
69
+ }
70
+
71
  $customerList = array(
72
  'result' => array(),
73
  );
90
  'billing_city' => $customer->getData('billing_city'),
91
  'billing_postcode' => $customer->getData('billing_postcode'),
92
  'billing_telephone' => $customer->getData('billing_telephone'),
93
+ 'average_order_amount' => Mage::app()->getStore($storeId)->convertPrice(0, true, false),
94
+ 'total_order_amount' => Mage::app()->getStore($storeId)->convertPrice(0, true, false),
95
+ 'order_count' => 0,
96
  );
97
+ if (array_key_exists($customer->getData('entity_id'), $ordersCount)) {
98
+ $customerData['average_order_amount'] = Mage::app()->getStore($storeId)->convertPrice($ordersCount[$customer->getData('entity_id')]['average_order_amount']*1, true, false);
99
+ $customerData['total_order_amount'] = Mage::app()->getStore($storeId)->convertPrice($ordersCount[$customer->getData('entity_id')]['total_order_amount']*1, true, false);
100
+ $customerData['order_count'] = (int)$ordersCount[$customer->getData('entity_id')]['order_count'];
101
+ }
102
 
103
  $customerList['result'][] = $customerData;
104
  }
105
+ // $customerList['sql'] = $collection->getSelectSql(true);
106
 
107
  // get new entities count
108
 
203
  $collection->setCurPage($page);
204
  $collection->setPageSize(self::PAGE_SIZE);
205
 
206
+ $collection->setOrder('last_visit_at');
207
+
208
  $visitorList = array(
209
  'result' => array(),
210
  );
app/code/community/Neklo/Monitor/controllers/DashboardController.php CHANGED
@@ -21,8 +21,8 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
21
  $salesStats = $collection->getFirstItem();
22
 
23
  $result = array(
24
- 'lifetime' => Mage::helper('core')->currency($salesStats->getLifetime(), true, false),
25
- 'average' => Mage::helper('core')->currency($salesStats->getAverage(), true, false),
26
  );
27
  } else {
28
  $result = array();
@@ -78,7 +78,7 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
78
  $result[] = array(
79
  'id' => $row->getData('product_id'),
80
  'name' => $row->getData('product_name'),
81
- 'price' => Mage::helper('core')->currency($row->getData('product_price'), true, false),
82
  'sku' => $skuList[$row->getData('product_id')],
83
  'qty' => (int)$row->getData('qty_ordered'),
84
  'image2xUrl' => $thumbList[$row->getData('product_id')]['image2xUrl'],
@@ -124,7 +124,7 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
124
  $result[] = array(
125
  'id' => $row->getEntityId(),
126
  'name' => $row->getName(),
127
- 'price' => Mage::helper('core')->currency($row->getPrice(), true, false),
128
  'sku' => $row->getSku(),
129
  'views' => (int)$row->getData('views'),
130
  'image2xUrl' => $hlp->resize(224, 300)->__toString(),
@@ -172,8 +172,8 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
172
  'name' => $row->getData('name'),
173
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('created_at')),
174
  'group' => $customerGroup,
175
- 'average_order_amount' => Mage::helper('core')->currency($row->getData('orders_avg_amount'), true, false),
176
- 'total_order_amount' => Mage::helper('core')->currency($row->getData('orders_sum_amount'), true, false),
177
  'order_count' => (int)$row->getData('orders_count'),
178
  );
179
 
@@ -232,8 +232,8 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
232
  'name' => $row->getData('name'),
233
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('customer_created_at')),
234
  'group' => $customerGroup,
235
- 'average_order_amount' => Mage::helper('core')->currency($row->getData('orders_avg_amount'), true, false),
236
- 'total_order_amount' => Mage::helper('core')->currency($row->getData('orders_sum_amount'), true, false),
237
  'order_count' => (int)$row->getData('orders_count'),
238
  );
239
 
@@ -290,7 +290,7 @@ class Neklo_Monitor_DashboardController extends Neklo_Monitor_Controller_Abstrac
290
  'increment_id' => $row->getData('increment_id'),
291
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('created_at')),
292
  'status' => $orderStatus,
293
- 'grand_total' => Mage::helper('core')->currency($row->getData('revenue'), true, false),
294
  'items_count' => (int)$row->getData('items_count'),
295
  'customer' => array(
296
  'id' => $row->getData('customer_id'),
21
  $salesStats = $collection->getFirstItem();
22
 
23
  $result = array(
24
+ 'lifetime' => Mage::app()->getStore($storeId)->convertPrice($salesStats->getLifetime(), true, false),
25
+ 'average' => Mage::app()->getStore($storeId)->convertPrice($salesStats->getAverage(), true, false),
26
  );
27
  } else {
28
  $result = array();
78
  $result[] = array(
79
  'id' => $row->getData('product_id'),
80
  'name' => $row->getData('product_name'),
81
+ 'price' => Mage::app()->getStore($storeId)->convertPrice($row->getData('product_price'), true, false),
82
  'sku' => $skuList[$row->getData('product_id')],
83
  'qty' => (int)$row->getData('qty_ordered'),
84
  'image2xUrl' => $thumbList[$row->getData('product_id')]['image2xUrl'],
124
  $result[] = array(
125
  'id' => $row->getEntityId(),
126
  'name' => $row->getName(),
127
+ 'price' => Mage::app()->getStore($storeId)->convertPrice($row->getPrice(), true, false),
128
  'sku' => $row->getSku(),
129
  'views' => (int)$row->getData('views'),
130
  'image2xUrl' => $hlp->resize(224, 300)->__toString(),
172
  'name' => $row->getData('name'),
173
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('created_at')),
174
  'group' => $customerGroup,
175
+ 'average_order_amount' => Mage::app()->getStore($storeId)->convertPrice($row->getData('orders_avg_amount'), true, false),
176
+ 'total_order_amount' => Mage::app()->getStore($storeId)->convertPrice($row->getData('orders_sum_amount'), true, false),
177
  'order_count' => (int)$row->getData('orders_count'),
178
  );
179
 
232
  'name' => $row->getData('name'),
233
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('customer_created_at')),
234
  'group' => $customerGroup,
235
+ 'average_order_amount' => Mage::app()->getStore($storeId)->convertPrice($row->getData('orders_avg_amount'), true, false),
236
+ 'total_order_amount' => Mage::app()->getStore($storeId)->convertPrice($row->getData('orders_sum_amount'), true, false),
237
  'order_count' => (int)$row->getData('orders_count'),
238
  );
239
 
290
  'increment_id' => $row->getData('increment_id'),
291
  'created_at' => Mage::helper('neklo_monitor/date')->convertToTimestamp($row->getData('created_at')),
292
  'status' => $orderStatus,
293
+ 'grand_total' => Mage::app()->getStore($storeId)->convertPrice($row->getData('revenue'), true, false),
294
  'items_count' => (int)$row->getData('items_count'),
295
  'customer' => array(
296
  'id' => $row->getData('customer_id'),
app/code/community/Neklo/Monitor/controllers/OrderController.php CHANGED
@@ -21,6 +21,8 @@ class Neklo_Monitor_OrderController extends Neklo_Monitor_Controller_Abstract
21
  $page = ceil($offset / self::PAGE_SIZE) + 1;
22
  $collection->setPage($page, self::PAGE_SIZE);
23
 
 
 
24
  $collection->getSelect()
25
  ->join(
26
  array('ce' => $collection->getTable('customer/entity')),
@@ -36,6 +38,12 @@ class Neklo_Monitor_OrderController extends Neklo_Monitor_Controller_Abstract
36
  $collection->addFieldToFilter('customer_id', $customerId);
37
  }
38
 
 
 
 
 
 
 
39
  $orderItemsSelect = $collection->getConnection()->select();
40
  $orderItemsSelect
41
  ->from(
@@ -82,7 +90,7 @@ class Neklo_Monitor_OrderController extends Neklo_Monitor_Controller_Abstract
82
  'increment_id' => $order->getIncrementId(),
83
  'created_at' => $hlpDate->convertToTimestamp($order->getCreatedAt()),
84
  'status' => $orderStatus,
85
- 'grand_total' => Mage::helper('core')->currency($order->getBaseGrandTotal(), true, false),
86
  'items_count' => (int)$order->getItemsCount(),
87
  );
88
 
21
  $page = ceil($offset / self::PAGE_SIZE) + 1;
22
  $collection->setPage($page, self::PAGE_SIZE);
23
 
24
+ $collection->setOrder('main_table.created_at', 'desc');
25
+
26
  $collection->getSelect()
27
  ->join(
28
  array('ce' => $collection->getTable('customer/entity')),
38
  $collection->addFieldToFilter('customer_id', $customerId);
39
  }
40
 
41
+ $storeId = $this->_getRequestHelper()->getParam('store', null);
42
+ $store = Mage::app()->getStore($storeId);
43
+ if ($storeId && $store->getId()) {
44
+ $collection->addFieldToFilter('main_table.store_id', $store->getId());
45
+ }
46
+
47
  $orderItemsSelect = $collection->getConnection()->select();
48
  $orderItemsSelect
49
  ->from(
90
  'increment_id' => $order->getIncrementId(),
91
  'created_at' => $hlpDate->convertToTimestamp($order->getCreatedAt()),
92
  'status' => $orderStatus,
93
+ 'grand_total' => Mage::app()->getStore($order->getStoreId())->convertPrice($order->getBaseGrandTotal(), true, false),
94
  'items_count' => (int)$order->getItemsCount(),
95
  );
96
 
app/code/community/Neklo/Monitor/controllers/ProductController.php CHANGED
@@ -19,7 +19,7 @@ class Neklo_Monitor_ProductController extends Neklo_Monitor_Controller_Abstract
19
  $outOfStockProductList[] = array(
20
  'id' => $row->getEntityId(),
21
  'name' => $row->getName(),
22
- 'price' => Mage::helper('core')->currency($row->getPrice(), true, false),
23
  'sku' => $row->getSku(),
24
  'image2xUrl' => $hlp->resize(224, 300)->__toString(),
25
  'image3xUrl' => $hlp->resize(336, 450)->__toString(),
19
  $outOfStockProductList[] = array(
20
  'id' => $row->getEntityId(),
21
  'name' => $row->getName(),
22
+ 'price' => Mage::app()->getStore($storeId)->convertPrice($row->getPrice(), true, false),
23
  'sku' => $row->getSku(),
24
  'image2xUrl' => $hlp->resize(224, 300)->__toString(),
25
  'image3xUrl' => $hlp->resize(336, 450)->__toString(),
app/code/community/Neklo/Monitor/controllers/Report/SalesController.php CHANGED
@@ -54,10 +54,11 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
54
  /**
55
  * @param Mage_Sales_Model_Mysql4_Report_Collection_Abstract $resourceCollection
56
  * @param Mage_Sales_Model_Mysql4_Report_Collection_Abstract $totalsCollection
 
57
  * @param array $aggregatedColumns
58
  * @return array
59
  */
60
- protected function _fetchReport($resourceCollection, $totalsCollection, $aggregatedColumns = array())
61
  {
62
  /** @var Mage_Reports_Model_Grouped_Collection $mainCollection */
63
  $mainCollection = Mage::getModel('reports/grouped_collection');
@@ -72,14 +73,30 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
72
  );
73
  foreach ($mainCollection->getItems() as $_period => $_item) {
74
  /** @var Mage_Adminhtml_Model_Report_Item $_item */
75
- $list['report'][] = $_item->getData();
 
 
 
 
 
 
 
 
76
  }
77
 
78
  if ($aggregatedColumns) {
79
  $totalsCollection->setAggregatedColumns($aggregatedColumns);
80
  $totalsCollection->load();
81
  foreach ($totalsCollection as $_item) {
82
- $list['totals'] = $_item->getData();
 
 
 
 
 
 
 
 
83
  break;
84
  }
85
  }
@@ -87,28 +104,55 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
87
  return $list;
88
  }
89
 
 
 
 
 
 
 
 
 
 
 
90
  public function orderAction()
91
  {
92
  $resourceCollectionName = 'sales/report_order_updatedat_collection';
93
  // $resourceCollectionName = 'sales/report_order_collection';
94
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
95
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
96
- 'orders_count' => 'SUM(orders_count)',
97
- 'total_qty_ordered' => 'SUM(total_qty_ordered)',
98
- 'total_qty_invoiced' => 'SUM(total_qty_invoiced)',
99
- 'total_income_amount' => 'SUM(total_income_amount)',
100
- 'total_revenue_amount' => 'SUM(total_revenue_amount)',
101
- 'total_profit_amount' => 'SUM(total_profit_amount)',
102
- 'total_invoiced_amount' => 'SUM(total_invoiced_amount)',
103
- 'total_canceled_amount' => 'SUM(total_canceled_amount)',
104
- 'total_paid_amount' => 'SUM(total_paid_amount)',
105
- 'total_refunded_amount' => 'SUM(total_refunded_amount)',
106
- 'total_tax_amount' => 'SUM(total_tax_amount)',
107
- 'total_tax_amount_actual' => 'SUM(total_tax_amount_actual)',
108
- 'total_shipping_amount' => 'SUM(total_shipping_amount)',
109
- 'total_shipping_amount_actual' => 'SUM(total_shipping_amount_actual)',
110
- 'total_discount_amount' => 'SUM(total_discount_amount)',
111
- 'total_discount_amount_actual' => 'SUM(total_discount_amount_actual)',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  ));
113
  $this->_jsonResult($list);
114
  }
@@ -119,8 +163,11 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
119
  // $resourceCollectionName = 'tax/report_collection';
120
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
121
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
122
- 'orders_count' => 'SUM(orders_count)',
123
- 'tax_base_amount_sum' => 'SUM(tax_base_amount_sum)',
 
 
 
124
  ));
125
  $this->_jsonResult($list);
126
  }
@@ -131,10 +178,16 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
131
  // $resourceCollectionName = 'sales/report_invoiced_collection_order';
132
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
133
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
134
- 'orders_count' => 'SUM(orders_count)',
135
- 'orders_invoiced' => 'SUM(orders_invoiced)',
136
- 'invoiced' => 'SUM(invoiced)',
137
- 'invoiced_captured' => 'SUM(invoiced_captured)',
 
 
 
 
 
 
138
  'invoiced_not_captured' => 'SUM(invoiced_not_captured)',
139
  ));
140
  $this->_jsonResult($list);
@@ -146,8 +199,12 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
146
  // $resourceCollectionName = 'sales/report_shipping_collection_order';
147
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
148
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
149
- 'orders_count' => 'SUM(orders_count)',
150
- 'total_shipping' => 'SUM(total_shipping)',
 
 
 
 
151
  'total_shipping_actual' => 'SUM(total_shipping_actual)',
152
  ));
153
  $this->_jsonResult($list);
@@ -159,10 +216,15 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
159
  // $resourceCollectionName = 'sales/report_refunded_collection_order';
160
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
161
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
162
- 'orders_count' => 'SUM(orders_count)',
163
- 'refunded' => 'SUM(refunded)',
164
- 'online_refunded' => 'SUM(online_refunded)',
165
- 'offline_refunded' => 'SUM(offline_refunded)',
 
 
 
 
 
166
  ));
167
  $this->_jsonResult($list);
168
  }
@@ -173,13 +235,21 @@ class Neklo_Monitor_Report_SalesController extends Neklo_Monitor_Controller_Abst
173
  // $resourceCollectionName = 'salesrule/report_collection';
174
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
175
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
176
- 'coupon_uses' => 'SUM(coupon_uses)',
177
- 'subtotal_amount' => 'SUM(subtotal_amount)',
178
- 'discount_amount' => 'SUM(discount_amount)',
179
- 'total_amount' => 'SUM(total_amount)',
180
- 'subtotal_amount_actual' => 'SUM(subtotal_amount_actual)',
181
- 'discount_amount_actual' => 'SUM(discount_amount_actual)',
182
- 'total_amount_actual' => 'SUM(total_amount_actual)',
 
 
 
 
 
 
 
 
183
  ));
184
  $this->_jsonResult($list);
185
  }
54
  /**
55
  * @param Mage_Sales_Model_Mysql4_Report_Collection_Abstract $resourceCollection
56
  * @param Mage_Sales_Model_Mysql4_Report_Collection_Abstract $totalsCollection
57
+ * @param array $callbacks
58
  * @param array $aggregatedColumns
59
  * @return array
60
  */
61
+ protected function _fetchReport($resourceCollection, $totalsCollection, $callbacks = array(), $aggregatedColumns = array())
62
  {
63
  /** @var Mage_Reports_Model_Grouped_Collection $mainCollection */
64
  $mainCollection = Mage::getModel('reports/grouped_collection');
73
  );
74
  foreach ($mainCollection->getItems() as $_period => $_item) {
75
  /** @var Mage_Adminhtml_Model_Report_Item $_item */
76
+ $_data = $_item->getData();
77
+ if ($callbacks) {
78
+ foreach ($_data as $_key => $_value) {
79
+ if (array_key_exists($_key, $callbacks) && is_callable($callbacks[$_key])) {
80
+ $_data[$_key] = call_user_func($callbacks[$_key], $_value);
81
+ }
82
+ }
83
+ }
84
+ $list['report'][] = $_data;
85
  }
86
 
87
  if ($aggregatedColumns) {
88
  $totalsCollection->setAggregatedColumns($aggregatedColumns);
89
  $totalsCollection->load();
90
  foreach ($totalsCollection as $_item) {
91
+ $_data = $_item->getData();
92
+ if ($callbacks) {
93
+ foreach ($_data as $_key => $_value) {
94
+ if (array_key_exists($_key, $callbacks) && is_callable($callbacks[$_key])) {
95
+ $_data[$_key] = call_user_func($callbacks[$_key], $_value);
96
+ }
97
+ }
98
+ }
99
+ $list['totals'] = $_data;
100
  break;
101
  }
102
  }
104
  return $list;
105
  }
106
 
107
+ protected function _processValueNumeric($value)
108
+ {
109
+ return (int) $value;
110
+ }
111
+
112
+ protected function _processValueCurrency($value)
113
+ {
114
+ return Mage::helper('core')->currency($value, true, false);
115
+ }
116
+
117
  public function orderAction()
118
  {
119
  $resourceCollectionName = 'sales/report_order_updatedat_collection';
120
  // $resourceCollectionName = 'sales/report_order_collection';
121
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
122
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
123
+ 'orders_count' => array($this, '_processValueNumeric'),
124
+ 'total_qty_ordered' => array($this, '_processValueNumeric'),
125
+ 'total_qty_invoiced' => array($this, '_processValueNumeric'),
126
+ 'total_income_amount' => array($this, '_processValueCurrency'),
127
+ 'total_revenue_amount' => array($this, '_processValueCurrency'),
128
+ 'total_profit_amount' => array($this, '_processValueCurrency'),
129
+ 'total_invoiced_amount' => array($this, '_processValueCurrency'),
130
+ 'total_canceled_amount' => array($this, '_processValueCurrency'),
131
+ 'total_paid_amount' => array($this, '_processValueCurrency'),
132
+ 'total_refunded_amount' => array($this, '_processValueCurrency'),
133
+ 'total_tax_amount' => array($this, '_processValueCurrency'),
134
+ 'total_tax_amount_actual' => array($this, '_processValueCurrency'),
135
+ 'total_shipping_amount' => array($this, '_processValueCurrency'),
136
+ 'total_shipping_amount_actual' => array($this, '_processValueCurrency'),
137
+ 'total_discount_amount' => array($this, '_processValueCurrency'),
138
+ 'total_discount_amount_actual' => array($this, '_processValueCurrency'),
139
+ ), array(
140
+ 'orders_count' => 'SUM(orders_count)',
141
+ 'total_qty_ordered' => 'SUM(total_qty_ordered)',
142
+ 'total_qty_invoiced' => 'SUM(total_qty_invoiced)',
143
+ 'total_income_amount' => 'SUM(total_income_amount)',
144
+ 'total_revenue_amount' => 'SUM(total_revenue_amount)',
145
+ 'total_profit_amount' => 'SUM(total_profit_amount)',
146
+ 'total_invoiced_amount' => 'SUM(total_invoiced_amount)',
147
+ 'total_canceled_amount' => 'SUM(total_canceled_amount)',
148
+ 'total_paid_amount' => 'SUM(total_paid_amount)',
149
+ 'total_refunded_amount' => 'SUM(total_refunded_amount)',
150
+ 'total_tax_amount' => 'SUM(total_tax_amount)',
151
+ 'total_tax_amount_actual' => 'SUM(total_tax_amount_actual)',
152
+ 'total_shipping_amount' => 'SUM(total_shipping_amount)',
153
+ 'total_shipping_amount_actual' => 'SUM(total_shipping_amount_actual)',
154
+ 'total_discount_amount' => 'SUM(total_discount_amount)',
155
+ 'total_discount_amount_actual' => 'SUM(total_discount_amount_actual)',
156
  ));
157
  $this->_jsonResult($list);
158
  }
163
  // $resourceCollectionName = 'tax/report_collection';
164
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
165
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
166
+ 'orders_count' => array($this, '_processValueNumeric'),
167
+ 'tax_base_amount_sum' => array($this, '_processValueCurrency'),
168
+ ), array(
169
+ 'orders_count' => 'SUM(orders_count)',
170
+ 'tax_base_amount_sum' => 'SUM(tax_base_amount_sum)',
171
  ));
172
  $this->_jsonResult($list);
173
  }
178
  // $resourceCollectionName = 'sales/report_invoiced_collection_order';
179
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
180
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
181
+ 'orders_count' => array($this, '_processValueNumeric'),
182
+ 'orders_invoiced' => array($this, '_processValueNumeric'),
183
+ 'invoiced' => array($this, '_processValueCurrency'),
184
+ 'invoiced_captured' => array($this, '_processValueCurrency'),
185
+ 'invoiced_not_captured' => array($this, '_processValueCurrency'),
186
+ ), array(
187
+ 'orders_count' => 'SUM(orders_count)',
188
+ 'orders_invoiced' => 'SUM(orders_invoiced)',
189
+ 'invoiced' => 'SUM(invoiced)',
190
+ 'invoiced_captured' => 'SUM(invoiced_captured)',
191
  'invoiced_not_captured' => 'SUM(invoiced_not_captured)',
192
  ));
193
  $this->_jsonResult($list);
199
  // $resourceCollectionName = 'sales/report_shipping_collection_order';
200
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
201
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
202
+ 'orders_count' => array($this, '_processValueNumeric'),
203
+ 'total_shipping' => array($this, '_processValueCurrency'),
204
+ 'total_shipping_actual' => array($this, '_processValueCurrency'),
205
+ ), array(
206
+ 'orders_count' => 'SUM(orders_count)',
207
+ 'total_shipping' => 'SUM(total_shipping)',
208
  'total_shipping_actual' => 'SUM(total_shipping_actual)',
209
  ));
210
  $this->_jsonResult($list);
216
  // $resourceCollectionName = 'sales/report_refunded_collection_order';
217
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
218
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
219
+ 'orders_count' => array($this, '_processValueNumeric'),
220
+ 'refunded' => array($this, '_processValueCurrency'),
221
+ 'online_refunded' => array($this, '_processValueCurrency'),
222
+ 'offline_refunded' => array($this, '_processValueCurrency'),
223
+ ), array(
224
+ 'orders_count' => 'SUM(orders_count)',
225
+ 'refunded' => 'SUM(refunded)',
226
+ 'online_refunded' => 'SUM(online_refunded)',
227
+ 'offline_refunded' => 'SUM(offline_refunded)',
228
  ));
229
  $this->_jsonResult($list);
230
  }
235
  // $resourceCollectionName = 'salesrule/report_collection';
236
  list($resourceCollection, $totalsCollection) = $this->_prepareResourceCollection($resourceCollectionName);
237
  $list = $this->_fetchReport($resourceCollection, $totalsCollection, array(
238
+ 'coupon_uses' => array($this, '_processValueNumeric'),
239
+ 'subtotal_amount' => array($this, '_processValueCurrency'),
240
+ 'discount_amount' => array($this, '_processValueCurrency'),
241
+ 'total_amount' => array($this, '_processValueCurrency'),
242
+ 'subtotal_amount_actual' => array($this, '_processValueCurrency'),
243
+ 'discount_amount_actual' => array($this, '_processValueCurrency'),
244
+ 'total_amount_actual' => array($this, '_processValueCurrency'),
245
+ ), array(
246
+ 'coupon_uses' => 'SUM(coupon_uses)',
247
+ 'subtotal_amount' => 'SUM(subtotal_amount)',
248
+ 'discount_amount' => 'SUM(discount_amount)',
249
+ 'total_amount' => 'SUM(total_amount)',
250
+ 'subtotal_amount_actual' => 'SUM(subtotal_amount_actual)',
251
+ 'discount_amount_actual' => 'SUM(discount_amount_actual)',
252
+ 'total_amount_actual' => 'SUM(total_amount_actual)',
253
  ));
254
  $this->_jsonResult($list);
255
  }
app/code/community/Neklo/Monitor/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Neklo_Monitor>
5
- <version>1.1.2</version>
6
  </Neklo_Monitor>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Neklo_Monitor>
5
+ <version>1.1.3</version>
6
  </Neklo_Monitor>
7
  </modules>
8
  <global>
app/code/community/Neklo/Monitor/etc/system.xml CHANGED
@@ -8,7 +8,7 @@
8
  </tabs>
9
  <sections>
10
  <neklo_monitor translate="label" module="neklo_monitor">
11
- <label>Monitor</label>
12
  <tab>neklo</tab>
13
  <frontend_type>text</frontend_type>
14
  <sort_order>9999</sort_order>
@@ -17,12 +17,13 @@
17
  <show_in_store>0</show_in_store>
18
  <groups>
19
  <general translate="label">
20
- <label>General Settings</label>
21
  <frontend_type>text</frontend_type>
22
  <sort_order>10</sort_order>
23
  <show_in_default>1</show_in_default>
24
  <show_in_website>0</show_in_website>
25
  <show_in_store>0</show_in_store>
 
26
  <fields>
27
  <is_enabled translate="label">
28
  <label>Is Enabled</label>
@@ -46,7 +47,7 @@
46
  </fields>
47
  </security-->
48
  <gateway>
49
- <label>Gateway Settings</label>
50
  <frontend_type>text</frontend_type>
51
  <sort_order>30</sort_order>
52
  <show_in_default>1</show_in_default>
@@ -171,6 +172,37 @@
171
  </last_update_sandbox-->
172
  </fields>
173
  </gateway>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  </groups>
175
  </neklo_monitor>
176
  </sections>
8
  </tabs>
9
  <sections>
10
  <neklo_monitor translate="label" module="neklo_monitor">
11
+ <label><![CDATA[<img style="vertical-align:middle" src="data:image/gif;base64,R0lGODlhFAAUAKIHAPCTYvfx7/KwjvXLtu15PO1zM+1rJ////yH5BAEAAAcALAAAAAAUABQAAAN1eKoxQJCAEZZVLmo5rhJbSAgXKIYkdp5d8KxEIQyF1MBQMdBQFso8QkBQk2wKxYCrAFiKZACDQDmQBk4ypVDQJOyKGuawcRVSiJqHTmClZZ2QSciRLEcorwgYCG4eBjgbHR+BECkMJjBTHj4hEx4LDXkcFRYJADs=">]]> Store Monitoring</label>
12
  <tab>neklo</tab>
13
  <frontend_type>text</frontend_type>
14
  <sort_order>9999</sort_order>
17
  <show_in_store>0</show_in_store>
18
  <groups>
19
  <general translate="label">
20
+ <label>General</label>
21
  <frontend_type>text</frontend_type>
22
  <sort_order>10</sort_order>
23
  <show_in_default>1</show_in_default>
24
  <show_in_website>0</show_in_website>
25
  <show_in_store>0</show_in_store>
26
+ <expanded>1</expanded>
27
  <fields>
28
  <is_enabled translate="label">
29
  <label>Is Enabled</label>
47
  </fields>
48
  </security-->
49
  <gateway>
50
+ <label>Gateway Connection</label>
51
  <frontend_type>text</frontend_type>
52
  <sort_order>30</sort_order>
53
  <show_in_default>1</show_in_default>
172
  </last_update_sandbox-->
173
  </fields>
174
  </gateway>
175
+ <mobileapp translate="label">
176
+ <label>Mobile Application</label>
177
+ <comment><![CDATA[
178
+ To receive data from the module you need to install a free mobile application.
179
+ As soon as you have done this, please, use the token given above to link your store to the app and ensure that Magento Store Monitoring is enabled.
180
+ From now on you will get detailed real-time information on your store's performance, orders, customers and inventory right on the screen of your smartphone.
181
+ Enjoy.
182
+ <table style="margin-top: 50px" cellspacing="0" cellpadding="0">
183
+ <tr>
184
+ <td><strong>Download from iTunes</strong></td>
185
+ <td style="padding:0 15px 50px"><img width="140" height="140" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAIAAAAhotZpAAAABmJLR0QA/wD/AP+gvaeTAAADnElEQVR4nO2dzY7kMAgGN6t5/1fuvXoOaEFAkmpV3Sbjv+5PBGFj+vp8Pn/k3fx9egHyfxQJgCIB+Dn/uK5rfIKMzzvnPdtXn2eIPmM0Tqb99vemJQFQJACKBOAn+kcnfore0VVfErWp+q1M3846o/GrROvRkgAoEgBFAhD6pJNMHDDlY6J5O77kfJ7pm3lejf8iMuNoSQAUCYAiAUj5pCk67+ip/b1MDNSJkzbQkgAoEgBFAnCrT6r6hg3/FI3TWec2WhIARQKgSABSPmnqXZyJkzJ+oppf0Nln63z2qe9NSwKgSAAUCUDokzZyyU6m4pup9hv7flNoSQAUCYAiAbie2o+aOlvKtN9Yw51oSQAUCYAiARi7n9S5r7ORn131W9X13xl7aUkAFAmAIgG4OntTG/eEpp5vMJWnV43PtCQAigRAkQD8ipOmzkimfEMnprkzr6GTc2Gc9CUoEgBFAhDGSScbeXedmkOd9m+451T9XFoSAEUCoEgAUnt3d54zbcRAU3UiIjZy00+0JACKBECRALR80kaskxkns4bts6UMU/uHWhIARQKgSABS50kR2/kOmbW94TwpM36nHqCWBECRACgSgHIdh40z/I5vuDPvLsNGPT0tCYAiAVAkAK1c8A5P5SBs521HfTtttCQAigRAkQCUa7Bu3D3q9O3UWq2S+f2LTF2+qn/SkgAoEgBFApDKBT95Q/yU6XtnrnYG6zh8OYoEQJEAlPPupt77qcW9rEbqU7kPWhIARQKgSABacdLGvaXtHPQNvzWVN2icBEaRACgSgPA8aeoOaYfq+U31PGn7HGiqjZYEQJEAKBKAVi541WdUx4/anEzVTZiad2NvUEsCoEgAFAlAORf8V+eX1WjYriGUmSuatzOOlgRAkQAoEoByLngnPujkOFTHmYrVMrFghs6atSQAigRAkQCUawttxEPR+HfeT5qqA1SdN4OWBECRACgSgLHfmY3YyJ+Onk/lF2SeT41/4nkSGEUCoEgAUnl3VTrnPRt1UatnSE/lGUZoSQAUCYAiAUidJz2V2xb1nao90cmJ2LibFaElAVAkAIoEoJzjMEUnp267vmrGh3V8pHUcvhBFAqBIAB7zSVXfM3UfaKp+xJQvtI7Dl6BIABQJQPnO7AYbtVMz7aM20dqqY3bGP9GSACgSAEUCEPqkjRy8k6kznqhvtX00V+Z5FeuCfyGKBECRAFzbMZD00ZIAKBIARQLwD7iyGUSwc3hwAAAAAElFTkSuQmCC" /></td>
186
+ <td><a href="https://itunes.apple.com/us/app/magento-store-monitoring/id1108796762">https://itunes.apple.com/us/app/magento-store-monitoring/id1108796762</a></td>
187
+ </tr>
188
+ <tr>
189
+ <td><strong>Download from Google&nbsp;Play</strong></td>
190
+ <td style="padding:0 15px"><img width="140" height="140" style="opacity:0.10" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAACRCAIAAABMus10AAAABmJLR0QA/wD/AP+gvaeTAAADHUlEQVR4nO2dy24kMQgAd1b5/1+e3DnQQTbY1aq6RdPPlJARtunPvym+3+/fD/58Psm54dfSjfJzS5SeaiP/Z24jG9EZD53x0BmPn/B3KVPIycfkPMvIyQf/Ui6w8X37rhzeyDjjoTMeOuOhMx4xBwn0jef5waVaRp6SbKy/rLDxP2mc8dAZD53x0BmPhxykj41jcqngsvFGfTWUHOOMh8546IyHzngcy0FWihcr5/bVUMYwznjojIfOeOiMx0MO0jcIl8oTGw9eeaNT5waMMx4646EzHjrjEXOQsc0dgVI9ou/XnJWCy0aMMx4646EzHjrj8blkumFsecgl77uCccZDZzx0xkNnPH7u7JdRutTKjfrKIn2/Gmc8dMZDZzx0xmNnHWRjY7G+HmWBjZnCGMYZD53x0BkPnfHYOYr2dTPtW3nRV7zIbxQova9xxkNnPHTGQ2c8Yh1kbH4hMNZJ7NSa1I37iY0zHjrjoTMeOuPxkIMETk1V3Dmts7GZiHWQl6MzHjrjoTMeD2nC2A6UO8sTp8ifyjjjoTMeOuOhMx61OkjgzgE8p28dytiuX+OMh8546IyHzngsfTd3Y/Eif4xTsx75uSv3Dbge5OXojIfOeOiMx9JcTLxW29qKsdanOZfMEBlnPHTGQ2c8dMYjjsB9CzrHWpadaqE+NjNlnPHQGQ+d8dAZj4ccpHatfVnGnfftmxIKuC/mbeiMh8546IzHUh2kdqe2L8L0rRy9pNBjr3Y8OuOhMx4647FUBxmb1yjd984so3Rl6yBvQ2c8dMZDZzyOfTf3zrLI2OLXlYc0znjojIfOeOiMx1xHj1PrWXP62qP0tao3znjojIfOeOiMx1J/kJyNo+7KuWOd08b+dcYZD53x0BkPnfGIOUjgVPuMvpUXpcfIDx7bbRwwznjojIfOeOiMx0MOcgljH5rry7k2PoZxxkNnPHTGQ2c8GDlIIB+xS3lEX/v1nFL+4ppUPDrjoTMeOuPxkIOc2jXTtze3b2/L2OySccZDZzx0xkNnPGIOgvj2baCUC4xtxi1hf5CXozMeOuOhMx6/Z8gFM4UY+noAAAAASUVORK5CYII=" /></td>
191
+ <td><i>coming soon...</i></td>
192
+ </tr>
193
+ <tr>
194
+ <td style="padding:50px 0 0"><strong>See installation FAQ</strong></td>
195
+ <td colspan="2" style="padding:50px 15px 0"><a href="http://store.neklo.com/magento-monitoring/">http://store.neklo.com/magento-monitoring/</a></td>
196
+ </tr>
197
+ </table>
198
+ ]]></comment>
199
+ <frontend_type>text</frontend_type>
200
+ <sort_order>50</sort_order>
201
+ <show_in_default>1</show_in_default>
202
+ <show_in_website>0</show_in_website>
203
+ <show_in_store>0</show_in_store>
204
+ <expanded>1</expanded>
205
+ </mobileapp>
206
  </groups>
207
  </neklo_monitor>
208
  </sections>
package.xml CHANGED
@@ -1,2 +1,2 @@
1
  <?xml version="1.0"?>
2
- <package><name>Neklo_Monitor</name><version>1.1.2</version><stability>stable</stability><license>License</license><channel>community</channel><extends></extends><summary>First Release</summary><description>Connector for Magento Monitor Application</description><notes></notes><authors><author><name>NEKLO</name><user>NEKLO</user><email>info@neklo.com</email></author></authors><date>2016-05-03</date><time>6:49:59</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Neklo_Core.xml" hash="335032ff690c5272626dca9106642680"/><file name="Neklo_Monitor.xml" hash="e93ded9f7368552a843959e953a2bf10"/></dir></dir><dir name="code"><dir name="community"><dir name="Neklo"><dir name="Monitor"><file name="Autoload.php" hash="612c4e0d0a4db5be84c29650655085f6"/><dir name="etc"><file name="adminhtml.xml" hash="897debfe836ca9d58971b44b2232187e"/><file name="config.xml" hash="87d9106b97e2b1b04945ec934165c6e6"/><file name="system.xml" hash="7df39a98e617da03ebcf0ce1539c15c9"/></dir><dir name="controllers"><file name="AuthController.php" hash="c164010a1b5237587ad4edef5bd14b1d"/><file name="CustomerController.php" hash="b1b11923eff5372e95997e8f0a3716ae"/><file name="DashboardController.php" hash="004e0bd94c30ab5e262e193738eb07e4"/><file name="InfoController.php" hash="6bfe3889fa3454d39e9fa39003cc8d20"/><file name="OrderController.php" hash="6500c3870cd0f4e472de7b474530c60b"/><file name="ProductController.php" hash="811e66a117cd0c27d785eac38bde614e"/><dir name="State"><file name="CacheController.php" hash="efb77eeae42be795d7618c620270d0d7"/><file name="IndexerController.php" hash="fa23622aabd0f1d40d4d03de692ae0a2"/></dir><dir name="Var"><file name="LogController.php" hash="b0c9fb0510dd81d3de890d1050d8ac18"/><file name="ReportController.php" hash="5e871965109e78c57252fd221c8e3a9b"/></dir><dir name="Report"><file name="SalesController.php" hash="25e00ff2fd368450d26bc0d4bc11676c"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="c451f6e756bac9cbc5460c3b65812bb6"/></dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Frontend"><file name="Label.php" hash="bd831c28818a1b998dda55df056b28b4"/><file name="Status.php" hash="c94359824abaf9a4e23f00364071979b"/></dir></dir></dir></dir></dir><dir name="sql"><dir name="neklo_monitor_setup"><file name="mysql4-install-1.0.0.php" hash="3a5ee59cda3ec27eca737f515eec4a71"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="bba6559d5040c937d775a76df6611b77"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="f3bbc768ae43e1b45009de02c519dcd7"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="0a03caae9eb41f5f8bcf1a2a8476a13a"/></dir></dir><dir name="Model"><file name="Linfo.php" hash="585d42953c5585d9851dad82c0881410"/><file name="Log.php" hash="7ae437f9f39e62317faa9a2c4b57a3d2"/><file name="Minfo.php" hash="eaab8efeb41a9d2dd073093b869fe440"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Server"><file name="Type.php" hash="4c86daaa4320ac41b7bdba25f1285056"/></dir></dir><dir name="Backend"><file name="Empty.php" hash="556343bcf15ea8b294a15e77f6662cf8"/><file name="Token.php" hash="7669597367cd26bd848d0d8251feb4b7"/></dir></dir></dir><dir name="Cron"><file name="Abstract.php" hash="7183a30f5a456ee29a3e58f814999e87"/><file name="Server.php" hash="5f3e4ac9492b6e7d658fabeaa0e35e44"/><file name="Store.php" hash="97a0691ceda29f4b52481666b5ab9406"/></dir><dir name="Resource"><dir name="Minfo"><file name="Log.php" hash="54f05d3ced0a1aee770177265695eac9"/><file name="Report.php" hash="acb9c02688a9403a67904fda72c57533"/><dir name="Log"><file name="Collection.php" hash="fc6cbcd4c15227046cb7e85dfdad614d"/></dir><dir name="Report"><file name="Collection.php" hash="a9c74ab52be17dec7c4fafb883bda732"/></dir></dir></dir><dir name="Minfo"><file name="Log.php" hash="d787eeaab4cae6f3d9fe7e696c427014"/><file name="Parser.php" hash="2d7f4603d25d63b0416d338924add4e9"/><file name="Report.php" hash="d97960716a8c152d1614b8d0c752e064"/></dir><dir name="Linfo"><dir name="Os"><file name="Linux.php" hash="e61e9aceb9723b5c8e72200274b7f6ab"/></dir></dir><dir name="Gateway"><file name="Connector.php" hash="3f9667344ccd34dbe4461e71891335fa"/></dir></dir><dir name="Helper"><file name="Config.php" hash="235ca11d4945dfa3341a12ef6968a0cd"/><file name="Country.php" hash="15176ed5b48639f8c50242b126e9dea4"/><file name="Data.php" hash="ebba3993c28262dc258166187cc41aba"/><file name="Date.php" hash="446cc8698132f4f31886332bdc7ac9d6"/><file name="Request.php" hash="dab02c51e8da47f8cb2b57999576ed5c"/><dir name="Request"><file name="Validator.php" hash="16375fad2da02f6732fefd465a388774"/></dir></dir></dir><dir name="Core"><dir name="etc"><file name="adminhtml.xml" hash="68b00ad4118462d74b0c0a7126063462"/><file name="config.xml" hash="3fc06c04d63578d873a4d4145785e4c0"/><file name="system.xml" hash="f9ee62f79b22584cc6180ec5e8049539"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Neklo"><dir name="Core"><file name="ContactController.php" hash="fe735a9c3c0ad9c4ecb88edd009059a9"/><file name="NewsletterController.php" hash="b9342c80bf94c29a463251b1c7b02705"/></dir></dir></dir></dir><dir name="Block"><dir name="System"><file name="Contact.php" hash="a0e89ca48de64bb8526c35598f99802b"/><file name="Extension.php" hash="8cd6609bd4f00bf8a8f5913d20e98e65"/><dir name="Contact"><file name="Header.php" hash="a6c4f8dbf002a0d2f6be0ea37445a562"/><file name="Send.php" hash="333d3059033faa826ef3781946676b16"/><dir name="Send"><file name="Button.php" hash="c94e2ae59246a968d7eb2e89e63485c8"/></dir></dir><dir name="Newsletter"><file name="Subscribe.php" hash="1015b8e49758e40c829667e94bb06220"/><dir name="Subscribe"><file name="Button.php" hash="98162d3c3280bdc3da75c90c45fc9500"/></dir></dir><dir name="Extension"><file name="List.php" hash="0006ff459c6b19de9349fa31c8be6b2b"/></dir></dir></dir><dir name="Model"><file name="Feed.php" hash="b5e0d2343b2c9db1f4d86ca0e8b3a922"/><file name="Observer.php" hash="dfc8c917e3f3882d1d99c734831c6e0b"/><dir name="Source"><file name="Reason.php" hash="02eb3c4cfe3433e5a8194862aef636c4"/><dir name="Subscription"><file name="Type.php" hash="616c3f7e7e4ebe3e42e16d54d159d378"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Empty.php" hash="2af2d53c7c56b9ea4a148a2862da224b"/></dir></dir></dir><dir name="Feed"><file name="Extension.php" hash="1ff201b02db7827df350b11c19902fa2"/></dir></dir><dir name="Helper"><file name="Config.php" hash="42eff18ca97b961e1186a790abcb8690"/><file name="Data.php" hash="5492cb13c72b737d85e9009f0f623336"/><file name="Extension.php" hash="c0c987bd848e5270ec31544460438eab"/></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="neklo"><file name="core.xml" hash="8851b2c111c8e0745fb78af2bb57e6a6"/></dir></dir><dir name="template"><dir name="neklo"><dir name="core"><dir name="system"><dir name="contact"><file name="button.phtml" hash="f7b5f21ddb974aa32c888c29f3057d18"/><file name="header.phtml" hash="3c0a401955a9b2bac799aa65b5bf7a81"/></dir><dir name="extension"><file name="list.phtml" hash="29378800cc0a7488badb2698a02220d7"/></dir><dir name="subscribe"><file name="button.phtml" hash="865b84befba4d00e6a1e4de2b989776e"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="Neklo_Core.csv" hash="c6abfbb8be878de9c02339e2ecfc4e16"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="neklo"><dir name="core"><dir name="images"><file name="ok.gif" hash="a38bc2ee6e116e39c6e2e3013ee50f5e"/><file name="update.gif" hash="8342e11f7739fcfa25134707f0536ed6"/></dir><dir name="css"><file name="style.css" hash="77e35507d6f2e748afc08f11f322120d"/></dir></dir><dir name="monitor"><dir name="css"><file name="styles.css" hash="ab8dc36c3c18794064b0ea8b8c8334fb"/></dir></dir></dir></dir></dir></dir></dir><dir name="lib"><dir name="Linfo"><file name="Common.php" hash="3d55bb51d9de7438c044a012ae50175b"/><file name="Linfo.php" hash="d26c95e093e3c4d5eb456c6c5dfa1579"/><dir name="Output"><file name="Html.php" hash="5ec70c500dda56a561d188dd6e908e49"/><file name="Json.php" hash="4616bcc1ddd3eaa312ef2235e7da1586"/><file name="Ncurses.php" hash="60dbe6e0b2eb00dedccc972271a712fa"/><file name="Output.php" hash="34ef640283d567d93300a2b9c107d276"/><file name="Serialized.php" hash="aa749737127da4bb25c941557d1cfb81"/><file name="Xml.php" hash="7fb392ee95df014c30dd52130e9db45c"/></dir><dir name="Exceptions"><file name="FatalException.php" hash="ac7ae108aa403bc300ba9086410cf0a9"/></dir><dir name="Extension"><file name="Apcaccess.php" hash="8e274bd0036006e064c0cd85fbd732a9"/><file name="Cups.php" hash="25bb7dfe794d5ff211c9862615e2192b"/><file name="Dhcpd3_leases.php" hash="40ffcf2c2ec8618ff8155d197c15bbf1"/><file name="Dnsmasq_dhcpd.php" hash="bc751a49a09f06d8e4492f7ddf432cea"/><file name="Extension.php" hash="d09316ce5276805b702fdc1115b4adc3"/><file name="Ipmi.php" hash="5536abf11a4f06e0b91852f5e17b77bc"/><file name="Libvirt.php" hash="889dcd93239aecb42d6f80b2618e87b1"/><file name="Smb.php" hash="d6d4e995bf54fbdfeec0a51f70faec37"/><file name="Soldat.php" hash="bce89097e6540818f153b2df5b71b0b5"/><file name="Transmission.php" hash="e438b16dc2040d8676c7ba2c1448b6ef"/><file name="Truecrypt.php" hash="f4838a69d9eda202a5d64e8bb8ced36c"/><file name="Utorrent.php" hash="14119c01579d58a01f6489a0865855f7"/></dir><dir name="Lang"><file name="de.php" hash="e313cc8346be39d62607278bd986af23"/><file name="en.php" hash="8ee1b778ed29c64e02e3e1f118016f82"/><file name="fi.php" hash="10d10cd954719a7cee69d5bfbf67889c"/><file name="fr.php" hash="6edcf8ee5251dee98ee39f84fdd52647"/><file name="it.php" hash="d65c5225fa3ef16fd2966137c18e83f4"/><file name="pl.php" hash="2d9b92e225acf0461540d1224a0141f5"/><file name="pt.php" hash="9dd24ee347278edc24f589f6e3f12c58"/><file name="zh.php" hash="2f9ae1cfcf4e5a80127200bf9c9d0b8b"/></dir><dir name="OS"><file name="BSDcommon.php" hash="3b6c83b58e56e0a0eac250f70451be5a"/><file name="Darwin.php" hash="fc45b3648d75c96596d8c7a8559d2d74"/><file name="DragonFly.php" hash="c5ffffe8e6899a0f8352c1fd0f763135"/><file name="FreeBSD.php" hash="f07d480ebda610153b5f6d42d0143f37"/><file name="Linux.php" hash="5e36caf50252aa24fab289ae4239a591"/><file name="Minix.php" hash="22c19a5e45c4715cfcb0db1f42fd5793"/><file name="NetBSD.php" hash="f576ac8083757848bbd179420c182aeb"/><file name="OS.php" hash="49f2a6e9b1e3e56815896f0364049bef"/><file name="OpenBSD.php" hash="cd6b1bd659a30465903ebc913382b223"/><file name="SunOS.php" hash="2cfa3e63e51ca1d8928f2f521be26b3d"/><file name="Unixcommon.php" hash="9981cca8d8805302983ebe20dc2ef04d"/><file name="Windows.php" hash="f73cd25acaf3774da31b922ab3287038"/></dir><dir name="Meta"><file name="Errors.php" hash="e614a650fd523918b010b4297c4c2acd"/><file name="Timer.php" hash="ea244a5a388fa8cc470799cbdd96b866"/></dir><dir name="Parsers"><file name="CallExt.php" hash="6a671a39e8debf7e4c950491f45d8ee4"/><file name="Hddtemp.php" hash="3d0007ab7349702042a88f1e9ca23649"/><file name="Hwpci.php" hash="e26d72856736d83470e82916ba78a3ca"/><file name="Mbmon.php" hash="aa3782625c7542059838e475ccb13326"/><file name="Sensord.php" hash="2be994a2c77ba0a35398a6fc96a4c77a"/></dir></dir></dir></target></contents></package>
1
  <?xml version="1.0"?>
2
+ <package><name>Neklo_Monitor</name><version>1.1.3</version><stability>stable</stability><license>License</license><channel>community</channel><extends></extends><summary>Minor updates</summary><description>Connector for Magento Monitor Application</description><notes>- Added information about connecting module to mobile application</notes><authors><author><name>NEKLO</name><user>NEKLO</user><email>info@neklo.com</email></author></authors><date>2016-05-18</date><time>0:48:19</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Neklo_Core.xml" hash="335032ff690c5272626dca9106642680"/><file name="Neklo_Monitor.xml" hash="e93ded9f7368552a843959e953a2bf10"/></dir></dir><dir name="code"><dir name="community"><dir name="Neklo"><dir name="Monitor"><file name="Autoload.php" hash="612c4e0d0a4db5be84c29650655085f6"/><dir name="etc"><file name="adminhtml.xml" hash="897debfe836ca9d58971b44b2232187e"/><file name="config.xml" hash="06e6640dd2ed7821544a99597e751292"/><file name="system.xml" hash="c99ed6a7ac945fab0fb803d7ac5b820b"/></dir><dir name="controllers"><file name="AuthController.php" hash="c164010a1b5237587ad4edef5bd14b1d"/><file name="CustomerController.php" hash="682be2c35cb7d5d2e30b75153a93381b"/><file name="DashboardController.php" hash="8ff4c2a8b24b6256680a0c38ed232126"/><file name="InfoController.php" hash="6bfe3889fa3454d39e9fa39003cc8d20"/><file name="OrderController.php" hash="9383692d3ce5b22d22afee32ddfae10b"/><file name="ProductController.php" hash="948d4214a9ba5e68887f73b66062b6cf"/><dir name="State"><file name="CacheController.php" hash="efb77eeae42be795d7618c620270d0d7"/><file name="IndexerController.php" hash="fa23622aabd0f1d40d4d03de692ae0a2"/></dir><dir name="Var"><file name="LogController.php" hash="b0c9fb0510dd81d3de890d1050d8ac18"/><file name="ReportController.php" hash="5e871965109e78c57252fd221c8e3a9b"/></dir><dir name="Report"><file name="SalesController.php" hash="700675ceeb05054ff3be6155d37cd37c"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="c451f6e756bac9cbc5460c3b65812bb6"/></dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Frontend"><file name="Label.php" hash="bd831c28818a1b998dda55df056b28b4"/><file name="Status.php" hash="6c00cedcb46f4886476f2fda6757e692"/></dir></dir></dir></dir></dir><dir name="sql"><dir name="neklo_monitor_setup"><file name="mysql4-install-1.0.0.php" hash="3a5ee59cda3ec27eca737f515eec4a71"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="bba6559d5040c937d775a76df6611b77"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="f3bbc768ae43e1b45009de02c519dcd7"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="0a03caae9eb41f5f8bcf1a2a8476a13a"/></dir></dir><dir name="Model"><file name="Linfo.php" hash="585d42953c5585d9851dad82c0881410"/><file name="Log.php" hash="7ae437f9f39e62317faa9a2c4b57a3d2"/><file name="Minfo.php" hash="eaab8efeb41a9d2dd073093b869fe440"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Server"><file name="Type.php" hash="4c86daaa4320ac41b7bdba25f1285056"/></dir></dir><dir name="Backend"><file name="Empty.php" hash="556343bcf15ea8b294a15e77f6662cf8"/><file name="Token.php" hash="7669597367cd26bd848d0d8251feb4b7"/></dir></dir></dir><dir name="Cron"><file name="Abstract.php" hash="7183a30f5a456ee29a3e58f814999e87"/><file name="Server.php" hash="5f3e4ac9492b6e7d658fabeaa0e35e44"/><file name="Store.php" hash="97a0691ceda29f4b52481666b5ab9406"/></dir><dir name="Resource"><dir name="Minfo"><file name="Log.php" hash="54f05d3ced0a1aee770177265695eac9"/><file name="Report.php" hash="acb9c02688a9403a67904fda72c57533"/><dir name="Log"><file name="Collection.php" hash="fc6cbcd4c15227046cb7e85dfdad614d"/></dir><dir name="Report"><file name="Collection.php" hash="a9c74ab52be17dec7c4fafb883bda732"/></dir></dir></dir><dir name="Minfo"><file name="Log.php" hash="d787eeaab4cae6f3d9fe7e696c427014"/><file name="Parser.php" hash="2d7f4603d25d63b0416d338924add4e9"/><file name="Report.php" hash="d97960716a8c152d1614b8d0c752e064"/></dir><dir name="Linfo"><dir name="Os"><file name="Linux.php" hash="e61e9aceb9723b5c8e72200274b7f6ab"/></dir></dir><dir name="Gateway"><file name="Connector.php" hash="3f9667344ccd34dbe4461e71891335fa"/></dir></dir><dir name="Helper"><file name="Config.php" hash="1982c834fe1fb08757c880f2fc10c56a"/><file name="Country.php" hash="15176ed5b48639f8c50242b126e9dea4"/><file name="Data.php" hash="ebba3993c28262dc258166187cc41aba"/><file name="Date.php" hash="0aa9fb8caa33c51ba224bd1336724704"/><file name="Request.php" hash="dab02c51e8da47f8cb2b57999576ed5c"/><dir name="Request"><file name="Validator.php" hash="16375fad2da02f6732fefd465a388774"/></dir></dir></dir><dir name="Core"><dir name="etc"><file name="adminhtml.xml" hash="68b00ad4118462d74b0c0a7126063462"/><file name="config.xml" hash="3fc06c04d63578d873a4d4145785e4c0"/><file name="system.xml" hash="f9ee62f79b22584cc6180ec5e8049539"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Neklo"><dir name="Core"><file name="ContactController.php" hash="fe735a9c3c0ad9c4ecb88edd009059a9"/><file name="NewsletterController.php" hash="b9342c80bf94c29a463251b1c7b02705"/></dir></dir></dir></dir><dir name="Block"><dir name="System"><file name="Contact.php" hash="a0e89ca48de64bb8526c35598f99802b"/><file name="Extension.php" hash="8cd6609bd4f00bf8a8f5913d20e98e65"/><dir name="Contact"><file name="Header.php" hash="a6c4f8dbf002a0d2f6be0ea37445a562"/><file name="Send.php" hash="333d3059033faa826ef3781946676b16"/><dir name="Send"><file name="Button.php" hash="c94e2ae59246a968d7eb2e89e63485c8"/></dir></dir><dir name="Newsletter"><file name="Subscribe.php" hash="1015b8e49758e40c829667e94bb06220"/><dir name="Subscribe"><file name="Button.php" hash="98162d3c3280bdc3da75c90c45fc9500"/></dir></dir><dir name="Extension"><file name="List.php" hash="0006ff459c6b19de9349fa31c8be6b2b"/></dir></dir></dir><dir name="Model"><file name="Feed.php" hash="b5e0d2343b2c9db1f4d86ca0e8b3a922"/><file name="Observer.php" hash="dfc8c917e3f3882d1d99c734831c6e0b"/><dir name="Source"><file name="Reason.php" hash="02eb3c4cfe3433e5a8194862aef636c4"/><dir name="Subscription"><file name="Type.php" hash="616c3f7e7e4ebe3e42e16d54d159d378"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Empty.php" hash="2af2d53c7c56b9ea4a148a2862da224b"/></dir></dir></dir><dir name="Feed"><file name="Extension.php" hash="1ff201b02db7827df350b11c19902fa2"/></dir></dir><dir name="Helper"><file name="Config.php" hash="42eff18ca97b961e1186a790abcb8690"/><file name="Data.php" hash="5492cb13c72b737d85e9009f0f623336"/><file name="Extension.php" hash="c0c987bd848e5270ec31544460438eab"/></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="neklo"><file name="core.xml" hash="8851b2c111c8e0745fb78af2bb57e6a6"/></dir></dir><dir name="template"><dir name="neklo"><dir name="core"><dir name="system"><dir name="contact"><file name="button.phtml" hash="f7b5f21ddb974aa32c888c29f3057d18"/><file name="header.phtml" hash="3c0a401955a9b2bac799aa65b5bf7a81"/></dir><dir name="extension"><file name="list.phtml" hash="29378800cc0a7488badb2698a02220d7"/></dir><dir name="subscribe"><file name="button.phtml" hash="865b84befba4d00e6a1e4de2b989776e"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="Neklo_Core.csv" hash="c6abfbb8be878de9c02339e2ecfc4e16"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="neklo"><dir name="core"><dir name="images"><file name="ok.gif" hash="a38bc2ee6e116e39c6e2e3013ee50f5e"/><file name="update.gif" hash="8342e11f7739fcfa25134707f0536ed6"/></dir><dir name="css"><file name="style.css" hash="77e35507d6f2e748afc08f11f322120d"/></dir></dir><dir name="monitor"><dir name="css"><file name="styles.css" hash="ab8dc36c3c18794064b0ea8b8c8334fb"/></dir></dir></dir></dir></dir></dir></dir><dir name="lib"><dir name="Linfo"><file name="Common.php" hash="3d55bb51d9de7438c044a012ae50175b"/><file name="Linfo.php" hash="d26c95e093e3c4d5eb456c6c5dfa1579"/><dir name="Output"><file name="Html.php" hash="5ec70c500dda56a561d188dd6e908e49"/><file name="Json.php" hash="4616bcc1ddd3eaa312ef2235e7da1586"/><file name="Ncurses.php" hash="60dbe6e0b2eb00dedccc972271a712fa"/><file name="Output.php" hash="34ef640283d567d93300a2b9c107d276"/><file name="Serialized.php" hash="aa749737127da4bb25c941557d1cfb81"/><file name="Xml.php" hash="7fb392ee95df014c30dd52130e9db45c"/></dir><dir name="Exceptions"><file name="FatalException.php" hash="ac7ae108aa403bc300ba9086410cf0a9"/></dir><dir name="Extension"><file name="Apcaccess.php" hash="8e274bd0036006e064c0cd85fbd732a9"/><file name="Cups.php" hash="25bb7dfe794d5ff211c9862615e2192b"/><file name="Dhcpd3_leases.php" hash="40ffcf2c2ec8618ff8155d197c15bbf1"/><file name="Dnsmasq_dhcpd.php" hash="bc751a49a09f06d8e4492f7ddf432cea"/><file name="Extension.php" hash="d09316ce5276805b702fdc1115b4adc3"/><file name="Ipmi.php" hash="5536abf11a4f06e0b91852f5e17b77bc"/><file name="Libvirt.php" hash="889dcd93239aecb42d6f80b2618e87b1"/><file name="Smb.php" hash="d6d4e995bf54fbdfeec0a51f70faec37"/><file name="Soldat.php" hash="bce89097e6540818f153b2df5b71b0b5"/><file name="Transmission.php" hash="e438b16dc2040d8676c7ba2c1448b6ef"/><file name="Truecrypt.php" hash="f4838a69d9eda202a5d64e8bb8ced36c"/><file name="Utorrent.php" hash="14119c01579d58a01f6489a0865855f7"/></dir><dir name="Lang"><file name="de.php" hash="e313cc8346be39d62607278bd986af23"/><file name="en.php" hash="8ee1b778ed29c64e02e3e1f118016f82"/><file name="fi.php" hash="10d10cd954719a7cee69d5bfbf67889c"/><file name="fr.php" hash="6edcf8ee5251dee98ee39f84fdd52647"/><file name="it.php" hash="d65c5225fa3ef16fd2966137c18e83f4"/><file name="pl.php" hash="2d9b92e225acf0461540d1224a0141f5"/><file name="pt.php" hash="9dd24ee347278edc24f589f6e3f12c58"/><file name="zh.php" hash="2f9ae1cfcf4e5a80127200bf9c9d0b8b"/></dir><dir name="OS"><file name="BSDcommon.php" hash="3b6c83b58e56e0a0eac250f70451be5a"/><file name="Darwin.php" hash="fc45b3648d75c96596d8c7a8559d2d74"/><file name="DragonFly.php" hash="c5ffffe8e6899a0f8352c1fd0f763135"/><file name="FreeBSD.php" hash="f07d480ebda610153b5f6d42d0143f37"/><file name="Linux.php" hash="5e36caf50252aa24fab289ae4239a591"/><file name="Minix.php" hash="22c19a5e45c4715cfcb0db1f42fd5793"/><file name="NetBSD.php" hash="f576ac8083757848bbd179420c182aeb"/><file name="OS.php" hash="49f2a6e9b1e3e56815896f0364049bef"/><file name="OpenBSD.php" hash="cd6b1bd659a30465903ebc913382b223"/><file name="SunOS.php" hash="2cfa3e63e51ca1d8928f2f521be26b3d"/><file name="Unixcommon.php" hash="9981cca8d8805302983ebe20dc2ef04d"/><file name="Windows.php" hash="f73cd25acaf3774da31b922ab3287038"/></dir><dir name="Meta"><file name="Errors.php" hash="e614a650fd523918b010b4297c4c2acd"/><file name="Timer.php" hash="ea244a5a388fa8cc470799cbdd96b866"/></dir><dir name="Parsers"><file name="CallExt.php" hash="6a671a39e8debf7e4c950491f45d8ee4"/><file name="Hddtemp.php" hash="3d0007ab7349702042a88f1e9ca23649"/><file name="Hwpci.php" hash="e26d72856736d83470e82916ba78a3ca"/><file name="Mbmon.php" hash="aa3782625c7542059838e475ccb13326"/><file name="Sensord.php" hash="2be994a2c77ba0a35398a6fc96a4c77a"/></dir></dir></dir></target></contents></package>