Совмещение авторизации и плагина OpenID

Уж больно мне нравится авторизация на кукораме с ее openID авторизацией. Решил прикрутить плагин OpenID к стандартной форме авторизации. Утсановил плагин, взял часть кода из шаблона плагина и вставил в window_login.tpl. В итоге получилось:
{if !$oUserCurrent}
<div class="modal modal-login" id="window_login_form">
<header class="modal-header">
<h3>{$aLang.user_authorization}</h3>
<a href="#" class="close jqmClose"></a>
</header>		
<script type="text/javascript">
jQuery(function($){
$('#popup-login-form').bind('submit',function(){
ls.user.login('popup-login-form');
return false;
});
$('#popup-login-form-submit').attr('disabled',false);
});
</script>	
<div class="modal-content">
<ul class="nav nav-pills nav-pills-tabs">
<li class="active js-block-popup-login-item" data-type="login"></li>
</ul>
<h4><span>Быстрый вход</span></h4>  

     
<div class="openid-popup">
<a href="javascript: openid_fb()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_fb.png" alt="facebook" width="40px" height="40px" /></a>
<a href="javascript: openid_twitter()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_twitter.png" alt="twitter" width="40px" height="40px" /></a>
<a href="javascript: openid_yandex()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_yandex.png" alt="yandex" width="40px" height="40px" /></a>
<a href="javascript: openid_google()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_google.png" class="google"  alt="google" width="40px" height="40px" /></a>
<a href="javascript: openid_vk()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_vk.png" alt="vkontakte" width="40px" height="40px" /></a>            
</div>                    

<h4><span>Вход с паролем</span></h4>

					
<div class="loginform">
{hook run='login_popup_begin'}
<form action="{router page='login'}" method="post" id="popup-login-form">
{hook run='form_login_popup_begin'}
<p><label for="popup-login">{$aLang.user_login}:</label><div class="mega-note">
<a href="{router page='registration'}" >{$aLang.registration_submit}</a></div>
<input type="text" name="login" class="input-registration"></p>				
<p><label for="popup-password">{$aLang.user_password}:</label>
<div class="mega-note"><a href="{router page='login/reminder'}">{$aLang.password_reminder}</a></div>
<input type="password" name="password" class="input-registration" tabindex="1">
<small class="validate-error-hide validate-error-login"></small></p>			
<p><label><input type="checkbox" name="remember" class="input-checkbox" tabindex="2"> {$aLang.user_login_remember}</label></p>
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<div class="lite-note"> 
<button type="submit" name="submit_login" class="button button-primary" id="popup-login-form-submit" disabled="disabled">{$aLang.user_login_submit}</button>
</div>
{hook run='form_login_popup_end'}
</form>
{hook run='login_popup_end'}
</div>			
</div>
</div>
{/if}

где:
<div class="openid-popup">
<a href="javascript: openid_fb()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_fb.png" alt="facebook" width="40px" height="40px" /></a>
<a href="javascript: openid_twitter()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_twitter.png" alt="twitter" width="40px" height="40px" /></a>
<a href="javascript: openid_yandex()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_yandex.png" alt="yandex" width="40px" height="40px" /></a>
<a href="javascript: openid_google()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_google.png" class="google"  alt="google" width="40px" height="40px" /></a>
<a href="javascript: openid_vk()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_vk.png" alt="vkontakte" width="40px" height="40px" /></a>            
</div> 

участок кода, взятый из openid\templates\skin\default\actions\ActionLogin\openid.tpl
В итоге, иконки с сервисами соц.сетей неактивны, переадресации на страницы авторизации не происходит. Подскажите, где что пропустил.

3 комментария

avatar
проблема решилась? если да, можно увидеть полное решение?
avatar
Вроде бы такой трюк получается только с плагином AutoOpendID, но если и У Вас получиться, пожалуйста обязательно сообщите!
avatar
А зачем редактировать Window_login.tpl? Когда можно засунуть все это в inject_login.tpl

Необходимо вставить все следующее:

<p>{$aLang.openid_choose_service}</p>

			<a href="javascript: openid_fb()"><img src="{$sTemplateWebPathPlugin}img/openid_fb.png" alt="facebook" width="154px" height="22px" /></a>
			<a href="javascript: openid_twitter()"><img src="{$sTemplateWebPathPlugin}img/openid_twitter.png" alt="twitter" width="151px" height="24px" /></a>
			
			<a href="javascript: openid_yandex()"><img src="{$sTemplateWebPathPlugin}img/openid_yandex.png" alt="yandex" width="47px" height="21px" /></a>
			<a href="javascript: openid_google()"><img src="{$sTemplateWebPathPlugin}img/openid_google.png" class="google"  alt="google" width="63px" height="21px" /></a>
			<a href="javascript: openid_rambler()"><img src="{$sTemplateWebPathPlugin}img/openid_rambler.png" alt="rambler" width="84px" height="21px" /></a>
			<a href="javascript: openid_vk()"><img src="{$sTemplateWebPathPlugin}img/openid_vk.png" alt="vkontakte" width="84px" height="21px" /></a>			
		</div>					
	</form>
</div>
		
		
<script language="JavaScript" type="text/javascript">
var sVkTransportPath='{cfg name='plugin.openid.vk.transport_path'}';
var iVkAppId='{cfg name='plugin.openid.vk.id'}';
var iFbAppId='{cfg name='plugin.openid.fb.id'}';
var sVkLoginPath='{$aRouter.login}'+'openid/vk/';
var sFbLoginPath='{$aRouter.login}'+'openid/fb/';
var sTwitterLoginPath='{$aRouter.login}'+'openid/twitter/?authorize=1';
{literal}
	function getEl(id) {
		return document.getElementById(id);
	}

	function openid_yandex() {
		getEl('open_login').value='openid.yandex.ru';		
		getEl('openid_form').submit();
	}
	
	function openid_rambler() {
		getEl('open_login').value='rambler.ru';		
		getEl('openid_form').submit();
	}
	
	function openid_google() {
		getEl('open_login').value='https://www.google.com/accounts/o8/id';		
		getEl('openid_form').submit();
	}
	
	function openid_vk() {		
		VK.Auth.getLoginStatus(function(response) {
			if (response.session) {
				window.location = sVkLoginPath;
			} else {
				VK.Auth.login(function(response) {
					if (response.session) {
						window.location = sVkLoginPath;
					}
				},VK.access.FRIENDS);				
			}
		});
	}
	
	function openid_fb() {		
		FB.getLoginStatus(function(response) {
			if (response.session) {
				window.location = sFbLoginPath;
			} else {
				FB.login(null,{perms:'read_stream,publish_stream,offline_access,email'});				
				FB.login(function(response) {
					if (response.session) {
						window.location = sFbLoginPath;
					}
				});				
			}
		});
	}
	
	function openid_twitter() {
		window.location = sTwitterLoginPath;
	}
	
	VK.init({apiId: iVkAppId, nameTransportPath: sVkTransportPath});
	FB.init({appId: iFbAppId, status: true, cookie: true, xfbml: true});
		
</script>
{/literal}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.