X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FFacebookBridge%2FFacebookBridgePlugin.php;h=bf16da337dc7137852b1c17075cfd6e11e0edc60;hb=cd77348852bbccd5f628d204eff9530f61b5e9f2;hp=7e17c2d7ecf5d280b5e6981385a17c43ebb913d7;hpb=b09276635c6e20290f0955c4f86ff4a13c7774de;p=quix0rs-gnu-social.git diff --git a/plugins/FacebookBridge/FacebookBridgePlugin.php b/plugins/FacebookBridge/FacebookBridgePlugin.php index 7e17c2d7ec..bf16da337d 100644 --- a/plugins/FacebookBridge/FacebookBridgePlugin.php +++ b/plugins/FacebookBridge/FacebookBridgePlugin.php @@ -1,7 +1,7 @@ . * - * @category Pugin + * @category Plugin * @package StatusNet * @author Zach Copley * @copyright 2011 StatusNet, Inc. @@ -41,7 +41,7 @@ define("FACEBOOK_SERVICE", 2); * @category Plugin * @package StatusNet * @author Zach Copley - * @copyright 2010 StatusNet, Inc. + * @copyright 2010-2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ @@ -101,14 +101,12 @@ class FacebookBridgePlugin extends Plugin */ function onAutoload($cls) { - $dir = dirname(__FILE__); - //common_debug("class = " . $cls); - switch ($cls) { case 'Facebook': // Facebook PHP SDK + include_once $dir . '/extlib/base_facebook.php'; include_once $dir . '/extlib/facebook.php'; return false; case 'FacebookloginAction': @@ -128,7 +126,6 @@ class FacebookBridgePlugin extends Plugin default: return true; } - } /** @@ -177,30 +174,24 @@ class FacebookBridgePlugin extends Plugin function onRouterInitialized($m) { // Always add the admin panel route - $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); - - // Only add these routes if an application has been setup on - // Facebook for the plugin to use. - if ($this->hasApplication()) { - - $m->connect( - 'main/facebooklogin', - array('action' => 'facebooklogin') - ); - $m->connect( - 'main/facebookfinishlogin', - array('action' => 'facebookfinishlogin') - ); - $m->connect( - 'settings/facebook', - array('action' => 'facebooksettings') - ); - $m->connect( - 'facebook/deauthorize', - array('action' => 'facebookdeauthorize') - ); + $m->connect('panel/facebook', array('action' => 'facebookadminpanel')); - } + $m->connect( + 'main/facebooklogin', + array('action' => 'facebooklogin') + ); + $m->connect( + 'main/facebookfinishlogin', + array('action' => 'facebookfinishlogin') + ); + $m->connect( + 'settings/facebook', + array('action' => 'facebooksettings') + ); + $m->connect( + 'facebook/deauthorize', + array('action' => 'facebookdeauthorize') + ); return true; } @@ -220,10 +211,11 @@ class FacebookBridgePlugin extends Plugin if ($this->hasApplication()) { $action->menuItem( + // TRANS: Menu item for "Facebook" login. common_local_url('facebooklogin'), _m('MENU', 'Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Login or register using Facebook'), + // TRANS: Menu title for "Facebook" login. + _m('Login or register using Facebook.'), 'facebooklogin' === $action_name ); } @@ -259,10 +251,10 @@ class FacebookBridgePlugin extends Plugin $nav->out->menuItem( common_local_url('facebookadminpanel'), - // TRANS: Menu item. + // TRANS: Menu item for "Facebook" in administration panel. _m('MENU','Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Facebook integration configuration'), + // TRANS: Menu title for "Facebook" in administration panel. + _m('Facebook integration configuration.'), $action_name == 'facebookadminpanel', 'nav_facebook_admin_panel' ); @@ -284,8 +276,7 @@ class FacebookBridgePlugin extends Plugin if ($this->hasApplication()) { $action_name = $action->trimmed('action'); - // CurrentUserDesignAction stores the current user in $cur - $user = $action->getCurrentUser(); + $user = common_current_user(); $flink = null; @@ -300,16 +291,14 @@ class FacebookBridgePlugin extends Plugin $action->menuItem( common_local_url('facebooksettings'), - // TRANS: Menu item tab. + // TRANS: Menu item for "Facebook" in user settings. _m('MENU','Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Facebook settings'), + // TRANS: Menu title for "Facebook" in user settings. + _m('Facebook settings.'), $action_name === 'facebooksettings' ); - } } - } /* @@ -330,7 +319,6 @@ class FacebookBridgePlugin extends Plugin if (!empty($appId) && !empty($secret)) { return true; } - } return false; @@ -362,26 +350,35 @@ class FacebookBridgePlugin extends Plugin $action->script('https://connect.facebook.net/en_US/all.js'); $script = <<inlineScript( - sprintf($script, + sprintf( + $script, json_encode($this->facebook->getAppId()), - json_encode($this->facebook->getSession()), common_local_url('facebookfinishlogin') ) ); @@ -393,26 +390,30 @@ ENDOFSCRIPT; * * @param Action action the current action */ - function onEndLogout($action) + function onStartLogout($action) { if ($this->hasApplication()) { - $session = $this->facebook->getSession(); - $fbuser = null; - $fbuid = null; - - if ($session) { - try { - $fbuid = $this->facebook->getUser(); - $fbuser = $this->facebook->api('/me'); - } catch (FacebookApiException $e) { - common_log(LOG_ERROR, $e, __FILE__); - } - } - if (!empty($fbuser)) { + $cur = common_current_user(); + $flink = Foreign_link::getByUserID($cur->id, FACEBOOK_SERVICE); + + if (!empty($flink)) { + + $this->facebook->setAccessToken($flink->credentials); + + if (common_config('singleuser', 'enabled')) { + $user = User::singleUser(); + + $destination = common_local_url( + 'showstream', + array('nickname' => $user->nickname) + ); + } else { + $destination = common_local_url('public'); + } $logoutUrl = $this->facebook->getLogoutUrl( - array('next' => common_local_url('public')) + array('next' => $destination) ); common_log( @@ -423,10 +424,14 @@ ENDOFSCRIPT; ), __FILE__ ); - common_debug("LOGOUT URL = $logoutUrl"); + + $action->logout(); + common_redirect($logoutUrl, 303); + return false; // probably never get here, but hey } + return true; } } @@ -461,7 +466,7 @@ ENDOFSCRIPT; */ function onStartEnqueueNotice($notice, &$transports) { - if (self::hasApplication() && $notice->isLocal()) { + if (self::hasApplication() && $notice->isLocal() && $notice->inScope(null)) { array_push($transports, 'facebook'); } return true; @@ -532,7 +537,7 @@ ENDOFSCRIPT; */ function onEndFavorNotice(Profile $profile, Notice $notice) { - $client = new Facebookclient($notice); + $client = new Facebookclient($notice, $profile); $client->like(); return true; @@ -548,7 +553,7 @@ ENDOFSCRIPT; */ function onEndDisfavorNotice(Profile $profile, Notice $notice) { - $client = new Facebookclient($notice); + $client = new Facebookclient($notice, $profile); $client->unLike(); return true; @@ -567,6 +572,7 @@ ENDOFSCRIPT; 'author' => 'Craig Andrews, Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:FacebookBridge', 'rawdescription' => + // TRANS: Plugin description. _m('A plugin for integrating StatusNet with Facebook.') );