Кнопка входа с facebook не работает на странице входа в систему, но работает на странице входа в систему

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

Теперь он работает нормально.