LoginRadius - Version 4.1.0

Version Notes

Social Login and Sharing for Magento

Download this release

Release Info

Developer LoginRadius Team
Extension LoginRadius
Version 4.1.0
Comparing to
See all releases


Code changes from version 4.0.0 to 4.1.0

app/code/community/Loginradius/Sociallogin/Block/{horizontalsharing.php → Horizontalsharing.php} RENAMED
File without changes
app/code/community/Loginradius/Sociallogin/Block/Socialsharing.php CHANGED
@@ -77,13 +77,13 @@ class Loginradius_Sociallogin_Block_Socialsharing extends Mage_Core_Block_Templa
77
 
78
  if (empty($size)) {
79
  $providers = self:: get_counter_providers('vertical', $loginRadiusSettings);
80
- $sharingScript .= 'LoginRadius.util.ready( function() { $SC.Providers.Selected = ["' . $providers . '"]; $S = $SC.Interface.' . $interface . '; $S.isHorizontal = ' . $ishorizontal . '; $S.countertype = \'' . $type . '\'; ' . $offset . ' $u = LoginRadius.user_settings; $u.isMobileFriendly = true; $S.show( "loginRadiusVerticalSharing" ); } );';
81
  } else {
82
  $providers = self:: get_sharing_providers('vertical', $loginRadiusSettings);
83
  // prepare sharing script
84
  $sharingScript .= 'LoginRadius.util.ready( function() { $i = $SS.Interface.' . $interface . '; $SS.Providers.Top = ["' . $providers . '"]; $u = LoginRadius.user_settings;';
85
  $sharingScript .= '$u.apikey= \'' . trim($apiKey) . '\';';
86
- $sharingScript .= '$i.size = ' . $size . '; ' . $offset . ' $u.isMobileFriendly=true; $i.show( "loginRadiusVerticalSharing" ); } );';
87
  }
88
  return $sharingScript;
89
  }
@@ -186,7 +186,7 @@ class Loginradius_Sociallogin_Block_Socialsharing extends Mage_Core_Block_Templa
186
  $providers = $this->get_counter_providers('horizontal', $loginRadiusSettings);
187
 
188
  // prepare counter script
189
- $sharingScript .= 'LoginRadius.util.ready( function() { $SC.Providers.Selected = ["' . $providers . '"]; $S = $SC.Interface.' . $interface . '; $S.isHorizontal = ' . $ishorizontal . '; $S.countertype = \'' . $countertype . '\'; $u = LoginRadius.user_settings; $u.isMobileFriendly = true; $S.show( "loginRadiusHorizontalSharing" ); } );';
190
  } else {
191
  $providers = $this->get_sharing_providers('horizontal', $loginRadiusSettings);
192
 
@@ -195,7 +195,7 @@ class Loginradius_Sociallogin_Block_Socialsharing extends Mage_Core_Block_Templa
195
  if (isset($apikey) && !empty($apikey)) {
196
  $sharingScript .= '$u.apikey= \'' . trim($apikey) . '\';';
197
  }
198
- $sharingScript .= '$i.size = ' . $size . '; $u.sharecounttype="url"; $u.isMobileFriendly=true; $i.show( "loginRadiusHorizontalSharing" ); } );';
199
  }
200
  return $sharingScript;
201
  }
77
 
78
  if (empty($size)) {
79
  $providers = self:: get_counter_providers('vertical', $loginRadiusSettings);
80
+ $sharingScript .= 'LoginRadius.util.ready( function() { $SC.Providers.Selected = ["' . $providers . '"]; $S = $SC.Interface.' . $interface . '; $S.isHorizontal = ' . $ishorizontal . '; $S.countertype = \'' . $type . '\'; ' . $offset . ' $u = LoginRadius.user_settings; if(typeof document.getElementsByName("viewport")[0] != "undefined"){$u.isMobileFriendly=true;}; $S.show( "loginRadiusVerticalSharing" ); } );';
81
  } else {
82
  $providers = self:: get_sharing_providers('vertical', $loginRadiusSettings);
83
  // prepare sharing script
84
  $sharingScript .= 'LoginRadius.util.ready( function() { $i = $SS.Interface.' . $interface . '; $SS.Providers.Top = ["' . $providers . '"]; $u = LoginRadius.user_settings;';
85
  $sharingScript .= '$u.apikey= \'' . trim($apiKey) . '\';';
86
+ $sharingScript .= '$i.size = ' . $size . '; ' . $offset . ' if(typeof document.getElementsByName("viewport")[0] != "undefined"){$u.isMobileFriendly=true;}; $i.show( "loginRadiusVerticalSharing" ); } );';
87
  }
88
  return $sharingScript;
89
  }
186
  $providers = $this->get_counter_providers('horizontal', $loginRadiusSettings);
187
 
188
  // prepare counter script
189
+ $sharingScript .= 'LoginRadius.util.ready( function() { $SC.Providers.Selected = ["' . $providers . '"]; $S = $SC.Interface.' . $interface . '; $S.isHorizontal = ' . $ishorizontal . '; $S.countertype = \'' . $countertype . '\'; $u = LoginRadius.user_settings; if(typeof document.getElementsByName("viewport")[0] != "undefined"){$u.isMobileFriendly=true;}; $S.show( "loginRadiusHorizontalSharing" ); } );';
190
  } else {
191
  $providers = $this->get_sharing_providers('horizontal', $loginRadiusSettings);
192
 
195
  if (isset($apikey) && !empty($apikey)) {
196
  $sharingScript .= '$u.apikey= \'' . trim($apikey) . '\';';
197
  }
198
+ $sharingScript .= '$i.size = ' . $size . '; $u.sharecounttype="url"; if(typeof document.getElementsByName("viewport")[0] != "undefined"){$u.isMobileFriendly=true;}; $i.show( "loginRadiusHorizontalSharing" ); } );';
199
  }
200
  return $sharingScript;
201
  }
app/code/community/Loginradius/Sociallogin/Block/{verticalsharing.php → Verticalsharing.php} RENAMED
File without changes
app/code/community/Loginradius/Sociallogin/Model/System/Config/Info.php CHANGED
@@ -74,7 +74,7 @@ class Loginradius_Sociallogin_Model_System_Config_Info extends Mage_Adminhtml_Bl
74
  <h4 class="lr_admin_fieldset_title"><strong><?php echo $this->__('Extension Information!') ?></strong></h4>
75
 
76
  <div style="margin:5px 0">
77
- <strong>Version: </strong>4.0.0 <br/>
78
  <strong>Author:</strong> LoginRadius<br/>
79
  <strong>Website:</strong> <a href="https://www.loginradius.com" target="_blank">www.loginradius.com</a>
80
  <br/>
74
  <h4 class="lr_admin_fieldset_title"><strong><?php echo $this->__('Extension Information!') ?></strong></h4>
75
 
76
  <div style="margin:5px 0">
77
+ <strong>Version: </strong>4.1.0 <br/>
78
  <strong>Author:</strong> LoginRadius<br/>
79
  <strong>Website:</strong> <a href="https://www.loginradius.com" target="_blank">www.loginradius.com</a>
80
  <br/>
app/code/community/Loginradius/Sociallogin/controllers/IndexController.php CHANGED
@@ -2,524 +2,512 @@
2
  Mage::app('default');
3
  function getMazeTable($tbl)
4
  {
5
- $tableName = Mage::getSingleton('core/resource')->getTableName($tbl);
6
- return ($tableName);
 
7
  }
8
 
9
  //customer will be re-directed to this file. this file handle all token, email etc things.
10
  class Loginradius_Sociallogin_IndexController extends Mage_Core_Controller_Front_Action
11
  {
12
- public $socialloginProfileData;
13
- public $blockObj;
14
- private $loginRadiusPopMsg;
15
- private $loginRadiusPopErr;
16
-
17
- public function indexAction()
18
- {
19
- $this->blockObj = new Loginradius_Sociallogin_Block_Sociallogin();
20
- $token = isset($_REQUEST['token']) ? trim($_REQUEST['token']) : '';
21
- if (!empty($token)) {
22
- $this->tokenHandle($token);
23
- return;
24
- }
25
 
26
- // email verification
27
- if (isset($_GET['loginRadiusKey']) && !empty($_GET['loginRadiusKey'])) {
28
- $loginRadiusVkey = trim($_GET['loginRadiusKey']);
29
- // get entity_id and provider of the vKey
30
- $result = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "verification", array($loginRadiusVkey), true);
31
- if ($temp = $result->fetch()) {
32
- // set verified status true at this verification key
33
- $tempUpdate = array("verified" => '1', "vkey" => '');
34
- $tempUpdate2 = array("vkey = ?" => $loginRadiusVkey);
35
- Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $tempUpdate, true, $tempUpdate2);
36
 
37
- $session = Mage::getSingleton('customer/session');
38
- $session->addSuccess(__('Your email has been verified. Now you can login to your account.'));
39
- // check if verification for same provider is still pending on this entity_id
40
- if (Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "verification2", array($temp['entity_id'], $temp['provider']))) {
41
- $tempUpdate = array("vkey" => '');
42
- $tempUpdate2 = array("entity_id = ?" => $temp['entity_id'], "provider = ?" => $temp['provider']);
43
- Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $tempUpdate, true, $tempUpdate2);
44
  }
45
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
46
- die;
47
- }
48
- }
49
 
50
- if (isset($_POST['LoginRadiusRedSliderClick'])) {
51
- $loginhelper = Mage::helper('sociallogin/loginhelper');
52
- $socialLoginProfileData = Mage::getSingleton('core/session')->getSocialLoginData();
53
- $session_user_id = $socialLoginProfileData['lrId'];
54
- $loginRadiusPopProvider = $socialLoginProfileData['Provider'];
55
- $loginRadiusAvatar = $socialLoginProfileData['thumbnail'];
56
- if (!empty($session_user_id)) {
57
- $loginRadiusProfileData = array();
58
- // address
59
- if (isset($_POST['loginRadiusAddress'])) {
60
- $loginRadiusProfileData['Address'] = "";
61
- $profileAddress = trim($_POST['loginRadiusAddress']);
62
- }
63
- // city
64
- if (isset($_POST['loginRadiusCity'])) {
65
- $loginRadiusProfileData['City'] = "";
66
- $profileCity = trim($_POST['loginRadiusCity']);
67
- }
68
- // country
69
- if (isset($_POST['loginRadiusCountry'])) {
70
- $loginRadiusProfileData['Country'] = "";
71
- $profileCountry = trim($_POST['loginRadiusCountry']);
72
- }
73
- // phone number
74
- if (isset($_POST['loginRadiusPhone'])) {
75
- $loginRadiusProfileData['PhoneNumber'] = "";
76
- $profilePhone = trim($_POST['loginRadiusPhone']);
77
  }
78
- // email
79
- if (isset($_POST['loginRadiusEmail'])) {
80
- $email = trim($_POST['loginRadiusEmail']);
81
- $select = $loginhelper->loginRadiusRead("customer_entity", "email_already_exists", array($email), true);
82
- if ($rowArray = $select->fetch()) {
83
- $errorMessage = $this->blockObj->getPopupError();
84
- if($this->blockObj->getProfileFieldsRequired() == 1){
85
- $loginhelper->setTmpSession("", $errorMessage, true, $socialLoginProfileData, true);
86
- }else{
87
- $loginhelper->setTmpSession("", $errorMessage, true, array(), true,true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  }
89
- $this->popupHandle();
90
- return;
91
- }
92
 
93
- if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email)) {
94
- if ($this->blockObj->getProfileFieldsRequired() == 1) {
95
- $hideZipCountry = false;
96
- } else {
97
- $hideZipCountry = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  }
99
- Mage::helper('sociallogin/loginhelper')->setTmpSession($this->blockObj->getPopupText(), $this->blockObj->getPopupError(), true, $loginRadiusProfileData, true, $hideZipCountry);
100
- $this->popupHandle();
101
- return;
102
- }
103
- // check if email already exists
104
- $userId = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("customer_entity", "email exists pop1", array($email), true);
105
- if ($rowArray = $userId->fetch()) { // email exists
106
- //check if entry exists on same provider in sociallogin table
107
- $verified = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "email exists sl", array($rowArray['entity_id'], $loginRadiusPopProvider), true);
108
- if ($rowArray2 = $verified->fetch()) {
109
- // check verified field
110
- if ($rowArray2['verified'] == "1") {
111
- // check sociallogin id
112
- if ($rowArray2['sociallogin_id'] == $session_user_id) {
113
- $this->socialLoginUserLogin($rowArray['entity_id'], $rowArray2['sociallogin_id']);
114
  } else {
115
- Mage::helper('sociallogin/loginhelper')->setTmpSession($this->loginRadiusPopMsg, $this->loginRadiusPopErr, true, array(), true, true);
116
- $this->popupHandle();
 
 
 
 
 
 
117
  }
118
- return;
119
- } else {
120
- // check sociallogin id
121
- if ($rowArray2['sociallogin_id'] == $session_user_id) {
122
- Mage::helper('sociallogin/loginhelper')->setTmpSession("Please provide following details", "", true, $this->socialloginProfileData, false);
123
- $this->popupHandle();
 
 
 
 
 
 
 
 
 
 
 
 
124
  } else {
125
- // send verification email
126
- Mage::helper('sociallogin/loginhelper')->verifyUser($session_user_id, $rowArray['entity_id'], $loginRadiusAvatar, $loginRadiusPopProvider, $email);
 
 
 
 
 
 
 
 
127
  }
128
- return;
129
- }
130
  } else {
131
- // send verification email
132
- Mage::helper('sociallogin/loginhelper')->verifyUser($session_user_id, $rowArray['entity_id'], $loginRadiusAvatar, $loginRadiusPopProvider, $email);
133
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  }
135
- }
 
 
 
 
 
 
 
 
 
 
 
136
  }
137
- // validate other profile fields
138
- if ((isset($profileAddress) && $profileAddress == "") || (isset($profileCity) && $profileCity == "") || (isset($profileCountry) && $profileCountry == "") || (isset($profilePhone) && $profilePhone == "")) {
139
- Mage::helper('sociallogin/loginhelper')->setTmpSession("", "Please fill all the fields", true, $loginRadiusProfileData, true);
140
- $this->popupHandle();
141
- return;
 
 
 
 
 
 
 
 
 
 
 
142
  }
143
- $this->socialloginProfileData = Mage::getSingleton('core/session')->getSocialLoginData();
144
- // assign submitted profile fields to array
145
- // address
146
- if (isset($profileAddress)) {
147
- $this->socialloginProfileData['Address'] = $profileAddress;
 
 
 
 
 
 
148
  }
149
- // city
150
- if (isset($profileCity)) {
151
- $this->socialloginProfileData['City'] = $profileCity;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
153
- // Country
154
- if (isset($profileCountry)) {
155
- $this->socialloginProfileData['Country'] = $profileCountry;
 
 
 
 
 
 
 
 
 
 
 
 
156
  }
157
- // Phone Number
158
- if (isset($profilePhone)) {
159
- $this->socialloginProfileData['PhoneNumber'] = $profilePhone;
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  }
161
- // Zipcode
162
- if (isset($_POST['loginRadiusZipcode'])) {
163
- $this->socialloginProfileData['Zipcode'] = trim($_POST['loginRadiusZipcode']);
 
164
  }
165
- // Province
166
- if (isset($_POST['loginRadiusProvince'])) {
167
- $this->socialloginProfileData['Province'] = trim($_POST['loginRadiusProvince']);
 
168
  }
169
- // Email
170
- if (isset($email)) {
171
- $this->socialloginProfileData['Email'] = $email;
172
- $verify = true;
173
- } else {
174
- $verify = false;
175
  }
176
- Mage::getSingleton('core/session')->unsSocialLoginData(); // unset session
177
- $this->socialLoginAddNewUser($this->socialloginProfileData, $verify);
178
- }
179
- } elseif (isset($_POST['LoginRadiusPopupCancel'])) { // popup cancelled
180
- Mage::getSingleton('core/session')->unsSocialLoginData(); // unset session
181
-
182
- Mage::getSingleton('core/session')->unsTmpPopupTxt();
183
- Mage::getSingleton('core/session')->unsTmpPopupMsg();
184
- Mage::getSingleton('core/session')->unsTmpShowForm();
185
- Mage::getSingleton('core/session')->unsTmpProfileData();
186
- Mage::getSingleton('core/session')->unsTmpEmailRequired();
187
- Mage::getSingleton('core/session')->unsTmpHideZipcode();
188
-
189
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
190
- die;
191
- }
192
- $this->SocialLoginShowLayout();
193
- }
194
-
195
- public function popupHandle(){
196
- $this->loadLayout();
197
- $this->getLayout()->getBlock('content')->append(
198
- $this->getLayout()->createBlock('Mage_Core_Block_Template', 'emailpopup', array('template' => 'sociallogin/popup.phtml'))
199
- );
200
- $this->renderLayout();
201
- return $this;
202
- }
203
-
204
- public function tokenHandle($token)
205
- {
206
- $loginhelper = Mage::helper('sociallogin/loginhelper');
207
- $loginRadiusSDK = Mage::helper('sociallogin/LoginRadiusSDK');
208
- // Fetch user profile using access token ......
209
- $responseFromLoginRadius = $loginRadiusSDK->fetchUserProfile($token);
210
- $userObj = json_decode($responseFromLoginRadius);
211
-
212
- if (isset($userObj->ID) && !empty($userObj->ID)) {
213
- // If linking variable is available then link account
214
- if ($this->blockObj->user_is_already_login()) {
215
- $this->loginRadiusSocialLinking(Mage::getSingleton("customer/session")->getCustomer()->getId(), $userObj->ID, $userObj->Provider, $userObj->ThumbnailImageUrl, true);
216
- }
217
- $this->socialloginProfileData = $loginhelper->socialLoginFilterData($userObj);
218
-
219
- //valid user, checking if user in sociallogin and customer entity tabel
220
- $queryResult = $loginhelper->loginRadiusRead("sociallogin", "get_user_by_social_id", array($userObj->ID), true);
221
- //Social Id Exist in Local DB
222
- if ($result = $queryResult->fetch()) {
223
- if ($result['verified'] == "0") {
224
- $session = Mage::getSingleton('customer/session');
225
- $session->addError(__('Please verify your email to login.'));
226
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
227
- die;
228
- } else {
229
- if ($this->blockObj->updateProfileData() != '1') {
230
- $this->socialLoginUserLogin($result['entity_id'], $userObj->ID);
231
- } else {
232
- $this->socialloginProfileData['lrId'] = $userObj->ID;
233
- $this->socialLoginAddNewUser($this->socialloginProfileData, false, true, $result['entity_id']);
234
- }
235
- return;
236
  }
237
- }
238
- //Social Id not Exist in Local DB and email not empty
239
- elseif (isset($userObj->Email[0]->Value) && !empty($userObj->Email[0]->Value)) {
240
- //if email is provided by provider then check if it's in table
241
- $email = $userObj->Email[0]->Value;
242
- $select = $loginhelper->loginRadiusRead("customer_entity", "email_already_exists", array($email), true);
243
- if ($rowArray = $select->fetch()) {
244
- //user is in customer table
245
- if ($this->blockObj->getLinking() == "1") { // Social Linking
246
- $this->loginRadiusSocialLinking($rowArray['entity_id'], $userObj->ID, $userObj->Provider, $userObj->ThumbnailImageUrl);
247
- }
248
-
249
- if ($this->blockObj->updateProfileData() != '1') {
250
- $this->socialLoginUserLogin($rowArray['entity_id'], $userObj->ID);
251
- } else {
252
- $this->socialloginProfileData = $loginhelper->socialLoginFilterData($userObj);
253
- $this->socialloginProfileData['lrId'] = $userObj->ID;
254
- $this->socialLoginAddNewUser($this->socialloginProfileData, false, true, $rowArray['entity_id']);
255
- }
256
- }else{
257
- $this->socialloginProfileData['lrId'] = $userObj->ID;
258
- if ($this->blockObj->getProfileFieldsRequired() == 1) {
259
- $loginhelper->setInSession($userObj->ID, $this->socialloginProfileData);
260
- $loginhelper->setTmpSession($this->blockObj->getPopupText(), "", true, $this->socialloginProfileData, false);
261
- // show a popup to fill required profile fields
262
- $this->popupHandle();
263
- return;
264
- }
265
- $this->socialLoginAddNewUser($this->socialloginProfileData);
266
  }
267
- } else {
268
- $emailRequired= true;
269
- if ($this->blockObj->getEmailRequired() == 0) { // dummy email
270
- $email = $loginhelper->generateRandomEmail($userObj);
271
- $this->socialloginProfileData['Email'] = $email;
272
- $this->socialloginProfileData['lrId'] = $userObj->ID;
273
- $emailRequired = false;
274
  }
275
- //
276
- $this->socialloginProfileData['lrToken'] = $this->loginRadiusAccessToken;
277
- //show required fields popup
278
- $loginhelper->setInSession($userObj->ID, $this->socialloginProfileData);
279
- if ($this->blockObj->getProfileFieldsRequired() == 1) {
280
- // show a popup to fill required profile fields
281
- $loginhelper->setTmpSession($this->loginRadiusPopMsg, "", true, $this->socialloginProfileData, $emailRequired);
282
- $this->popupHandle();
283
- } elseif($this->blockObj->getEmailRequired() == 1){
284
- $loginhelper->setTmpSession($this->loginRadiusPopMsg, "", true, array(), $emailRequired, true);
285
- $this->popupHandle();
286
- }else{
287
- //create new user without showing popup
288
- $this->socialLoginAddNewUser($this->socialloginProfileData);
 
 
 
 
 
 
289
  }
290
- }
291
- } else {
292
- if ($this->blockObj->isDebuggingOn()) {
293
- Mage::getSingleton('core/session')->addNotice($userObj->description);
294
- session_write_close();
295
- }
296
- $refererUrl = $this->_getRefererUrl();
297
- if(empty($refererUrl)){
298
- $refererUrl = Mage::getBaseUrl();
299
- }
300
- $this->getResponse()->setRedirect($refererUrl);
301
- return;
302
- }
303
- }
304
-
305
- function loginRadiusSocialLinking($entityId, $socialId, $provider, $thumbnail, $unique = false)
306
- {
307
- $session = Mage::getSingleton('customer/session');
308
- // check if any account from this provider is already linked
309
- if($this->blockObj->user_is_already_login()){
310
- if(Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "get_user_by_social_id", array($socialId))){
311
- $session->addError(__('This accounts is already linked with an account.'));
312
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
313
- die;
314
- }elseif($unique && Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "provider exists in sociallogin", array($entityId, $provider))){
315
- $session->addError(__('Multiple accounts cannot be linked from the same Social ID Provider.'));
316
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
317
- die;
318
- }
319
- }
320
- $socialLoginLinkData = array();
321
- $socialLoginLinkData['sociallogin_id'] = $socialId;
322
- $socialLoginLinkData['entity_id'] = $entityId;
323
- $socialLoginLinkData['provider'] = empty($provider) ? "" : $provider;
324
- $socialLoginLinkData['avatar'] = Mage::helper('sociallogin/loginHelper')->socialLoginFilterAvatar($socialId, $thumbnail, $provider);
325
- $socialLoginLinkData['avatar'] = ($socialLoginLinkData['avatar'] == "") ? null : $socialLoginLinkData['avatar'];
326
- Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $socialLoginLinkData);
327
- if($this->blockObj->user_is_already_login()){
328
- $session->addSuccess(__('Account linked successfully.'));
329
- header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
330
- die;
331
- }
332
- }
333
-
334
- // if token is posted then this function will be called. It will login user if already in database. else if email is provided by api, it will insert data and login user. It will handle all after token.
335
-
336
- function socialLoginUserLogin($entityId, $socialId, $loginOrRegister = 'Login')
337
- {
338
- $session = Mage::getSingleton("customer/session");
339
- $customer = Mage::getModel('customer/customer')->load($entityId);
340
- $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
341
- $session->setCustomerAsLoggedIn($customer);
342
- $functionForRedirectOption = 'get' . $loginOrRegister . 'RedirectOption';
343
- $Hover = $this->blockObj->$functionForRedirectOption();
344
- $functionForCustomRedirectOption = 'getCustom' . $loginOrRegister . 'RedirectOption';
345
- $write_url = $this->blockObj->$functionForCustomRedirectOption();
346
- $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
347
- // check if logged in from callback page
348
- if (isset($_GET['loginradiuscheckout'])) {
349
- $currentUrl = Mage::helper('checkout/url')->getCheckoutUrl();
350
- Mage::app()->getResponse()->setRedirect($currentUrl)->sendResponse();
351
- }
352
- if ($Hover == 'account') {
353
- $currentUrl = $url . 'customer/account';
354
- } elseif ($Hover == 'index') {
355
- $currentUrl = $url;
356
- } elseif ($Hover == 'custom' && $write_url != '') {
357
- $currentUrl = $write_url;
358
- } elseif ($Hover == 'same') {
359
- $currentUrl = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer() : Mage::getUrl();
360
- } else {
361
- if (isset($_GET['redirect_to'])) {
362
- $currentUrl = trim($_GET['redirect_to']);
363
- } else {
364
- $currentUrl = $url;
365
- }
366
 
367
- }
368
- Mage::app()->getResponse()->setRedirect($currentUrl)->sendResponse();
369
- }
370
-
371
- function socialLoginAddNewUser($socialloginProfileData, $verify = false, $update = false, $customerId = '')
372
- {
373
- $websiteId = Mage::app()->getWebsite()->getId();
374
- $store = Mage::app()->getStore();
375
- if (!$update) {
376
- $redirectionTo = 'Registration';
377
- // add new user magento way
378
- $customer = Mage::getModel("customer/customer");
379
- } else {
380
- $redirectionTo = 'Login';
381
- $customer = Mage::getModel('customer/customer')->load($customerId);
382
- }
383
- $customer->website_id = $websiteId;
384
- $customer->setStore($store);
385
- if ($socialloginProfileData['FirstName'] != "") {
386
- $customer->firstname = $socialloginProfileData['FirstName'];
387
- }
388
- if (!$update) {
389
- $customer->lastname = $socialloginProfileData['LastName'] == "" ? $socialloginProfileData['FirstName'] : $socialloginProfileData['LastName'];
390
- } elseif ($update && $socialloginProfileData['LastName'] != "") {
391
- $customer->lastname = $socialloginProfileData['LastName'];
392
- }
393
- if (!$update) {
394
- $customer->email = $socialloginProfileData['Email'];
395
- $loginRadiusPwd = $customer->generatePassword(10);
396
- $customer->password_hash = md5($loginRadiusPwd);
397
- }
398
- if ($socialloginProfileData['BirthDate'] != "") {
399
- $customer->dob = $socialloginProfileData['BirthDate'];
400
- }
401
- if ($socialloginProfileData['Gender'] != "") {
402
- $customer->gender = $socialloginProfileData['Gender'];
403
- }
404
- $customer->setConfirmation(null);
405
- $customer->save();
406
-
407
- // if updating user profile
408
- if ($update) {
409
- $addresses = $customer->getAddressesCollection();
410
- $matched = false;
411
- foreach ($addresses as $address) {
412
- $address = $address->toArray();
413
- if ($address['firstname'] == $socialloginProfileData['FirstName']
414
- && $address['lastname'] == $socialloginProfileData['LastName']
415
- && $address['country_id'] == ucfirst($socialloginProfileData['Country'])
416
- && $address['city'] == ucfirst($socialloginProfileData['City'])
417
- && $address['telephone'] == $socialloginProfileData['PhoneNumber']
418
- && $address['company'] == ucfirst($socialloginProfileData['Industry'])
419
- && $address['street'] == ucfirst($socialloginProfileData['Address'])
420
- ) {
421
- $matched = true;
422
- // if profile data contains zipcode then match it with that in the address
423
- if (isset($socialloginProfileData['Zipcode']) && $address['postcode'] != $socialloginProfileData['Zipcode']) {
424
- $matched = false;
425
- }
426
- // if profile data contains province then match it with that in the address
427
- if (isset($socialloginProfileData['Province']) && $address['region'] != $socialloginProfileData['Province']) {
428
- $matched = false;
429
- }
430
  }
431
- if ($matched) {
432
- break;
 
433
  }
434
- }
435
  }
436
- $address = Mage::getModel("customer/address");
437
- if (!$update) {
438
- $address->setCustomerId($customer->getId());
439
- } else {
440
- $address->setCustomerId($customerId);
 
 
 
 
 
441
  }
442
- if (($update && !$matched) || !$update) {
443
- $address->firstname = $customer->firstname;
444
- $address->lastname = $customer->lastname;
445
- $address->country_id = isset($socialloginProfileData['Country']) ? ucfirst($socialloginProfileData['Country']) : '';
446
- if (isset($socialloginProfileData['Zipcode'])) {
447
- $address->postcode = $socialloginProfileData['Zipcode'];
448
- }
449
- $address->city = isset($socialloginProfileData['City']) ? ucfirst($socialloginProfileData['City']) : '';
450
- // If country is USA, set up province
451
- if (isset($socialloginProfileData['Province'])) {
452
- $address->region = $socialloginProfileData['Province'];
453
- }
454
- $address->telephone = isset($socialloginProfileData['PhoneNumber']) ? ucfirst($socialloginProfileData['PhoneNumber']) : '';
455
- $address->company = isset($socialloginProfileData['Industry']) ? ucfirst($socialloginProfileData['Industry']) : '';
456
- $address->street = isset($socialloginProfileData['Address']) ? ucfirst($socialloginProfileData['Address']) : '';
457
- // set default billing, shipping address and save in address book
458
- $address->setIsDefaultShipping('1')->setIsDefaultBilling('1')->setSaveInAddressBook('1');
459
- $address->save();
460
  }
461
- // add info in sociallogin table
462
- if (!$verify) {
463
- $fields = array();
464
- $fields['sociallogin_id'] = $socialloginProfileData['lrId'];
465
- $fields['entity_id'] = $customer->getId();
466
- $fields['avatar'] = $socialloginProfileData['thumbnail'];
467
- $fields['provider'] = $socialloginProfileData['Provider'];
468
- if (!$update) {
469
- Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $fields);
470
- } else {
471
- Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", array('avatar' => $socialloginProfileData['thumbnail']), true, array('entity_id = ?' => $customerId));
472
- }
473
- if (!$update) {
474
- $loginRadiusUsername = $socialloginProfileData['FirstName'] . " " . $socialloginProfileData['LastName'];
475
- // email notification to user
476
- if ($this->blockObj->notifyUser() == "1") {
477
- $loginRadiusMessage = $this->blockObj->notifyUserText();
478
- if ($loginRadiusMessage == "") {
479
- $loginRadiusMessage = __("Welcome to ") . $store->getGroup()->getName() . ". " . __("You can login to the store using following e-mail address and password");
480
- }
481
- $loginRadiusMessage .= "<br/>" . "Email : " . $socialloginProfileData['Email'] . "<br/>" . __("Password") . " : " . $loginRadiusPwd;
482
-
483
- Mage::helper('sociallogin/loginhelper')->loginRadiusEmail(__("Welcome") . " " . $loginRadiusUsername . "!", $loginRadiusMessage, $socialloginProfileData['Email'], $loginRadiusUsername);
484
- }
485
- // new user notification to admin
486
- if ($this->blockObj->notifyAdmin() == "1") {
487
- $loginRadiusAdminEmail = Mage::getStoreConfig('trans_email/ident_general/email');
488
- $loginRadiusAdminName = Mage::getStoreConfig('trans_email/ident_general/name');
489
- $loginRadiusMessage = trim($this->blockObj->notifyAdminText());
490
- if ($loginRadiusMessage == "") {
491
- $loginRadiusMessage = __("New customer has been registered to your store with following details");
492
- }
493
- $loginRadiusMessage .= "<br/>" . __("Name") . " : " . $loginRadiusUsername . "<br/>" . __("Email") . " : " . $socialloginProfileData['Email'];
494
- Mage::helper('sociallogin/loginhelper')->loginRadiusEmail(__("New User Registration"), $loginRadiusMessage, $loginRadiusAdminEmail, $loginRadiusAdminName);
495
- }
496
- }
497
- //login and redirect user
498
- $this->socialLoginUserLogin($customer->getId(), $fields['sociallogin_id'], $redirectionTo);
499
  }
500
- if ($verify) {
501
- $loginRadiusUsername = $socialloginProfileData['FirstName'] . " " . $socialloginProfileData['LastName'];
502
- Mage::helper('sociallogin/loginhelper')->verifyUser($socialloginProfileData['lrId'], $customer->getId(), $socialloginProfileData['thumbnail'], $socialloginProfileData['Provider'], $socialloginProfileData['Email'], true, $loginRadiusUsername);
 
503
  }
504
- }
505
-
506
- public function SocialLoginShowLayout()
507
- {
508
- $this->loadLayout();
509
- $this->renderLayout();
510
- }
511
-
512
- /**
513
- * Action for AJAX
514
- */
515
- function ajaxAction()
516
- {
517
- $this->loadLayout();
518
- $this->renderLayout();
519
- }
520
-
521
- protected function _getSession()
522
- {
523
- return Mage::getSingleton('sociallogin/session');
524
- }
525
  }
2
  Mage::app('default');
3
  function getMazeTable($tbl)
4
  {
5
+ $tableName = Mage::getSingleton('core/resource')->getTableName($tbl);
6
+
7
+ return ($tableName);
8
  }
9
 
10
  //customer will be re-directed to this file. this file handle all token, email etc things.
11
  class Loginradius_Sociallogin_IndexController extends Mage_Core_Controller_Front_Action
12
  {
13
+ public $socialloginProfileData;
14
+ public $blockObj;
15
+ private $loginRadiusPopMsg;
16
+ private $loginRadiusPopErr;
 
 
 
 
 
 
 
 
 
17
 
18
+ public function indexAction()
19
+ {
20
+ $this->blockObj = new Loginradius_Sociallogin_Block_Sociallogin();
21
+ $token = isset($_REQUEST['token']) ? trim($_REQUEST['token']) : '';
22
+ if (!empty($token)) {
23
+ $this->tokenHandle($token);
 
 
 
 
24
 
25
+ return;
 
 
 
 
 
 
26
  }
 
 
 
 
27
 
28
+ // email verification
29
+ if (isset($_GET['loginRadiusKey']) && !empty($_GET['loginRadiusKey'])) {
30
+ $loginRadiusVkey = trim($_GET['loginRadiusKey']);
31
+ // get entity_id and provider of the vKey
32
+ $result = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "verification", array($loginRadiusVkey), true);
33
+ if ($temp = $result->fetch()) {
34
+ // set verified status true at this verification key
35
+ $tempUpdate = array("verified" => '1', "vkey" => '');
36
+ $tempUpdate2 = array("vkey = ?" => $loginRadiusVkey);
37
+ Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $tempUpdate, true, $tempUpdate2);
38
+
39
+ $session = Mage::getSingleton('customer/session');
40
+ $session->addSuccess(__('Your email has been verified. Now you can login to your account.'));
41
+ // check if verification for same provider is still pending on this entity_id
42
+ if (Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "verification2", array($temp['entity_id'], $temp['provider']))) {
43
+ $tempUpdate = array("vkey" => '');
44
+ $tempUpdate2 = array("entity_id = ?" => $temp['entity_id'], "provider = ?" => $temp['provider']);
45
+ Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $tempUpdate, true, $tempUpdate2);
46
+ }
47
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
48
+ die;
49
+ }
 
 
 
 
 
50
  }
51
+
52
+ if (isset($_POST['LoginRadiusRedSliderClick'])) {
53
+ $loginhelper = Mage::helper('sociallogin/loginhelper');
54
+ $socialLoginProfileData = Mage::getSingleton('core/session')->getSocialLoginData();
55
+ $session_user_id = $socialLoginProfileData['lrId'];
56
+ $loginRadiusPopProvider = $socialLoginProfileData['Provider'];
57
+ $loginRadiusAvatar = $socialLoginProfileData['thumbnail'];
58
+ if (!empty($session_user_id)) {
59
+ $loginRadiusProfileData = array();
60
+ // address
61
+ if (isset($_POST['loginRadiusAddress'])) {
62
+ $loginRadiusProfileData['Address'] = "";
63
+ $profileAddress = trim($_POST['loginRadiusAddress']);
64
+ }
65
+ // city
66
+ if (isset($_POST['loginRadiusCity'])) {
67
+ $loginRadiusProfileData['City'] = "";
68
+ $profileCity = trim($_POST['loginRadiusCity']);
69
+ }
70
+ // country
71
+ if (isset($_POST['loginRadiusCountry'])) {
72
+ $loginRadiusProfileData['Country'] = "";
73
+ $profileCountry = trim($_POST['loginRadiusCountry']);
74
+ }
75
+ // phone number
76
+ if (isset($_POST['loginRadiusPhone'])) {
77
+ $loginRadiusProfileData['PhoneNumber'] = "";
78
+ $profilePhone = trim($_POST['loginRadiusPhone']);
79
+ }
80
+ // email
81
+ if (isset($_POST['loginRadiusEmail'])) {
82
+ $email = trim($_POST['loginRadiusEmail']);
83
+ $select = $loginhelper->loginRadiusRead("customer_entity", "email_already_exists", array($email), true);
84
+ if ($rowArray = $select->fetch()) {
85
+ $errorMessage = $this->blockObj->getPopupError();
86
+ if ($this->blockObj->getProfileFieldsRequired() == 1) {
87
+ $loginhelper->setTmpSession("", $errorMessage, true, $socialLoginProfileData, true);
88
+ } else {
89
+ $loginhelper->setTmpSession("", $errorMessage, true, array(), true, true);
90
+ }
91
+ $this->popupHandle();
92
+
93
+ return;
94
+ }
95
+
96
+ if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email)) {
97
+ if ($this->blockObj->getProfileFieldsRequired() == 1) {
98
+ $hideZipCountry = false;
99
+ } else {
100
+ $hideZipCountry = true;
101
+ }
102
+ Mage::helper('sociallogin/loginhelper')->setTmpSession($this->blockObj->getPopupText(), $this->blockObj->getPopupError(), true, $loginRadiusProfileData, true, $hideZipCountry);
103
+ $this->popupHandle();
104
+
105
+ return;
106
+ }
107
+ // check if email already exists
108
+ $userId = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("customer_entity", "email exists pop1", array($email), true);
109
+ if ($rowArray = $userId->fetch()) { // email exists
110
+ //check if entry exists on same provider in sociallogin table
111
+ $verified = Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "email exists sl", array($rowArray['entity_id'], $loginRadiusPopProvider), true);
112
+ if ($rowArray2 = $verified->fetch()) {
113
+ // check verified field
114
+ if ($rowArray2['verified'] == "1") {
115
+ // check sociallogin id
116
+ if ($rowArray2['sociallogin_id'] == $session_user_id) {
117
+ $this->socialLoginUserLogin($rowArray['entity_id'], $rowArray2['sociallogin_id']);
118
+ } else {
119
+ Mage::helper('sociallogin/loginhelper')->setTmpSession($this->loginRadiusPopMsg, $this->loginRadiusPopErr, true, array(), true, true);
120
+ $this->popupHandle();
121
+ }
122
+
123
+ return;
124
+ } else {
125
+ // check sociallogin id
126
+ if ($rowArray2['sociallogin_id'] == $session_user_id) {
127
+ Mage::helper('sociallogin/loginhelper')->setTmpSession("Please provide following details", "", true, $this->socialloginProfileData, false);
128
+ $this->popupHandle();
129
+ } else {
130
+ // send verification email
131
+ Mage::helper('sociallogin/loginhelper')->verifyUser($session_user_id, $rowArray['entity_id'], $loginRadiusAvatar, $loginRadiusPopProvider, $email);
132
+ }
133
+
134
+ return;
135
+ }
136
+ } else {
137
+ // send verification email
138
+ Mage::helper('sociallogin/loginhelper')->verifyUser($session_user_id, $rowArray['entity_id'], $loginRadiusAvatar, $loginRadiusPopProvider, $email);
139
+
140
+ return;
141
+ }
142
+ }
143
+ }
144
+ // validate other profile fields
145
+ if ((isset($profileAddress) && $profileAddress == "") || (isset($profileCity) && $profileCity == "") || (isset($profileCountry) && $profileCountry == "") || (isset($profilePhone) && $profilePhone == "")) {
146
+ Mage::helper('sociallogin/loginhelper')->setTmpSession("", "Please fill all the fields", true, $loginRadiusProfileData, true);
147
+ $this->popupHandle();
148
+
149
+ return;
150
+ }
151
+ $this->socialloginProfileData = Mage::getSingleton('core/session')->getSocialLoginData();
152
+ // assign submitted profile fields to array
153
+ // address
154
+ if (isset($profileAddress)) {
155
+ $this->socialloginProfileData['Address'] = $profileAddress;
156
+ }
157
+ // city
158
+ if (isset($profileCity)) {
159
+ $this->socialloginProfileData['City'] = $profileCity;
160
+ }
161
+ // Country
162
+ if (isset($profileCountry)) {
163
+ $this->socialloginProfileData['Country'] = $profileCountry;
164
+ }
165
+ // Phone Number
166
+ if (isset($profilePhone)) {
167
+ $this->socialloginProfileData['PhoneNumber'] = $profilePhone;
168
+ }
169
+ // Zipcode
170
+ if (isset($_POST['loginRadiusZipcode'])) {
171
+ $this->socialloginProfileData['Zipcode'] = trim($_POST['loginRadiusZipcode']);
172
+ }
173
+ // Province
174
+ if (isset($_POST['loginRadiusProvince'])) {
175
+ $this->socialloginProfileData['Province'] = trim($_POST['loginRadiusProvince']);
176
+ }
177
+ // Email
178
+ if (isset($email)) {
179
+ $this->socialloginProfileData['Email'] = $email;
180
+ $verify = true;
181
+ } else {
182
+ $verify = false;
183
+ }
184
+ Mage::getSingleton('core/session')->unsSocialLoginData(); // unset session
185
+ if ($this->blockObj->getProfileFieldsRequired() == "1") {
186
+ $this->socialLoginAddNewUser($this->socialloginProfileData, $verify, false, '', true);
187
+ } else {
188
+ $this->socialLoginAddNewUser($this->socialloginProfileData, $verify);
189
+ }
190
+
191
  }
192
+ } elseif (isset($_POST['LoginRadiusPopupCancel'])) { // popup cancelled
193
+ Mage::getSingleton('core/session')->unsSocialLoginData(); // unset session
 
194
 
195
+ Mage::getSingleton('core/session')->unsTmpPopupTxt();
196
+ Mage::getSingleton('core/session')->unsTmpPopupMsg();
197
+ Mage::getSingleton('core/session')->unsTmpShowForm();
198
+ Mage::getSingleton('core/session')->unsTmpProfileData();
199
+ Mage::getSingleton('core/session')->unsTmpEmailRequired();
200
+ Mage::getSingleton('core/session')->unsTmpHideZipcode();
201
+
202
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
203
+ die;
204
+ }
205
+ $this->SocialLoginShowLayout();
206
+ }
207
+
208
+ public function tokenHandle($token)
209
+ {
210
+ $loginhelper = Mage::helper('sociallogin/loginhelper');
211
+ $loginRadiusSDK = Mage::helper('sociallogin/LoginRadiusSDK');
212
+ // Fetch user profile using access token ......
213
+ $responseFromLoginRadius = $loginRadiusSDK->fetchUserProfile($token);
214
+ $userObj = json_decode($responseFromLoginRadius);
215
+
216
+ if (isset($userObj->ID) && !empty($userObj->ID)) {
217
+ // If linking variable is available then link account
218
+ if ($this->blockObj->user_is_already_login()) {
219
+ $this->loginRadiusSocialLinking(Mage::getSingleton("customer/session")->getCustomer()->getId(), $userObj->ID, $userObj->Provider, $userObj->ThumbnailImageUrl, true);
220
  }
221
+ $this->socialloginProfileData = $loginhelper->socialLoginFilterData($userObj);
222
+
223
+ //valid user, checking if user in sociallogin and customer entity tabel
224
+ $queryResult = $loginhelper->loginRadiusRead("sociallogin", "get_user_by_social_id", array($userObj->ID), true);
225
+ //Social Id Exist in Local DB
226
+ if ($result = $queryResult->fetch()) {
227
+ if ($result['verified'] == "0") {
228
+ $session = Mage::getSingleton('customer/session');
229
+ $session->addError(__('Please verify your email to login.'));
230
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK));
231
+ die;
 
 
 
 
232
  } else {
233
+ if ($this->blockObj->updateProfileData() != '1') {
234
+ $this->socialLoginUserLogin($result['entity_id'], $userObj->ID);
235
+ } else {
236
+ $this->socialloginProfileData['lrId'] = $userObj->ID;
237
+ $this->socialLoginAddNewUser($this->socialloginProfileData, false, true, $result['entity_id']);
238
+ }
239
+
240
+ return;
241
  }
242
+ } //Social Id not Exist in Local DB and email not empty
243
+ elseif (isset($userObj->Email[0]->Value) && !empty($userObj->Email[0]->Value)) {
244
+ //if email is provided by provider then check if it's in table
245
+ $email = $userObj->Email[0]->Value;
246
+ $select = $loginhelper->loginRadiusRead("customer_entity", "email_already_exists", array($email), true);
247
+ if ($rowArray = $select->fetch()) {
248
+ //user is in customer table
249
+ if ($this->blockObj->getLinking() == "1") { // Social Linking
250
+ $this->loginRadiusSocialLinking($rowArray['entity_id'], $userObj->ID, $userObj->Provider, $userObj->ThumbnailImageUrl);
251
+ }
252
+
253
+ if ($this->blockObj->updateProfileData() != '1') {
254
+ $this->socialLoginUserLogin($rowArray['entity_id'], $userObj->ID);
255
+ } else {
256
+ $this->socialloginProfileData = $loginhelper->socialLoginFilterData($userObj);
257
+ $this->socialloginProfileData['lrId'] = $userObj->ID;
258
+ $this->socialLoginAddNewUser($this->socialloginProfileData, false, true, $rowArray['entity_id']);
259
+ }
260
  } else {
261
+ $this->socialloginProfileData['lrId'] = $userObj->ID;
262
+ if ($this->blockObj->getProfileFieldsRequired() == 1) {
263
+ $loginhelper->setInSession($userObj->ID, $this->socialloginProfileData);
264
+ $loginhelper->setTmpSession($this->blockObj->getPopupText(), "", true, $this->socialloginProfileData, false);
265
+ // show a popup to fill required profile fields
266
+ $this->popupHandle();
267
+
268
+ return;
269
+ }
270
+ $this->socialLoginAddNewUser($this->socialloginProfileData);
271
  }
 
 
272
  } else {
273
+ $emailRequired = true;
274
+ if ($this->blockObj->getEmailRequired() == 0) { // dummy email
275
+ $email = $loginhelper->generateRandomEmail($userObj);
276
+ $this->socialloginProfileData['Email'] = $email;
277
+ $this->socialloginProfileData['lrId'] = $userObj->ID;
278
+ $emailRequired = false;
279
+ }
280
+ //
281
+ $this->socialloginProfileData['lrToken'] = $this->loginRadiusAccessToken;
282
+ //show required fields popup
283
+ $loginhelper->setInSession($userObj->ID, $this->socialloginProfileData);
284
+ if ($this->blockObj->getProfileFieldsRequired() == 1) {
285
+ // show a popup to fill required profile fields
286
+ $loginhelper->setTmpSession($this->loginRadiusPopMsg, "", true, $this->socialloginProfileData, $emailRequired);
287
+ $this->popupHandle();
288
+ } elseif ($this->blockObj->getEmailRequired() == 1) {
289
+ $loginhelper->setTmpSession($this->loginRadiusPopMsg, "", true, array(), $emailRequired, true);
290
+ $this->popupHandle();
291
+ } else {
292
+ //create new user without showing popup
293
+ $this->socialLoginAddNewUser($this->socialloginProfileData);
294
+ }
295
  }
296
+ } else {
297
+ if ($this->blockObj->isDebuggingOn()) {
298
+ Mage::getSingleton('core/session')->addNotice($userObj->description);
299
+ session_write_close();
300
+ }
301
+ $refererUrl = $this->_getRefererUrl();
302
+ if (empty($refererUrl)) {
303
+ $refererUrl = Mage::getBaseUrl();
304
+ }
305
+ $this->getResponse()->setRedirect($refererUrl);
306
+
307
+ return;
308
  }
309
+ }
310
+
311
+ function loginRadiusSocialLinking($entityId, $socialId, $provider, $thumbnail, $unique = false)
312
+ {
313
+ $session = Mage::getSingleton('customer/session');
314
+ // check if any account from this provider is already linked
315
+ if ($this->blockObj->user_is_already_login()) {
316
+ if (Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "get_user_by_social_id", array($socialId))) {
317
+ $session->addError(__('This accounts is already linked with an account.'));
318
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
319
+ die;
320
+ } elseif ($unique && Mage::helper('sociallogin/loginhelper')->loginRadiusRead("sociallogin", "provider exists in sociallogin", array($entityId, $provider))) {
321
+ $session->addError(__('Multiple accounts cannot be linked from the same Social ID Provider.'));
322
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
323
+ die;
324
+ }
325
  }
326
+ $socialLoginLinkData = array();
327
+ $socialLoginLinkData['sociallogin_id'] = $socialId;
328
+ $socialLoginLinkData['entity_id'] = $entityId;
329
+ $socialLoginLinkData['provider'] = empty($provider) ? "" : $provider;
330
+ $socialLoginLinkData['avatar'] = Mage::helper('sociallogin/loginHelper')->socialLoginFilterAvatar($socialId, $thumbnail, $provider);
331
+ $socialLoginLinkData['avatar'] = ($socialLoginLinkData['avatar'] == "") ? null : $socialLoginLinkData['avatar'];
332
+ Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $socialLoginLinkData);
333
+ if ($this->blockObj->user_is_already_login()) {
334
+ $session->addSuccess(__('Account linked successfully.'));
335
+ header("Location:" . Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "customer/account");
336
+ die;
337
  }
338
+ }
339
+
340
+ function socialLoginUserLogin($entityId, $socialId, $loginOrRegister = 'Login')
341
+ {
342
+ $session = Mage::getSingleton("customer/session");
343
+ $customer = Mage::getModel('customer/customer')->load($entityId);
344
+ $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
345
+ $session->setCustomerAsLoggedIn($customer);
346
+ $functionForRedirectOption = 'get' . $loginOrRegister . 'RedirectOption';
347
+ $Hover = $this->blockObj->$functionForRedirectOption();
348
+ $functionForCustomRedirectOption = 'getCustom' . $loginOrRegister . 'RedirectOption';
349
+ $write_url = $this->blockObj->$functionForCustomRedirectOption();
350
+ $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
351
+ // check if logged in from callback page
352
+ if (isset($_GET['loginradiuscheckout'])) {
353
+ $currentUrl = Mage::helper('checkout/url')->getCheckoutUrl();
354
+ Mage::app()->getResponse()->setRedirect($currentUrl)->sendResponse();
355
  }
356
+ if ($Hover == 'account') {
357
+ $currentUrl = $url . 'customer/account';
358
+ } elseif ($Hover == 'index') {
359
+ $currentUrl = $url;
360
+ } elseif ($Hover == 'custom' && $write_url != '') {
361
+ $currentUrl = $write_url;
362
+ } elseif ($Hover == 'same') {
363
+ $currentUrl = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer() : Mage::getUrl();
364
+ } else {
365
+ if (isset($_GET['redirect_to'])) {
366
+ $currentUrl = trim($_GET['redirect_to']);
367
+ } else {
368
+ $currentUrl = $url;
369
+ }
370
+
371
  }
372
+ Mage::app()->getResponse()->setRedirect($currentUrl)->sendResponse();
373
+ }
374
+
375
+ // if token is posted then this function will be called. It will login user if already in database. else if email is provided by api, it will insert data and login user. It will handle all after token.
376
+
377
+ function socialLoginAddNewUser($socialloginProfileData, $verify = false, $update = false, $customerId = '', $requiredFields = false)
378
+ {
379
+ $websiteId = Mage::app()->getWebsite()->getId();
380
+ $store = Mage::app()->getStore();
381
+ if (!$update) {
382
+ $redirectionTo = 'Registration';
383
+ // add new user magento way
384
+ $customer = Mage::getModel("customer/customer");
385
+ } else {
386
+ $redirectionTo = 'Login';
387
+ $customer = Mage::getModel('customer/customer')->load($customerId);
388
  }
389
+ $customer->website_id = $websiteId;
390
+ $customer->setStore($store);
391
+ if ($socialloginProfileData['FirstName'] != "") {
392
+ $customer->firstname = $socialloginProfileData['FirstName'];
393
  }
394
+ if (!$update) {
395
+ $customer->lastname = $socialloginProfileData['LastName'] == "" ? $socialloginProfileData['FirstName'] : $socialloginProfileData['LastName'];
396
+ } elseif ($update && $socialloginProfileData['LastName'] != "") {
397
+ $customer->lastname = $socialloginProfileData['LastName'];
398
  }
399
+ if (!$update) {
400
+ $customer->email = $socialloginProfileData['Email'];
401
+ $loginRadiusPwd = $customer->generatePassword(10);
402
+ $customer->password_hash = md5($loginRadiusPwd);
 
 
403
  }
404
+ if ($socialloginProfileData['BirthDate'] != "") {
405
+ $customer->dob = $socialloginProfileData['BirthDate'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  }
407
+ if ($socialloginProfileData['Gender'] != "") {
408
+ $customer->gender = $socialloginProfileData['Gender'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
  }
410
+ $customer->setConfirmation(null);
411
+ $customer->save();
412
+
413
+ $address = Mage::getModel("customer/address");
414
+ if (!$update) {
415
+ $address->setCustomerId($customer->getId());
 
416
  }
417
+ if (!$update) {
418
+ $address->firstname = $customer->firstname;
419
+ $address->lastname = $customer->lastname;
420
+ $address->country_id = isset($socialloginProfileData['Country']) ? ucfirst($socialloginProfileData['Country']) : '';
421
+ if (isset($socialloginProfileData['Zipcode'])) {
422
+ $address->postcode = $socialloginProfileData['Zipcode'];
423
+ }
424
+ $address->city = isset($socialloginProfileData['City']) ? ucfirst($socialloginProfileData['City']) : '';
425
+ // If country is USA, set up province
426
+ if (isset($socialloginProfileData['Province'])) {
427
+ $address->region = $socialloginProfileData['Province'];
428
+ }
429
+ $address->telephone = isset($socialloginProfileData['PhoneNumber']) ? ucfirst($socialloginProfileData['PhoneNumber']) : '';
430
+ $address->company = isset($socialloginProfileData['Industry']) ? ucfirst($socialloginProfileData['Industry']) : '';
431
+ $address->street = isset($socialloginProfileData['Address']) ? ucfirst($socialloginProfileData['Address']) : '';
432
+ // set default billing, shipping address and save in address book
433
+ $address->setIsDefaultShipping('1')->setIsDefaultBilling('1')->setSaveInAddressBook('1');
434
+ if ($requiredFields) {
435
+ $address->save();
436
+ }
437
  }
438
+ // add info in sociallogin table
439
+ if (!$verify) {
440
+ $fields = array();
441
+ $fields['sociallogin_id'] = $socialloginProfileData['lrId'];
442
+ $fields['entity_id'] = $customer->getId();
443
+ $fields['avatar'] = $socialloginProfileData['thumbnail'];
444
+ $fields['provider'] = $socialloginProfileData['Provider'];
445
+ if (!$update) {
446
+ Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", $fields);
447
+ } else {
448
+ Mage::helper('sociallogin/loginhelper')->SocialLoginInsert("sociallogin", array('avatar' => $socialloginProfileData['thumbnail']), true, array('entity_id = ?' => $customerId));
449
+ }
450
+ if (!$update) {
451
+ $loginRadiusUsername = $socialloginProfileData['FirstName'] . " " . $socialloginProfileData['LastName'];
452
+ // email notification to user
453
+ if ($this->blockObj->notifyUser() == "1") {
454
+ $loginRadiusMessage = $this->blockObj->notifyUserText();
455
+ if ($loginRadiusMessage == "") {
456
+ $loginRadiusMessage = __("Welcome to ") . $store->getGroup()->getName() . ". " . __("You can login to the store using following e-mail address and password");
457
+ }
458
+ $loginRadiusMessage .= "<br/>" . "Email : " . $socialloginProfileData['Email'] . "<br/>" . __("Password") . " : " . $loginRadiusPwd;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
 
460
+ Mage::helper('sociallogin/loginhelper')->loginRadiusEmail(__("Welcome") . " " . $loginRadiusUsername . "!", $loginRadiusMessage, $socialloginProfileData['Email'], $loginRadiusUsername);
461
+ }
462
+ // new user notification to admin
463
+ if ($this->blockObj->notifyAdmin() == "1") {
464
+ $loginRadiusAdminEmail = Mage::getStoreConfig('trans_email/ident_general/email');
465
+ $loginRadiusAdminName = Mage::getStoreConfig('trans_email/ident_general/name');
466
+ $loginRadiusMessage = trim($this->blockObj->notifyAdminText());
467
+ if ($loginRadiusMessage == "") {
468
+ $loginRadiusMessage = __("New customer has been registered to your store with following details");
469
+ }
470
+ $loginRadiusMessage .= "<br/>" . __("Name") . " : " . $loginRadiusUsername . "<br/>" . __("Email") . " : " . $socialloginProfileData['Email'];
471
+ Mage::helper('sociallogin/loginhelper')->loginRadiusEmail(__("New User Registration"), $loginRadiusMessage, $loginRadiusAdminEmail, $loginRadiusAdminName);
472
+ }
473
+ }
474
+ //login and redirect user
475
+ $this->socialLoginUserLogin($customer->getId(), $fields['sociallogin_id'], $redirectionTo);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  }
477
+ if ($verify) {
478
+ $loginRadiusUsername = $socialloginProfileData['FirstName'] . " " . $socialloginProfileData['LastName'];
479
+ Mage::helper('sociallogin/loginhelper')->verifyUser($socialloginProfileData['lrId'], $customer->getId(), $socialloginProfileData['thumbnail'], $socialloginProfileData['Provider'], $socialloginProfileData['Email'], true, $loginRadiusUsername);
480
  }
 
481
  }
482
+
483
+ public function popupHandle()
484
+ {
485
+ $this->loadLayout();
486
+ $this->getLayout()->getBlock('content')->append(
487
+ $this->getLayout()->createBlock('Mage_Core_Block_Template', 'emailpopup', array('template' => 'sociallogin/popup.phtml'))
488
+ );
489
+ $this->renderLayout();
490
+
491
+ return $this;
492
  }
493
+
494
+ public function SocialLoginShowLayout()
495
+ {
496
+ $this->loadLayout();
497
+ $this->renderLayout();
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  }
499
+
500
+ /**
501
+ * Action for AJAX
502
+ */
503
+ function ajaxAction()
504
+ {
505
+ $this->loadLayout();
506
+ $this->renderLayout();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
507
  }
508
+
509
+ protected function _getSession()
510
+ {
511
+ return Mage::getSingleton('sociallogin/session');
512
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
513
  }
app/code/community/Loginradius/Sociallogin/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Loginradius_Sociallogin>
5
- <version>4.0.0</version>
6
  </Loginradius_Sociallogin>
7
  </modules>
8
  <frontend>
2
  <config>
3
  <modules>
4
  <Loginradius_Sociallogin>
5
+ <version>4.1.0</version>
6
  </Loginradius_Sociallogin>
7
  </modules>
8
  <frontend>
app/code/community/Loginradius/Sociallogin/sql/sociallogin_setup/{mysql4-install-4.0.0.php → mysql4-install-4.1.0.php} RENAMED
File without changes
app/code/community/Loginradius/Sociallogin/sql/sociallogin_setup/{mysql4-upgrade-3.7.1-4.0.0.php → mysql4-upgrade-3.7.1-4.1.0.php} RENAMED
File without changes
app/code/community/Loginradius/Sociallogin/sql/sociallogin_setup/{mysql4-upgrade-3.7.2-4.0.0.php → mysql4-upgrade-3.7.2-4.1.0.php} RENAMED
File without changes
app/code/community/Loginradius/Sociallogin/sql/sociallogin_setup/mysql4-upgrade-4.0.0-4.1.0.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+ $installer->startSetup();
4
+ $installer->run(
5
+ "
6
+ CREATE TABLE IF NOT EXISTS {$this->getTable('sociallogin')} (
7
+ `sociallogin_id` varchar(200) default NULL,
8
+ `entity_id` int(11) default NULL,
9
+ `avatar` varchar(1000) default NULL,
10
+ `verified` enum('0','1') default NULL,
11
+ `vkey` varchar(40) default NULL,
12
+ `provider` varchar(20) default NULL
13
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
14
+ "
15
+ );
16
+ $installer->endSetup();
app/design/frontend/base/default/template/sociallogin/popup.phtml CHANGED
@@ -4,9 +4,7 @@ $controller = new Loginradius_Sociallogin_IndexController();
4
  $socialLoginMsg = Mage::getSingleton('core/session')->getTmpPopupMsg();
5
  $loginRadiusShowForm = Mage::getSingleton('core/session')->getTmpShowForm();
6
  $profileData = Mage::getSingleton('core/session')->getTmpProfileData();
7
- var_dump($profileData);
8
  $emailRequired = Mage::getSingleton('core/session')->getTmpEmailRequired();
9
- var_dump($emailRequired);
10
  $hideZipcode = Mage::getSingleton('core/session')->getTmpHideZipcode();
11
  $provider = isset($profileData['Provider'])?trim($profileData['Provider']):'';
12
  $loginRadiusPopupTxt = str_replace('@provider', $provider, Mage::getSingleton('core/session')->getTmpPopupTxt());
4
  $socialLoginMsg = Mage::getSingleton('core/session')->getTmpPopupMsg();
5
  $loginRadiusShowForm = Mage::getSingleton('core/session')->getTmpShowForm();
6
  $profileData = Mage::getSingleton('core/session')->getTmpProfileData();
 
7
  $emailRequired = Mage::getSingleton('core/session')->getTmpEmailRequired();
 
8
  $hideZipcode = Mage::getSingleton('core/session')->getTmpHideZipcode();
9
  $provider = isset($profileData['Provider'])?trim($profileData['Provider']):'';
10
  $loginRadiusPopupTxt = str_replace('@provider', $provider, Mage::getSingleton('core/session')->getTmpPopupTxt());
app/design/frontend/base/default/template/sociallogin/sociallogin.phtml CHANGED
@@ -6,7 +6,7 @@ $loginRadiusTitle = trim($this->getLoginRadiusTitle());
6
  $UserAuth = $this->getApiResult($ApiKey, $ApiSecrete);
7
  if ($showdefault == 1) {
8
  if ($this->user_is_already_login()) {
9
- echo '<div class="block"><div class="block-title"><strong><span>' . __('Social Login') . '</span></strong></div><div class="block-content"><p class="empty">';
10
 
11
  $userName = Mage::getSingleton('customer/session')->getCustomer()->getName();
12
  if ($loginRadiusAvatar = trim($this->getAvatar(Mage::getSingleton('customer/session')->getCustomer()->getId()))
6
  $UserAuth = $this->getApiResult($ApiKey, $ApiSecrete);
7
  if ($showdefault == 1) {
8
  if ($this->user_is_already_login()) {
9
+ echo '<div class="block style="height:100px" ><div class="block-title"><strong><span>' . __('Social Login') . '</span></strong></div><div class="block-content"><p class="empty">';
10
 
11
  $userName = Mage::getSingleton('customer/session')->getCustomer()->getName();
12
  if ($loginRadiusAvatar = trim($this->getAvatar(Mage::getSingleton('customer/session')->getCustomer()->getId()))
app/design/frontend/base/default/template/sociallogin/sociallogin_head.phtml CHANGED
@@ -6,6 +6,9 @@
6
  * Time: 7:05 PM
7
  */
8
  $loc = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "sociallogin/";
 
 
 
9
  if ($this->getLayout()->getBlock('head')->getTitle() == "Checkout") {
10
  $loginRadiusCallback = $loc . "?loginradiuscheckout=1";
11
  }
@@ -17,7 +20,7 @@ else {
17
  }
18
  $scriptUrl = $this->getSkinUrl('Loginradius/Sociallogin/js/LoginRadiusSDK.2.0.0.js');
19
  ?>
20
- <script src="http://cdn.loginradius.com/hub/prod/v1/js/LoginRadius.1.0.js"></script>
21
  <script src="<?php echo $scriptUrl; ?>"></script>
22
 
23
  <script type="text/javascript">
6
  * Time: 7:05 PM
7
  */
8
  $loc = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . "sociallogin/";
9
+ if (strpos(Mage::helper('core/url')->getCurrentUrl(),'https://') !== false) {
10
+ $loc = str_replace('http://', 'https://', $loc);
11
+ }
12
  if ($this->getLayout()->getBlock('head')->getTitle() == "Checkout") {
13
  $loginRadiusCallback = $loc . "?loginradiuscheckout=1";
14
  }
20
  }
21
  $scriptUrl = $this->getSkinUrl('Loginradius/Sociallogin/js/LoginRadiusSDK.2.0.0.js');
22
  ?>
23
+ <script src="//cdn.loginradius.com/hub/prod/v1/js/LoginRadius.1.0.js"></script>
24
  <script src="<?php echo $scriptUrl; ?>"></script>
25
 
26
  <script type="text/javascript">
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>LoginRadius</name>
4
- <version>4.0.0</version>
5
  <stability>stable</stability>
6
  <license>GNU General Public License (GPL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Social Login and Sharing for Magento</summary>
10
  <description>Add Social Login and Sharing to your Magento website and also get accurate User Profile Data and Social Analytics.</description>
11
- <notes>Sixteenth release of social login</notes>
12
  <authors><author><name>LoginRadius Team</name><user>LoginRadius</user><email>developers@loginradius.com</email></author></authors>
13
- <date>2014-12-24</date>
14
- <time>11:41:47</time>
15
- <contents><target name="magecommunity"><dir name="Loginradius"><dir name="Sociallogin"><dir name="Block"><file name="Auth.php" hash="4d9b0a7b6e403ff9c2a0898cae41afd8"/><file name="Emailpopup.php" hash="d4aac86b3de441ea4cf35559a605e973"/><file name="Sociallogin.php" hash="6d91ed9e156fe7d03c2bf95c97aac590"/><file name="Socialsharing.php" hash="4f761eda5322ba05e1e0cb96d188a0cc"/><file name="horizontalsharing.php" hash="67fc95c9238a9d3327ca16ad3f18f2e4"/><file name="verticalsharing.php" hash="6410be41f2e7af717d4dd5de83ff4ca4"/></dir><dir name="Helper"><file name="Adminhelper.php" hash="0e88b0ae2a83aa6e419ca11194328b3c"/><file name="Data.php" hash="9b4cfd68e9bdbfa73038be009da120ca"/><file name="LoginRadiusSDK.php" hash="e55149a472facdf2c83e6513c73caa3b"/><file name="Loginhelper.php" hash="0a0ebe79e72d239e97ebd31e64f9494a"/></dir><dir name="Model"><dir name="Backend"><file name="Validator.php" hash="151ee6cc958f5c08fbad177c186d0bba"/></dir><file name="Observer.php" hash="c6e5b6d19ba39ad46398ee1950e1c940"/><dir name="Source"><file name="HorizontalSharing.php" hash="3dae6386a5f32e20ba270eb3c2d15de9"/><file name="Iconsize.php" hash="42eeb07db318ba705a09161c9496f1d8"/><file name="LoginPopup.php" hash="b423750764b43bbbb7504d2186e5cfc0"/><file name="SharingVerticalAlignment.php" hash="e897335623190b33778940d0559ce13e"/><file name="TwitterRecipients.php" hash="20c2e3e4e3662d610c55211b94d74d9d"/><file name="Uihover.php" hash="12c37574892cea00e167e679cc96eadd"/><file name="Uihover2.php" hash="8be4bac9bc4500977c81046ea511dada"/><file name="VerticalSharing.php" hash="2e9b88d5a8f4b38481e282534256f3b1"/></dir><dir name="System"><dir name="Config"><file name="Info.php" hash="f8e9832aa4b0910c7a68de2e5e368925"/></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="a113f4fd078468be9e89f33599dc563e"/></dir><dir name="etc"><file name="config.xml" hash="38b72a52b3de98316829abd0cf34d14c"/><file name="system.xml" hash="650c5b76041656f6b54efadf528e8fbf"/><file name="widget.xml" hash="f6e8a254aa3a9ff86f958710c4e8edca"/></dir><dir name="sql"><dir name="sociallogin_setup"><file name="mysql4-install-4.0.0.php" hash="c02ab421149fa4aafbfb0813ff350071"/><file name="mysql4-upgrade-3.7.1-4.0.0.php" hash="145b69433c87f3f3e7189ca0a647e71a"/><file name="mysql4-upgrade-3.7.2-4.0.0.php" hash="145b69433c87f3f3e7189ca0a647e71a"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Loginradius_Sociallogin.xml" hash="20cb11d66b0f486ebca4b8deedacc86b"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="loginradius_sociallogin.xml" hash="86b4e183c723dc96e13ee28198a36bc8"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="sociallogin.xml" hash="dcc24b2735bf4a240ca8916a597b8157"/></dir><dir name="template"><dir name="sociallogin"><file name="abovelogin.phtml" hash="29723ed6743adb5c94f553ce440effe2"/><file name="aboveregister.phtml" hash="e966762897e2084916733a5b594b56f3"/><file name="belowlogin.phtml" hash="5e81b7807c53da0230671c39e35fa682"/><file name="belowregister.phtml" hash="603509b2093ec24863cb3d8cd82e929c"/><file name="linking.phtml" hash="d1c8d7cdcf808425d86436bc84aadecf"/><file name="popup.phtml" hash="58d021ac61250c5d29237dc637c9c1e7"/><file name="popupscript.phtml" hash="45dcdebdfca0cebbc748540e3a3d3e67"/><file name="sociallogin.phtml" hash="ec7b7beb4850cb05e2e5fae23968e26e"/><file name="sociallogin_head.phtml" hash="a7724bf91373886e7c4293aad597c552"/><file name="sociallogincustom.phtml" hash="74981f871595e6ec876390bf9d9172d3"/><file name="socialshare_head.phtml" hash="ac05792d7af1badb469db4befa21b10a"/><file name="socialshareproduct.phtml" hash="2c306de83dff3995de1ccf424cd645bd"/><file name="socialsharesuccess.phtml" hash="b8de15c1333b70764beb8fa67a36265d"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="Loginradius"><dir name="Sociallogin"><dir name="css"><file name="Thumbs.db" hash="48d8e49d8f4b82fff044544f39a16537"/><file name="admin-ui.css" hash="bbb74482c891fe366ff8ae8638afa09e"/><file name="lrshare_iconsprite32.png" hash="a016ded3f25653acf2fa9dfab8a38103"/></dir><dir name="images"><dir name="Linking"><file name="amazon.png" hash="961d0082ed4b433d8e0274c133072e2c"/><file name="aol.png" hash="4e51f60c1b8750c5b9dfa94f56fe13b1"/><file name="facebook.png" hash="141309628c58912076f00954b3fd19a6"/><file name="foursquare.png" hash="de2f4fcf5b3c1156f22ed546f5c3f0c5"/><file name="github.png" hash="45f8e1436fc5c5803ed9d4edb7cb59b6"/><file name="google.png" hash="ffeddc7d14c9b4de2efb6b8ea0f5f652"/><file name="hyves.png" hash="3c77fd2243b22c61915a950c3910f37c"/><file name="kaixin.png" hash="bc84991a5c9d15e20946fae5e9c27f4d"/><file name="linkedin.png" hash="7a9bc12ec91ab2a30442c56a9f70e9ea"/><file name="live.png" hash="9d747bae72fc0f2e3a04f32896d62fbc"/><file name="livejournal.png" hash="e21f34630444412ab3dd197884e0c2e6"/><file name="mixi.png" hash="909e7edc76e59b448d56043eee5e1412"/><file name="myopenid.png" hash="c8295969044cb9d99f8348091ba75319"/><file name="myspace.png" hash="42cd07decb5f4a1fba604ef8df32ef2e"/><file name="odnoklassniki.png" hash="34cd7d239583b015cdd1adb5b7fec085"/><file name="openid.png" hash="92bd4471ef1d5dd04855887806db74f0"/><file name="orange.png" hash="9b9b8f2da956a238e7d58c241423af8a"/><file name="paypal.png" hash="082f0b50411b1dfb1bfd86cfdeb92cea"/><file name="persona.png" hash="e0d926f89e9c428aece1e0f9dbb1f8f2"/><file name="qq.png" hash="8e6dc34bdf03f07277e0aadf8706a4a7"/><file name="renren.png" hash="040a0af8119b7f85bfc2df41ec56f915"/><file name="salesforce.png" hash="e41bcac63438bb04af3a9745b816a675"/><file name="stackexchange.png" hash="8ab952fe75d4a96d6752792ffdcbf0c3"/><file name="steamcommunity.png" hash="ad05c57a4ee01ebc01428b0da905d6b6"/><file name="twitter.png" hash="48044aca3a1d4864361f78c02ba86848"/><file name="verisign.png" hash="7a15fd820171218d803d26e7a3ec46a3"/><file name="virgilio.png" hash="f5c3b6e19c38903a192954934000f60a"/><file name="vkontakte.png" hash="ae1e98911fe9ea6da8a50a568c082133"/><file name="wordpress.png" hash="8ce8b46a2233b8497dd10d9c4d535e22"/><file name="yahoo.png" hash="5c159cc8fed73621b2c12600f8dac288"/></dir><dir name="Sharing"><dir name="Horizontal"><file name="horizonSharing16.png" hash="0fad94b8e4a3e44a2e14f81a2ee04041"/><file name="horizonSharing32.png" hash="561208c81d7cd9d3500e3c460a8a5c49"/><file name="horizontal.png" hash="628fb90190ea3ded7b1f384662ce8153"/><file name="single-image-theme-large.png" hash="e6ff4a26149b631639b601d95e2dc361"/><file name="single-image-theme-small.png" hash="8c2b20fa0f276e33f3876783eb2cbd74"/><file name="vertical.png" hash="81e8591ec1216ffaa22430e86431bf15"/></dir><dir name="Vertical"><file name="16VerticlewithBox.png" hash="73b3abf54889144e9188ffaa76cbb11f"/><file name="32VerticlewithBox.png" hash="37060e164ca4f7c00f430d5f1ab7eddd"/><file name="verticalhorizontal.png" hash="0f4729083e85894d126a7c5202b18465"/><file name="verticalvertical.png" hash="fbbcf59f5e1c121d34073e4769048ff4"/></dir></dir><dir name="media-pages"><file name="Thumbs.db" hash="2bf832cc35446fe90ae3b62f3d1d6044"/><file name="facebook.png" hash="206f9ea5a7374595f0d8dc94a713eb01"/><file name="google.png" hash="aeb7ef22d42ef585b133f4f6f9332996"/><file name="linkedin.png" hash="30428fd794b1d4444891a987b76080df"/><file name="twitter.png" hash="ebab12206bed415ea082231ed2d5c3b9"/><file name="youtube.png" hash="a78066dee928ad36762b83a29cdea932"/></dir></dir><dir name="js"><file name="admin-ui.js" hash="e325d2de12ba432e1598e1c972a096cc"/><file name="jquery.js" hash="5654b0561c66ca9c0ad2a1dd75e5d9b8"/><file name="jquery.ui.sortable.min.js" hash="b847eafb05bcc6ef0908ff07dcd2b0f1"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="Loginradius"><dir name="Sociallogin"><dir name="css"><file name="lrshare_iconsprite32.png" hash="a016ded3f25653acf2fa9dfab8a38103"/><file name="popup.css" hash="d2b6b3044d2a499ae1dfb93c62b77809"/></dir><dir name="images"><dir name="Linking"><file name="amazon.png" hash="961d0082ed4b433d8e0274c133072e2c"/><file name="aol.png" hash="4e51f60c1b8750c5b9dfa94f56fe13b1"/><file name="facebook.png" hash="141309628c58912076f00954b3fd19a6"/><file name="foursquare.png" hash="de2f4fcf5b3c1156f22ed546f5c3f0c5"/><file name="github.png" hash="45f8e1436fc5c5803ed9d4edb7cb59b6"/><file name="google.png" hash="ffeddc7d14c9b4de2efb6b8ea0f5f652"/><file name="hyves.png" hash="3c77fd2243b22c61915a950c3910f37c"/><file name="kaixin.png" hash="bc84991a5c9d15e20946fae5e9c27f4d"/><file name="linkedin.png" hash="7a9bc12ec91ab2a30442c56a9f70e9ea"/><file name="live.png" hash="9d747bae72fc0f2e3a04f32896d62fbc"/><file name="livejournal.png" hash="e21f34630444412ab3dd197884e0c2e6"/><file name="mixi.png" hash="909e7edc76e59b448d56043eee5e1412"/><file name="myopenid.png" hash="c8295969044cb9d99f8348091ba75319"/><file name="myspace.png" hash="42cd07decb5f4a1fba604ef8df32ef2e"/><file name="odnoklassniki.png" hash="34cd7d239583b015cdd1adb5b7fec085"/><file name="openid.png" hash="92bd4471ef1d5dd04855887806db74f0"/><file name="orange.png" hash="9b9b8f2da956a238e7d58c241423af8a"/><file name="paypal.png" hash="082f0b50411b1dfb1bfd86cfdeb92cea"/><file name="persona.png" hash="e0d926f89e9c428aece1e0f9dbb1f8f2"/><file name="qq.png" hash="8e6dc34bdf03f07277e0aadf8706a4a7"/><file name="renren.png" hash="040a0af8119b7f85bfc2df41ec56f915"/><file name="salesforce.png" hash="e41bcac63438bb04af3a9745b816a675"/><file name="stackexchange.png" hash="8ab952fe75d4a96d6752792ffdcbf0c3"/><file name="steamcommunity.png" hash="ad05c57a4ee01ebc01428b0da905d6b6"/><file name="twitter.png" hash="48044aca3a1d4864361f78c02ba86848"/><file name="verisign.png" hash="7a15fd820171218d803d26e7a3ec46a3"/><file name="virgilio.png" hash="f5c3b6e19c38903a192954934000f60a"/><file name="vkontakte.png" hash="ae1e98911fe9ea6da8a50a568c082133"/><file name="wordpress.png" hash="8ce8b46a2233b8497dd10d9c4d535e22"/><file name="yahoo.png" hash="5c159cc8fed73621b2c12600f8dac288"/></dir><dir name="Sharing"><dir name="Horizontal"><file name="horizonSharing16.png" hash="64188c128c8263c052153cf9708ac218"/><file name="horizonSharing32.png" hash="5e85ac81864885bcef5cc9691a9eba49"/><file name="horizontal.png" hash="6bb8038603bbf9cc70bac8365eebd7ba"/><file name="single-image-theme-large.png" hash="e6ff4a26149b631639b601d95e2dc361"/><file name="single-image-theme-small.png" hash="8c2b20fa0f276e33f3876783eb2cbd74"/><file name="vertical.png" hash="9c71cfb83ffb121a0ef89e263d474387"/></dir><dir name="Vertical"><file name="16VerticlewithBox.png" hash="73b3abf54889144e9188ffaa76cbb11f"/><file name="32VerticlewithBox.png" hash="37060e164ca4f7c00f430d5f1ab7eddd"/><file name="verticalhorizontal.png" hash="469ce5302d294dc987bdb070ef448446"/><file name="verticalvertical.png" hash="f59288edc8c87dde216b6616027aa72b"/></dir></dir></dir><dir name="js"><file name="LoginRadiusSDK.2.0.0.js" hash="4bcc695e646cca3e0775e8279dfd773b"/><file name="jquery.js" hash="5654b0561c66ca9c0ad2a1dd75e5d9b8"/><file name="jquery.ui.sortable.min.js" hash="b847eafb05bcc6ef0908ff07dcd2b0f1"/><file name="popup.js" hash="29c4ce9392fa95d76fe21e12ba1b91b2"/></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>LoginRadius</name>
4
+ <version>4.1.0</version>
5
  <stability>stable</stability>
6
  <license>GNU General Public License (GPL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Social Login and Sharing for Magento</summary>
10
  <description>Add Social Login and Sharing to your Magento website and also get accurate User Profile Data and Social Analytics.</description>
11
+ <notes>Social Login and Sharing for Magento</notes>
12
  <authors><author><name>LoginRadius Team</name><user>LoginRadius</user><email>developers@loginradius.com</email></author></authors>
13
+ <date>2015-02-13</date>
14
+ <time>06:01:00</time>
15
+ <contents><target name="magecommunity"><dir name="Loginradius"><dir name="Sociallogin"><dir name="Block"><file name="Auth.php" hash="4d9b0a7b6e403ff9c2a0898cae41afd8"/><file name="Emailpopup.php" hash="d4aac86b3de441ea4cf35559a605e973"/><file name="Horizontalsharing.php" hash="67fc95c9238a9d3327ca16ad3f18f2e4"/><file name="Sociallogin.php" hash="6d91ed9e156fe7d03c2bf95c97aac590"/><file name="Socialsharing.php" hash="bc0f22fc87d6efca142f6e7099a319eb"/><file name="Verticalsharing.php" hash="6410be41f2e7af717d4dd5de83ff4ca4"/></dir><dir name="Helper"><file name="Adminhelper.php" hash="0e88b0ae2a83aa6e419ca11194328b3c"/><file name="Data.php" hash="9b4cfd68e9bdbfa73038be009da120ca"/><file name="LoginRadiusSDK.php" hash="e55149a472facdf2c83e6513c73caa3b"/><file name="Loginhelper.php" hash="0a0ebe79e72d239e97ebd31e64f9494a"/></dir><dir name="Model"><dir name="Backend"><file name="Validator.php" hash="151ee6cc958f5c08fbad177c186d0bba"/></dir><file name="Observer.php" hash="c6e5b6d19ba39ad46398ee1950e1c940"/><dir name="Source"><file name="HorizontalSharing.php" hash="3dae6386a5f32e20ba270eb3c2d15de9"/><file name="Iconsize.php" hash="42eeb07db318ba705a09161c9496f1d8"/><file name="LoginPopup.php" hash="b423750764b43bbbb7504d2186e5cfc0"/><file name="SharingVerticalAlignment.php" hash="e897335623190b33778940d0559ce13e"/><file name="TwitterRecipients.php" hash="20c2e3e4e3662d610c55211b94d74d9d"/><file name="Uihover.php" hash="12c37574892cea00e167e679cc96eadd"/><file name="Uihover2.php" hash="8be4bac9bc4500977c81046ea511dada"/><file name="VerticalSharing.php" hash="2e9b88d5a8f4b38481e282534256f3b1"/></dir><dir name="System"><dir name="Config"><file name="Info.php" hash="7a97fbbd77c8b8cfd42a104a06de603f"/></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="01e12b60b42ec834372dababb5310457"/></dir><dir name="etc"><file name="config.xml" hash="83ad3605db96539d4af1118bb8a8d1e5"/><file name="system.xml" hash="650c5b76041656f6b54efadf528e8fbf"/><file name="widget.xml" hash="f6e8a254aa3a9ff86f958710c4e8edca"/></dir><dir name="sql"><dir name="sociallogin_setup"><file name="mysql4-install-4.1.0.php" hash="c02ab421149fa4aafbfb0813ff350071"/><file name="mysql4-upgrade-3.7.1-4.1.0.php" hash="145b69433c87f3f3e7189ca0a647e71a"/><file name="mysql4-upgrade-3.7.2-4.1.0.php" hash="145b69433c87f3f3e7189ca0a647e71a"/><file name="mysql4-upgrade-4.0.0-4.1.0.php" hash="145b69433c87f3f3e7189ca0a647e71a"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Loginradius_Sociallogin.xml" hash="20cb11d66b0f486ebca4b8deedacc86b"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="loginradius_sociallogin.xml" hash="86b4e183c723dc96e13ee28198a36bc8"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="sociallogin.xml" hash="dcc24b2735bf4a240ca8916a597b8157"/></dir><dir name="template"><dir name="sociallogin"><file name="abovelogin.phtml" hash="29723ed6743adb5c94f553ce440effe2"/><file name="aboveregister.phtml" hash="e966762897e2084916733a5b594b56f3"/><file name="belowlogin.phtml" hash="5e81b7807c53da0230671c39e35fa682"/><file name="belowregister.phtml" hash="603509b2093ec24863cb3d8cd82e929c"/><file name="linking.phtml" hash="d1c8d7cdcf808425d86436bc84aadecf"/><file name="popup.phtml" hash="95bfee9711a860bc5a4314ca1be317dd"/><file name="popupscript.phtml" hash="45dcdebdfca0cebbc748540e3a3d3e67"/><file name="sociallogin.phtml" hash="3c39511fe8c96ce890e25df57232ac45"/><file name="sociallogin_head.phtml" hash="53115ac61d4cf76d79d57157938de7a3"/><file name="sociallogincustom.phtml" hash="74981f871595e6ec876390bf9d9172d3"/><file name="socialshare_head.phtml" hash="ac05792d7af1badb469db4befa21b10a"/><file name="socialshareproduct.phtml" hash="2c306de83dff3995de1ccf424cd645bd"/><file name="socialsharesuccess.phtml" hash="b8de15c1333b70764beb8fa67a36265d"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="Loginradius"><dir name="Sociallogin"><dir name="css"><file name="Thumbs.db" hash="48d8e49d8f4b82fff044544f39a16537"/><file name="admin-ui.css" hash="bbb74482c891fe366ff8ae8638afa09e"/><file name="lrshare_iconsprite32.png" hash="a016ded3f25653acf2fa9dfab8a38103"/></dir><dir name="images"><dir name="Linking"><file name="amazon.png" hash="961d0082ed4b433d8e0274c133072e2c"/><file name="aol.png" hash="4e51f60c1b8750c5b9dfa94f56fe13b1"/><file name="facebook.png" hash="141309628c58912076f00954b3fd19a6"/><file name="foursquare.png" hash="de2f4fcf5b3c1156f22ed546f5c3f0c5"/><file name="github.png" hash="45f8e1436fc5c5803ed9d4edb7cb59b6"/><file name="google.png" hash="ffeddc7d14c9b4de2efb6b8ea0f5f652"/><file name="hyves.png" hash="3c77fd2243b22c61915a950c3910f37c"/><file name="kaixin.png" hash="bc84991a5c9d15e20946fae5e9c27f4d"/><file name="linkedin.png" hash="7a9bc12ec91ab2a30442c56a9f70e9ea"/><file name="live.png" hash="9d747bae72fc0f2e3a04f32896d62fbc"/><file name="livejournal.png" hash="e21f34630444412ab3dd197884e0c2e6"/><file name="mixi.png" hash="909e7edc76e59b448d56043eee5e1412"/><file name="myopenid.png" hash="c8295969044cb9d99f8348091ba75319"/><file name="myspace.png" hash="42cd07decb5f4a1fba604ef8df32ef2e"/><file name="odnoklassniki.png" hash="34cd7d239583b015cdd1adb5b7fec085"/><file name="openid.png" hash="92bd4471ef1d5dd04855887806db74f0"/><file name="orange.png" hash="9b9b8f2da956a238e7d58c241423af8a"/><file name="paypal.png" hash="082f0b50411b1dfb1bfd86cfdeb92cea"/><file name="persona.png" hash="e0d926f89e9c428aece1e0f9dbb1f8f2"/><file name="qq.png" hash="8e6dc34bdf03f07277e0aadf8706a4a7"/><file name="renren.png" hash="040a0af8119b7f85bfc2df41ec56f915"/><file name="salesforce.png" hash="e41bcac63438bb04af3a9745b816a675"/><file name="stackexchange.png" hash="8ab952fe75d4a96d6752792ffdcbf0c3"/><file name="steamcommunity.png" hash="ad05c57a4ee01ebc01428b0da905d6b6"/><file name="twitter.png" hash="48044aca3a1d4864361f78c02ba86848"/><file name="verisign.png" hash="7a15fd820171218d803d26e7a3ec46a3"/><file name="virgilio.png" hash="f5c3b6e19c38903a192954934000f60a"/><file name="vkontakte.png" hash="ae1e98911fe9ea6da8a50a568c082133"/><file name="wordpress.png" hash="8ce8b46a2233b8497dd10d9c4d535e22"/><file name="yahoo.png" hash="5c159cc8fed73621b2c12600f8dac288"/></dir><dir name="Sharing"><dir name="Horizontal"><file name="horizonSharing16.png" hash="0fad94b8e4a3e44a2e14f81a2ee04041"/><file name="horizonSharing32.png" hash="561208c81d7cd9d3500e3c460a8a5c49"/><file name="horizontal.png" hash="628fb90190ea3ded7b1f384662ce8153"/><file name="single-image-theme-large.png" hash="e6ff4a26149b631639b601d95e2dc361"/><file name="single-image-theme-small.png" hash="8c2b20fa0f276e33f3876783eb2cbd74"/><file name="vertical.png" hash="81e8591ec1216ffaa22430e86431bf15"/></dir><dir name="Vertical"><file name="16VerticlewithBox.png" hash="73b3abf54889144e9188ffaa76cbb11f"/><file name="32VerticlewithBox.png" hash="37060e164ca4f7c00f430d5f1ab7eddd"/><file name="verticalhorizontal.png" hash="0f4729083e85894d126a7c5202b18465"/><file name="verticalvertical.png" hash="fbbcf59f5e1c121d34073e4769048ff4"/></dir></dir><dir name="media-pages"><file name="Thumbs.db" hash="2bf832cc35446fe90ae3b62f3d1d6044"/><file name="facebook.png" hash="206f9ea5a7374595f0d8dc94a713eb01"/><file name="google.png" hash="aeb7ef22d42ef585b133f4f6f9332996"/><file name="linkedin.png" hash="30428fd794b1d4444891a987b76080df"/><file name="twitter.png" hash="ebab12206bed415ea082231ed2d5c3b9"/><file name="youtube.png" hash="a78066dee928ad36762b83a29cdea932"/></dir></dir><dir name="js"><file name="admin-ui.js" hash="e325d2de12ba432e1598e1c972a096cc"/><file name="jquery.js" hash="5654b0561c66ca9c0ad2a1dd75e5d9b8"/><file name="jquery.ui.sortable.min.js" hash="b847eafb05bcc6ef0908ff07dcd2b0f1"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="Loginradius"><dir name="Sociallogin"><dir name="css"><file name="lrshare_iconsprite32.png" hash="a016ded3f25653acf2fa9dfab8a38103"/><file name="popup.css" hash="d2b6b3044d2a499ae1dfb93c62b77809"/></dir><dir name="images"><dir name="Linking"><file name="amazon.png" hash="961d0082ed4b433d8e0274c133072e2c"/><file name="aol.png" hash="4e51f60c1b8750c5b9dfa94f56fe13b1"/><file name="facebook.png" hash="141309628c58912076f00954b3fd19a6"/><file name="foursquare.png" hash="de2f4fcf5b3c1156f22ed546f5c3f0c5"/><file name="github.png" hash="45f8e1436fc5c5803ed9d4edb7cb59b6"/><file name="google.png" hash="ffeddc7d14c9b4de2efb6b8ea0f5f652"/><file name="hyves.png" hash="3c77fd2243b22c61915a950c3910f37c"/><file name="kaixin.png" hash="bc84991a5c9d15e20946fae5e9c27f4d"/><file name="linkedin.png" hash="7a9bc12ec91ab2a30442c56a9f70e9ea"/><file name="live.png" hash="9d747bae72fc0f2e3a04f32896d62fbc"/><file name="livejournal.png" hash="e21f34630444412ab3dd197884e0c2e6"/><file name="mixi.png" hash="909e7edc76e59b448d56043eee5e1412"/><file name="myopenid.png" hash="c8295969044cb9d99f8348091ba75319"/><file name="myspace.png" hash="42cd07decb5f4a1fba604ef8df32ef2e"/><file name="odnoklassniki.png" hash="34cd7d239583b015cdd1adb5b7fec085"/><file name="openid.png" hash="92bd4471ef1d5dd04855887806db74f0"/><file name="orange.png" hash="9b9b8f2da956a238e7d58c241423af8a"/><file name="paypal.png" hash="082f0b50411b1dfb1bfd86cfdeb92cea"/><file name="persona.png" hash="e0d926f89e9c428aece1e0f9dbb1f8f2"/><file name="qq.png" hash="8e6dc34bdf03f07277e0aadf8706a4a7"/><file name="renren.png" hash="040a0af8119b7f85bfc2df41ec56f915"/><file name="salesforce.png" hash="e41bcac63438bb04af3a9745b816a675"/><file name="stackexchange.png" hash="8ab952fe75d4a96d6752792ffdcbf0c3"/><file name="steamcommunity.png" hash="ad05c57a4ee01ebc01428b0da905d6b6"/><file name="twitter.png" hash="48044aca3a1d4864361f78c02ba86848"/><file name="verisign.png" hash="7a15fd820171218d803d26e7a3ec46a3"/><file name="virgilio.png" hash="f5c3b6e19c38903a192954934000f60a"/><file name="vkontakte.png" hash="ae1e98911fe9ea6da8a50a568c082133"/><file name="wordpress.png" hash="8ce8b46a2233b8497dd10d9c4d535e22"/><file name="yahoo.png" hash="5c159cc8fed73621b2c12600f8dac288"/></dir><dir name="Sharing"><dir name="Horizontal"><file name="horizonSharing16.png" hash="64188c128c8263c052153cf9708ac218"/><file name="horizonSharing32.png" hash="5e85ac81864885bcef5cc9691a9eba49"/><file name="horizontal.png" hash="6bb8038603bbf9cc70bac8365eebd7ba"/><file name="single-image-theme-large.png" hash="e6ff4a26149b631639b601d95e2dc361"/><file name="single-image-theme-small.png" hash="8c2b20fa0f276e33f3876783eb2cbd74"/><file name="vertical.png" hash="9c71cfb83ffb121a0ef89e263d474387"/></dir><dir name="Vertical"><file name="16VerticlewithBox.png" hash="73b3abf54889144e9188ffaa76cbb11f"/><file name="32VerticlewithBox.png" hash="37060e164ca4f7c00f430d5f1ab7eddd"/><file name="verticalhorizontal.png" hash="469ce5302d294dc987bdb070ef448446"/><file name="verticalvertical.png" hash="f59288edc8c87dde216b6616027aa72b"/></dir></dir></dir><dir name="js"><file name="LoginRadiusSDK.2.0.0.js" hash="4bcc695e646cca3e0775e8279dfd773b"/><file name="jquery.js" hash="5654b0561c66ca9c0ad2a1dd75e5d9b8"/><file name="jquery.ui.sortable.min.js" hash="b847eafb05bcc6ef0908ff07dcd2b0f1"/><file name="popup.js" hash="29c4ce9392fa95d76fe21e12ba1b91b2"/></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>