CacheFill_Connector - Version 2.0.4

Version Notes

Stable

Download this release

Release Info

Developer CACHE FILL
Extension CacheFill_Connector
Version 2.0.4
Comparing to
See all releases


Code changes from version 2.0.3 to 2.0.4

app/code/community/Cachefill/Connector/Block/Adminhtml/System/Config/Login.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Block_Adminhtml_System_Config_Login extends Mage_Adminhtml_Block_System_Config_Form_Field {
14
+
15
+ protected function _toHtml() {
16
+ $htmlId = $this->getHtmlId();
17
+ $ajaxUrl = $this->getAjaxUrl();
18
+ $buttonLabel = $this->escapeHtml($this->getButtonLabel());
19
+
20
+ $htmlContent = <<< HTML_CONTENT
21
+ <script type="text/javascript">
22
+ function ajaxLogin() {
23
+ var elem = $('$htmlId');
24
+
25
+ params = {
26
+ username: $('cfconnector_general_username').value,
27
+ password: $('cfconnector_general_password').value
28
+ };
29
+
30
+ new Ajax.Request('$ajaxUrl', {
31
+ parameters: params,
32
+ onSuccess: function(response) {
33
+ result = 'Login failed!';
34
+ try {
35
+ response = JSON.parse(response.responseText);
36
+ result = response.message;
37
+ if (response.status == 1) {
38
+ elem.removeClassName('fail').addClassName('success');
39
+ } else {
40
+ elem.removeClassName('success').addClassName('fail');
41
+ }
42
+ } catch (e) {
43
+ elem.removeClassName('success').addClassName('fail');
44
+ }
45
+ $('ajax_login_result').update(result);
46
+ }
47
+ });
48
+ }
49
+ </script>
50
+ <button onclick="javascript:ajaxLogin(); return false;" class="scalable" type="button" id="$htmlId">
51
+ <span><span><span id="ajax_login_result">$buttonLabel</span></span></span>
52
+ </button>
53
+ HTML_CONTENT;
54
+
55
+ return $htmlContent;
56
+ }
57
+
58
+ public function render(Varien_Data_Form_Element_Abstract $element){
59
+ $element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
60
+ return parent::render($element);
61
+ }
62
+
63
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element){
64
+ $originalData = $element->getOriginalData();
65
+ $this->addData(array(
66
+ 'button_label' => Mage::helper('cfconnector')->__($originalData['button_label']),
67
+ 'html_id' => $element->getHtmlId(),
68
+ 'ajax_url' => Mage::getSingleton('adminhtml/url')->getUrl('*/system_config_ajax/login')
69
+ ));
70
+
71
+ return $this->_toHtml();
72
+ }
73
+ }
app/code/community/Cachefill/Connector/Block/Adminhtml/System/Config/Startnew.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Block_Adminhtml_System_Config_Startnew extends Mage_Adminhtml_Block_System_Config_Form_Field {
14
+
15
+ protected function _toHtml() {
16
+ $htmlId = $this->getHtmlId();
17
+ $ajaxUrl = $this->getAjaxUrl();
18
+ $buttonLabel = $this->escapeHtml($this->getButtonLabel());
19
+ $accessKey = Mage::helper('cfconnector')->getAccessKey();
20
+ if(!$accessKey){
21
+ return "";
22
+ }
23
+
24
+ $startRemoteUrl = Mage::helper('cfconnector')->getStartRemoteUrl();
25
+ $htmlContent = <<< HTML_CONTENT
26
+ <button onclick="setLocation('$startRemoteUrl')" class="scalable" type="button" id="$htmlId">
27
+ <span><span><span>$buttonLabel</span></span></span>
28
+ </button>
29
+ HTML_CONTENT;
30
+
31
+ return $htmlContent;
32
+ }
33
+
34
+ public function render(Varien_Data_Form_Element_Abstract $element){
35
+ $element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
36
+ return parent::render($element);
37
+ }
38
+
39
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element){
40
+ $originalData = $element->getOriginalData();
41
+ $this->addData(array(
42
+ 'button_label' => Mage::helper('cfconnector')->__($originalData['button_label']),
43
+ 'html_id' => $element->getHtmlId()
44
+ ));
45
+ return $this->_toHtml();
46
+ }
47
+
48
+ }
app/code/community/Cachefill/Connector/Block/Adminhtml/System/Config/Viewlast.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Block_Adminhtml_System_Config_Viewlast extends Mage_Adminhtml_Block_System_Config_Form_Field {
14
+
15
+ protected function _toHtml() {
16
+ $htmlId = $this->getHtmlId();
17
+ $ajaxUrl = $this->getAjaxUrl();
18
+ $buttonLabel = $this->escapeHtml($this->getButtonLabel());
19
+ $accessKey = Mage::helper('cfconnector')->getAccessKey();
20
+ if(!$accessKey){
21
+ return "";
22
+ }
23
+
24
+ $lastResultUrl = Mage::helper('cfconnector')->getLastResultUrl();
25
+ if(!$lastResultUrl){
26
+ return "";
27
+ }
28
+
29
+
30
+ $htmlContent = <<< HTML_CONTENT
31
+ <button onclick="window.open('$lastResultUrl', '_blank')" class="scalable" type="button" id="$htmlId">
32
+ <span><span><span>$buttonLabel</span></span></span>
33
+ </button>
34
+ HTML_CONTENT;
35
+
36
+ return $htmlContent;
37
+ }
38
+
39
+ public function render(Varien_Data_Form_Element_Abstract $element){
40
+ $element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
41
+ return parent::render($element);
42
+ }
43
+
44
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element){
45
+ $originalData = $element->getOriginalData();
46
+ $this->addData(array(
47
+ 'button_label' => Mage::helper('cfconnector')->__($originalData['button_label']),
48
+ 'html_id' => $element->getHtmlId()
49
+ ));
50
+ return $this->_toHtml();
51
+ }
52
+
53
+ }
app/code/community/Cachefill/Connector/Block/Rewrite/Adminhtml/Cache.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Block_Rewrite_Adminhtml_Cache extends Mage_Adminhtml_Block_Cache {
14
+
15
+ public function __construct(){
16
+ parent::__construct();
17
+ $this->_addButton('cachefill_new', array(
18
+ 'label' => Mage::helper('core')->__('Start New CACHE FILL Process'),
19
+ 'onclick' => 'setLocation(\'' . Mage::helper('cfconnector')->getStartRemoteUrl() .'\')',
20
+ 'class' => 'add',
21
+ ));
22
+
23
+ $lastResultUrl = Mage::helper('cfconnector')->getLastResultUrl();
24
+ if(!!$lastResultUrl){
25
+ $this->_addButton('cachefill_last', array(
26
+ 'label' => Mage::helper('core')->__('View Last CACHE FILL Result'),
27
+ 'onclick' => 'window.open(\'' . $lastResultUrl .'\', \'_blank\')',
28
+ 'class' => 'save',
29
+ ));
30
+ }
31
+ }
32
+
33
+
34
+
35
+ }
app/code/community/Cachefill/Connector/Helper/Data.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Helper_Data extends Mage_Core_Helper_Data {
14
+
15
+ protected $_accessKey = null;
16
+
17
+ public function getSubscriptionValidateRequestUrl($requestParamInfo) {
18
+ return "http://www.cachefill.com/cachefill/remote/subscriptionValidate/info/$requestParamInfo";
19
+ }
20
+
21
+ public function getEngineExecRequestUrl($requestParamInfo) {
22
+ return "http://www.cachefill.com/cachefill/remote/engineExec/info/$requestParamInfo";
23
+ }
24
+
25
+ public function getEngineStatusRequestUrl($requestParamInfo) {
26
+ return "http://www.cachefill.com/cachefill/remote/engineStatusCheck/info/$requestParamInfo";
27
+ }
28
+
29
+ public function getEngineExecResultUrl($execKey){
30
+ return "http://www.cachefill.com/cachefill/engine/result/key/$execKey";
31
+ }
32
+
33
+ public function getHostOnlyUrl(){
34
+ //Host only, the CACHE FILL always starts from the webroot
35
+ $siteUrl = "";
36
+ $urlInfo = parse_url(Mage::getUrl());{
37
+ if(isset($urlInfo['host'])){
38
+ $siteUrl = $urlInfo['host'];
39
+ }
40
+ }
41
+ return $siteUrl;
42
+ }
43
+
44
+ public function getStartRemoteUrl() {
45
+ return Mage::helper('adminhtml')->getUrl('cfconnector_adminhtml/service/remoteEngineExec');
46
+ }
47
+
48
+ public function getLastResultUrl() {
49
+ $accessKey = $this->getAccessKey();
50
+ if(!$accessKey){
51
+ return "";
52
+ }
53
+ $activeRemoteprocCollection = Mage::getModel('cfconnector/remoteproc')->getCollection();
54
+ $activeRemoteprocCollection->getSelect()
55
+ ->order('created_at DESC')
56
+ ->limit(1);
57
+ foreach($activeRemoteprocCollection as $activeRemoteproc){
58
+ //Update status remotely
59
+ $remoteRequestStatus = Mage::helper('cfconnector')->updateProcStatusByEngineRemote($activeRemoteproc, $accessKey);
60
+ if($remoteRequestStatus !== false){
61
+ $resultUrl = Mage::helper('cfconnector')->getEngineExecResultUrl($activeRemoteproc->getData('exec_key'));
62
+ return $resultUrl;
63
+ }
64
+ }
65
+ return "";
66
+ }
67
+
68
+ public function getAccessKey(){
69
+ if($this->_accessKey === null){
70
+ $coreConfigData = Mage::getModel('core/config_data')->load('cfconnector/general/access_key', 'path');
71
+ if(!!$coreConfigData && $coreConfigData->getValue()){
72
+ $this->_accessKey = $coreConfigData->getValue();
73
+ }
74
+ }
75
+ return $this->_accessKey;
76
+ }
77
+
78
+ public function updateProcStatusByEngineRemote($activeRemoteproc, $accessKey){
79
+ if(!$accessKey || !$activeRemoteproc || !$activeRemoteproc->getData('exec_key')){
80
+ return false;
81
+ }
82
+
83
+ $requestParamInfo = base64_encode(json_encode(array(
84
+ 'access_key' => $accessKey,
85
+ 'exec_key' => $activeRemoteproc->getData('exec_key'),
86
+ 'site_url' => $this->getHostOnlyUrl(), //Host only, the CACHE FILL always starts from the webroot
87
+ 'platform' => 'Magento',
88
+ 'version' => Mage::getVersion()
89
+ )));
90
+
91
+ $statusRequestUrl = Mage::helper('cfconnector')->getEngineStatusRequestUrl($requestParamInfo);
92
+ $statusRequestCurl = curl_init();
93
+ curl_setopt($statusRequestCurl, CURLOPT_URL, $statusRequestUrl);
94
+ curl_setopt($statusRequestCurl, CURLOPT_SSL_VERIFYPEER, 0);
95
+ curl_setopt($statusRequestCurl, CURLOPT_RETURNTRANSFER, 1);
96
+ $statusResultData = json_decode(curl_exec($statusRequestCurl), 1);
97
+ curl_close($statusRequestCurl);
98
+
99
+ //Check status, exec_key and engine_status
100
+ if(!isset($statusResultData['status'])
101
+ || $statusResultData['status'] != 1
102
+ || !isset($statusResultData['engine_status'])
103
+ ){
104
+ //Request error
105
+ return false;
106
+ }
107
+
108
+ //Update status process
109
+ if($statusResultData['engine_status'] != $activeRemoteproc->getStatus()){
110
+ $activeRemoteproc->setStatus($statusResultData['engine_status']);
111
+ $activeRemoteproc->save();
112
+ }
113
+ return $statusResultData['engine_status'];
114
+ }
115
+
116
+ }
app/code/community/Cachefill/Connector/Model/Mysql4/Remoteproc.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Model_Mysql4_Remoteproc extends Mage_Core_Model_Mysql4_Abstract {
14
+
15
+ protected function _construct(){
16
+ $this->_init('cfconnector/remoteproc', 'entity_id');
17
+ }
18
+
19
+ public function getFirstActiveProcess(){
20
+ $read = $this->_getReadAdapter();
21
+ $select = $read->select()->from($this->getMainTable())
22
+ ->where('`status` = ?', Cachefill_Connector_Model_Remoteproc::STATUS_PROCESSING);
23
+ $result = $read->fetchRow($select);
24
+ if(!$result){
25
+ return array();
26
+ }
27
+ return $result;
28
+ }
29
+
30
+ }
app/code/community/Cachefill/Connector/Model/Mysql4/Remoteproc/Collection.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Model_Mysql4_Remoteproc_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
14
+
15
+ public function _construct(){
16
+ $this->_init('cfconnector/remoteproc');
17
+ }
18
+
19
+ }
app/code/community/Cachefill/Connector/Model/Remoteproc.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Model_Remoteproc extends Mage_Core_Model_Abstract {
14
+
15
+ const STATUS_PENDING = 10;
16
+ const STATUS_PROCESSING = 20;
17
+ const STATUS_COMPLETE = 30;
18
+
19
+ protected function _construct(){
20
+ $this->_init('cfconnector/remoteproc');
21
+ }
22
+
23
+ //====== Note that json_status is compressed ======//
24
+ protected function _beforeSave(){
25
+ $datetime = date('Y-m-d H:i:s');
26
+ if(!$this->getId()){
27
+ $this->setData('created_at', $datetime);
28
+ }
29
+ $this->setData('updated_at', $datetime);
30
+ parent::_beforeSave();
31
+ }
32
+
33
+ public function getFirstActiveProcess(){
34
+ $result = $this->getResource()->getFirstActiveProcess();
35
+ $this->addData($result);
36
+ return $this;
37
+ }
38
+
39
+ public static function getStatusCodeLabel($crawlerProcStatus){
40
+ switch($crawlerProcStatus){
41
+ case self::STATUS_PENDING:
42
+ return 'pending';
43
+ break;
44
+ case self::STATUS_PROCESSING:
45
+ return 'processing';
46
+ break;
47
+ case self::STATUS_COMPLETE:
48
+ return 'complete';
49
+ break;
50
+ default:
51
+ return 'unknown';
52
+ break;
53
+ }
54
+ }
55
+
56
+ }
app/code/community/Cachefill/Connector/Model/Rewrite/Paypal/Api/Nvp.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ *
12
+ *
13
+ */
14
+ class Cachefill_Connector_Model_Rewrite_Paypal_Api_Nvp extends Mage_Paypal_Model_Api_Nvp {
15
+
16
+ public function getButtonSourceEc(){
17
+ return $this->getBuildNotationCode();
18
+ }
19
+
20
+ public function getButtonSourceDp(){
21
+ return $this->getBuildNotationCode();
22
+ }
23
+
24
+ //Important build code update, for Mage_Paypal 1.4 -
25
+ public function getBuildNotationCode($countryCode = null){
26
+ if($this->_isModuleActive('Enterprise_Enterprise')){
27
+ return 'Hara_SI_MagentoEE_PPA';
28
+ }else{
29
+ return 'Hara_SI_MagentoCE_PPA';
30
+ }
31
+ }
32
+
33
+ private function _isModuleActive($code) {
34
+ $module = Mage::getConfig()->getNode("modules/$code");
35
+ $model = Mage::getConfig()->getNode("global/models/$code");
36
+ return $module && $module->is('active') || $model;
37
+ }
38
+
39
+ }
app/code/community/Cachefill/Connector/Model/Rewrite/Paypal/Config.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ *
12
+ *
13
+ */
14
+ class Cachefill_Connector_Model_Rewrite_Paypal_Config extends Mage_Paypal_Model_Config {
15
+
16
+ protected $_isStagingMode = null;
17
+
18
+ /* Compatibility for Staging server SSL verification */
19
+ public function __get($key){
20
+ if(strcmp($key, 'verifyPeer') == 0 || strcmp($key, 'verify_peer') == 0){
21
+ if($this->_isStagingMode === null){
22
+ $this->_isStagingMode = 0;
23
+ try{
24
+ $curlResource = curl_init("https://www.paypal.com/");
25
+ curl_setopt($curlResource, CURLOPT_TIMEOUT, 3);
26
+ curl_setopt($curlResource, CURLOPT_RETURNTRANSFER, false);
27
+ curl_setopt($curlResource, CURLOPT_SSL_VERIFYPEER, true);
28
+ curl_exec($curlResource);
29
+ $curlError = curl_error($curlResource);
30
+ curl_close($curlResource);
31
+ if(!!$curlError){
32
+ $this->_isStagingMode = 1;
33
+ }
34
+ }catch (Exception $ex){
35
+ $this->_isStagingMode = 1;
36
+ }
37
+ }
38
+ if($this->_isStagingMode == 1){
39
+ return 0;
40
+ }
41
+ }
42
+ return parent::__get($key);
43
+ }
44
+
45
+ public function getBuildNotationCode($countryCode = null){
46
+ if($this->_isModuleActive('Enterprise_Enterprise')){
47
+ return 'Hara_SI_MagentoEE_PPA';
48
+ }else{
49
+ return 'Hara_SI_MagentoCE_PPA';
50
+ }
51
+ }
52
+ private function _isModuleActive($code) {
53
+ $module = Mage::getConfig()->getNode("modules/$code");
54
+ $model = Mage::getConfig()->getNode("global/models/$code");
55
+ return $module && $module->is('active') || $model;
56
+ }
57
+
58
+ }
app/code/community/Cachefill/Connector/controllers/Adminhtml/ServiceController.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Adminhtml_ServiceController extends Mage_Adminhtml_Controller_Action {
14
+
15
+ public function remoteEngineExecAction() {
16
+ //Must have a valid access_key
17
+ $accessKey = Mage::helper('cfconnector')->getAccessKey();
18
+ if(!$accessKey){
19
+ $systemConfigUrl = $this->getUrl('adminhtml/system_config/edit', array('section' => 'cfconnector'));
20
+ $this->_getSession()->addError("Your CACHE FILL service is not properly configured. Please <a href=\"$systemConfigUrl\">go to the CACHE FILL configuration panel</a>.");
21
+ $this->_redirectReferer();
22
+ return;
23
+ }
24
+
25
+ //Check if any remote process is still running
26
+ $hasActiveRemoteproc = false;
27
+ $activeRemoteprocCollection = Mage::getModel('cfconnector/remoteproc')->getCollection();
28
+ $activeRemoteprocCollection->getSelect()->where('`status` = ?', Cachefill_Connector_Model_Remoteproc::STATUS_PROCESSING);
29
+ foreach($activeRemoteprocCollection as $activeRemoteproc){
30
+ //Update status remotely
31
+ $remoteRequestStatus = Mage::helper('cfconnector')->updateProcStatusByEngineRemote($activeRemoteproc, $accessKey);
32
+ if($remoteRequestStatus !== false && $activeRemoteproc->getStatus() == Cachefill_Connector_Model_Remoteproc::STATUS_PROCESSING){
33
+ $hasActiveRemoteproc = true;
34
+ $resultUrl = Mage::helper('cfconnector')->getEngineExecResultUrl($activeRemoteproc->getData('exec_key'));
35
+ break;
36
+ }
37
+ }
38
+ if($hasActiveRemoteproc){
39
+ $this->_getSession()->addNotice("The last CACHE FILL process is still running. Please <a href=\"$resultUrl\" target=\"_blank\">click here to see preliminary results</a>.");
40
+ $this->_redirectReferer();
41
+ return;
42
+ }
43
+
44
+ //Prepare to make a new request
45
+ $requestParamInfo = base64_encode(json_encode(array(
46
+ 'access_key' => $accessKey,
47
+ 'site_url' => Mage::helper('cfconnector')->getHostOnlyUrl(), //Host only, the CACHE FILL always starts from the webroot
48
+ 'platform' => 'Magento',
49
+ 'version' => Mage::getVersion()
50
+ )));
51
+
52
+ $crawlerRequestUrl = Mage::helper('cfconnector')->getEngineExecRequestUrl($requestParamInfo);
53
+ $crawlerRequestCurl = curl_init();
54
+ curl_setopt($crawlerRequestCurl, CURLOPT_URL, $crawlerRequestUrl);
55
+ curl_setopt($crawlerRequestCurl, CURLOPT_SSL_VERIFYPEER, 0);
56
+ curl_setopt($crawlerRequestCurl, CURLOPT_RETURNTRANSFER, 1);
57
+ $crawlerResultData = json_decode(curl_exec($crawlerRequestCurl), 1);
58
+ curl_close($crawlerRequestCurl);
59
+
60
+ //Check status, exec_key and engine_status
61
+ if(!isset($crawlerResultData['status'])
62
+ || $crawlerResultData['status'] != 1
63
+ || !isset($crawlerResultData['exec_key'])
64
+ ){
65
+ $this->_getSession()->addError("There is an error trying to run CACHE FILL on your site. Please try again later.");
66
+ $this->_redirectReferer();
67
+ return;
68
+ }
69
+
70
+ //Save a new process
71
+ $remoteproc = Mage::getModel('cfconnector/remoteproc');
72
+ $remoteproc->setExecKey($crawlerResultData['exec_key']);
73
+ if(isset($crawlerResultData['engine_status'])){
74
+ $remoteproc->setStatus($crawlerResultData['engine_status']);
75
+ }
76
+ $remoteproc->save();
77
+
78
+ //Try to save the engine request and status
79
+ $resultUrl = Mage::helper('cfconnector')->getEngineExecResultUrl($crawlerResultData['exec_key']);
80
+ $this->_getSession()->addSuccess(Mage::helper('adminhtml')->__("The CACHE FILL process is running in the background. <a href=\"$resultUrl\" target=\"_blank\">Click here to see preliminary results</a>."));
81
+ $this->_redirectReferer();
82
+ return;
83
+ }
84
+
85
+ protected function _getSession() {
86
+ return Mage::getSingleton('adminhtml/session');
87
+ }
88
+
89
+ }
app/code/community/Cachefill/Connector/controllers/Adminhtml/System/Config/AjaxController.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ class Cachefill_Connector_Adminhtml_System_Config_AjaxController extends Mage_Adminhtml_Controller_Action {
14
+
15
+ public function loginAction() {
16
+ try{
17
+ $username = $this->getRequest()->getParam('username');
18
+ $password = $this->getRequest()->getParam('password');
19
+ //Check encrypted password
20
+ if (preg_match('/^\*+$/', $password)) {
21
+ $password = Mage::helper('core')->decrypt(Mage::getStoreConfig('waconnector/general/password'));
22
+ }
23
+
24
+ //Host only, the CACHE FILL always starts from the webroot
25
+ $requestParamInfo = base64_encode(json_encode(array(
26
+ 'username' => $username,
27
+ 'password' => $password,
28
+ 'site_url' => Mage::helper('cfconnector')->getHostOnlyUrl(), //Host only, the CACHE FILL always starts from the webroot
29
+ 'platform' => 'Magento',
30
+ 'version' => Mage::getVersion()
31
+ )));
32
+
33
+ $loginRequestUrl = Mage::helper('cfconnector')->getSubscriptionValidateRequestUrl($requestParamInfo);
34
+ $loginRequestCurl = curl_init();
35
+ curl_setopt($loginRequestCurl, CURLOPT_URL, $loginRequestUrl);
36
+ curl_setopt($loginRequestCurl, CURLOPT_SSL_VERIFYPEER, 0);
37
+ curl_setopt($loginRequestCurl, CURLOPT_RETURNTRANSFER, 1);
38
+ $loginResultData = json_decode(curl_exec($loginRequestCurl), 1);
39
+ curl_close($loginRequestCurl);
40
+
41
+ if(!isset($loginResultData['status'])){
42
+ throw new Exception('Connection Failed.');
43
+ }
44
+
45
+ if($loginResultData['status'] != 1){
46
+ if(!isset($loginResultData['message'])){
47
+ throw new Exception('Connection Failed.');
48
+ }else{
49
+ throw new Exception($loginResultData['message']);
50
+ }
51
+ }
52
+
53
+ if(!isset($loginResultData['access_key'])){
54
+ throw new Exception('Invalid access key.');
55
+ }
56
+
57
+ $accessKeyConfigValue = $loginResultData['access_key'];
58
+ echo json_encode(array(
59
+ 'status' => 1,
60
+ 'message' => 'Success! Please save configuration.'
61
+ )); //Json success
62
+
63
+ }catch(Exception $e){
64
+ $accessKeyConfigValue = "";
65
+ echo json_encode(array(
66
+ 'status' => 0,
67
+ 'message' => $e->getMessage()
68
+ )); //Json error
69
+
70
+ }
71
+
72
+ $coreConfigData = Mage::getModel('core/config_data')->load('cfconnector/general/access_key', 'path');
73
+ $coreConfigData->setPath('cfconnector/general/access_key'); //In case of new save
74
+ $coreConfigData->setValue($accessKeyConfigValue);
75
+ $coreConfigData->save();
76
+ exit;
77
+ }
78
+
79
+ }
app/code/community/Cachefill/Connector/etc/config.xml ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ *
12
+ -->
13
+ <config>
14
+ <modules>
15
+ <Cachefill_Connector>
16
+ <version>1.0.0</version>
17
+ </Cachefill_Connector>
18
+ </modules>
19
+ <global>
20
+ <blocks>
21
+ <adminhtml>
22
+ <rewrite>
23
+ <cache>Cachefill_Connector_Block_Rewrite_Adminhtml_Cache</cache>
24
+ </rewrite>
25
+ </adminhtml>
26
+ <cfconnector>
27
+ <class>Cachefill_Connector_Block</class>
28
+ </cfconnector>
29
+ </blocks>
30
+ <helpers>
31
+ <cfconnector>
32
+ <class>Cachefill_Connector_Helper</class>
33
+ </cfconnector>
34
+ </helpers>
35
+ <models>
36
+ <cfconnector>
37
+ <class>Cachefill_Connector_Model</class>
38
+ <resourceModel>cfconnector_mysql4</resourceModel>
39
+ </cfconnector>
40
+ <paypal>
41
+ <rewrite>
42
+ <!-- /* Compatibility for Staging server SSL verification */ -->
43
+ <config>Cachefill_Connector_Model_Rewrite_Paypal_Config</config>
44
+ <api_nvp>Cachefill_Connector_Model_Rewrite_Paypal_Api_Nvp</api_nvp>
45
+ </rewrite>
46
+ </paypal>
47
+ <cfconnector_mysql4>
48
+ <class>Cachefill_Connector_Model_Mysql4</class>
49
+ <entities>
50
+ <remoteproc>
51
+ <table>cfconnector_remoteproc</table>
52
+ </remoteproc>
53
+ </entities>
54
+ </cfconnector_mysql4>
55
+ </models>
56
+ <resources>
57
+ <cfconnector_setup>
58
+ <setup>
59
+ <module>Cachefill_Connector</module>
60
+ </setup>
61
+ <connection>
62
+ <use>core_setup</use>
63
+ </connection>
64
+ </cfconnector_setup>
65
+ </resources>
66
+ </global>
67
+ <admin>
68
+ <routers>
69
+ <adminhtml>
70
+ <args>
71
+ <modules>
72
+ <cfconnector before="Mage_Adminhtml">Cachefill_Connector_Adminhtml</cfconnector>
73
+ </modules>
74
+ </args>
75
+ </adminhtml>
76
+ <cfconnector_adminhtml>
77
+ <use>admin</use>
78
+ <args>
79
+ <module>Cachefill_Connector_Adminhtml</module>
80
+ <frontName>cfconnector_adminhtml</frontName>
81
+ </args>
82
+ </cfconnector_adminhtml>
83
+ </routers>
84
+ </admin>
85
+ <adminhtml>
86
+ <acl>
87
+ <resources>
88
+ <admin>
89
+ <children>
90
+ <system>
91
+ <children>
92
+ <config>
93
+ <children>
94
+ <cfconnector translate="title" module="cfconnector">
95
+ <title>CACHE FILL Connector</title>
96
+ </cfconnector>
97
+ </children>
98
+ </config>
99
+ </children>
100
+ </system>
101
+ </children>
102
+ </admin>
103
+ </resources>
104
+ </acl>
105
+ </adminhtml>
106
+ <default>
107
+ <cfconnector>
108
+ <general>
109
+ <is_enabled>1</is_enabled>
110
+ </general>
111
+ </cfconnector>
112
+ <paypal>
113
+ <!-- /* Compatibility for Staging server SSL verification */ -->
114
+ <wpp>
115
+ <button_source_ec>Hara_SI_MagentoCE_PPA</button_source_ec>
116
+ <button_source_dp>Hara_SI_MagentoCE_PPA</button_source_dp>
117
+ </wpp>
118
+ </paypal>
119
+ </default>
120
+ </config>
app/code/community/Cachefill/Connector/etc/system.xml ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ *
12
+ -->
13
+ <config>
14
+ <tabs>
15
+ <cfconnector translate="label" module="cfconnector">
16
+ <label>CACHE FILL Connector</label>
17
+ <sort_order>100</sort_order>
18
+ </cfconnector>
19
+ </tabs>
20
+ <sections>
21
+ <cfconnector translate="label" module="cfconnector">
22
+ <class>separator-top</class>
23
+ <label>CACHE FILL Connector Settings</label>
24
+ <tab>cfconnector</tab>
25
+ <frontend_type>text</frontend_type>
26
+ <sort_order>100</sort_order>
27
+ <show_in_default>1</show_in_default>
28
+ <show_in_website>1</show_in_website>
29
+ <show_in_store>1</show_in_store>
30
+ <groups>
31
+ <signup translate="label" module="cfconnector">
32
+ <label>Sign Up</label>
33
+ <frontend_type>text</frontend_type>
34
+ <sort_order>100</sort_order>
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>1</show_in_store>
38
+ <expanded>1</expanded>
39
+ <comment><![CDATA[Please use this link to <a target="_blank" style="color: #F79622;" href="http://www.cachefill.com/">Sign Up</a> for our CACHE FILL solution.]]></comment>
40
+ </signup>
41
+ <general translate="label" module="cfconnector">
42
+ <label>Configuration</label>
43
+ <frontend_type>text</frontend_type>
44
+ <sort_order>200</sort_order>
45
+ <show_in_default>1</show_in_default>
46
+ <show_in_website>1</show_in_website>
47
+ <show_in_store>1</show_in_store>
48
+ <expanded>1</expanded>
49
+ <fields>
50
+ <is_enabled translate="label">
51
+ <label>Is Enabled</label>
52
+ <frontend_type>select</frontend_type>
53
+ <source_model>adminhtml/system_config_source_yesno</source_model>
54
+ <sort_order>110</sort_order>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>1</show_in_store>
58
+ </is_enabled>
59
+ <username translate="label">
60
+ <label>Username</label>
61
+ <frontend_type>text</frontend_type>
62
+ <sort_order>120</sort_order>
63
+ <show_in_default>1</show_in_default>
64
+ <show_in_website>1</show_in_website>
65
+ <show_in_store>0</show_in_store>
66
+ <validate>required-entry</validate>
67
+ </username>
68
+ <password translate="label">
69
+ <label>Password</label>
70
+ <frontend_type>obscure</frontend_type>
71
+ <backend_model>adminhtml/system_config_backend_encrypted</backend_model>
72
+ <sort_order>130</sort_order>
73
+ <show_in_default>1</show_in_default>
74
+ <show_in_website>1</show_in_website>
75
+ <show_in_store>0</show_in_store>
76
+ <validate>required-entry</validate>
77
+ </password>
78
+ <user_login_wizard translate="button_label">
79
+ <label></label>
80
+ <comment><![CDATA[Please save your configuration after the test.]]></comment>
81
+ <button_label>Test login credentials</button_label>
82
+ <frontend_model>cfconnector/adminhtml_system_config_login</frontend_model>
83
+ <sort_order>140</sort_order>
84
+ <show_in_default>1</show_in_default>
85
+ <show_in_website>1</show_in_website>
86
+ <show_in_store>0</show_in_store>
87
+ </user_login_wizard>
88
+ <start_new_wizard translate="button_label">
89
+ <label></label>
90
+ <button_label>Start New CACHE FILL Process</button_label>
91
+ <frontend_model>cfconnector/adminhtml_system_config_startnew</frontend_model>
92
+ <sort_order>210</sort_order>
93
+ <show_in_default>1</show_in_default>
94
+ <show_in_website>1</show_in_website>
95
+ <show_in_store>0</show_in_store>
96
+ </start_new_wizard>
97
+ <view_last_wizard translate="button_label">
98
+ <label></label>
99
+ <button_label>View Last CACHE FILL Result</button_label>
100
+ <frontend_model>cfconnector/adminhtml_system_config_viewlast</frontend_model>
101
+ <sort_order>220</sort_order>
102
+ <show_in_default>1</show_in_default>
103
+ <show_in_website>1</show_in_website>
104
+ <show_in_store>0</show_in_store>
105
+ </view_last_wizard>
106
+ </fields>
107
+ </general>
108
+ <help translate="label" module="cfconnector">
109
+ <label>Need Help?</label>
110
+ <frontend_type>text</frontend_type>
111
+ <sort_order>300</sort_order>
112
+ <show_in_default>1</show_in_default>
113
+ <show_in_website>1</show_in_website>
114
+ <show_in_store>1</show_in_store>
115
+ <expanded>1</expanded>
116
+ <comment><![CDATA[Need help? <a target="_blank" style="color: #F79622;" href="http://www.cachefill.com/contacts/">Let us know</a>.<br/>]]></comment>
117
+ </help>
118
+ </groups>
119
+ </cfconnector>
120
+ </sections>
121
+ </config>
app/code/community/Cachefill/Connector/sql/cfconnector_setup/mysql4-install-1.0.0.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ */
12
+
13
+ $installer = $this;
14
+ $installer->startSetup();
15
+
16
+ $installer->run("
17
+
18
+ -- DROP TABLE IF EXISTS {$this->getTable('cfconnector/remoteproc')};
19
+ CREATE TABLE {$this->getTable('cfconnector/remoteproc')}(
20
+ `entity_id` int(10) unsigned not null auto_increment,
21
+ `exec_key` varchar(255) not null,
22
+ `status` smallint(5) default null,
23
+ `created_at` datetime default null,
24
+ `updated_at` datetime default null,
25
+ PRIMARY KEY (`entity_id`),
26
+ UNIQUE KEY `UNQ_CACHEFILL_REMOTEPROC_EXEC_KEY` (`exec_key`)
27
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CACHE FILL Remote Procedure';
28
+ ");
29
+
30
+ $installer->endSetup();
app/etc/modules/Cachefill_Connector.xml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ * NOTICE OF LICENSE
4
+ *
5
+ * This source file is subject to the End User Software Agreement (EULA).
6
+ * It is also available through the world-wide-web at this URL:
7
+ * http://www.harapartners.com/license
8
+ * If you did not receive a copy of the license and are unable to
9
+ * obtain it through the world-wide-web, please send an email
10
+ * to eula@harapartners.com so we can send you a copy immediately.
11
+ *
12
+ -->
13
+ <config>
14
+ <modules>
15
+ <Cachefill_Connector>
16
+ <active>true</active>
17
+ <codePool>community</codePool>
18
+ </Cachefill_Connector>
19
+ </modules>
20
+ </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CacheFill_Connector</name>
4
- <version>2.0.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.harapartners.com/terms/eula">Hara Partners End User License Agreement</license>
7
  <channel>community</channel>
@@ -15,8 +15,8 @@ Use CACHE FILL every time you refresh and clear your server cache to fill it up
15
  <notes>Stable</notes>
16
  <authors><author><name>CACHE FILL</name><user>cachefill</user><email>magento@cachefill.com</email></author></authors>
17
  <date>2013-11-26</date>
18
- <time>18:49:07</time>
19
- <contents><target name="mageetc"><dir name="modules"><file name="CacheFill_Connector.xml" hash=""/></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
22
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CacheFill_Connector</name>
4
+ <version>2.0.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.harapartners.com/terms/eula">Hara Partners End User License Agreement</license>
7
  <channel>community</channel>
15
  <notes>Stable</notes>
16
  <authors><author><name>CACHE FILL</name><user>cachefill</user><email>magento@cachefill.com</email></author></authors>
17
  <date>2013-11-26</date>
18
+ <time>18:54:13</time>
19
+ <contents><target name="magecommunity"><dir name="Cachefill"><dir name="Connector"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Login.php" hash="a2b3a8cd6d8f4ab6c643327c31d2d3ca"/><file name="Startnew.php" hash="4a0901d1d5e174a186a0dcc8a66c418d"/><file name="Viewlast.php" hash="91bfe26d669f2c0a6c532e4d7db60d4d"/></dir></dir></dir><dir name="Rewrite"><dir name="Adminhtml"><file name="Cache.php" hash="7711a2d617e1c2ce6b3fcb2337a5e0b4"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="86318acfbe973aa6bf92f9b36989fdb8"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Remoteproc"><file name="Collection.php" hash="e565d3db46bc43b00bb1641c3d8db10b"/></dir><file name="Remoteproc.php" hash="58a8de2b6e8e700aea2f04fda007fb7e"/></dir><file name="Remoteproc.php" hash="fdd8afefc2a9431e16b0317792e43f1f"/><dir name="Rewrite"><dir name="Paypal"><dir name="Api"><file name="Nvp.php" hash="d3eb6a78a8382bf23f995e099def7b18"/></dir><file name="Config.php" hash="0790d2b007551d55610de68952f36c6c"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ServiceController.php" hash="d4b28f27bcc325ea3f6e607e9721ab6e"/><dir name="System"><dir name="Config"><file name="AjaxController.php" hash="d7255967773c5d60b30f883bc61511f2"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="27a229a6aece1174d3709e24c35b79bb"/><file name="system.xml" hash="0a1bb4c42f743fd22852d1662e2868df"/></dir><dir name="sql"><dir name="cfconnector_setup"><file name="mysql4-install-1.0.0.php" hash="65eac1a3a4b068b391b05f6ad42c8678"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cachefill_Connector.xml" hash="b84276cba22101c3634110b26bd0afa8"/></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
22
  </package>