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

Вход по openid vkontakte.ru


action88

Recommended Posts

Господа, подскажите, как правильно добавить список иконок провайдеров в форму чекаута?

Хочу добавить слева, над чекбоксом "Создать учётную запись".

Бьюсь уже несколько часов - как-то криво получается.

Версия 1.5.1 (ocStore 1.0.1)

З.Ы. Вход по loginza через Кабинет хорошо, но большинство пользователей добавляет товар в корзину и переходит сразу на оплату, а не лезит авторизироваться через Кабинет. Поэтому подумал что есть смысл на странице оформления заказа вставить loginza.

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


З.Ы. Вход по loginza через Кабинет хорошо, но большинство пользователей добавляет товар в корзину и переходит сразу на оплату, а не лезит авторизироваться через Кабинет. Поэтому подумал что есть смысл на странице оформления заказа вставить loginza.

Может и есть.. но если покупатель не авторизованный и он начал оформлять заказ, то его все равно отправит на страницу авторизации, где можно и разместить логинзу. Вопрос в следующем как сделать, чтобы после входа через логинзу, редирект был на страницу продолжения оформления заказа, не на главную. А еще лучше чтобы редирект был на страницу где производилась авторизация, например, как на этом форуме.

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


у меня такого нет :blink: вот мой код

<?php 
class ControllerAccountLoginza extends Controller { 
	public function index() {
		if (!isset($_POST['token'])) {
			die('Ошибка: Отсутствует токен');
		}
		// получаем данные о пользователе с сервера Loginza
		$loginzaUserInfo = file_get_contents('http://loginza.ru/api/authinfo?token='.$_POST['token']);

		$loginzaUserInfo = json_decode($loginzaUserInfo);

		if (!isset($loginzaUserInfo->identity)) {
			die('Ошибка: ' . $loginzaUserInfo->error_message);
		}
		
		if (isset($loginzaUserInfo->name->first_name) && $loginzaUserInfo->name->first_name) {
			$firstname = $loginzaUserInfo->name->first_name;
		} else {
			$firstname = '';
		}
		
		if (isset($loginzaUserInfo->name->last_name) && $loginzaUserInfo->name->last_name) {
			$lastname = $loginzaUserInfo->name->last_name;
		} else {
			$lastname = '';
		}
		
		if (isset($loginzaUserInfo->email) && $loginzaUserInfo->email) {
			$email = $loginzaUserInfo->email;
		} else {
			$email = '';
		}
		
		$this->load->model('tool/loginza');
		$check_id = $this->model_tool_loginza->check_identity($loginzaUserInfo->identity);
		If (!$check_id) {
			// регистрируем
			 
			$data = array(
				'identity' => $loginzaUserInfo->identity,
				'firstname' => $firstname,
				'lastname' => $lastname,
				'email' => $email,
				'customer_group_id' => $this->config->get('config_customer_group_id'),
				'password' => $this->generate_password(10) // сгенерировать бы чего нить
			);
			
			$this->model_tool_loginza->login($this->model_tool_loginza->add_customer($data));
		} else {
			// входим
			$this->model_tool_loginza->login($check_id);
		}
		$this->redirect(HTTPS_SERVER);
		
  	}
	
	private function generate_password($number) {
		$arr = array('a','b','c','d','e','f',
						'g','h','i','j','k','l',
						'm','n','o','p','r','s',
						't','u','v','x','y','z',
						'A','B','C','D','E','F',
						'G','H','I','J','K','L',
						'M','N','O','P','R','S',
						'T','U','V','X','Y','Z',
						'1','2','3','4','5','6',
						'7','8','9','0');
		// Генерируем пароль
		$pass = "";
		for($i = 0; $i < $number; $i++) {
			// Вычисляем случайный индекс массива
			$index = rand(0, count($arr) - 1);
			$pass .= $arr[$index];
		}

		return $pass;
	}
}
?>

}

если заменить

$this->redirect(HTTPS_SERVER);

на

if (isset($this->session->data['loginza_redirect'])) {
	$this->redirect($this->session->data['loginza_redirect']);
} else {
	$this->redirect(HTTPS_SERVER);
}

то все равно редирект на главную, версия ocStore V0.2.0

может где то еще что то поменять надо?

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


Fix305, спасибо, очень оперативно и ладно сделано!

diaaua, замени в

} if (isset($this->session->data['loginza_redirect'])) {
        $this->redirect($this->session->data['loginza_redirect'
]);
} else {
        $this->redirect(HTTPS_SERVER);
}

код

$this->redirect(HTTPS_SERVER);

на

$this->redirect($this->url->link('checkout/checkout', '', 'SSL'));

Авторизирует и перекинет на продолжение чекаута.

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


можно, пожалуйста, по подробней для чайников :rolleyes: , а то в меня что с линком что без нечего не получатся.. редирект идет на эту страницу index.php?route=account/loginza и пишет внутренняя ошибка. Или для старой версии этот редирект нельзя сделать?

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


А вот такой тогда вопрос...

Нахожусь на странице товара, жму ВХОД, попадаю на страницу логина, захожу... и попадаю на главную...

ЧТО и КУДА прописать, чтобы возвращало на страницу товара? Я так понимаю страничку логина запилить надо, чтоб понимала РЕФЕРЕР и передавала его...

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

не все так просто) надо где то (например в index.php) постоянно запоминать адрес странички на которой находишься, например, в сессию и в controller/account/loginza.php делать редирект (последняя строчка метода index() ), иначе никак, так как HTTP_REFERER ведет на страницу loginza.ru/..

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

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


А нельзя ли обойти так... ведь у нас есть код:

<!-- loginza -->
	<div style="clear: both;"></div>
	<h2><?php echo $text_enter_with_loginza; ?></h2>
	<div style="padding: 0 213px; border-top: 1px solid #eee;">
		<script src="http://loginza.ru/js/widget.js" type="text/javascript"></script>
		<iframe src="http://loginza.ru/api/widget?overlay=loginza&token_url=<? echo $action_loginza; ?>" 
style="width:359px;height:300px;" scrolling="no" frameborder="no"></iframe>
	</div>
	<!-- loginza -->
Вот и подставлять нашу страничку, откуда мы пришли именно, в параметре token_url? На него после авторизации осуществляется переход или как?
Надіслати
Поділитися на інших сайтах

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

Т.е. страница логина создает куку с ХТТП-РЕФЕРЕР, а файл логинза.пхп читает эту куку и туда направляет?

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

Fix305

Нет, вы не поняли, я о другом.

Я нахожусь на странице ПРОДУКТА

Жму на ВХОД (login.php)

=> Здесь присваивается кука с HTTP_REFERER (это СТРАНИЦА ПРОДУКТА)

я логинюсь через форму Логинзы

Логинза передает данные в loginza.php

=> А вот теперь loginza.php считывает куку

Я бы сделал сам, но с ОС на уровне начинающего юзера, и точно не уверен, какие файлы копать, чем контроллер, модель и т.д. отличаются. В моей версии внедряться не надо в движок, достаточно 1 строки в файле логина и 1 строки в логинзе.

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

  • 2 weeks later...

Установил модуль,в админке при нажатии на модуль всплывает следующие. Что нужно исправить?

Fatal error: Cannot access private property Document::$title in Z:\home\10.0.0.44\www\admin\controller\module\loginza.php on line 8

Вот собственно строчка в которой выдает ошибку.

$this->document->title = $this->language->get('heading_title');

------------------------------------------------------------------------

Решил вопрос установив последнюю версию этого модуля.

Змінено користувачем KASY
Надіслати
Поділитися на інших сайтах


Добрый День, у меня Opencart 1.5.1, попытался установить, при попытке включить модуль через админку вылазит это "Remote server or file not found http://tuningdom.ru/admin/index.php?route=module/loginza&token=f8c5a8c15e51e5876f43bd8d153a46fc".

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


Установил модуль,в админке при нажатии на модуль всплывает следующие.

Fatal error: Cannot access private property Document::$title in Z:\home\10.0.0.44\www\admin\controller\module\

loginza.php on line 8

Такая же проблема. Установка последней версии не помогла. ocStore v1.0.1

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


Добрый День, у меня Opencart 1.5.1, попытался установить, при попытке включить модуль через админку вылазит это "Remote server or file not found http://tuningdom.ru/admin/index.php?route=module/loginza&token=f8c5a8c15e51e5876f43bd8d153a46fc".

Точно такая же проблема на OpenCart 1.5.1:

Fatal error: Cannot access private property Document::$title in /home/e/public_html/owner/controller/module/loginza.php on line 8

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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