Plumrocket_Twitter_Facebook_Login - Version 1.4.2

Version Notes

- Now Twitter returns real email address of the user, thus allowing to create a valid Magento account
- Fixed bug with "Foreign Key" value in the database and "MyISAM" storage engine

Download this release

Release Info

Developer Plumrocket Team
Extension Plumrocket_Twitter_Facebook_Login
Version 1.4.2
Comparing to
See all releases


Code changes from version 1.4.1 to 1.4.2

app/code/community/Plumrocket/SocialLogin/Model/Account.php CHANGED
@@ -28,7 +28,7 @@ class Plumrocket_SocialLogin_Model_Account extends Mage_Core_Model_Abstract
28
  protected $_passwordLength = 6;
29
 
30
  protected $_photoDir = null;
31
- protected $_photoSize = 40;
32
 
33
  protected $_applicationId = null;
34
  protected $_secret = null;
28
  protected $_passwordLength = 6;
29
 
30
  protected $_photoDir = null;
31
+ protected $_photoSize = 150;
32
 
33
  protected $_applicationId = null;
34
  protected $_secret = null;
app/code/community/Plumrocket/SocialLogin/Model/Twitter.php CHANGED
@@ -18,38 +18,38 @@
18
 
19
  class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_Account
20
  {
21
- protected $_type = 'twitter';
22
 
23
  const URL_REQUEST_TOKEN = 'https://api.twitter.com/oauth/request_token';
24
  const URL_AUTHORIZE = 'https://api.twitter.com/oauth/authorize';
25
  const URL_ACCESS_TOKEN = 'https://api.twitter.com/oauth/access_token';
26
- const URL_ACCOUNT_DATA = 'https://api.twitter.com/1.1/users/show.json';
27
 
28
- protected $_responseType = array('oauth_token', 'oauth_verifier');
29
 
30
- protected $_fields = array(
31
- 'user_id' => 'id',
32
- 'firstname' => 'name',
33
- 'lastname' => 'name2',
34
- 'email' => null,
35
- 'dob' => null,
36
  'gender' => null,
37
  'photo' => 'profile_image_url',
38
- );
39
 
40
- protected $_buttonLinkParams = null;
41
 
42
  protected $_popupSize = array(630, 650);
43
 
44
- public function _construct()
45
- {
46
- parent::_construct();
47
  }
48
 
49
  public function getProviderLink()
50
  {
51
  $token = $this->_getStartToken();
52
- if(!empty($token['oauth_token'])) {
53
  $this->_buttonLinkParams = self::URL_AUTHORIZE .'?oauth_token='. $token['oauth_token'];
54
  }
55
  return parent::getProviderLink();
@@ -58,20 +58,20 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
58
  // Step 2.
59
  public function loadUserData($response)
60
  {
61
- if(empty($response['oauth_token']) || empty($response['oauth_verifier'])) {
62
  return false;
63
  }
64
-
65
  $data = array();
66
  $session = Mage::getSingleton('customer/session');
67
 
68
  $oauth_nonce = md5(uniqid(rand(), true));
69
  $oauth_timestamp = time();
70
 
71
- if(empty($response['oauth_token']) || empty($response['oauth_verifier']) || !$session->getData('oauth_token_secret')) {
72
  return false;
73
  }
74
-
75
  $oauth_token = $response['oauth_token'];
76
  $oauth_verifier = $response['oauth_verifier'];
77
  $oauth_token_secret = $session->getData('oauth_token_secret');
@@ -101,13 +101,13 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
101
  $url .= '&oauth_version=1.0';
102
 
103
  $result = null;
104
- if($response = $this->_call($url)) {
105
  parse_str($response, $result);
106
  }
107
  $this->_setLog($result);
108
 
109
  // Get user data.
110
- if(!empty($result['oauth_token']) && !empty($result['oauth_token_secret'])) {
111
  $oauth_nonce = md5(uniqid(rand(), true));
112
  $oauth_timestamp = time();
113
 
@@ -117,6 +117,7 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
117
 
118
  $oauth_base_text = "GET&";
119
  $oauth_base_text .= urlencode(self::URL_ACCOUNT_DATA).'&';
 
120
  $oauth_base_text .= urlencode('oauth_consumer_key='.$this->_applicationId.'&');
121
  $oauth_base_text .= urlencode('oauth_nonce='.$oauth_nonce.'&');
122
  $oauth_base_text .= urlencode('oauth_signature_method=HMAC-SHA1&');
@@ -129,7 +130,8 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
129
  $signature = base64_encode(hash_hmac("sha1", $oauth_base_text, $key, true));
130
 
131
  $url = self::URL_ACCOUNT_DATA;
132
- $url .= '?oauth_consumer_key=' . $this->_applicationId;
 
133
  $url .= '&oauth_nonce=' . $oauth_nonce;
134
  $url .= '&oauth_signature=' . urlencode($signature);
135
  $url .= '&oauth_signature_method=HMAC-SHA1';
@@ -139,15 +141,15 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
139
  $url .= '&screen_name=' . $screen_name;
140
 
141
  $data = array();
142
- if($response = $this->_call($url)) {
143
  $data = json_decode($response, true);
144
  }
145
-
146
  $this->_setLog($data, true);
147
  }
148
-
149
- if(!$this->_userData = $this->_prepareData($data)) {
150
- return false;
151
  }
152
 
153
  $this->_setLog($this->_userData, true);
@@ -184,11 +186,11 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
184
  $url .= '&oauth_timestamp='.$oauth_timestamp;
185
  $url .= '&oauth_version=1.0';
186
 
187
- if($response = $this->_call($url)) {
188
  parse_str($response, $result);
189
  }
190
 
191
- if(!empty($result['oauth_token_secret'])) {
192
  $session = Mage::getSingleton('customer/session');
193
  // $_SESSION['oauth_token'] = $result['oauth_token'];
194
  $session->setData('oauth_token_secret', $result['oauth_token_secret']);
@@ -199,11 +201,11 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
199
 
200
  protected function _prepareData($data)
201
  {
202
- if(empty($data['id'])) {
203
- return false;
204
- }
205
 
206
- if(!empty($data['name'])) {
207
  $nameParts = explode(' ', $data['name'], 2);
208
  $data['name'] = $nameParts[0];
209
  $data['name2'] = !empty($nameParts[1])? $nameParts[1] : '';
@@ -211,5 +213,4 @@ class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_
211
 
212
  return parent::_prepareData($data);
213
  }
214
-
215
  }
18
 
19
  class Plumrocket_SocialLogin_Model_Twitter extends Plumrocket_SocialLogin_Model_Account
20
  {
21
+ protected $_type = 'twitter';
22
 
23
  const URL_REQUEST_TOKEN = 'https://api.twitter.com/oauth/request_token';
24
  const URL_AUTHORIZE = 'https://api.twitter.com/oauth/authorize';
25
  const URL_ACCESS_TOKEN = 'https://api.twitter.com/oauth/access_token';
26
+ const URL_ACCOUNT_DATA = 'https://api.twitter.com/1.1/account/verify_credentials.json';
27
 
28
+ protected $_responseType = array('oauth_token', 'oauth_verifier');
29
 
30
+ protected $_fields = array(
31
+ 'user_id' => 'id',
32
+ 'firstname' => 'name',
33
+ 'lastname' => 'name2',
34
+ 'email' => 'email',
35
+ 'dob' => null,
36
  'gender' => null,
37
  'photo' => 'profile_image_url',
38
+ );
39
 
40
+ protected $_buttonLinkParams = null;
41
 
42
  protected $_popupSize = array(630, 650);
43
 
44
+ public function _construct()
45
+ {
46
+ parent::_construct();
47
  }
48
 
49
  public function getProviderLink()
50
  {
51
  $token = $this->_getStartToken();
52
+ if (!empty($token['oauth_token'])) {
53
  $this->_buttonLinkParams = self::URL_AUTHORIZE .'?oauth_token='. $token['oauth_token'];
54
  }
55
  return parent::getProviderLink();
58
  // Step 2.
59
  public function loadUserData($response)
60
  {
61
+ if (empty($response['oauth_token']) || empty($response['oauth_verifier'])) {
62
  return false;
63
  }
64
+
65
  $data = array();
66
  $session = Mage::getSingleton('customer/session');
67
 
68
  $oauth_nonce = md5(uniqid(rand(), true));
69
  $oauth_timestamp = time();
70
 
71
+ if (empty($response['oauth_token']) || empty($response['oauth_verifier']) || !$session->getData('oauth_token_secret')) {
72
  return false;
73
  }
74
+
75
  $oauth_token = $response['oauth_token'];
76
  $oauth_verifier = $response['oauth_verifier'];
77
  $oauth_token_secret = $session->getData('oauth_token_secret');
101
  $url .= '&oauth_version=1.0';
102
 
103
  $result = null;
104
+ if ($response = $this->_call($url)) {
105
  parse_str($response, $result);
106
  }
107
  $this->_setLog($result);
108
 
109
  // Get user data.
110
+ if (!empty($result['oauth_token']) && !empty($result['oauth_token_secret'])) {
111
  $oauth_nonce = md5(uniqid(rand(), true));
112
  $oauth_timestamp = time();
113
 
117
 
118
  $oauth_base_text = "GET&";
119
  $oauth_base_text .= urlencode(self::URL_ACCOUNT_DATA).'&';
120
+ $oauth_base_text .= urlencode("include_email=true&");
121
  $oauth_base_text .= urlencode('oauth_consumer_key='.$this->_applicationId.'&');
122
  $oauth_base_text .= urlencode('oauth_nonce='.$oauth_nonce.'&');
123
  $oauth_base_text .= urlencode('oauth_signature_method=HMAC-SHA1&');
130
  $signature = base64_encode(hash_hmac("sha1", $oauth_base_text, $key, true));
131
 
132
  $url = self::URL_ACCOUNT_DATA;
133
+ $url .= "?include_email=true";
134
+ $url .= '&oauth_consumer_key=' . $this->_applicationId;
135
  $url .= '&oauth_nonce=' . $oauth_nonce;
136
  $url .= '&oauth_signature=' . urlencode($signature);
137
  $url .= '&oauth_signature_method=HMAC-SHA1';
141
  $url .= '&screen_name=' . $screen_name;
142
 
143
  $data = array();
144
+ if ($response = $this->_call($url)) {
145
  $data = json_decode($response, true);
146
  }
147
+
148
  $this->_setLog($data, true);
149
  }
150
+
151
+ if (!$this->_userData = $this->_prepareData($data)) {
152
+ return false;
153
  }
154
 
155
  $this->_setLog($this->_userData, true);
186
  $url .= '&oauth_timestamp='.$oauth_timestamp;
187
  $url .= '&oauth_version=1.0';
188
 
189
+ if ($response = $this->_call($url)) {
190
  parse_str($response, $result);
191
  }
192
 
193
+ if (!empty($result['oauth_token_secret'])) {
194
  $session = Mage::getSingleton('customer/session');
195
  // $_SESSION['oauth_token'] = $result['oauth_token'];
196
  $session->setData('oauth_token_secret', $result['oauth_token_secret']);
201
 
202
  protected function _prepareData($data)
203
  {
204
+ if (empty($data['id'])) {
205
+ return false;
206
+ }
207
 
208
+ if (!empty($data['name'])) {
209
  $nameParts = explode(' ', $data['name'], 2);
210
  $data['name'] = $nameParts[0];
211
  $data['name2'] = !empty($nameParts[1])? $nameParts[1] : '';
213
 
214
  return parent::_prepareData($data);
215
  }
 
216
  }
app/code/community/Plumrocket/SocialLogin/controllers/AccountController.php CHANGED
@@ -18,7 +18,7 @@
18
 
19
  class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Front_Action
20
  {
21
-
22
  public function useAction()
23
  {
24
  $session = $this->_getSession();
@@ -28,30 +28,30 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
28
 
29
  $type = $this->getRequest()->getParam('type');
30
  $className = 'Plumrocket_SocialLogin_Model_'. ucfirst($type);
31
- if(!$type || !class_exists($className)) {
32
  return $this->_windowClose();
33
  }
34
  $model = Mage::getSingleton("pslogin/$type");
35
 
36
- if(!$this->_getHelper()->moduleEnabled() || !$model->enabled()) {
37
  return $this->_windowClose();
38
  }
39
-
40
- if($call = $this->getRequest()->getParam('call')) {
41
  $this->_getHelper()->apiCall(array(
42
  'type' => $type,
43
  'action' => $call,
44
  ));
45
- }else{
46
  $this->_getHelper()->apiCall(null);
47
  }
48
 
49
  switch($model->getProtocol()) {
50
 
51
  case 'OAuth':
52
- if($link = $model->getProviderLink()) {
53
  $this->_redirectUrl($link);
54
- }else{
55
  $this->getResponse()->setBody($this->__('This Login Application was not configured correctly. Please contact our customer support.'));
56
  }
57
  break;
@@ -61,7 +61,7 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
61
  default:
62
  return $this->_windowClose();
63
  }
64
-
65
  }
66
 
67
  public function loginAction()
@@ -82,12 +82,12 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
82
 
83
  // API.
84
  $callTarget = false;
85
- if($call = $this->_getHelper()->apiCall()) {
86
- if(isset($call['type']) && $call['type'] == $type && !empty($call['action'])) {
87
  $_target = explode('.', $call['action'], 3);
88
- if(count($_target) === 3) {
89
  $callTarget = $_target;
90
- }else{
91
  $this->_windowClose();
92
  return;
93
  }
@@ -100,49 +100,67 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
100
  }
101
 
102
  $className = 'Plumrocket_SocialLogin_Model_'. ucfirst($type);
103
- if(!$type || !class_exists($className)) {
104
  return $this->_windowClose();
105
  // $this->_redirect('customer/account/login');
106
  }
107
  $model = Mage::getSingleton("pslogin/$type");
108
 
109
- /*if(!$this->_getHelper()->moduleEnabled() || !$model->enabled()) {
110
  return $this->_windowClose();
111
  // $this->_redirect('customer/account/login');
112
  }*/
113
 
114
  $responseTypes = $model->getResponseType();
115
- if(is_array($responseTypes)) {
116
  $response = array();
117
  foreach ($responseTypes as $responseType) {
118
  $response[$responseType] = $this->getRequest()->getParam($responseType);
119
  }
120
- }else{
121
  $response = $this->getRequest()->getParam($responseTypes);
122
  }
123
  $model->_setLog($this->getRequest()->getParams());
124
 
125
- if(!$model->loadUserData($response)) {
126
  return $this->_windowClose();
127
  // $this->_redirect('customer/account/login');
128
  }
129
 
130
  // Switch store.
131
- if($storeId) {
132
  Mage::app()->setCurrentStore($storeId);
133
  }
134
 
135
  // API.
136
- if($callTarget) {
137
  list($module, $controller, $action) = $callTarget;
138
  $this->_forward($action, $controller, $module, array('pslogin' => $model->getUserData()));
139
  return;
140
  }
141
 
142
- if($customerId = $model->getCustomerIdByUserId()) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  # Do auth.
144
  $redirectUrl = $this->_getHelper()->getRedirectUrl();
145
- }elseif($customerId = $model->getCustomerIdByEmail()) {
146
  # Customer with received email was placed in db.
147
  // Remember customer.
148
  $model->setCustomerIdByUserId($customerId);
@@ -150,28 +168,28 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
150
  $url = $this->_getUrl('customer/account/forgotpassword');
151
  $message = $this->__('Customer with email (%s) already exists in the database. If you are sure that it is your email address, please <a href="%s">click here</a> to retrieve your password and access your account.', $model->getUserData('email'), $url);
152
  $session->addNotice($message);
153
-
154
  $redirectUrl = $this->_getHelper()->getRedirectUrl();
155
- }else{
156
  # Registration customer.
157
- if($customerId = $model->registrationCustomer()) {
158
  # Success.
159
  // Display system messages (before setCustomerIdByUserId(), because reset messages).
160
- if($this->_getHelper()->isFakeMail($model->getUserData('email'))) {
161
  $session->addSuccess($this->__('Customer registration successful.'));
162
- }else{
163
  $session->addSuccess($this->__('Customer registration successful. Your password was send to the email: %s', $model->getUserData('email')));
164
  }
165
-
166
- if($errors = $model->getErrors()) {
167
  foreach ($errors as $error) {
168
  $session->addNotice($error);
169
  }
170
  }
171
-
172
  // Dispatch event.
173
  $this->_dispatchRegisterSuccess($model->getCustomer());
174
-
175
  // Remember customer.
176
  $model->setCustomerIdByUserId($customerId);
177
 
@@ -182,12 +200,12 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
182
  $this->_getHelper()->showPopup(true);
183
 
184
  $redirectUrl = $this->_getHelper()->getRedirectUrl('register');
185
- }else{
186
  # Error.
187
  $session->setCustomerFormData($model->getUserData());
188
  $redirectUrl = $this->_getUrl('customer/account/create', array('_secure' => true));
189
-
190
- if($errors = $model->getErrors()) {
191
  foreach ($errors as $error) {
192
  $session->addError($error);
193
  }
@@ -203,9 +221,9 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
203
  }
204
  }
205
 
206
- if($customerId) {
207
  // Load photo.
208
- if($this->_getHelper()->photoEnabled()) {
209
  $model->setCustomerPhoto($customerId);
210
  }
211
 
@@ -218,13 +236,13 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
218
  $this->_getHelper()->refererLink(null);
219
  }
220
 
221
- if($this->getRequest()->isXmlHttpRequest()) {
222
  $this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
223
  $this->getResponse()->setBody(json_encode(array(
224
  'redirectUrl' => $redirectUrl
225
  )));
226
- }else{
227
- $this->getResponse()->setBody($this->_jsWrap('if(window.opener && window.opener.location && !window.opener.closed) { window.close(); window.opener.location.href = "'.$redirectUrl.'"; }else{ window.location.href = "'.$redirectUrl.'"; }'));
228
 
229
  Mage::dispatchEvent('prsociallogin_login_success',
230
  array('account_controller' => $this, 'redirectUrl' => $redirectUrl)
@@ -239,15 +257,14 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
239
 
240
  protected function _windowClose()
241
  {
242
- if($this->getRequest()->isXmlHttpRequest()) {
243
  $this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
244
  $this->getResponse()->setBody(json_encode(array(
245
  'windowClose' => true
246
  )));
247
- }else{
248
  $this->getResponse()->setBody($this->_jsWrap('window.close();'));
249
  }
250
- // $this->getResponse()->setBody('<script type="text/javascript">if(window.name == "pslogin_popup") { window.close(); }</script>');
251
  return true;
252
  }
253
 
@@ -282,5 +299,4 @@ class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Fron
282
  {
283
  return Mage::helper($path);
284
  }
285
-
286
  }
18
 
19
  class Plumrocket_SocialLogin_AccountController extends Mage_Core_Controller_Front_Action
20
  {
21
+
22
  public function useAction()
23
  {
24
  $session = $this->_getSession();
28
 
29
  $type = $this->getRequest()->getParam('type');
30
  $className = 'Plumrocket_SocialLogin_Model_'. ucfirst($type);
31
+ if (!$type || !class_exists($className)) {
32
  return $this->_windowClose();
33
  }
34
  $model = Mage::getSingleton("pslogin/$type");
35
 
36
+ if (!$this->_getHelper()->moduleEnabled() || !$model->enabled()) {
37
  return $this->_windowClose();
38
  }
39
+
40
+ if ($call = $this->getRequest()->getParam('call')) {
41
  $this->_getHelper()->apiCall(array(
42
  'type' => $type,
43
  'action' => $call,
44
  ));
45
+ } else {
46
  $this->_getHelper()->apiCall(null);
47
  }
48
 
49
  switch($model->getProtocol()) {
50
 
51
  case 'OAuth':
52
+ if ($link = $model->getProviderLink()) {
53
  $this->_redirectUrl($link);
54
+ } else {
55
  $this->getResponse()->setBody($this->__('This Login Application was not configured correctly. Please contact our customer support.'));
56
  }
57
  break;
61
  default:
62
  return $this->_windowClose();
63
  }
64
+
65
  }
66
 
67
  public function loginAction()
82
 
83
  // API.
84
  $callTarget = false;
85
+ if ($call = $this->_getHelper()->apiCall()) {
86
+ if (isset($call['type']) && $call['type'] == $type && !empty($call['action'])) {
87
  $_target = explode('.', $call['action'], 3);
88
+ if (count($_target) === 3) {
89
  $callTarget = $_target;
90
+ } else {
91
  $this->_windowClose();
92
  return;
93
  }
100
  }
101
 
102
  $className = 'Plumrocket_SocialLogin_Model_'. ucfirst($type);
103
+ if (!$type || !class_exists($className)) {
104
  return $this->_windowClose();
105
  // $this->_redirect('customer/account/login');
106
  }
107
  $model = Mage::getSingleton("pslogin/$type");
108
 
109
+ /*if (!$this->_getHelper()->moduleEnabled() || !$model->enabled()) {
110
  return $this->_windowClose();
111
  // $this->_redirect('customer/account/login');
112
  }*/
113
 
114
  $responseTypes = $model->getResponseType();
115
+ if (is_array($responseTypes)) {
116
  $response = array();
117
  foreach ($responseTypes as $responseType) {
118
  $response[$responseType] = $this->getRequest()->getParam($responseType);
119
  }
120
+ } else {
121
  $response = $this->getRequest()->getParam($responseTypes);
122
  }
123
  $model->_setLog($this->getRequest()->getParams());
124
 
125
+ if (!$model->loadUserData($response)) {
126
  return $this->_windowClose();
127
  // $this->_redirect('customer/account/login');
128
  }
129
 
130
  // Switch store.
131
+ if ($storeId) {
132
  Mage::app()->setCurrentStore($storeId);
133
  }
134
 
135
  // API.
136
+ if ($callTarget) {
137
  list($module, $controller, $action) = $callTarget;
138
  $this->_forward($action, $controller, $module, array('pslogin' => $model->getUserData()));
139
  return;
140
  }
141
 
142
+ if ($customerId = $model->getCustomerIdByUserId()) {
143
+ //Check and replace fakeEmail with normal email
144
+ if ($responseEmail = $model->getUserData('email')) {
145
+ $customer = Mage::getModel('customer/customer')->load($customerId);
146
+ if ($customer->getId() && $this->_getHelper()->isFakeMail($customer->getEmail())) {
147
+ if ($responseEmail != $customer->getEmail()) {
148
+ $otherCustomer = Mage::getModel('customer/customer')
149
+ ->getCollection()
150
+ ->addFieldToFilter('email', $responseEmail)
151
+ ->setPageSize(1)
152
+ ->getFirstItem();
153
+
154
+ if (!$otherCustomer->getId()) {
155
+ $customer->setEmail($responseEmail)->save();
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
  # Do auth.
162
  $redirectUrl = $this->_getHelper()->getRedirectUrl();
163
+ } elseif ($customerId = $model->getCustomerIdByEmail()) {
164
  # Customer with received email was placed in db.
165
  // Remember customer.
166
  $model->setCustomerIdByUserId($customerId);
168
  $url = $this->_getUrl('customer/account/forgotpassword');
169
  $message = $this->__('Customer with email (%s) already exists in the database. If you are sure that it is your email address, please <a href="%s">click here</a> to retrieve your password and access your account.', $model->getUserData('email'), $url);
170
  $session->addNotice($message);
171
+
172
  $redirectUrl = $this->_getHelper()->getRedirectUrl();
173
+ } else {
174
  # Registration customer.
175
+ if ($customerId = $model->registrationCustomer()) {
176
  # Success.
177
  // Display system messages (before setCustomerIdByUserId(), because reset messages).
178
+ if ($this->_getHelper()->isFakeMail($model->getUserData('email'))) {
179
  $session->addSuccess($this->__('Customer registration successful.'));
180
+ } else {
181
  $session->addSuccess($this->__('Customer registration successful. Your password was send to the email: %s', $model->getUserData('email')));
182
  }
183
+
184
+ if ($errors = $model->getErrors()) {
185
  foreach ($errors as $error) {
186
  $session->addNotice($error);
187
  }
188
  }
189
+
190
  // Dispatch event.
191
  $this->_dispatchRegisterSuccess($model->getCustomer());
192
+
193
  // Remember customer.
194
  $model->setCustomerIdByUserId($customerId);
195
 
200
  $this->_getHelper()->showPopup(true);
201
 
202
  $redirectUrl = $this->_getHelper()->getRedirectUrl('register');
203
+ } else {
204
  # Error.
205
  $session->setCustomerFormData($model->getUserData());
206
  $redirectUrl = $this->_getUrl('customer/account/create', array('_secure' => true));
207
+
208
+ if ($errors = $model->getErrors()) {
209
  foreach ($errors as $error) {
210
  $session->addError($error);
211
  }
221
  }
222
  }
223
 
224
+ if ($customerId) {
225
  // Load photo.
226
+ if ($this->_getHelper()->photoEnabled()) {
227
  $model->setCustomerPhoto($customerId);
228
  }
229
 
236
  $this->_getHelper()->refererLink(null);
237
  }
238
 
239
+ if ($this->getRequest()->isXmlHttpRequest()) {
240
  $this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
241
  $this->getResponse()->setBody(json_encode(array(
242
  'redirectUrl' => $redirectUrl
243
  )));
244
+ } else {
245
+ $this->getResponse()->setBody($this->_jsWrap('if (window.opener && window.opener.location && !window.opener.closed) { window.close(); window.opener.location.href = "'.$redirectUrl.'"; } else { window.location.href = "'.$redirectUrl.'"; }'));
246
 
247
  Mage::dispatchEvent('prsociallogin_login_success',
248
  array('account_controller' => $this, 'redirectUrl' => $redirectUrl)
257
 
258
  protected function _windowClose()
259
  {
260
+ if ($this->getRequest()->isXmlHttpRequest()) {
261
  $this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
262
  $this->getResponse()->setBody(json_encode(array(
263
  'windowClose' => true
264
  )));
265
+ } else {
266
  $this->getResponse()->setBody($this->_jsWrap('window.close();'));
267
  }
 
268
  return true;
269
  }
270
 
299
  {
300
  return Mage::helper($path);
301
  }
 
302
  }
app/code/community/Plumrocket/SocialLogin/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Plumrocket_SocialLogin>
5
- <version>1.4.1</version>
6
  </Plumrocket_SocialLogin>
7
  </modules>
8
  <frontend>
2
  <config>
3
  <modules>
4
  <Plumrocket_SocialLogin>
5
+ <version>1.4.2</version>
6
  </Plumrocket_SocialLogin>
7
  </modules>
8
  <frontend>
app/code/community/Plumrocket/SocialLogin/sql/pslogin_setup/install-1.0.0.php CHANGED
@@ -51,12 +51,28 @@ $table = $installer->getConnection()
51
  ->addIndex($installer->getIdxName('pslogin/account', array('user_id')),
52
  array('user_id'))
53
  ->addIndex($installer->getIdxName('pslogin/account', array('customer_id')),
54
- array('customer_id'))
55
- ->addForeignKey($installer->getFkName('pslogin/account', 'customer_id', 'customer/entity', 'entity_id'),
56
- 'customer_id', $installer->getTable('customer/entity'), 'entity_id',
57
- Varien_Db_Ddl_Table::ACTION_CASCADE,
58
- Varien_Db_Ddl_Table::ACTION_CASCADE)
59
- ->setComment('Social Login Customer');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  $installer->getConnection()->createTable($table);
61
 
62
  $installer->endSetup();
51
  ->addIndex($installer->getIdxName('pslogin/account', array('user_id')),
52
  array('user_id'))
53
  ->addIndex($installer->getIdxName('pslogin/account', array('customer_id')),
54
+ array('customer_id'));
55
+
56
+ /* Fix - check table engine before setting foreign key */
57
+ $dbName = (string)Mage::getConfig()->getNode('global/resources/default_setup/connection/dbname');
58
+ $readResource = $installer->getConnection('core_read');
59
+ $query = $readResource ->select()
60
+ ->from('information_schema.TABLES', 'ENGINE')
61
+ ->where('TABLE_SCHEMA=?', $dbName)
62
+ ->where('TABLE_NAME=?', $installer->getTable('customer/entity'));
63
+
64
+ $tableEngine = $readResource->fetchOne($query);
65
+
66
+ if (strtolower($tableEngine) != 'myisam') {
67
+ $table->addForeignKey($installer->getFkName('pslogin/account', 'customer_id', 'customer/entity', 'entity_id'),
68
+ 'customer_id', $installer->getTable('customer/entity'), 'entity_id',
69
+ Varien_Db_Ddl_Table::ACTION_CASCADE,
70
+ Varien_Db_Ddl_Table::ACTION_CASCADE);
71
+ }
72
+ /* End fix */
73
+
74
+
75
+ $table->setComment('Social Login Customer');
76
  $installer->getConnection()->createTable($table);
77
 
78
  $installer->endSetup();
app/etc/modules/Plumrocket_SocialLogin.xml CHANGED
@@ -4,7 +4,7 @@
4
  <Plumrocket_SocialLogin>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
- <version>1.4.1</version>
8
  <name>Twitter &amp; Facebook Login</name>
9
  <wiki>http://wiki.plumrocket.com/wiki/Magento_Twitter_and_Facebook_Login_v1.x_Extension</wiki>
10
  <depends>
4
  <Plumrocket_SocialLogin>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
+ <version>1.4.2</version>
8
  <name>Twitter &amp; Facebook Login</name>
9
  <wiki>http://wiki.plumrocket.com/wiki/Magento_Twitter_and_Facebook_Login_v1.x_Extension</wiki>
10
  <depends>
package.xml CHANGED
@@ -1,21 +1,20 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Plumrocket_Twitter_Facebook_Login</name>
4
- <version>1.4.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://wiki.plumrocket.net/wiki/EULA">End-user License Agreement</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Plumrocket Twitter &amp; Facebook Login v1.x was designed to help online store owners reach as many customers as possible. Increase sales, allow clients to use Magento Facebook Login &amp; Twitter Login free to quickly register &amp; place order.</summary>
10
  <description>Plumrocket Twitter &amp; Facebook Login is a free magento extension that will let online store owners benefit from all the social media advantages. It helps to increase conversion rates by allowing your customers quickly login and place order.</description>
11
- <notes>- Added built-in support of world's best selling Magento themes: Blanco, BuyShop, Milano, Black&amp;White, Venedor&#xD;
12
- - Improved authorization and registration process, now page with social login buttons loads faster&#xD;
13
- - Improved display of customers photo from social networks in Magento CE version 1.8.1 and lower, as well as on some third party themes&#xD;
14
- - Fixed issue with displaying incorrect gender data after registration</notes>
15
  <authors><author><name>Plumrocket Team</name><user>plumrocket</user><email>support@plumrocket.com</email></author></authors>
16
- <date>2017-03-29</date>
17
- <time>13:14:24</time>
18
- <contents><target name="mageetc"><dir name="modules"><file name="Plumrocket_SocialLogin.xml" hash="8815295502c184ed7860666ea82a1f49"/></dir></target><target name="magecommunity"><dir name="Plumrocket"><dir name="SocialLogin"><dir name="Block"><file name="Buttons.php" hash="01e4058d3a9d2886d3d299108df5e39e"/><file name="General.php" hash="b91d1eec3ee0f4d70164230d8fcdf73c"/><dir name="Page"><dir name="Html"><file name="Header.php" hash="04650dafc2c33c69b6c7f346a9442e4f"/><file name="Welcome.php" hash="af7adad8c6c05dc6b51eb40e7d345519"/></dir></dir><file name="Share.php" hash="8447182219873dee7caaf620950157e4"/><dir name="System"><dir name="Config"><file name="Callbackurl.php" hash="18db5ba86eba4692530d674c556d198c"/><file name="Comingsoon.php" hash="dd6c106da378297ab6dd6724fe014281"/><file name="Notinstalled.php" hash="c263ec689c84b028dc4abdf06c7f0e5d"/><file name="Sortable.php" hash="2ae8f2236270e459223e10a84e123e07"/><file name="Version.php" hash="dcbf01e3752a5beb030b3aec752af6dd"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="5811ae1b5a77951e01d035e12a23de09"/><file name="Main.php" hash="91b6f4aec64610bca0254a3bf196f208"/></dir><dir name="Model"><file name="Account.php" hash="bf9a0bced6759106a620562485eb897a"/><file name="Facebook.php" hash="d7c74d89f28e8e79347e82bd1ab1860e"/><dir name="Mysql4"><dir name="Account"><file name="Collection.php" hash="ca4211392ef934ce33391408092a9737"/></dir><file name="Account.php" hash="3fd0a1c891d31577d873247e17ce01ce"/></dir><file name="Observer.php" hash="1edb8fc92e3db12f7869eb102cb3d75e"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Redirectto.php" hash="c2bcb34b36ae88ce3bfdfe242463ba9a"/><file name="Shareurl.php" hash="a28729927bf70baa36ebade8e3919d3b"/></dir></dir></dir><file name="Twitter.php" hash="3dec05ac8d4ace4c9b0f57779c6b7b82"/></dir><dir name="controllers"><file name="AccountController.php" hash="19089c56b74db85af1f178dcb61bcb41"/></dir><dir name="etc"><file name="adminhtml.xml" hash="9fedd9b73fc05aa653377d453ee382fe"/><file name="config.xml" hash="d95e625cfdbcd41a47f1e24073e32fbc"/><file name="system.xml" hash="b6de52469fbb381c2c76ea52d332d9ed"/></dir><dir name="sql"><dir name="pslogin_setup"><file name="install-1.0.0.php" hash="553fa30329657c4ae11cd85e8abd9784"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pslogin.xml" hash="56aa7aaa5c77d7f5c9e5b678d6534da4"/></dir><dir name="template"><dir name="pslogin"><dir name="system"><dir name="config"><file name="sortable.phtml" hash="398697865280d2f7d516645d62b1569d"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pslogin.xml" hash="180b5cc113f7d0e813de3752e55f8128"/></dir><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="7e5f3be44a2e87b2e2a23fab1b4e0e7c"/><dir name="message"><file name="fake_email.phtml" hash="4df9c4f220333606f758d730b9246942"/></dir></dir></dir><dir name="customer"><dir name="form"><dir name="edit"><file name="fake_email.phtml" hash="28e38c06e2d833ff469e2c50f89d922c"/></dir><dir name="login"><file name="buttons.phtml" hash="8b861b6891438a4cf30a97d6084f0208"/></dir><file name="login.phtml" hash="8d95198607fdc776865eb0647d7743cd"/><dir name="register"><file name="buttons.phtml" hash="723d467b91d795204d8b60703e75ddcd"/><file name="sharedata.phtml" hash="21e3d413a95289b676033f6ca254f018"/><file name="sharepopup.phtml" hash="834dd13f11319f5fc58931463fdbd4f0"/></dir><file name="register.phtml" hash="99fe1381f5c6f03f771fd3523d1c166f"/></dir></dir><file name="js.phtml" hash="4f1716f6f3b5401a6b29865a189b4aec"/><dir name="page"><dir name="html"><file name="welcome.phtml" hash="de89796d6555f732aaad8099c012d3bb"/></dir></dir><file name="runjs.phtml" hash="b9c6df4f25e740b10edfd8ac503bfea1"/></dir></dir></dir></dir><dir name="ultimo"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="eca273c65a41c809cd7cb5328f190214"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="cf337e019cbe443f9d1cd0dbe3a145ad"/><file name="register.phtml" hash="bfd2cceeb59a70dea2682282533af959"/></dir></dir></dir></dir></dir></dir><dir name="shopper"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="23c109bf666a64637630e08fc40961b1"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="072d3a2449ca53d90153719ac01c8aae"/><file name="register.phtml" hash="ed6d1e11eff2a0213d72b9020f2ac29e"/></dir></dir></dir></dir></dir></dir><dir name="fortis"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="6b724ba7eb1714dfc390445c293581c1"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="249520a604a0220b6646506ebe573011"/><file name="register.phtml" hash="bfd2cceeb59a70dea2682282533af959"/></dir></dir></dir></dir></dir></dir><dir name="default"><dir name="blanco"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="db8fdf238e7d868a6e55ea34f80358c5"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="887c951966ab3540093c4c3a3832b331"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir><dir name="buyshop"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="5c11e51aae76613c3405610914c014ad"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="1f7c8854dba5149030bc61b14d644614"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir><dir name="milano"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="db8fdf238e7d868a6e55ea34f80358c5"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="887c951966ab3540093c4c3a3832b331"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir></dir><dir name="gravdept"><dir name="acumen"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="c8e29c0cb2bf8d9da545f8829cfe9aec"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="bde5923d16bf48ca0aeb5a824ea6bbff"/><file name="register.phtml" hash="36a99a65114e61333fc96051f1b4da58"/></dir></dir></dir></dir></dir></dir><dir name="blacknwhite"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="customer"><dir name="form"><file name="login.phtml" hash="ef1349603e09651ac66755546dab3116"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir><dir name="onepagecheckout"><file name="login.phtml" hash="b188ec7d0fde220ce78e60d70af63557"/></dir></dir></dir></dir></dir><dir name="venedor"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="f079f7525326c990372324d02a3441ed"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="e5f3a79f1cc36d88807561bdd3461a8c"/><file name="register.phtml" hash="721e19772d4355070fd5b71b755be5b5"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Plumrocket_SocialLogin.csv" hash="7572e6085fbc927180c11c7fcb060389"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin.css" hash="dfadd9432d10a31cbd8259e545deace1"/></dir></dir></dir><dir name="images"><dir name="plumrocket"><dir name="pslogin"><file name="social_admin.png" hash="19216c1ff1ae19eb5dd26ad91ceb41e1"/></dir></dir></dir><dir name="js"><dir name="plumrocket"><dir name="pslogin"><file name="config.js" hash="a2c074dcd3c228afc2f144b8de8103c8"/><file name="jquery-1.10.2.min.js" hash="73042c373edc5879d6cdd9f569b9a234"/><file name="jquery-ui.min.js" hash="a0e434a17ebc022fb565e08fd446baef"/><file name="pslogin.js" hash="4770ef59857cd6eca2534d74e1dcf67c"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="pslogin.css" hash="f3fe50c81d7839350afde36b592f6e24"/></dir></dir></dir><dir name="images"><dir name="plumrocket"><dir name="pslogin"><file name="loader.gif" hash="013fe7725d917198766631696bbe40d1"/><file name="social.png" hash="901c23625074283724f0964fbe539ea3"/><file name="social_retina.png" hash="03afe2ccfdeda807eb6c3493cf6106a0"/></dir></dir></dir><dir name="js"><dir name="plumrocket"><dir name="pslogin"><file name="jquery-1.10.2.min.js" hash="73042c373edc5879d6cdd9f569b9a234"/><file name="pslogin.js" hash="fe0f64ab37951d5229aaea132cb73915"/></dir></dir></dir></dir></dir><dir name="shopper"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="56be3d4ce52002b666072f42515b12d8"/></dir></dir></dir></dir></dir><dir name="default"><dir name="buyshop"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="08ae88742d436464733e060c95e50569"/></dir></dir></dir></dir></dir><dir name="venedor"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="2f95248995f04c7b831fd81bcc16b6d8"/></dir></dir></dir></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Plumrocket_Base</name><channel>community</channel><min/><max/></package></required></dependencies>
21
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Plumrocket_Twitter_Facebook_Login</name>
4
+ <version>1.4.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://wiki.plumrocket.net/wiki/EULA">End-user License Agreement</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Plumrocket Twitter &amp; Facebook Login v1.x was designed to help online store owners reach as many customers as possible. Increase sales, allow clients to use Magento Facebook Login &amp; Twitter Login free to quickly register &amp; place order.</summary>
10
  <description>Plumrocket Twitter &amp; Facebook Login is a free magento extension that will let online store owners benefit from all the social media advantages. It helps to increase conversion rates by allowing your customers quickly login and place order.</description>
11
+ <notes>- Now Twitter returns real email address of the user, thus allowing to create a valid Magento account&#xD;
12
+ - Fixed bug with "Foreign Key" value in the database and "MyISAM" storage engine&#xD;
13
+ </notes>
 
14
  <authors><author><name>Plumrocket Team</name><user>plumrocket</user><email>support@plumrocket.com</email></author></authors>
15
+ <date>2017-06-09</date>
16
+ <time>12:10:12</time>
17
+ <contents><target name="mageetc"><dir name="modules"><file name="Plumrocket_SocialLogin.xml" hash="1654069350d6748f1b8c1b782d8807d4"/></dir></target><target name="magecommunity"><dir name="Plumrocket"><dir name="SocialLogin"><dir name="Block"><file name="Buttons.php" hash="01e4058d3a9d2886d3d299108df5e39e"/><file name="General.php" hash="b91d1eec3ee0f4d70164230d8fcdf73c"/><dir name="Page"><dir name="Html"><file name="Header.php" hash="04650dafc2c33c69b6c7f346a9442e4f"/><file name="Welcome.php" hash="af7adad8c6c05dc6b51eb40e7d345519"/></dir></dir><file name="Share.php" hash="8447182219873dee7caaf620950157e4"/><dir name="System"><dir name="Config"><file name="Callbackurl.php" hash="18db5ba86eba4692530d674c556d198c"/><file name="Comingsoon.php" hash="dd6c106da378297ab6dd6724fe014281"/><file name="Notinstalled.php" hash="c263ec689c84b028dc4abdf06c7f0e5d"/><file name="Sortable.php" hash="2ae8f2236270e459223e10a84e123e07"/><file name="Version.php" hash="dcbf01e3752a5beb030b3aec752af6dd"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="5811ae1b5a77951e01d035e12a23de09"/><file name="Main.php" hash="91b6f4aec64610bca0254a3bf196f208"/></dir><dir name="Model"><file name="Account.php" hash="d2298a6df071c13522b13bf5b651e8c3"/><file name="Facebook.php" hash="d7c74d89f28e8e79347e82bd1ab1860e"/><dir name="Mysql4"><dir name="Account"><file name="Collection.php" hash="ca4211392ef934ce33391408092a9737"/></dir><file name="Account.php" hash="3fd0a1c891d31577d873247e17ce01ce"/></dir><file name="Observer.php" hash="1edb8fc92e3db12f7869eb102cb3d75e"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Redirectto.php" hash="c2bcb34b36ae88ce3bfdfe242463ba9a"/><file name="Shareurl.php" hash="a28729927bf70baa36ebade8e3919d3b"/></dir></dir></dir><file name="Twitter.php" hash="a614ea654956269f7d629ada8d169f13"/></dir><dir name="controllers"><file name="AccountController.php" hash="b7a54f64322798742dc596ec3a9e5140"/></dir><dir name="etc"><file name="adminhtml.xml" hash="9fedd9b73fc05aa653377d453ee382fe"/><file name="config.xml" hash="e19d98d180c32cc0b5e3bfb6e9c2fb6e"/><file name="system.xml" hash="b6de52469fbb381c2c76ea52d332d9ed"/></dir><dir name="sql"><dir name="pslogin_setup"><file name="install-1.0.0.php" hash="16b82ef934cd4da7ab42b10dedb4fc76"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pslogin.xml" hash="56aa7aaa5c77d7f5c9e5b678d6534da4"/></dir><dir name="template"><dir name="pslogin"><dir name="system"><dir name="config"><file name="sortable.phtml" hash="398697865280d2f7d516645d62b1569d"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pslogin.xml" hash="180b5cc113f7d0e813de3752e55f8128"/></dir><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="7e5f3be44a2e87b2e2a23fab1b4e0e7c"/><dir name="message"><file name="fake_email.phtml" hash="4df9c4f220333606f758d730b9246942"/></dir></dir></dir><dir name="customer"><dir name="form"><dir name="edit"><file name="fake_email.phtml" hash="28e38c06e2d833ff469e2c50f89d922c"/></dir><dir name="login"><file name="buttons.phtml" hash="8b861b6891438a4cf30a97d6084f0208"/></dir><file name="login.phtml" hash="8d95198607fdc776865eb0647d7743cd"/><dir name="register"><file name="buttons.phtml" hash="723d467b91d795204d8b60703e75ddcd"/><file name="sharedata.phtml" hash="21e3d413a95289b676033f6ca254f018"/><file name="sharepopup.phtml" hash="834dd13f11319f5fc58931463fdbd4f0"/></dir><file name="register.phtml" hash="99fe1381f5c6f03f771fd3523d1c166f"/></dir></dir><file name="js.phtml" hash="4f1716f6f3b5401a6b29865a189b4aec"/><dir name="page"><dir name="html"><file name="welcome.phtml" hash="de89796d6555f732aaad8099c012d3bb"/></dir></dir><file name="runjs.phtml" hash="b9c6df4f25e740b10edfd8ac503bfea1"/></dir></dir></dir></dir><dir name="ultimo"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="eca273c65a41c809cd7cb5328f190214"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="cf337e019cbe443f9d1cd0dbe3a145ad"/><file name="register.phtml" hash="bfd2cceeb59a70dea2682282533af959"/></dir></dir></dir></dir></dir></dir><dir name="shopper"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="23c109bf666a64637630e08fc40961b1"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="072d3a2449ca53d90153719ac01c8aae"/><file name="register.phtml" hash="ed6d1e11eff2a0213d72b9020f2ac29e"/></dir></dir></dir></dir></dir></dir><dir name="fortis"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="6b724ba7eb1714dfc390445c293581c1"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="249520a604a0220b6646506ebe573011"/><file name="register.phtml" hash="bfd2cceeb59a70dea2682282533af959"/></dir></dir></dir></dir></dir></dir><dir name="default"><dir name="blanco"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="db8fdf238e7d868a6e55ea34f80358c5"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="887c951966ab3540093c4c3a3832b331"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir><dir name="buyshop"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="5c11e51aae76613c3405610914c014ad"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="1f7c8854dba5149030bc61b14d644614"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir><dir name="milano"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="db8fdf238e7d868a6e55ea34f80358c5"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="887c951966ab3540093c4c3a3832b331"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir></dir></dir></dir></dir><dir name="gravdept"><dir name="acumen"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="c8e29c0cb2bf8d9da545f8829cfe9aec"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="bde5923d16bf48ca0aeb5a824ea6bbff"/><file name="register.phtml" hash="36a99a65114e61333fc96051f1b4da58"/></dir></dir></dir></dir></dir></dir><dir name="blacknwhite"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="customer"><dir name="form"><file name="login.phtml" hash="ef1349603e09651ac66755546dab3116"/><file name="register.phtml" hash="3adc3800e8d855b49c286db74923c549"/></dir></dir><dir name="onepagecheckout"><file name="login.phtml" hash="b188ec7d0fde220ce78e60d70af63557"/></dir></dir></dir></dir></dir><dir name="venedor"><dir name="default"><dir name="template"><dir name="pslogin"><dir name="checkout"><dir name="onepage"><file name="login.phtml" hash="f079f7525326c990372324d02a3441ed"/></dir></dir><dir name="customer"><dir name="form"><file name="login.phtml" hash="e5f3a79f1cc36d88807561bdd3461a8c"/><file name="register.phtml" hash="721e19772d4355070fd5b71b755be5b5"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Plumrocket_SocialLogin.csv" hash="7572e6085fbc927180c11c7fcb060389"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin.css" hash="dfadd9432d10a31cbd8259e545deace1"/></dir></dir></dir><dir name="images"><dir name="plumrocket"><dir name="pslogin"><file name="social_admin.png" hash="19216c1ff1ae19eb5dd26ad91ceb41e1"/></dir></dir></dir><dir name="js"><dir name="plumrocket"><dir name="pslogin"><file name="config.js" hash="a2c074dcd3c228afc2f144b8de8103c8"/><file name="jquery-1.10.2.min.js" hash="73042c373edc5879d6cdd9f569b9a234"/><file name="jquery-ui.min.js" hash="a0e434a17ebc022fb565e08fd446baef"/><file name="pslogin.js" hash="4770ef59857cd6eca2534d74e1dcf67c"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="pslogin.css" hash="f3fe50c81d7839350afde36b592f6e24"/></dir></dir></dir><dir name="images"><dir name="plumrocket"><dir name="pslogin"><file name="loader.gif" hash="013fe7725d917198766631696bbe40d1"/><file name="social.png" hash="901c23625074283724f0964fbe539ea3"/><file name="social_retina.png" hash="03afe2ccfdeda807eb6c3493cf6106a0"/></dir></dir></dir><dir name="js"><dir name="plumrocket"><dir name="pslogin"><file name="jquery-1.10.2.min.js" hash="73042c373edc5879d6cdd9f569b9a234"/><file name="pslogin.js" hash="fe0f64ab37951d5229aaea132cb73915"/></dir></dir></dir></dir></dir><dir name="shopper"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="56be3d4ce52002b666072f42515b12d8"/></dir></dir></dir></dir></dir><dir name="default"><dir name="buyshop"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="08ae88742d436464733e060c95e50569"/></dir></dir></dir></dir></dir><dir name="venedor"><dir name="default"><dir name="css"><dir name="plumrocket"><dir name="pslogin"><file name="pslogin-custom.css" hash="2f95248995f04c7b831fd81bcc16b6d8"/></dir></dir></dir></dir></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Plumrocket_Base</name><channel>community</channel><min/><max/></package></required></dependencies>
20
  </package>