#magento-1.9
#magento-1.9
Вопрос:
<a href="javascript:void(0)" onclick="return fblogin();" class="wksocialsignup fb_button_ps"><img src="<?php echo $this->helper('socialsignup/active')->getLoginImg()?>" alt="<?php echo $this->__('Facebook')?>" title="<?php echo $this->__('Connect with Facebook')?>"/></a>
я использую один и тот же код как на странице входа, так и на странице оформления заказа. Вход в Facebook работает нормально на странице входа в систему, но когда я пытаюсь сделать то же самое при входе в систему, это выдает ошибку типа
Ошибка неперехваченной ссылки: fblogin не определен
В чем может быть проблема и есть ли какие-либо предложения по ее устранению?
Комментарии:
1. проверьте, правильно ли загружен скрипт, содержащий функцию fblogin().
Ответ №1:
Я получил ответ, что забыл загрузить приведенный ниже скрипт для вызова fblogin() на странице оформления заказа.
<script language="JavaScript" type="text/javascript">
/*<![CDATA[*/
window.fbAsyncInit = function() {
FB.init({appId: '<?php echo $this->getAppId()?>',
status : true,
cookie : true,
xfbml : true,
oauth : true});
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
<?php if (Mage::getSingleton('customer/session')->isLoggedIn() amp;amp; $uid = $this->checkFbUser()):?>
greet('<?php echo $uid?>');
<?php endif?>
}
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/<?php echo Mage::app()->getLocale()->getLocaleCode()?>/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
function login(){
document.location.href="<?php echo $this->getUrl('socialsignup/facebook/login')?>?referer=<?php echo Mage::helper('core')->urlEncode($this->helper('core/url')->getCurrentUrl())?>";
}
function logout(){
document.location.href="<?php echo $this->getUrl('socialsignup/facebook/logout')?>";
}
function greet(id){
FB.api('/me', function(response) {
var src = 'https://graph.facebook.com/' id '/picture';
$$('.welcome-msg')[0].insert('<img height="20" src="' src '"/>');
});
}
function fblogin(){
FB.login(function(response) {
if (response.status == 'connected') {
login();
} else {
// user is not logged in
window.location.reload();
}
}, {scope:'email,publish_actions'});
return false;
}
/*]]>*/
</script>
Теперь он работает нормально.