devrvk

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

Рекомендуемые сообщения

devrvk    6

Имя файла: 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(чистая установка).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

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

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 -->

Всё!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

Вид виджета:

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

Изображение

Его код:

<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>

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Acden    6

А зачем uLogin, если есть Loginza?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Acden    6

И ещё, расскажите: когда заходишь через какой-нибудь odnoklassniki, пользователь добавляется в базу? Если да, то какие именно поля?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ALEKSFLY    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ALEKSFLY    0

вот и народ набирается ))) господа!! кому интересно!! отписываемся в тему!!!!!!!!!!!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ALEKSFLY    0

люди !!! есть ли кто третий?? автору респект!!! обещал сделать если более 2х желаюших!!!!!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
timoosha    0

Автору спасибо! Но мне тоже надо эту версию переделать под 1.4.9.4 !! Плиз.... :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CaptainPower    14

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CaptainPower    14

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

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

/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]

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

2Captainpower: Да. Верно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CaptainPower    14

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CaptainPower    14

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ZyXeL    18

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

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

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

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

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

http://ulogin.ru/faq.html

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Chipollino    0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

Да, проблема с 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'));
   }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CaptainPower    14

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

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

Добавить в атрибут 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>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
oblivgrad    0

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

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

что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
devrvk    6

куда 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>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От s7r0ng
      Здравствуйте!
       
      Стоит задача:
      Скрыть группу покупателей "По умолчанию" из выпадающего списка при регистрации. И далее вместо нее по умолчание отобразить другую группу.
       
      Для скрытия робовал в public_html\admin\view\template\customer\customer_list.tpl везде менять атрибут selected на disabled:
      <?php if ($customer_group['customer_group_id'] == $filter_customer_group_id) { ?> <option value="<?php echo $customer_group['customer_group_id']; ?>" disabled="disabled"><?php echo $customer_group['name']; ?></option> но код страницы остается без изменений.
      Или править надо не в шаблоне?

      Версия OcStore 2.3
      Кто сталкивался с подобной задачей, подскажите Ваше решение.
      Спасибо!
       
    • От Vakula777
      Здравствуйте.
       
      Перестала работать форма регистрации нового пользователя. Никаких сообщений в журнале ошибок. Просто при нажатии на кнопку "Продолжить" ничего не происходит...
       
      Помогите пожалуйста разобраться с этой проблемой - http://xn--c1ajwdchj.xn--p1ai/create-account/
       
      Заранее спасибо.
    • От Vesheslav
      Модуль для авторизации на сайте через соц.сети, email и SMS
      При регистрации  пользователя должна сохранялась ссылка на его личную страницу (для рассылки уведомлений) + подтягивалась аватарка в личный кабинет
      В общем максимум информации автоматом сохранялось в карте клиента и это информация могла быть выгружена файл CSV например 
      Ваши предложения? цена вопроса?
    • От BrownAleks
      Здравствуйте форумчане! Кто знает, подскажите пожалуйста каким образом и где можно отредактировать этот текст?

      Шаблон Aridius (Fractal) / Версия ocStore 2.3.0.2.3
    • От Axelroad
      Доброго времени суток, подскажите такая проблема; при переходе на сайте в форму регистрации посетителя выскакивает форма подтверждения- скрин прилагаю, как с ней бороться и от чего она возникает?) ОС 2.3, заранее спасибо!)

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу