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 +1 -1
- app/code/community/Plumrocket/SocialLogin/Model/Twitter.php +35 -34
- app/code/community/Plumrocket/SocialLogin/controllers/AccountController.php +59 -43
- app/code/community/Plumrocket/SocialLogin/etc/config.xml +1 -1
- app/code/community/Plumrocket/SocialLogin/sql/pslogin_setup/install-1.0.0.php +22 -6
- app/etc/modules/Plumrocket_SocialLogin.xml +1 -1
- package.xml +7 -8
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 =
|
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 |
-
|
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/
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
'gender' => null,
|
37 |
'photo' => 'profile_image_url',
|
38 |
-
|
39 |
|
40 |
-
|
41 |
|
42 |
protected $_popupSize = array(630, 650);
|
43 |
|
44 |
-
|
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 .=
|
|
|
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 |
-
|
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 |
-
|
203 |
-
|
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.
|
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 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
8 |
<name>Twitter & 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 & 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.
|
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 & 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 & Twitter Login free to quickly register & place order.</summary>
|
10 |
<description>Plumrocket Twitter & 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>-
|
12 |
-
-
|
13 |
-
|
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-
|
17 |
-
<time>
|
18 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Plumrocket_SocialLogin.xml" hash="
|
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 & 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 & Twitter Login free to quickly register & place order.</summary>
|
10 |
<description>Plumrocket Twitter & 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
|
12 |
+
- Fixed bug with "Foreign Key" value in the database and "MyISAM" storage engine
|
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>
|