Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

uLogin для Opencart 1.5.x.x & 1.4.x.x


devrvk

Recommended Posts

Имя файла: uLogin для Opencart 1.5.x.x & 1.4.x.x

Владелец файла: devrvk

Файл размещен: 23 февр. 2012

Файл обновлен: 03 марта 2012

Категория файла: Модули

Модуль авторизации/регистрации с помощью сервиса uLogin для Opencart 1.5.x.x

В теме обсуждения я рассказал как установить модуль на уже работающей платформе, а так же как видоизменить виджет.

***В базе не забудьте выполнить запрос:

ALTER TABLE `вашпрефикс_customer` ADD `identity` VARCHAR(255) NULL

Добавлена версия для Opencart 1.4.x.x(чистая установка).

Нажмите сюда, чтобы скачать этот файл

  • +1 3
Надіслати
Поділитися на інших сайтах

Установка на "нечистую" систему:

1. Загружаем каталог "admin" из архива без изменений.

2. Загружаем файл "catalog/controller/account/ulogin.php".

3. Загружаем файл "catalog/controller/module/ulogin.php".

4. Загружаем файл "catalog/language/russian/module/ulogin.php".

5. Загружаем файл "catalog/model/tool/ulogin.php".

6. Загружаем файл "catalog/view/theme/название_Вашей_темы/template/module/ulogin.tpl".

Далее нужно внести правки:

7. Открываем файл "catalog/controller/account/login.php" и после:

  if (isset($this->error['warning'])) {
   $this->data['error_warning'] = $this->error['warning'];
  } else {
   $this->data['error_warning'] = '';
  }
вставляем:

  // ulogin
  $this->data['action_ulogin'] = urlencode(HTTPS_SERVER . 'index.php?route=account/ulogin');
  $this->data['text_enter_with_ulogin'] = $this->language->get('text_enter_with_ulogin');
  // ulogin
  $this->data['action'] = $this->url->link('account/login', '', 'SSL');
  $this->data['register'] = $this->url->link('account/register', '', 'SSL');
  $this->data['forgotten'] = $this->url->link('account/forgotten', '', 'SSL');
8. Открываем "catalog/controller/checkout/login.php" и после:

   if (isset($this->session->data['account'])) {
	$this->data['account'] = $this->session->data['account'];
   } else {
	$this->data['account'] = 'register';
   }
вставляем:

   // ulogin
   $this->data['action_ulogin'] = urlencode(HTTPS_SERVER . 'index.php?route=account/ulogin');
   $this->data['text_enter_with_ulogin'] = $this->language->get('text_enter_with_ulogin');
   $this->session->data['ulogin_redirect'] = $this->url->link('checkout/checkout');
   // ulogin
   $this->data['forgotten'] = $this->url->link('account/forgotten', '', 'SSL');
9. Открываем "catalog/language/russian/account/login.php" и в конец файла вставляем(этот пункт по желанию, эта строка по умолчанию в модуле не используется):

// ulogin
$_['text_enter_with_ulogin']   = 'Вход\регистрация с помощью социальных сервисов';
// ulogin
10. Открываем "catalog/language/russian/checkout/checkout.php" и в конец файла вставляем:

// ulogin
$_['text_enter_with_loginza']   = 'Оформить с помощью социальных сервисов';
// ulogin
11. Открываем "catalog/view/theme/название_вашей_темы/template/account/login.tpl" и после:

<a onclick="$('#login').submit();" class="button"><span><?php echo $button_login; ?></span></a>
вставляем:

<!-- ulogin -->
<script src="http://ulogin.ru/js/ulogin.js"></script>
<a href="#" id="uLogin" x-ulogin-params="display=window&fields=first_name,last_name,photo&redirect_uri=<? echo $action_ulogin; ?>"><img src="http://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></a>
<!-- ulogin -->
11. Открываем "catalog/view/theme/название_вашей_темы/template/checkout/login.tpl" и перед:

<script type="text/javascript"><!--
$('#login input').keydown(function(e) {
if (e.keyCode == 13) {
  $('#button-login').click();
}
});
//--></script>
вставляем:

<!-- ulogin -->
<script src="http://ulogin.ru/js/ulogin.js"></script>
<a href="#" id="uLogin" x-ulogin-params="display=window&fields=first_name,last_name,photo,email&redirect_uri=<? echo $action_ulogin; ?>"><img src="http://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></a>
<!-- ulogin -->

Всё!

Надіслати
Поділитися на інших сайтах

Вид виджета:

По умолчанию виджет имеет вид:

Изображение

Его код:

<script src="http://ulogin.ru/js/ulogin.js"></script>
<a href="#" id="uLogin" x-ulogin-params="display=window&fields=first_name,last_name,photo,email&redirect_uri=<? echo $action_ulogin; ?>"><img src="http://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></a>

Если Вы хотите видоизменить виджет, есть ещё два варианта:

Изображение

Его код:

<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" x-ulogin-params="display=small&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook&hidden=twitter,google,yandex,livejournal,openid&redirect_uri=<? echo $action_ulogin; ?>"></div>

И

Изображение

Его код:

<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" x-ulogin-params="display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook&hidden=twitter,google,yandex,livejournal,openid&redirect_uri=<? echo $action_ulogin; ?>"></div>

*Как видим в двух последних вариантах можно указать предпочитаемые социальные сети!

Для замены вида виджета в модуле Вам необходимо в файлах модуля изменить код:

<script src="http://ulogin.ru/js/ulogin.js"></script>
<a href="#" id="uLogin" x-ulogin-params="display=window&fields=first_name,last_name,photo,email&redirect_uri=<? echo $action_ulogin; ?>"><img src="http://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></a>

На код выбранного Вами виджета!

  • +1 1
Надіслати
Поділитися на інших сайтах

uLogin для тех кому возможно не нравится Loginza.

Добавляются все поля, которые и при обычной регистрации, если конечно соц.сеть даёт доступ к этим полям.

Надіслати
Поділитися на інших сайтах

скажите пожалуйста данный модуль подойдет для 1,4,9,3 ???

К сожалению нет, но если наберётся больше двух желающих, сделаю и для ранних версий.

Надіслати
Поділитися на інших сайтах

атвору респект! лучше логинзы бесспорно!

однако проблема с tax.php осталась решил с помощью фикса от логинзы.. пока полет нормальный.

Только в таблице заказчики создаются разные учетные записи различимые только по полю identity

... кабы человек один а личных кабинетов может быть несколько. можно запутаться. это еще можно пережить...

Но... при входе через разные социальные сети не сохраняются закладки :(

при обычной регистрации сохраняются и закладки и корзина при входе через социалку только корзина..

где искать не подскажите!?

Надіслати
Поділитися на інших сайтах

Добавил версию для Opencart 1.4.x.x, установка на чистую систему. Спасибо за последний комментарий от пользователя "Captainpower". Решу данные ошибки. Ждите обновлений.

Надіслати
Поділитися на інших сайтах

подскажите еще.... чем плох такой вариант, размещение иконок соц.груп не модуле а в самой шапке!?

для этого я так понял нужно всего лишь в файле

/catalog/controller/common/header.php

разместить эти строки

// ulogin
$this->data['action_ulogin'] = urlencode(HTTPS_SERVER . 'index.php?route=account/ulogin');
$this->data['text_enter_with_ulogin'] = $this->language->get('text_enter_with_ulogin');
$this->session->data['ulogin_redirect'] = $this->url->link('checkout/checkout');
// ulogin
а в файле

/theme/ТЕМА/template/common/header.tpl

под строками

<div id="welcome">
<?php if (!$logged) { ?>
<?php echo $text_welcome; ?>
<?php } else { ?>
<?php echo $text_logged; ?>
<?php } ?>

это:

<br>
<br>
<!-- ulogin -->

<p> Войти с помощью социальных сервисов:</p>
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" x-ulogin-params="display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex&redirect_uri=<? echo $action_ulogin; ?>"></div>
</div>
<!-- ulogin -->

а если прописать в самом коде:

<div id="welcome">
<?php if (!$logged) { ?>
<?php echo $text_welcome; ?>
<br>
<br>
<!-- ulogin -->
<p> Войти с помощью социальных сервисов:</p>
<script src="http://ulogin.ru/js/ulogin.js"></script>
<div id="uLogin" x-ulogin-params="display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex&redirect_uri=<? echo $action_ulogin; ?>"></div>
</div>
<!-- ulogin -->
<?php } else { ?>
<?php echo $text_logged; ?>
<?php } ?>
[/code]

то виджет при удачном логине будет исчезать

вроде все работает отлично

прошу поправить, если я где то ошибся - пхп кодинг не моя специфика..)

  • +1 1
Надіслати
Поділитися на інших сайтах

Е-майлы я так понял не отдают социалки, в базе заказчики регистрируются без емайлов. проверял на яндеск, майл, контакт, гугл.

и еще странный баг после автоизации попадаешь на страницу checkout/cart

а что сделать чтоб попасть на главную!?

Надіслати
Поділитися на інших сайтах

Да email могут не отдавать социалки. В форме ulogin есть такой код "redirect_uri=<? echo $action_ulogin; ?>", этот код отдаёт url на который нужно перенаправить. Этот url аналогичем тому, который принадлежит странице, на которой в данный момент пользователь.

Надіслати
Поділитися на інших сайтах

Нельзя где то сохранять на с какой странице вышел пользователь!?

А то получается первый раз зашел с корзины и теперь при каждом входе меня возвращает в корзину..

Надіслати
Поділитися на інших сайтах

Возможно как-то так:

"Как сделать авторизацию без редиректа?

Добавить в атрибут x-ulogin-params параметр callback с названием функции, которая получит токен после авторизации. В качествеredirect_uri передайте адрес файла ulogin_xd.html на Вашем сервере.

Где мне получить файл ulogin_xd.html?

Скачайте архив по ссылке: ulogin_xd.zip и распакуйте файл ulogin_xd.html в папку со своим сайтом"

http://ulogin.ru/faq.html

Возможно ли с помощью этого сервиса попросить пользователя ввести номер телефона?

Надіслати
Поділитися на інших сайтах


После авторизации, вверху страницы появляется сообщение.

Notice: Undefined index: country_id in /***/***/***/www/system/library/tax.php on line 23Notice: Undefined index: zone_id in /***/***/***/www/system/library/tax.php on line 23

Надіслати
Поділитися на інших сайтах


Да, проблема с tax существует(на 1.4.х.х не замечено).

В файл "system/library/tax.php" после:

$address_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "address WHERE address_id = '" . (int)$this->customer->getAddressId() . "'");
вставьте:

   if ($address_query->num_rows > 0) {
    $this->setShippingAddress($address_query->row['country_id'], $address_query->row['zone_id']);
   } else {
    $this->setShippingAddress($this->config->get('config_country_id'), $this->config->get('config_zone_id'));
   }
  } elseif ($this->config->get('config_tax_default') == 'shipping') {
   $this->setShippingAddress($this->config->get('config_country_id'), $this->config->get('config_zone_id'));
  }
 
  if (isset($this->session->data['payment_address_id'])) {
   $address_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "address WHERE address_id = '" . (int)$this->session->data['payment_address_id'] . "'");
 
   $this->setPaymentAddress($address_query->row['country_id'], $address_query->row['zone_id']);
  } elseif (isset($this->session->data['guest']['payment'])) {
   $this->setPaymentAddress($this->session->data['guest']['payment']['country_id'], $this->session->data['guest']['payment']['zone_id']);
  } elseif ($this->customer->isLogged() && ($this->config->get('config_tax_customer') == 'payment')) {
   $address_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "address WHERE address_id = '" . (int)$this->customer->getAddressId() . "'");
  
   if ($address_query->num_rows > 0) {
    $this->setPaymentAddress($address_query->row['country_id'], $address_query->row['zone_id']); 
   } else {
    $this->setPaymentAddress($this->config->get('config_country_id'), $this->config->get('config_zone_id'));
   }
Надіслати
Поділитися на інших сайтах

Возможно как-то так:

"Как сделать авторизацию без редиректа?

Добавить в атрибут x-ulogin-params параметр callback с названием функции, которая получит токен после авторизации. В качествеredirect_uri передайте адрес файла ulogin_xd.html на Вашем сервере.

Где мне получить файл ulogin_xd.html?

Скачайте архив по ссылке: ulogin_xd.zip и распакуйте файл ulogin_xd.html в папку со своим сайтом"

http://ulogin.ru/faq.html

Возможно ли с помощью этого сервиса попросить пользователя ввести номер телефона?

куда callback то вставлять?

<div id="uLogin" x-ulogin-params=" display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex&redirect_uri=<? echo $action_ulogin; ?>"></div>
Надіслати
Поділитися на інших сайтах

***В базе не забудьте выполнить запрос:

ALTER TABLE `вашпрефикс_customer` ADD `identity` VARCHAR(255) NULL

это вообще как делается ?

Notice: Error: Unknown column 'identity' in 'where clause'

Error No: 1054

SELECT customer_id FROM customer WHERE identity = 'http://openid.yandex.ru/логин_яндекса/' in /home/o/oblivgr/mikrob-opencart/public_html/system/database/mysql.php on line 49

что не так?

Надіслати
Поділитися на інших сайтах


куда callback то вставлять?

<div id="uLogin" x-ulogin-params=" display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex&redirect_uri=<? echo $action_ulogin; ?>"></div>

Вот сюда:

<div id="uLogin" x-ulogin-params=" display=panel&fields=first_name,last_name,photo&providers=vkontakte,odnoklassniki,mailru,facebook,twitter,google,yandex&redirect_uri=ссылка_на_файл_[b]ulogin_xd.html[/b]&callback="></div>
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.