Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Вход по openid vkontakte.ru


Recommended Posts

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

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

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

Версия 1.5.1 (ocStore 1.0.1)

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites


контроллер\аккаунт\логинза.пхп

if (isset($this->session->data['loginza_redirect'])) {
	$this->redirect($this->session->data['loginza_redirect']);
} else {
	$this->redirect(HTTPS_SERVER);
}
Link to comment
Share on other sites


у меня икого нет :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

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

Link to comment
Share on other sites


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'));

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

Link to comment
Share on other sites


у него 0.2.0 версия, ненадо ему link() всивлять)

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites


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

<!-- 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? На него после авторизации осуещёствляется переход или как?
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

Fix305

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

  • 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');

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

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

Edited by KASY
Link to comment
Share on other sites


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

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

Link to comment
Share on other sites


Добрый День, у меня 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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.